circcomb_aoco_201415
DESCRIPTION
circComb_AOCO_201415TRANSCRIPT
Arquitetura e Organizaccedilatildeo de Computadores - EIC00831ordm ano 1ordm semestre - 201415
Antoacutenio Joseacute Duarte Arauacutejo
Mestrado Integrado em Engenharia Informaacutetica e Computaccedilatildeo
FEUP
Circuitos combinatoacuterios
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 2
Circuitos combinatoacuterios resumo
bull Aacutelgebra de Boole
bull Representaccedilotildees de funccedilotildees booleanas
bull Circuitos loacutegicos
bull Circuitos combinatoacuterios padratildeo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 3
Aacutelgebra de Boole
bull 1854 - George Boolendash formular proposiccedilotildees como V ou Fndash combinar proposiccedilotildeesndash avaliar a sua veracidade ou falsidade
bull 1938 - Claude Shannon (Bell Labs)ndash adaptou a aacutelgebra de Boole agrave anaacutelise de
circuitosndash condiccedilatildeo de um contacto como V ou F
bull representado como uma variaacutevel booleana (0 ou 1)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 4
Axiomas da aacutelgebra de Boole
bull Definiccedilotildees fundamentaisndash seja X uma variaacutevel booleana
ndash (A1) X=0 se X ne 1 ndash (A1rsquo) X=1 se X ne 0
X ou eacute 1 ou eacute 0
ndash (A2) se X=0 entatildeo Xrsquo=1ndash (A2rsquo) se X=1 entatildeo Xrsquo=0
Xrsquo (ou X) eacute o oposto de X
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 5
ndash (A3) 0 0 = 0ndash (A4) 1 1 = 1ndash (A5) 0 1 = 1 0 = 0
operador E 2 interruptores em seacuterie
ndash (A3rsquo) 0 + 0 = 0
ndash (A4rsquo) 1 + 1 = 1ndash (A5rsquo) 0 + 1 = 1 + 0 = 1
operador OU 2 interruptores em paralelo
Axiomas da aacutelgebra de Boole
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 6
bull Os 10 axiomas definem a aacutelgebra de Boolebull Convenccedilotildees
ndash operador E representa-se por (ponto)bull pode chamar-se ao E ldquoproduto loacutegicordquo
ndash operador OU representa-se por + (mais)bull pode chamar-se ao OU ldquosoma loacutegicardquo
ndash o E tem precedecircncia em relaccedilatildeo ao OUndash podem usar-se parecircntesis em expressotildees
Axiomas da aacutelgebra de Boole
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 7
(T1) X + 0 = X (T1rsquo) X 1 = X
(T2) X + 1 = 1 (T2rsquo) X 0 = 0
(T3) X + X = X (T3rsquo) X X = X
(T4) (Xrsquo)rsquo = X
(T5) X + Xrsquo = 1 (T5rsquo) X Xrsquo = 0
Operaccedilotildees com uma variaacutevel
Teoremas da aacutelgebra de Boole
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 8
(T6) X+Y=Y+X (T6rsquo) XY=YX
(T7) (X+Y)+Z=X+(Y+Z) (T7rsquo) (XY)Z = X(YZ)
(T8) XY+XZ=X(Y+Z) (T8rsquo) (X+Y)(X+Z) = X+YZ
(T9) X+XY=X (T9rsquo) X(X+Y)=X
(T10) X+XrsquoY = X+Y (T10rsquo) X(Xrsquo+Y) = XY
(T11) XY+XYrsquo = X (T11rsquo) (X+Y)(X+Yrsquo) = X
(T12) XY+XrsquoZ+YZ = XY+XrsquoZ
(T12rsquo) (X+Y)(Xrsquo+Z)(Y+Z) = (X+Y)(Xrsquo+Z)
Operaccedilotildees com duas e trecircs variaacuteveis
Teoremas da aacutelgebra de Boole
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 9
(T13) (X Y)rsquo = Xrsquo + Yrsquo(T13rsquo) (X + Y)rsquo = Xrsquo Yrsquo
Generalizando
[F(X1 X2 X3 Xn + ) ]rsquo =
F(X1rsquo X2rsquo X3rsquo Xnrsquo +)
Teoremas da aacutelgebra de Boole
Leis de De Morgan
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 10
Simplificaccedilatildeo de expressotildees
(AB+(Arsquo+B)rsquo)+AC =AB+ABrsquo+AC = (leis de De Morgan T13rsquo)A(B+Brsquo)+AC = (teorema T8)A1+AC = (teorema T5)A+AC = (teorema T1rsquo)A (teorema T9)
Exemplo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 11
Representaccedilatildeo de funccedilotildees booleanas
bull Funccedilatildeo booleana de N variaacuteveisndash domiacutenio todas as 2N combinaccedilotildees das
variaacuteveisndash contradomiacutenio 0 1
bull Formas de representaccedilatildeondash Expressatildeo algeacutebrica
F(XYZ)=ZYrsquo+XZ+YrsquoZrsquondash Tabela de verdade todos os valores de F()ndash Circuito loacutegico
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 12
Tabela de verdade
X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1
2N linhas
Valores da funccedilatildeo
ordem naturalcrescente
(combinaccedilotildees das entradas)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 13
Tabela de verdade
X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1
Nestes casos o valor de F(XYZ)soacute depende de X e YPode-se compactar a escrita da tabela de verdade
X Y Z F(XYZ)0 0 x 10 1 x 01 0 x 11 1 0 01 1 1 1
x significa 0 ou 1
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 14
Circuito loacutegico
as portas loacutegicas realizamas operaccedilotildees elementares da aacutelgebra booleana
F(XYZ)
X
YZ
B
AAB
E A B AB0 0 00 1 01 0 01 1 1
B
AA+B
A B A+B0 0 00 1 11 0 11 1 1
OU
A AAA
0 11 0
NAtildeO
portas loacutegicas elementares circuito loacutegico
XZ
ZY
Z Y
uma rede de portas loacutegicasinterligadas entre si
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 15
Circuito loacutegico
As portas loacutegicas E e OU podem ter um nuacutemero qualquer de entradas(na realidade eacute limitado por razotildees ligadas agrave realizaccedilatildeo fiacutesica dos circuitos eletroacutenicos)
ABCD
ABCD A+B+CABC
Podem ser desenhadas portas loacutegicas com entradas negadas
A
BA B A + B
A
B
ou com a saiacuteda negada(neste caso chamam-se NAtildeO-E ou NAND e NAtildeO-OU ou NOR)
A
BA B A + B
A
B
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 16
Expressatildeo lsquosoma de produtosrsquo
bull Soma de produtos (SOP sum of products)ndash Soma dos termos produto resultantes das combinaccedilotildees das
entradas para as quais F=1ndash Ex
X Y Z F(XYZ)0 0 0 1 Xrsquo Yrsquo Zrsquo0 0 1 1 Xrsquo Yrsquo Z0 1 0 00 1 1 01 0 0 1 XYrsquo Zrsquo1 0 1 1 XYrsquo Z1 1 0 01 1 1 1 XYZ
F(XYZ)= XrsquoYrsquoZrsquo + XrsquoYrsquoZ + XYrsquoZrsquo + XYrsquoZ + XYZ
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 17
Expressatildeo lsquoproduto de somasrsquo
bull Produto de somas (POS product of sums)ndash Produto dos termos soma resultantes das combinaccedilotildees das
entradas para as quais F=0ndash Ex
X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 0 X+Yrsquo+Z0 1 1 0 X+Yrsquo+Zrsquo1 0 0 11 0 1 11 1 0 0 Xrsquo+Yrsquo+Z1 1 1 1
F(XYZ)= (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 18
Siacutentese de circuitos combinatoacuterios
bull Expressotildees booleanas natildeo simplificadasndash soma canoacutenica e produto canoacutenicondash realizadas como circuitos loacutegicos de 2 niacuteveis
F(XYZ) = (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)
YZX
F(XYZ)
niacutevel de portas AND
niacutevel de portas ORSOP AND-ORPOS OR-AND
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 19
Transformaccedilatildeo para NANDs
bull Portas loacutegicas NANDndash mais baratas e mais raacutepidas do que as ANDndash um AND eacute um NAND seguido de um inversor
bull Medida de complexidade de um circuito digitalndash nuacutemero de portas loacutegicas equivalentes
bull eacute o nuacutemero de NANDs de duas entradasbull eacute uma medida independente da tecnologia de fabrico
bull Transformar circuito AND-OR para NANDsndash faacutecil trocar os ANDs e o OR por NANDs
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 20
AND-OR para NANDs
Y
Z
X
F(XYZ)
Y
Z
X
F(XYZ)
Leis de DeMorganUm OR com as entradasnegadas eacute um NAND
Circuito AND-OR (da expressatildeo SOP)
E os inversoresE soacute com NAND de 2 entradas
Negando as saiacutedas dos ANDs e as entradas do OR
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 21
Circuitos combinatoacuterios complexos
bull Siacutentese a partir de tabelas de verdadendash Descriccedilatildeo formal -gt circuito AND-OR ou OR-ANDndash Aplica-se apenas a circuitos ldquopequenosrdquo
bull Circuitos complexos (dezenas de entradas)ndash Impraticaacutevel usar os meacutetodos estudadosndash 32 entradas 232 = 4 294 967 296 linhas da tabela de
verdadendash Projeto hieraacuterquico
bull Construir circuitos complexos agrave custa de circuitos mais simplesbull Um exemplo construir um somador de 32 bits agrave custa de full-
addersndash Um full-adder eacute um somador de 3 nuacutemeros de 1 bit
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 22
Funccedilotildees combinatoacuterias ldquopadratildeordquo
bull Funccedilotildees padratildeondash Podem identificar-se em circuitos complexosndash Existem disponiacuteveis (p ex como circuitos integrados)
ndash Facilitam o projecto de sistemas digitaisndash Exemplos de funccedilotildees padratildeo
bull Somadoressubtratores (deteccedilatildeo de overflow com ou sem sinal)bull Comparadores (igualdade e magnitude com sinal ou sem sinal)bull Descodificadores e codificadores (binaacuterio 7-segmentos BCD hex)bull Multiplexadores (multiplexers) (ldquocomutadoresrdquo digitais)
todos com interesse no contexto da arquitetura de computadores
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23
Desenho de circuitos
bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo
bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade
A
EN_A
EN_B
B
F
G
H
Entrada ativa com 0 (negada)
Nomes dos sinais
Saiacuteda ativa em 0 (negada)
Entrada ativa com 1
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24
Barramentos
bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]
A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)
A[31]8
8
A[70]
B[70]
A
BAgtB
A
B
S
Y8
comparador
multiplexador
MAX[70]
nordm de bits
barramento (8 bits)
fio (1 bit)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25
Descodificadores
bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)
bull Exemplo descodificador 2 divide 4 (2 para 4)
EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
I1
I0
EN
Y0
Y1
Y2
Y3
sinal de habilitaccedilatildeo (enable)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26
Descodificadores
bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4
G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1
Y3 Y2 Y1 Y0
A
B
G
Y0
Y1
Y2
Y3G
Y0
Y1
Y2
Y3
A
B
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27
Descodificadores
- Descodificador binaacuterio 3 divide 8
EN I2 I1 I0
0 x x x 1 1 1 1
1 0 0 0 1 1 1 0
1 0 0 1 1 1 0 1
1 1 1 0 1 0 1 1
1 1 1 1 0 1 1 1
Y7 Y6 Y1 Y0
- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8
- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis
I0
I1
Y0
Y1
Y2
Y3I2
Y4
Y5
Y6
Y7
EN
saiacutedas ativas a 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28
Descodificadores
bull Descodificador BCD para 7 segmentos
AB
abcdefg
CD
BI
(MSB)
(LSB)
a
b
cde
f g
(blanking input)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29
Codificadores
bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N
bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2
I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0
Y1
Y0
IDLE
I0
I1
I2
I3
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30
Codificadores
bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)
I6A2
A1
A0
GS
EO
I7
I5
I4
I3
I2
I1
I0
EI
EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1
1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0
got somethingenable outputenable input
GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31
Multiplexadores
bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)
Y
I0
I1
I2
I3
S0
S1entradasde seleccedilatildeo
Y = Is s=S1S0 I0
I1
I2
I3
Y
S0S1
siacutembolo habitual
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32
Multiplexadores
ndash Como fazer um mux 4divide1 com muxs 2divide1
ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis
bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33
Ou exclusivo
bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade
(iacutempar)
ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade
AB
AoplusB
A B AoplusB0 0 00 1 1 1 0 11 1 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34
Somadoressubtratores
bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito
iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1
bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B
bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)
ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35
Comparadores
bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante
bull um AND de N entradasbull negadas as entradas a comparar com zero
ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado
Ai = BiAiBi
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36
Comparadores
bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade
Ai Bi
AEQBoutAEQBin
os bits mais significativos (ateacute i-1) satildeo iguais
os bits ateacute i satildeo iguais
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37
Comparadores
bull Comparadores de magnitude (sem sinal)
ndash pode ser usado um subtratorndash comparador iterativo de magnitude
Ai Bi
AGTBoutAGTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB
resultado (AgtB) dos bits ateacute i
ALTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AltB
ALTBout
resultado (AltB) dos bits ateacute i
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 3
Aacutelgebra de Boole
bull 1854 - George Boolendash formular proposiccedilotildees como V ou Fndash combinar proposiccedilotildeesndash avaliar a sua veracidade ou falsidade
bull 1938 - Claude Shannon (Bell Labs)ndash adaptou a aacutelgebra de Boole agrave anaacutelise de
circuitosndash condiccedilatildeo de um contacto como V ou F
bull representado como uma variaacutevel booleana (0 ou 1)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 4
Axiomas da aacutelgebra de Boole
bull Definiccedilotildees fundamentaisndash seja X uma variaacutevel booleana
ndash (A1) X=0 se X ne 1 ndash (A1rsquo) X=1 se X ne 0
X ou eacute 1 ou eacute 0
ndash (A2) se X=0 entatildeo Xrsquo=1ndash (A2rsquo) se X=1 entatildeo Xrsquo=0
Xrsquo (ou X) eacute o oposto de X
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 5
ndash (A3) 0 0 = 0ndash (A4) 1 1 = 1ndash (A5) 0 1 = 1 0 = 0
operador E 2 interruptores em seacuterie
ndash (A3rsquo) 0 + 0 = 0
ndash (A4rsquo) 1 + 1 = 1ndash (A5rsquo) 0 + 1 = 1 + 0 = 1
operador OU 2 interruptores em paralelo
Axiomas da aacutelgebra de Boole
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 6
bull Os 10 axiomas definem a aacutelgebra de Boolebull Convenccedilotildees
ndash operador E representa-se por (ponto)bull pode chamar-se ao E ldquoproduto loacutegicordquo
ndash operador OU representa-se por + (mais)bull pode chamar-se ao OU ldquosoma loacutegicardquo
ndash o E tem precedecircncia em relaccedilatildeo ao OUndash podem usar-se parecircntesis em expressotildees
Axiomas da aacutelgebra de Boole
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 7
(T1) X + 0 = X (T1rsquo) X 1 = X
(T2) X + 1 = 1 (T2rsquo) X 0 = 0
(T3) X + X = X (T3rsquo) X X = X
(T4) (Xrsquo)rsquo = X
(T5) X + Xrsquo = 1 (T5rsquo) X Xrsquo = 0
Operaccedilotildees com uma variaacutevel
Teoremas da aacutelgebra de Boole
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 8
(T6) X+Y=Y+X (T6rsquo) XY=YX
(T7) (X+Y)+Z=X+(Y+Z) (T7rsquo) (XY)Z = X(YZ)
(T8) XY+XZ=X(Y+Z) (T8rsquo) (X+Y)(X+Z) = X+YZ
(T9) X+XY=X (T9rsquo) X(X+Y)=X
(T10) X+XrsquoY = X+Y (T10rsquo) X(Xrsquo+Y) = XY
(T11) XY+XYrsquo = X (T11rsquo) (X+Y)(X+Yrsquo) = X
(T12) XY+XrsquoZ+YZ = XY+XrsquoZ
(T12rsquo) (X+Y)(Xrsquo+Z)(Y+Z) = (X+Y)(Xrsquo+Z)
Operaccedilotildees com duas e trecircs variaacuteveis
Teoremas da aacutelgebra de Boole
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 9
(T13) (X Y)rsquo = Xrsquo + Yrsquo(T13rsquo) (X + Y)rsquo = Xrsquo Yrsquo
Generalizando
[F(X1 X2 X3 Xn + ) ]rsquo =
F(X1rsquo X2rsquo X3rsquo Xnrsquo +)
Teoremas da aacutelgebra de Boole
Leis de De Morgan
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 10
Simplificaccedilatildeo de expressotildees
(AB+(Arsquo+B)rsquo)+AC =AB+ABrsquo+AC = (leis de De Morgan T13rsquo)A(B+Brsquo)+AC = (teorema T8)A1+AC = (teorema T5)A+AC = (teorema T1rsquo)A (teorema T9)
Exemplo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 11
Representaccedilatildeo de funccedilotildees booleanas
bull Funccedilatildeo booleana de N variaacuteveisndash domiacutenio todas as 2N combinaccedilotildees das
variaacuteveisndash contradomiacutenio 0 1
bull Formas de representaccedilatildeondash Expressatildeo algeacutebrica
F(XYZ)=ZYrsquo+XZ+YrsquoZrsquondash Tabela de verdade todos os valores de F()ndash Circuito loacutegico
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 12
Tabela de verdade
X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1
2N linhas
Valores da funccedilatildeo
ordem naturalcrescente
(combinaccedilotildees das entradas)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 13
Tabela de verdade
X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1
Nestes casos o valor de F(XYZ)soacute depende de X e YPode-se compactar a escrita da tabela de verdade
X Y Z F(XYZ)0 0 x 10 1 x 01 0 x 11 1 0 01 1 1 1
x significa 0 ou 1
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 14
Circuito loacutegico
as portas loacutegicas realizamas operaccedilotildees elementares da aacutelgebra booleana
F(XYZ)
X
YZ
B
AAB
E A B AB0 0 00 1 01 0 01 1 1
B
AA+B
A B A+B0 0 00 1 11 0 11 1 1
OU
A AAA
0 11 0
NAtildeO
portas loacutegicas elementares circuito loacutegico
XZ
ZY
Z Y
uma rede de portas loacutegicasinterligadas entre si
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 15
Circuito loacutegico
As portas loacutegicas E e OU podem ter um nuacutemero qualquer de entradas(na realidade eacute limitado por razotildees ligadas agrave realizaccedilatildeo fiacutesica dos circuitos eletroacutenicos)
ABCD
ABCD A+B+CABC
Podem ser desenhadas portas loacutegicas com entradas negadas
A
BA B A + B
A
B
ou com a saiacuteda negada(neste caso chamam-se NAtildeO-E ou NAND e NAtildeO-OU ou NOR)
A
BA B A + B
A
B
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 16
Expressatildeo lsquosoma de produtosrsquo
bull Soma de produtos (SOP sum of products)ndash Soma dos termos produto resultantes das combinaccedilotildees das
entradas para as quais F=1ndash Ex
X Y Z F(XYZ)0 0 0 1 Xrsquo Yrsquo Zrsquo0 0 1 1 Xrsquo Yrsquo Z0 1 0 00 1 1 01 0 0 1 XYrsquo Zrsquo1 0 1 1 XYrsquo Z1 1 0 01 1 1 1 XYZ
F(XYZ)= XrsquoYrsquoZrsquo + XrsquoYrsquoZ + XYrsquoZrsquo + XYrsquoZ + XYZ
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 17
Expressatildeo lsquoproduto de somasrsquo
bull Produto de somas (POS product of sums)ndash Produto dos termos soma resultantes das combinaccedilotildees das
entradas para as quais F=0ndash Ex
X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 0 X+Yrsquo+Z0 1 1 0 X+Yrsquo+Zrsquo1 0 0 11 0 1 11 1 0 0 Xrsquo+Yrsquo+Z1 1 1 1
F(XYZ)= (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 18
Siacutentese de circuitos combinatoacuterios
bull Expressotildees booleanas natildeo simplificadasndash soma canoacutenica e produto canoacutenicondash realizadas como circuitos loacutegicos de 2 niacuteveis
F(XYZ) = (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)
YZX
F(XYZ)
niacutevel de portas AND
niacutevel de portas ORSOP AND-ORPOS OR-AND
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 19
Transformaccedilatildeo para NANDs
bull Portas loacutegicas NANDndash mais baratas e mais raacutepidas do que as ANDndash um AND eacute um NAND seguido de um inversor
bull Medida de complexidade de um circuito digitalndash nuacutemero de portas loacutegicas equivalentes
bull eacute o nuacutemero de NANDs de duas entradasbull eacute uma medida independente da tecnologia de fabrico
bull Transformar circuito AND-OR para NANDsndash faacutecil trocar os ANDs e o OR por NANDs
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 20
AND-OR para NANDs
Y
Z
X
F(XYZ)
Y
Z
X
F(XYZ)
Leis de DeMorganUm OR com as entradasnegadas eacute um NAND
Circuito AND-OR (da expressatildeo SOP)
E os inversoresE soacute com NAND de 2 entradas
Negando as saiacutedas dos ANDs e as entradas do OR
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 21
Circuitos combinatoacuterios complexos
bull Siacutentese a partir de tabelas de verdadendash Descriccedilatildeo formal -gt circuito AND-OR ou OR-ANDndash Aplica-se apenas a circuitos ldquopequenosrdquo
bull Circuitos complexos (dezenas de entradas)ndash Impraticaacutevel usar os meacutetodos estudadosndash 32 entradas 232 = 4 294 967 296 linhas da tabela de
verdadendash Projeto hieraacuterquico
bull Construir circuitos complexos agrave custa de circuitos mais simplesbull Um exemplo construir um somador de 32 bits agrave custa de full-
addersndash Um full-adder eacute um somador de 3 nuacutemeros de 1 bit
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 22
Funccedilotildees combinatoacuterias ldquopadratildeordquo
bull Funccedilotildees padratildeondash Podem identificar-se em circuitos complexosndash Existem disponiacuteveis (p ex como circuitos integrados)
ndash Facilitam o projecto de sistemas digitaisndash Exemplos de funccedilotildees padratildeo
bull Somadoressubtratores (deteccedilatildeo de overflow com ou sem sinal)bull Comparadores (igualdade e magnitude com sinal ou sem sinal)bull Descodificadores e codificadores (binaacuterio 7-segmentos BCD hex)bull Multiplexadores (multiplexers) (ldquocomutadoresrdquo digitais)
todos com interesse no contexto da arquitetura de computadores
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23
Desenho de circuitos
bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo
bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade
A
EN_A
EN_B
B
F
G
H
Entrada ativa com 0 (negada)
Nomes dos sinais
Saiacuteda ativa em 0 (negada)
Entrada ativa com 1
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24
Barramentos
bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]
A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)
A[31]8
8
A[70]
B[70]
A
BAgtB
A
B
S
Y8
comparador
multiplexador
MAX[70]
nordm de bits
barramento (8 bits)
fio (1 bit)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25
Descodificadores
bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)
bull Exemplo descodificador 2 divide 4 (2 para 4)
EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
I1
I0
EN
Y0
Y1
Y2
Y3
sinal de habilitaccedilatildeo (enable)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26
Descodificadores
bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4
G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1
Y3 Y2 Y1 Y0
A
B
G
Y0
Y1
Y2
Y3G
Y0
Y1
Y2
Y3
A
B
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27
Descodificadores
- Descodificador binaacuterio 3 divide 8
EN I2 I1 I0
0 x x x 1 1 1 1
1 0 0 0 1 1 1 0
1 0 0 1 1 1 0 1
1 1 1 0 1 0 1 1
1 1 1 1 0 1 1 1
Y7 Y6 Y1 Y0
- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8
- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis
I0
I1
Y0
Y1
Y2
Y3I2
Y4
Y5
Y6
Y7
EN
saiacutedas ativas a 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28
Descodificadores
bull Descodificador BCD para 7 segmentos
AB
abcdefg
CD
BI
(MSB)
(LSB)
a
b
cde
f g
(blanking input)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29
Codificadores
bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N
bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2
I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0
Y1
Y0
IDLE
I0
I1
I2
I3
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30
Codificadores
bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)
I6A2
A1
A0
GS
EO
I7
I5
I4
I3
I2
I1
I0
EI
EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1
1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0
got somethingenable outputenable input
GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31
Multiplexadores
bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)
Y
I0
I1
I2
I3
S0
S1entradasde seleccedilatildeo
Y = Is s=S1S0 I0
I1
I2
I3
Y
S0S1
siacutembolo habitual
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32
Multiplexadores
ndash Como fazer um mux 4divide1 com muxs 2divide1
ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis
bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33
Ou exclusivo
bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade
(iacutempar)
ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade
AB
AoplusB
A B AoplusB0 0 00 1 1 1 0 11 1 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34
Somadoressubtratores
bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito
iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1
bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B
bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)
ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35
Comparadores
bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante
bull um AND de N entradasbull negadas as entradas a comparar com zero
ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado
Ai = BiAiBi
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36
Comparadores
bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade
Ai Bi
AEQBoutAEQBin
os bits mais significativos (ateacute i-1) satildeo iguais
os bits ateacute i satildeo iguais
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37
Comparadores
bull Comparadores de magnitude (sem sinal)
ndash pode ser usado um subtratorndash comparador iterativo de magnitude
Ai Bi
AGTBoutAGTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB
resultado (AgtB) dos bits ateacute i
ALTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AltB
ALTBout
resultado (AltB) dos bits ateacute i
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 5
ndash (A3) 0 0 = 0ndash (A4) 1 1 = 1ndash (A5) 0 1 = 1 0 = 0
operador E 2 interruptores em seacuterie
ndash (A3rsquo) 0 + 0 = 0
ndash (A4rsquo) 1 + 1 = 1ndash (A5rsquo) 0 + 1 = 1 + 0 = 1
operador OU 2 interruptores em paralelo
Axiomas da aacutelgebra de Boole
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 6
bull Os 10 axiomas definem a aacutelgebra de Boolebull Convenccedilotildees
ndash operador E representa-se por (ponto)bull pode chamar-se ao E ldquoproduto loacutegicordquo
ndash operador OU representa-se por + (mais)bull pode chamar-se ao OU ldquosoma loacutegicardquo
ndash o E tem precedecircncia em relaccedilatildeo ao OUndash podem usar-se parecircntesis em expressotildees
Axiomas da aacutelgebra de Boole
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 7
(T1) X + 0 = X (T1rsquo) X 1 = X
(T2) X + 1 = 1 (T2rsquo) X 0 = 0
(T3) X + X = X (T3rsquo) X X = X
(T4) (Xrsquo)rsquo = X
(T5) X + Xrsquo = 1 (T5rsquo) X Xrsquo = 0
Operaccedilotildees com uma variaacutevel
Teoremas da aacutelgebra de Boole
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 8
(T6) X+Y=Y+X (T6rsquo) XY=YX
(T7) (X+Y)+Z=X+(Y+Z) (T7rsquo) (XY)Z = X(YZ)
(T8) XY+XZ=X(Y+Z) (T8rsquo) (X+Y)(X+Z) = X+YZ
(T9) X+XY=X (T9rsquo) X(X+Y)=X
(T10) X+XrsquoY = X+Y (T10rsquo) X(Xrsquo+Y) = XY
(T11) XY+XYrsquo = X (T11rsquo) (X+Y)(X+Yrsquo) = X
(T12) XY+XrsquoZ+YZ = XY+XrsquoZ
(T12rsquo) (X+Y)(Xrsquo+Z)(Y+Z) = (X+Y)(Xrsquo+Z)
Operaccedilotildees com duas e trecircs variaacuteveis
Teoremas da aacutelgebra de Boole
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 9
(T13) (X Y)rsquo = Xrsquo + Yrsquo(T13rsquo) (X + Y)rsquo = Xrsquo Yrsquo
Generalizando
[F(X1 X2 X3 Xn + ) ]rsquo =
F(X1rsquo X2rsquo X3rsquo Xnrsquo +)
Teoremas da aacutelgebra de Boole
Leis de De Morgan
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 10
Simplificaccedilatildeo de expressotildees
(AB+(Arsquo+B)rsquo)+AC =AB+ABrsquo+AC = (leis de De Morgan T13rsquo)A(B+Brsquo)+AC = (teorema T8)A1+AC = (teorema T5)A+AC = (teorema T1rsquo)A (teorema T9)
Exemplo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 11
Representaccedilatildeo de funccedilotildees booleanas
bull Funccedilatildeo booleana de N variaacuteveisndash domiacutenio todas as 2N combinaccedilotildees das
variaacuteveisndash contradomiacutenio 0 1
bull Formas de representaccedilatildeondash Expressatildeo algeacutebrica
F(XYZ)=ZYrsquo+XZ+YrsquoZrsquondash Tabela de verdade todos os valores de F()ndash Circuito loacutegico
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 12
Tabela de verdade
X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1
2N linhas
Valores da funccedilatildeo
ordem naturalcrescente
(combinaccedilotildees das entradas)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 13
Tabela de verdade
X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1
Nestes casos o valor de F(XYZ)soacute depende de X e YPode-se compactar a escrita da tabela de verdade
X Y Z F(XYZ)0 0 x 10 1 x 01 0 x 11 1 0 01 1 1 1
x significa 0 ou 1
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 14
Circuito loacutegico
as portas loacutegicas realizamas operaccedilotildees elementares da aacutelgebra booleana
F(XYZ)
X
YZ
B
AAB
E A B AB0 0 00 1 01 0 01 1 1
B
AA+B
A B A+B0 0 00 1 11 0 11 1 1
OU
A AAA
0 11 0
NAtildeO
portas loacutegicas elementares circuito loacutegico
XZ
ZY
Z Y
uma rede de portas loacutegicasinterligadas entre si
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 15
Circuito loacutegico
As portas loacutegicas E e OU podem ter um nuacutemero qualquer de entradas(na realidade eacute limitado por razotildees ligadas agrave realizaccedilatildeo fiacutesica dos circuitos eletroacutenicos)
ABCD
ABCD A+B+CABC
Podem ser desenhadas portas loacutegicas com entradas negadas
A
BA B A + B
A
B
ou com a saiacuteda negada(neste caso chamam-se NAtildeO-E ou NAND e NAtildeO-OU ou NOR)
A
BA B A + B
A
B
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 16
Expressatildeo lsquosoma de produtosrsquo
bull Soma de produtos (SOP sum of products)ndash Soma dos termos produto resultantes das combinaccedilotildees das
entradas para as quais F=1ndash Ex
X Y Z F(XYZ)0 0 0 1 Xrsquo Yrsquo Zrsquo0 0 1 1 Xrsquo Yrsquo Z0 1 0 00 1 1 01 0 0 1 XYrsquo Zrsquo1 0 1 1 XYrsquo Z1 1 0 01 1 1 1 XYZ
F(XYZ)= XrsquoYrsquoZrsquo + XrsquoYrsquoZ + XYrsquoZrsquo + XYrsquoZ + XYZ
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 17
Expressatildeo lsquoproduto de somasrsquo
bull Produto de somas (POS product of sums)ndash Produto dos termos soma resultantes das combinaccedilotildees das
entradas para as quais F=0ndash Ex
X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 0 X+Yrsquo+Z0 1 1 0 X+Yrsquo+Zrsquo1 0 0 11 0 1 11 1 0 0 Xrsquo+Yrsquo+Z1 1 1 1
F(XYZ)= (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 18
Siacutentese de circuitos combinatoacuterios
bull Expressotildees booleanas natildeo simplificadasndash soma canoacutenica e produto canoacutenicondash realizadas como circuitos loacutegicos de 2 niacuteveis
F(XYZ) = (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)
YZX
F(XYZ)
niacutevel de portas AND
niacutevel de portas ORSOP AND-ORPOS OR-AND
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 19
Transformaccedilatildeo para NANDs
bull Portas loacutegicas NANDndash mais baratas e mais raacutepidas do que as ANDndash um AND eacute um NAND seguido de um inversor
bull Medida de complexidade de um circuito digitalndash nuacutemero de portas loacutegicas equivalentes
bull eacute o nuacutemero de NANDs de duas entradasbull eacute uma medida independente da tecnologia de fabrico
bull Transformar circuito AND-OR para NANDsndash faacutecil trocar os ANDs e o OR por NANDs
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 20
AND-OR para NANDs
Y
Z
X
F(XYZ)
Y
Z
X
F(XYZ)
Leis de DeMorganUm OR com as entradasnegadas eacute um NAND
Circuito AND-OR (da expressatildeo SOP)
E os inversoresE soacute com NAND de 2 entradas
Negando as saiacutedas dos ANDs e as entradas do OR
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 21
Circuitos combinatoacuterios complexos
bull Siacutentese a partir de tabelas de verdadendash Descriccedilatildeo formal -gt circuito AND-OR ou OR-ANDndash Aplica-se apenas a circuitos ldquopequenosrdquo
bull Circuitos complexos (dezenas de entradas)ndash Impraticaacutevel usar os meacutetodos estudadosndash 32 entradas 232 = 4 294 967 296 linhas da tabela de
verdadendash Projeto hieraacuterquico
bull Construir circuitos complexos agrave custa de circuitos mais simplesbull Um exemplo construir um somador de 32 bits agrave custa de full-
addersndash Um full-adder eacute um somador de 3 nuacutemeros de 1 bit
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 22
Funccedilotildees combinatoacuterias ldquopadratildeordquo
bull Funccedilotildees padratildeondash Podem identificar-se em circuitos complexosndash Existem disponiacuteveis (p ex como circuitos integrados)
ndash Facilitam o projecto de sistemas digitaisndash Exemplos de funccedilotildees padratildeo
bull Somadoressubtratores (deteccedilatildeo de overflow com ou sem sinal)bull Comparadores (igualdade e magnitude com sinal ou sem sinal)bull Descodificadores e codificadores (binaacuterio 7-segmentos BCD hex)bull Multiplexadores (multiplexers) (ldquocomutadoresrdquo digitais)
todos com interesse no contexto da arquitetura de computadores
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23
Desenho de circuitos
bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo
bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade
A
EN_A
EN_B
B
F
G
H
Entrada ativa com 0 (negada)
Nomes dos sinais
Saiacuteda ativa em 0 (negada)
Entrada ativa com 1
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24
Barramentos
bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]
A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)
A[31]8
8
A[70]
B[70]
A
BAgtB
A
B
S
Y8
comparador
multiplexador
MAX[70]
nordm de bits
barramento (8 bits)
fio (1 bit)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25
Descodificadores
bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)
bull Exemplo descodificador 2 divide 4 (2 para 4)
EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
I1
I0
EN
Y0
Y1
Y2
Y3
sinal de habilitaccedilatildeo (enable)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26
Descodificadores
bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4
G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1
Y3 Y2 Y1 Y0
A
B
G
Y0
Y1
Y2
Y3G
Y0
Y1
Y2
Y3
A
B
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27
Descodificadores
- Descodificador binaacuterio 3 divide 8
EN I2 I1 I0
0 x x x 1 1 1 1
1 0 0 0 1 1 1 0
1 0 0 1 1 1 0 1
1 1 1 0 1 0 1 1
1 1 1 1 0 1 1 1
Y7 Y6 Y1 Y0
- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8
- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis
I0
I1
Y0
Y1
Y2
Y3I2
Y4
Y5
Y6
Y7
EN
saiacutedas ativas a 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28
Descodificadores
bull Descodificador BCD para 7 segmentos
AB
abcdefg
CD
BI
(MSB)
(LSB)
a
b
cde
f g
(blanking input)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29
Codificadores
bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N
bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2
I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0
Y1
Y0
IDLE
I0
I1
I2
I3
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30
Codificadores
bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)
I6A2
A1
A0
GS
EO
I7
I5
I4
I3
I2
I1
I0
EI
EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1
1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0
got somethingenable outputenable input
GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31
Multiplexadores
bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)
Y
I0
I1
I2
I3
S0
S1entradasde seleccedilatildeo
Y = Is s=S1S0 I0
I1
I2
I3
Y
S0S1
siacutembolo habitual
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32
Multiplexadores
ndash Como fazer um mux 4divide1 com muxs 2divide1
ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis
bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33
Ou exclusivo
bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade
(iacutempar)
ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade
AB
AoplusB
A B AoplusB0 0 00 1 1 1 0 11 1 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34
Somadoressubtratores
bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito
iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1
bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B
bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)
ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35
Comparadores
bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante
bull um AND de N entradasbull negadas as entradas a comparar com zero
ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado
Ai = BiAiBi
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36
Comparadores
bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade
Ai Bi
AEQBoutAEQBin
os bits mais significativos (ateacute i-1) satildeo iguais
os bits ateacute i satildeo iguais
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37
Comparadores
bull Comparadores de magnitude (sem sinal)
ndash pode ser usado um subtratorndash comparador iterativo de magnitude
Ai Bi
AGTBoutAGTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB
resultado (AgtB) dos bits ateacute i
ALTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AltB
ALTBout
resultado (AltB) dos bits ateacute i
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 7
(T1) X + 0 = X (T1rsquo) X 1 = X
(T2) X + 1 = 1 (T2rsquo) X 0 = 0
(T3) X + X = X (T3rsquo) X X = X
(T4) (Xrsquo)rsquo = X
(T5) X + Xrsquo = 1 (T5rsquo) X Xrsquo = 0
Operaccedilotildees com uma variaacutevel
Teoremas da aacutelgebra de Boole
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 8
(T6) X+Y=Y+X (T6rsquo) XY=YX
(T7) (X+Y)+Z=X+(Y+Z) (T7rsquo) (XY)Z = X(YZ)
(T8) XY+XZ=X(Y+Z) (T8rsquo) (X+Y)(X+Z) = X+YZ
(T9) X+XY=X (T9rsquo) X(X+Y)=X
(T10) X+XrsquoY = X+Y (T10rsquo) X(Xrsquo+Y) = XY
(T11) XY+XYrsquo = X (T11rsquo) (X+Y)(X+Yrsquo) = X
(T12) XY+XrsquoZ+YZ = XY+XrsquoZ
(T12rsquo) (X+Y)(Xrsquo+Z)(Y+Z) = (X+Y)(Xrsquo+Z)
Operaccedilotildees com duas e trecircs variaacuteveis
Teoremas da aacutelgebra de Boole
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 9
(T13) (X Y)rsquo = Xrsquo + Yrsquo(T13rsquo) (X + Y)rsquo = Xrsquo Yrsquo
Generalizando
[F(X1 X2 X3 Xn + ) ]rsquo =
F(X1rsquo X2rsquo X3rsquo Xnrsquo +)
Teoremas da aacutelgebra de Boole
Leis de De Morgan
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 10
Simplificaccedilatildeo de expressotildees
(AB+(Arsquo+B)rsquo)+AC =AB+ABrsquo+AC = (leis de De Morgan T13rsquo)A(B+Brsquo)+AC = (teorema T8)A1+AC = (teorema T5)A+AC = (teorema T1rsquo)A (teorema T9)
Exemplo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 11
Representaccedilatildeo de funccedilotildees booleanas
bull Funccedilatildeo booleana de N variaacuteveisndash domiacutenio todas as 2N combinaccedilotildees das
variaacuteveisndash contradomiacutenio 0 1
bull Formas de representaccedilatildeondash Expressatildeo algeacutebrica
F(XYZ)=ZYrsquo+XZ+YrsquoZrsquondash Tabela de verdade todos os valores de F()ndash Circuito loacutegico
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 12
Tabela de verdade
X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1
2N linhas
Valores da funccedilatildeo
ordem naturalcrescente
(combinaccedilotildees das entradas)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 13
Tabela de verdade
X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1
Nestes casos o valor de F(XYZ)soacute depende de X e YPode-se compactar a escrita da tabela de verdade
X Y Z F(XYZ)0 0 x 10 1 x 01 0 x 11 1 0 01 1 1 1
x significa 0 ou 1
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 14
Circuito loacutegico
as portas loacutegicas realizamas operaccedilotildees elementares da aacutelgebra booleana
F(XYZ)
X
YZ
B
AAB
E A B AB0 0 00 1 01 0 01 1 1
B
AA+B
A B A+B0 0 00 1 11 0 11 1 1
OU
A AAA
0 11 0
NAtildeO
portas loacutegicas elementares circuito loacutegico
XZ
ZY
Z Y
uma rede de portas loacutegicasinterligadas entre si
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 15
Circuito loacutegico
As portas loacutegicas E e OU podem ter um nuacutemero qualquer de entradas(na realidade eacute limitado por razotildees ligadas agrave realizaccedilatildeo fiacutesica dos circuitos eletroacutenicos)
ABCD
ABCD A+B+CABC
Podem ser desenhadas portas loacutegicas com entradas negadas
A
BA B A + B
A
B
ou com a saiacuteda negada(neste caso chamam-se NAtildeO-E ou NAND e NAtildeO-OU ou NOR)
A
BA B A + B
A
B
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 16
Expressatildeo lsquosoma de produtosrsquo
bull Soma de produtos (SOP sum of products)ndash Soma dos termos produto resultantes das combinaccedilotildees das
entradas para as quais F=1ndash Ex
X Y Z F(XYZ)0 0 0 1 Xrsquo Yrsquo Zrsquo0 0 1 1 Xrsquo Yrsquo Z0 1 0 00 1 1 01 0 0 1 XYrsquo Zrsquo1 0 1 1 XYrsquo Z1 1 0 01 1 1 1 XYZ
F(XYZ)= XrsquoYrsquoZrsquo + XrsquoYrsquoZ + XYrsquoZrsquo + XYrsquoZ + XYZ
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 17
Expressatildeo lsquoproduto de somasrsquo
bull Produto de somas (POS product of sums)ndash Produto dos termos soma resultantes das combinaccedilotildees das
entradas para as quais F=0ndash Ex
X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 0 X+Yrsquo+Z0 1 1 0 X+Yrsquo+Zrsquo1 0 0 11 0 1 11 1 0 0 Xrsquo+Yrsquo+Z1 1 1 1
F(XYZ)= (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 18
Siacutentese de circuitos combinatoacuterios
bull Expressotildees booleanas natildeo simplificadasndash soma canoacutenica e produto canoacutenicondash realizadas como circuitos loacutegicos de 2 niacuteveis
F(XYZ) = (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)
YZX
F(XYZ)
niacutevel de portas AND
niacutevel de portas ORSOP AND-ORPOS OR-AND
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 19
Transformaccedilatildeo para NANDs
bull Portas loacutegicas NANDndash mais baratas e mais raacutepidas do que as ANDndash um AND eacute um NAND seguido de um inversor
bull Medida de complexidade de um circuito digitalndash nuacutemero de portas loacutegicas equivalentes
bull eacute o nuacutemero de NANDs de duas entradasbull eacute uma medida independente da tecnologia de fabrico
bull Transformar circuito AND-OR para NANDsndash faacutecil trocar os ANDs e o OR por NANDs
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 20
AND-OR para NANDs
Y
Z
X
F(XYZ)
Y
Z
X
F(XYZ)
Leis de DeMorganUm OR com as entradasnegadas eacute um NAND
Circuito AND-OR (da expressatildeo SOP)
E os inversoresE soacute com NAND de 2 entradas
Negando as saiacutedas dos ANDs e as entradas do OR
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 21
Circuitos combinatoacuterios complexos
bull Siacutentese a partir de tabelas de verdadendash Descriccedilatildeo formal -gt circuito AND-OR ou OR-ANDndash Aplica-se apenas a circuitos ldquopequenosrdquo
bull Circuitos complexos (dezenas de entradas)ndash Impraticaacutevel usar os meacutetodos estudadosndash 32 entradas 232 = 4 294 967 296 linhas da tabela de
verdadendash Projeto hieraacuterquico
bull Construir circuitos complexos agrave custa de circuitos mais simplesbull Um exemplo construir um somador de 32 bits agrave custa de full-
addersndash Um full-adder eacute um somador de 3 nuacutemeros de 1 bit
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 22
Funccedilotildees combinatoacuterias ldquopadratildeordquo
bull Funccedilotildees padratildeondash Podem identificar-se em circuitos complexosndash Existem disponiacuteveis (p ex como circuitos integrados)
ndash Facilitam o projecto de sistemas digitaisndash Exemplos de funccedilotildees padratildeo
bull Somadoressubtratores (deteccedilatildeo de overflow com ou sem sinal)bull Comparadores (igualdade e magnitude com sinal ou sem sinal)bull Descodificadores e codificadores (binaacuterio 7-segmentos BCD hex)bull Multiplexadores (multiplexers) (ldquocomutadoresrdquo digitais)
todos com interesse no contexto da arquitetura de computadores
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23
Desenho de circuitos
bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo
bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade
A
EN_A
EN_B
B
F
G
H
Entrada ativa com 0 (negada)
Nomes dos sinais
Saiacuteda ativa em 0 (negada)
Entrada ativa com 1
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24
Barramentos
bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]
A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)
A[31]8
8
A[70]
B[70]
A
BAgtB
A
B
S
Y8
comparador
multiplexador
MAX[70]
nordm de bits
barramento (8 bits)
fio (1 bit)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25
Descodificadores
bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)
bull Exemplo descodificador 2 divide 4 (2 para 4)
EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
I1
I0
EN
Y0
Y1
Y2
Y3
sinal de habilitaccedilatildeo (enable)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26
Descodificadores
bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4
G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1
Y3 Y2 Y1 Y0
A
B
G
Y0
Y1
Y2
Y3G
Y0
Y1
Y2
Y3
A
B
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27
Descodificadores
- Descodificador binaacuterio 3 divide 8
EN I2 I1 I0
0 x x x 1 1 1 1
1 0 0 0 1 1 1 0
1 0 0 1 1 1 0 1
1 1 1 0 1 0 1 1
1 1 1 1 0 1 1 1
Y7 Y6 Y1 Y0
- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8
- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis
I0
I1
Y0
Y1
Y2
Y3I2
Y4
Y5
Y6
Y7
EN
saiacutedas ativas a 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28
Descodificadores
bull Descodificador BCD para 7 segmentos
AB
abcdefg
CD
BI
(MSB)
(LSB)
a
b
cde
f g
(blanking input)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29
Codificadores
bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N
bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2
I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0
Y1
Y0
IDLE
I0
I1
I2
I3
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30
Codificadores
bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)
I6A2
A1
A0
GS
EO
I7
I5
I4
I3
I2
I1
I0
EI
EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1
1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0
got somethingenable outputenable input
GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31
Multiplexadores
bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)
Y
I0
I1
I2
I3
S0
S1entradasde seleccedilatildeo
Y = Is s=S1S0 I0
I1
I2
I3
Y
S0S1
siacutembolo habitual
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32
Multiplexadores
ndash Como fazer um mux 4divide1 com muxs 2divide1
ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis
bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33
Ou exclusivo
bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade
(iacutempar)
ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade
AB
AoplusB
A B AoplusB0 0 00 1 1 1 0 11 1 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34
Somadoressubtratores
bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito
iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1
bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B
bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)
ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35
Comparadores
bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante
bull um AND de N entradasbull negadas as entradas a comparar com zero
ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado
Ai = BiAiBi
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36
Comparadores
bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade
Ai Bi
AEQBoutAEQBin
os bits mais significativos (ateacute i-1) satildeo iguais
os bits ateacute i satildeo iguais
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37
Comparadores
bull Comparadores de magnitude (sem sinal)
ndash pode ser usado um subtratorndash comparador iterativo de magnitude
Ai Bi
AGTBoutAGTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB
resultado (AgtB) dos bits ateacute i
ALTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AltB
ALTBout
resultado (AltB) dos bits ateacute i
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 9
(T13) (X Y)rsquo = Xrsquo + Yrsquo(T13rsquo) (X + Y)rsquo = Xrsquo Yrsquo
Generalizando
[F(X1 X2 X3 Xn + ) ]rsquo =
F(X1rsquo X2rsquo X3rsquo Xnrsquo +)
Teoremas da aacutelgebra de Boole
Leis de De Morgan
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 10
Simplificaccedilatildeo de expressotildees
(AB+(Arsquo+B)rsquo)+AC =AB+ABrsquo+AC = (leis de De Morgan T13rsquo)A(B+Brsquo)+AC = (teorema T8)A1+AC = (teorema T5)A+AC = (teorema T1rsquo)A (teorema T9)
Exemplo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 11
Representaccedilatildeo de funccedilotildees booleanas
bull Funccedilatildeo booleana de N variaacuteveisndash domiacutenio todas as 2N combinaccedilotildees das
variaacuteveisndash contradomiacutenio 0 1
bull Formas de representaccedilatildeondash Expressatildeo algeacutebrica
F(XYZ)=ZYrsquo+XZ+YrsquoZrsquondash Tabela de verdade todos os valores de F()ndash Circuito loacutegico
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 12
Tabela de verdade
X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1
2N linhas
Valores da funccedilatildeo
ordem naturalcrescente
(combinaccedilotildees das entradas)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 13
Tabela de verdade
X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1
Nestes casos o valor de F(XYZ)soacute depende de X e YPode-se compactar a escrita da tabela de verdade
X Y Z F(XYZ)0 0 x 10 1 x 01 0 x 11 1 0 01 1 1 1
x significa 0 ou 1
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 14
Circuito loacutegico
as portas loacutegicas realizamas operaccedilotildees elementares da aacutelgebra booleana
F(XYZ)
X
YZ
B
AAB
E A B AB0 0 00 1 01 0 01 1 1
B
AA+B
A B A+B0 0 00 1 11 0 11 1 1
OU
A AAA
0 11 0
NAtildeO
portas loacutegicas elementares circuito loacutegico
XZ
ZY
Z Y
uma rede de portas loacutegicasinterligadas entre si
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 15
Circuito loacutegico
As portas loacutegicas E e OU podem ter um nuacutemero qualquer de entradas(na realidade eacute limitado por razotildees ligadas agrave realizaccedilatildeo fiacutesica dos circuitos eletroacutenicos)
ABCD
ABCD A+B+CABC
Podem ser desenhadas portas loacutegicas com entradas negadas
A
BA B A + B
A
B
ou com a saiacuteda negada(neste caso chamam-se NAtildeO-E ou NAND e NAtildeO-OU ou NOR)
A
BA B A + B
A
B
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 16
Expressatildeo lsquosoma de produtosrsquo
bull Soma de produtos (SOP sum of products)ndash Soma dos termos produto resultantes das combinaccedilotildees das
entradas para as quais F=1ndash Ex
X Y Z F(XYZ)0 0 0 1 Xrsquo Yrsquo Zrsquo0 0 1 1 Xrsquo Yrsquo Z0 1 0 00 1 1 01 0 0 1 XYrsquo Zrsquo1 0 1 1 XYrsquo Z1 1 0 01 1 1 1 XYZ
F(XYZ)= XrsquoYrsquoZrsquo + XrsquoYrsquoZ + XYrsquoZrsquo + XYrsquoZ + XYZ
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 17
Expressatildeo lsquoproduto de somasrsquo
bull Produto de somas (POS product of sums)ndash Produto dos termos soma resultantes das combinaccedilotildees das
entradas para as quais F=0ndash Ex
X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 0 X+Yrsquo+Z0 1 1 0 X+Yrsquo+Zrsquo1 0 0 11 0 1 11 1 0 0 Xrsquo+Yrsquo+Z1 1 1 1
F(XYZ)= (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 18
Siacutentese de circuitos combinatoacuterios
bull Expressotildees booleanas natildeo simplificadasndash soma canoacutenica e produto canoacutenicondash realizadas como circuitos loacutegicos de 2 niacuteveis
F(XYZ) = (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)
YZX
F(XYZ)
niacutevel de portas AND
niacutevel de portas ORSOP AND-ORPOS OR-AND
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 19
Transformaccedilatildeo para NANDs
bull Portas loacutegicas NANDndash mais baratas e mais raacutepidas do que as ANDndash um AND eacute um NAND seguido de um inversor
bull Medida de complexidade de um circuito digitalndash nuacutemero de portas loacutegicas equivalentes
bull eacute o nuacutemero de NANDs de duas entradasbull eacute uma medida independente da tecnologia de fabrico
bull Transformar circuito AND-OR para NANDsndash faacutecil trocar os ANDs e o OR por NANDs
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 20
AND-OR para NANDs
Y
Z
X
F(XYZ)
Y
Z
X
F(XYZ)
Leis de DeMorganUm OR com as entradasnegadas eacute um NAND
Circuito AND-OR (da expressatildeo SOP)
E os inversoresE soacute com NAND de 2 entradas
Negando as saiacutedas dos ANDs e as entradas do OR
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 21
Circuitos combinatoacuterios complexos
bull Siacutentese a partir de tabelas de verdadendash Descriccedilatildeo formal -gt circuito AND-OR ou OR-ANDndash Aplica-se apenas a circuitos ldquopequenosrdquo
bull Circuitos complexos (dezenas de entradas)ndash Impraticaacutevel usar os meacutetodos estudadosndash 32 entradas 232 = 4 294 967 296 linhas da tabela de
verdadendash Projeto hieraacuterquico
bull Construir circuitos complexos agrave custa de circuitos mais simplesbull Um exemplo construir um somador de 32 bits agrave custa de full-
addersndash Um full-adder eacute um somador de 3 nuacutemeros de 1 bit
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 22
Funccedilotildees combinatoacuterias ldquopadratildeordquo
bull Funccedilotildees padratildeondash Podem identificar-se em circuitos complexosndash Existem disponiacuteveis (p ex como circuitos integrados)
ndash Facilitam o projecto de sistemas digitaisndash Exemplos de funccedilotildees padratildeo
bull Somadoressubtratores (deteccedilatildeo de overflow com ou sem sinal)bull Comparadores (igualdade e magnitude com sinal ou sem sinal)bull Descodificadores e codificadores (binaacuterio 7-segmentos BCD hex)bull Multiplexadores (multiplexers) (ldquocomutadoresrdquo digitais)
todos com interesse no contexto da arquitetura de computadores
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23
Desenho de circuitos
bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo
bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade
A
EN_A
EN_B
B
F
G
H
Entrada ativa com 0 (negada)
Nomes dos sinais
Saiacuteda ativa em 0 (negada)
Entrada ativa com 1
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24
Barramentos
bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]
A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)
A[31]8
8
A[70]
B[70]
A
BAgtB
A
B
S
Y8
comparador
multiplexador
MAX[70]
nordm de bits
barramento (8 bits)
fio (1 bit)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25
Descodificadores
bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)
bull Exemplo descodificador 2 divide 4 (2 para 4)
EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
I1
I0
EN
Y0
Y1
Y2
Y3
sinal de habilitaccedilatildeo (enable)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26
Descodificadores
bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4
G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1
Y3 Y2 Y1 Y0
A
B
G
Y0
Y1
Y2
Y3G
Y0
Y1
Y2
Y3
A
B
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27
Descodificadores
- Descodificador binaacuterio 3 divide 8
EN I2 I1 I0
0 x x x 1 1 1 1
1 0 0 0 1 1 1 0
1 0 0 1 1 1 0 1
1 1 1 0 1 0 1 1
1 1 1 1 0 1 1 1
Y7 Y6 Y1 Y0
- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8
- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis
I0
I1
Y0
Y1
Y2
Y3I2
Y4
Y5
Y6
Y7
EN
saiacutedas ativas a 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28
Descodificadores
bull Descodificador BCD para 7 segmentos
AB
abcdefg
CD
BI
(MSB)
(LSB)
a
b
cde
f g
(blanking input)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29
Codificadores
bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N
bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2
I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0
Y1
Y0
IDLE
I0
I1
I2
I3
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30
Codificadores
bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)
I6A2
A1
A0
GS
EO
I7
I5
I4
I3
I2
I1
I0
EI
EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1
1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0
got somethingenable outputenable input
GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31
Multiplexadores
bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)
Y
I0
I1
I2
I3
S0
S1entradasde seleccedilatildeo
Y = Is s=S1S0 I0
I1
I2
I3
Y
S0S1
siacutembolo habitual
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32
Multiplexadores
ndash Como fazer um mux 4divide1 com muxs 2divide1
ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis
bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33
Ou exclusivo
bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade
(iacutempar)
ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade
AB
AoplusB
A B AoplusB0 0 00 1 1 1 0 11 1 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34
Somadoressubtratores
bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito
iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1
bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B
bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)
ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35
Comparadores
bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante
bull um AND de N entradasbull negadas as entradas a comparar com zero
ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado
Ai = BiAiBi
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36
Comparadores
bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade
Ai Bi
AEQBoutAEQBin
os bits mais significativos (ateacute i-1) satildeo iguais
os bits ateacute i satildeo iguais
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37
Comparadores
bull Comparadores de magnitude (sem sinal)
ndash pode ser usado um subtratorndash comparador iterativo de magnitude
Ai Bi
AGTBoutAGTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB
resultado (AgtB) dos bits ateacute i
ALTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AltB
ALTBout
resultado (AltB) dos bits ateacute i
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 11
Representaccedilatildeo de funccedilotildees booleanas
bull Funccedilatildeo booleana de N variaacuteveisndash domiacutenio todas as 2N combinaccedilotildees das
variaacuteveisndash contradomiacutenio 0 1
bull Formas de representaccedilatildeondash Expressatildeo algeacutebrica
F(XYZ)=ZYrsquo+XZ+YrsquoZrsquondash Tabela de verdade todos os valores de F()ndash Circuito loacutegico
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 12
Tabela de verdade
X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1
2N linhas
Valores da funccedilatildeo
ordem naturalcrescente
(combinaccedilotildees das entradas)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 13
Tabela de verdade
X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1
Nestes casos o valor de F(XYZ)soacute depende de X e YPode-se compactar a escrita da tabela de verdade
X Y Z F(XYZ)0 0 x 10 1 x 01 0 x 11 1 0 01 1 1 1
x significa 0 ou 1
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 14
Circuito loacutegico
as portas loacutegicas realizamas operaccedilotildees elementares da aacutelgebra booleana
F(XYZ)
X
YZ
B
AAB
E A B AB0 0 00 1 01 0 01 1 1
B
AA+B
A B A+B0 0 00 1 11 0 11 1 1
OU
A AAA
0 11 0
NAtildeO
portas loacutegicas elementares circuito loacutegico
XZ
ZY
Z Y
uma rede de portas loacutegicasinterligadas entre si
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 15
Circuito loacutegico
As portas loacutegicas E e OU podem ter um nuacutemero qualquer de entradas(na realidade eacute limitado por razotildees ligadas agrave realizaccedilatildeo fiacutesica dos circuitos eletroacutenicos)
ABCD
ABCD A+B+CABC
Podem ser desenhadas portas loacutegicas com entradas negadas
A
BA B A + B
A
B
ou com a saiacuteda negada(neste caso chamam-se NAtildeO-E ou NAND e NAtildeO-OU ou NOR)
A
BA B A + B
A
B
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 16
Expressatildeo lsquosoma de produtosrsquo
bull Soma de produtos (SOP sum of products)ndash Soma dos termos produto resultantes das combinaccedilotildees das
entradas para as quais F=1ndash Ex
X Y Z F(XYZ)0 0 0 1 Xrsquo Yrsquo Zrsquo0 0 1 1 Xrsquo Yrsquo Z0 1 0 00 1 1 01 0 0 1 XYrsquo Zrsquo1 0 1 1 XYrsquo Z1 1 0 01 1 1 1 XYZ
F(XYZ)= XrsquoYrsquoZrsquo + XrsquoYrsquoZ + XYrsquoZrsquo + XYrsquoZ + XYZ
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 17
Expressatildeo lsquoproduto de somasrsquo
bull Produto de somas (POS product of sums)ndash Produto dos termos soma resultantes das combinaccedilotildees das
entradas para as quais F=0ndash Ex
X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 0 X+Yrsquo+Z0 1 1 0 X+Yrsquo+Zrsquo1 0 0 11 0 1 11 1 0 0 Xrsquo+Yrsquo+Z1 1 1 1
F(XYZ)= (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 18
Siacutentese de circuitos combinatoacuterios
bull Expressotildees booleanas natildeo simplificadasndash soma canoacutenica e produto canoacutenicondash realizadas como circuitos loacutegicos de 2 niacuteveis
F(XYZ) = (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)
YZX
F(XYZ)
niacutevel de portas AND
niacutevel de portas ORSOP AND-ORPOS OR-AND
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 19
Transformaccedilatildeo para NANDs
bull Portas loacutegicas NANDndash mais baratas e mais raacutepidas do que as ANDndash um AND eacute um NAND seguido de um inversor
bull Medida de complexidade de um circuito digitalndash nuacutemero de portas loacutegicas equivalentes
bull eacute o nuacutemero de NANDs de duas entradasbull eacute uma medida independente da tecnologia de fabrico
bull Transformar circuito AND-OR para NANDsndash faacutecil trocar os ANDs e o OR por NANDs
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 20
AND-OR para NANDs
Y
Z
X
F(XYZ)
Y
Z
X
F(XYZ)
Leis de DeMorganUm OR com as entradasnegadas eacute um NAND
Circuito AND-OR (da expressatildeo SOP)
E os inversoresE soacute com NAND de 2 entradas
Negando as saiacutedas dos ANDs e as entradas do OR
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 21
Circuitos combinatoacuterios complexos
bull Siacutentese a partir de tabelas de verdadendash Descriccedilatildeo formal -gt circuito AND-OR ou OR-ANDndash Aplica-se apenas a circuitos ldquopequenosrdquo
bull Circuitos complexos (dezenas de entradas)ndash Impraticaacutevel usar os meacutetodos estudadosndash 32 entradas 232 = 4 294 967 296 linhas da tabela de
verdadendash Projeto hieraacuterquico
bull Construir circuitos complexos agrave custa de circuitos mais simplesbull Um exemplo construir um somador de 32 bits agrave custa de full-
addersndash Um full-adder eacute um somador de 3 nuacutemeros de 1 bit
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 22
Funccedilotildees combinatoacuterias ldquopadratildeordquo
bull Funccedilotildees padratildeondash Podem identificar-se em circuitos complexosndash Existem disponiacuteveis (p ex como circuitos integrados)
ndash Facilitam o projecto de sistemas digitaisndash Exemplos de funccedilotildees padratildeo
bull Somadoressubtratores (deteccedilatildeo de overflow com ou sem sinal)bull Comparadores (igualdade e magnitude com sinal ou sem sinal)bull Descodificadores e codificadores (binaacuterio 7-segmentos BCD hex)bull Multiplexadores (multiplexers) (ldquocomutadoresrdquo digitais)
todos com interesse no contexto da arquitetura de computadores
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23
Desenho de circuitos
bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo
bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade
A
EN_A
EN_B
B
F
G
H
Entrada ativa com 0 (negada)
Nomes dos sinais
Saiacuteda ativa em 0 (negada)
Entrada ativa com 1
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24
Barramentos
bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]
A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)
A[31]8
8
A[70]
B[70]
A
BAgtB
A
B
S
Y8
comparador
multiplexador
MAX[70]
nordm de bits
barramento (8 bits)
fio (1 bit)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25
Descodificadores
bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)
bull Exemplo descodificador 2 divide 4 (2 para 4)
EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
I1
I0
EN
Y0
Y1
Y2
Y3
sinal de habilitaccedilatildeo (enable)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26
Descodificadores
bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4
G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1
Y3 Y2 Y1 Y0
A
B
G
Y0
Y1
Y2
Y3G
Y0
Y1
Y2
Y3
A
B
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27
Descodificadores
- Descodificador binaacuterio 3 divide 8
EN I2 I1 I0
0 x x x 1 1 1 1
1 0 0 0 1 1 1 0
1 0 0 1 1 1 0 1
1 1 1 0 1 0 1 1
1 1 1 1 0 1 1 1
Y7 Y6 Y1 Y0
- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8
- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis
I0
I1
Y0
Y1
Y2
Y3I2
Y4
Y5
Y6
Y7
EN
saiacutedas ativas a 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28
Descodificadores
bull Descodificador BCD para 7 segmentos
AB
abcdefg
CD
BI
(MSB)
(LSB)
a
b
cde
f g
(blanking input)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29
Codificadores
bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N
bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2
I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0
Y1
Y0
IDLE
I0
I1
I2
I3
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30
Codificadores
bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)
I6A2
A1
A0
GS
EO
I7
I5
I4
I3
I2
I1
I0
EI
EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1
1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0
got somethingenable outputenable input
GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31
Multiplexadores
bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)
Y
I0
I1
I2
I3
S0
S1entradasde seleccedilatildeo
Y = Is s=S1S0 I0
I1
I2
I3
Y
S0S1
siacutembolo habitual
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32
Multiplexadores
ndash Como fazer um mux 4divide1 com muxs 2divide1
ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis
bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33
Ou exclusivo
bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade
(iacutempar)
ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade
AB
AoplusB
A B AoplusB0 0 00 1 1 1 0 11 1 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34
Somadoressubtratores
bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito
iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1
bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B
bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)
ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35
Comparadores
bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante
bull um AND de N entradasbull negadas as entradas a comparar com zero
ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado
Ai = BiAiBi
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36
Comparadores
bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade
Ai Bi
AEQBoutAEQBin
os bits mais significativos (ateacute i-1) satildeo iguais
os bits ateacute i satildeo iguais
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37
Comparadores
bull Comparadores de magnitude (sem sinal)
ndash pode ser usado um subtratorndash comparador iterativo de magnitude
Ai Bi
AGTBoutAGTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB
resultado (AgtB) dos bits ateacute i
ALTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AltB
ALTBout
resultado (AltB) dos bits ateacute i
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 13
Tabela de verdade
X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1
Nestes casos o valor de F(XYZ)soacute depende de X e YPode-se compactar a escrita da tabela de verdade
X Y Z F(XYZ)0 0 x 10 1 x 01 0 x 11 1 0 01 1 1 1
x significa 0 ou 1
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 14
Circuito loacutegico
as portas loacutegicas realizamas operaccedilotildees elementares da aacutelgebra booleana
F(XYZ)
X
YZ
B
AAB
E A B AB0 0 00 1 01 0 01 1 1
B
AA+B
A B A+B0 0 00 1 11 0 11 1 1
OU
A AAA
0 11 0
NAtildeO
portas loacutegicas elementares circuito loacutegico
XZ
ZY
Z Y
uma rede de portas loacutegicasinterligadas entre si
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 15
Circuito loacutegico
As portas loacutegicas E e OU podem ter um nuacutemero qualquer de entradas(na realidade eacute limitado por razotildees ligadas agrave realizaccedilatildeo fiacutesica dos circuitos eletroacutenicos)
ABCD
ABCD A+B+CABC
Podem ser desenhadas portas loacutegicas com entradas negadas
A
BA B A + B
A
B
ou com a saiacuteda negada(neste caso chamam-se NAtildeO-E ou NAND e NAtildeO-OU ou NOR)
A
BA B A + B
A
B
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 16
Expressatildeo lsquosoma de produtosrsquo
bull Soma de produtos (SOP sum of products)ndash Soma dos termos produto resultantes das combinaccedilotildees das
entradas para as quais F=1ndash Ex
X Y Z F(XYZ)0 0 0 1 Xrsquo Yrsquo Zrsquo0 0 1 1 Xrsquo Yrsquo Z0 1 0 00 1 1 01 0 0 1 XYrsquo Zrsquo1 0 1 1 XYrsquo Z1 1 0 01 1 1 1 XYZ
F(XYZ)= XrsquoYrsquoZrsquo + XrsquoYrsquoZ + XYrsquoZrsquo + XYrsquoZ + XYZ
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 17
Expressatildeo lsquoproduto de somasrsquo
bull Produto de somas (POS product of sums)ndash Produto dos termos soma resultantes das combinaccedilotildees das
entradas para as quais F=0ndash Ex
X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 0 X+Yrsquo+Z0 1 1 0 X+Yrsquo+Zrsquo1 0 0 11 0 1 11 1 0 0 Xrsquo+Yrsquo+Z1 1 1 1
F(XYZ)= (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 18
Siacutentese de circuitos combinatoacuterios
bull Expressotildees booleanas natildeo simplificadasndash soma canoacutenica e produto canoacutenicondash realizadas como circuitos loacutegicos de 2 niacuteveis
F(XYZ) = (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)
YZX
F(XYZ)
niacutevel de portas AND
niacutevel de portas ORSOP AND-ORPOS OR-AND
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 19
Transformaccedilatildeo para NANDs
bull Portas loacutegicas NANDndash mais baratas e mais raacutepidas do que as ANDndash um AND eacute um NAND seguido de um inversor
bull Medida de complexidade de um circuito digitalndash nuacutemero de portas loacutegicas equivalentes
bull eacute o nuacutemero de NANDs de duas entradasbull eacute uma medida independente da tecnologia de fabrico
bull Transformar circuito AND-OR para NANDsndash faacutecil trocar os ANDs e o OR por NANDs
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 20
AND-OR para NANDs
Y
Z
X
F(XYZ)
Y
Z
X
F(XYZ)
Leis de DeMorganUm OR com as entradasnegadas eacute um NAND
Circuito AND-OR (da expressatildeo SOP)
E os inversoresE soacute com NAND de 2 entradas
Negando as saiacutedas dos ANDs e as entradas do OR
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 21
Circuitos combinatoacuterios complexos
bull Siacutentese a partir de tabelas de verdadendash Descriccedilatildeo formal -gt circuito AND-OR ou OR-ANDndash Aplica-se apenas a circuitos ldquopequenosrdquo
bull Circuitos complexos (dezenas de entradas)ndash Impraticaacutevel usar os meacutetodos estudadosndash 32 entradas 232 = 4 294 967 296 linhas da tabela de
verdadendash Projeto hieraacuterquico
bull Construir circuitos complexos agrave custa de circuitos mais simplesbull Um exemplo construir um somador de 32 bits agrave custa de full-
addersndash Um full-adder eacute um somador de 3 nuacutemeros de 1 bit
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 22
Funccedilotildees combinatoacuterias ldquopadratildeordquo
bull Funccedilotildees padratildeondash Podem identificar-se em circuitos complexosndash Existem disponiacuteveis (p ex como circuitos integrados)
ndash Facilitam o projecto de sistemas digitaisndash Exemplos de funccedilotildees padratildeo
bull Somadoressubtratores (deteccedilatildeo de overflow com ou sem sinal)bull Comparadores (igualdade e magnitude com sinal ou sem sinal)bull Descodificadores e codificadores (binaacuterio 7-segmentos BCD hex)bull Multiplexadores (multiplexers) (ldquocomutadoresrdquo digitais)
todos com interesse no contexto da arquitetura de computadores
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23
Desenho de circuitos
bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo
bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade
A
EN_A
EN_B
B
F
G
H
Entrada ativa com 0 (negada)
Nomes dos sinais
Saiacuteda ativa em 0 (negada)
Entrada ativa com 1
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24
Barramentos
bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]
A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)
A[31]8
8
A[70]
B[70]
A
BAgtB
A
B
S
Y8
comparador
multiplexador
MAX[70]
nordm de bits
barramento (8 bits)
fio (1 bit)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25
Descodificadores
bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)
bull Exemplo descodificador 2 divide 4 (2 para 4)
EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
I1
I0
EN
Y0
Y1
Y2
Y3
sinal de habilitaccedilatildeo (enable)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26
Descodificadores
bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4
G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1
Y3 Y2 Y1 Y0
A
B
G
Y0
Y1
Y2
Y3G
Y0
Y1
Y2
Y3
A
B
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27
Descodificadores
- Descodificador binaacuterio 3 divide 8
EN I2 I1 I0
0 x x x 1 1 1 1
1 0 0 0 1 1 1 0
1 0 0 1 1 1 0 1
1 1 1 0 1 0 1 1
1 1 1 1 0 1 1 1
Y7 Y6 Y1 Y0
- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8
- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis
I0
I1
Y0
Y1
Y2
Y3I2
Y4
Y5
Y6
Y7
EN
saiacutedas ativas a 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28
Descodificadores
bull Descodificador BCD para 7 segmentos
AB
abcdefg
CD
BI
(MSB)
(LSB)
a
b
cde
f g
(blanking input)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29
Codificadores
bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N
bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2
I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0
Y1
Y0
IDLE
I0
I1
I2
I3
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30
Codificadores
bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)
I6A2
A1
A0
GS
EO
I7
I5
I4
I3
I2
I1
I0
EI
EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1
1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0
got somethingenable outputenable input
GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31
Multiplexadores
bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)
Y
I0
I1
I2
I3
S0
S1entradasde seleccedilatildeo
Y = Is s=S1S0 I0
I1
I2
I3
Y
S0S1
siacutembolo habitual
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32
Multiplexadores
ndash Como fazer um mux 4divide1 com muxs 2divide1
ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis
bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33
Ou exclusivo
bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade
(iacutempar)
ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade
AB
AoplusB
A B AoplusB0 0 00 1 1 1 0 11 1 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34
Somadoressubtratores
bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito
iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1
bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B
bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)
ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35
Comparadores
bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante
bull um AND de N entradasbull negadas as entradas a comparar com zero
ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado
Ai = BiAiBi
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36
Comparadores
bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade
Ai Bi
AEQBoutAEQBin
os bits mais significativos (ateacute i-1) satildeo iguais
os bits ateacute i satildeo iguais
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37
Comparadores
bull Comparadores de magnitude (sem sinal)
ndash pode ser usado um subtratorndash comparador iterativo de magnitude
Ai Bi
AGTBoutAGTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB
resultado (AgtB) dos bits ateacute i
ALTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AltB
ALTBout
resultado (AltB) dos bits ateacute i
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 15
Circuito loacutegico
As portas loacutegicas E e OU podem ter um nuacutemero qualquer de entradas(na realidade eacute limitado por razotildees ligadas agrave realizaccedilatildeo fiacutesica dos circuitos eletroacutenicos)
ABCD
ABCD A+B+CABC
Podem ser desenhadas portas loacutegicas com entradas negadas
A
BA B A + B
A
B
ou com a saiacuteda negada(neste caso chamam-se NAtildeO-E ou NAND e NAtildeO-OU ou NOR)
A
BA B A + B
A
B
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 16
Expressatildeo lsquosoma de produtosrsquo
bull Soma de produtos (SOP sum of products)ndash Soma dos termos produto resultantes das combinaccedilotildees das
entradas para as quais F=1ndash Ex
X Y Z F(XYZ)0 0 0 1 Xrsquo Yrsquo Zrsquo0 0 1 1 Xrsquo Yrsquo Z0 1 0 00 1 1 01 0 0 1 XYrsquo Zrsquo1 0 1 1 XYrsquo Z1 1 0 01 1 1 1 XYZ
F(XYZ)= XrsquoYrsquoZrsquo + XrsquoYrsquoZ + XYrsquoZrsquo + XYrsquoZ + XYZ
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 17
Expressatildeo lsquoproduto de somasrsquo
bull Produto de somas (POS product of sums)ndash Produto dos termos soma resultantes das combinaccedilotildees das
entradas para as quais F=0ndash Ex
X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 0 X+Yrsquo+Z0 1 1 0 X+Yrsquo+Zrsquo1 0 0 11 0 1 11 1 0 0 Xrsquo+Yrsquo+Z1 1 1 1
F(XYZ)= (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 18
Siacutentese de circuitos combinatoacuterios
bull Expressotildees booleanas natildeo simplificadasndash soma canoacutenica e produto canoacutenicondash realizadas como circuitos loacutegicos de 2 niacuteveis
F(XYZ) = (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)
YZX
F(XYZ)
niacutevel de portas AND
niacutevel de portas ORSOP AND-ORPOS OR-AND
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 19
Transformaccedilatildeo para NANDs
bull Portas loacutegicas NANDndash mais baratas e mais raacutepidas do que as ANDndash um AND eacute um NAND seguido de um inversor
bull Medida de complexidade de um circuito digitalndash nuacutemero de portas loacutegicas equivalentes
bull eacute o nuacutemero de NANDs de duas entradasbull eacute uma medida independente da tecnologia de fabrico
bull Transformar circuito AND-OR para NANDsndash faacutecil trocar os ANDs e o OR por NANDs
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 20
AND-OR para NANDs
Y
Z
X
F(XYZ)
Y
Z
X
F(XYZ)
Leis de DeMorganUm OR com as entradasnegadas eacute um NAND
Circuito AND-OR (da expressatildeo SOP)
E os inversoresE soacute com NAND de 2 entradas
Negando as saiacutedas dos ANDs e as entradas do OR
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 21
Circuitos combinatoacuterios complexos
bull Siacutentese a partir de tabelas de verdadendash Descriccedilatildeo formal -gt circuito AND-OR ou OR-ANDndash Aplica-se apenas a circuitos ldquopequenosrdquo
bull Circuitos complexos (dezenas de entradas)ndash Impraticaacutevel usar os meacutetodos estudadosndash 32 entradas 232 = 4 294 967 296 linhas da tabela de
verdadendash Projeto hieraacuterquico
bull Construir circuitos complexos agrave custa de circuitos mais simplesbull Um exemplo construir um somador de 32 bits agrave custa de full-
addersndash Um full-adder eacute um somador de 3 nuacutemeros de 1 bit
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 22
Funccedilotildees combinatoacuterias ldquopadratildeordquo
bull Funccedilotildees padratildeondash Podem identificar-se em circuitos complexosndash Existem disponiacuteveis (p ex como circuitos integrados)
ndash Facilitam o projecto de sistemas digitaisndash Exemplos de funccedilotildees padratildeo
bull Somadoressubtratores (deteccedilatildeo de overflow com ou sem sinal)bull Comparadores (igualdade e magnitude com sinal ou sem sinal)bull Descodificadores e codificadores (binaacuterio 7-segmentos BCD hex)bull Multiplexadores (multiplexers) (ldquocomutadoresrdquo digitais)
todos com interesse no contexto da arquitetura de computadores
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23
Desenho de circuitos
bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo
bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade
A
EN_A
EN_B
B
F
G
H
Entrada ativa com 0 (negada)
Nomes dos sinais
Saiacuteda ativa em 0 (negada)
Entrada ativa com 1
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24
Barramentos
bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]
A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)
A[31]8
8
A[70]
B[70]
A
BAgtB
A
B
S
Y8
comparador
multiplexador
MAX[70]
nordm de bits
barramento (8 bits)
fio (1 bit)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25
Descodificadores
bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)
bull Exemplo descodificador 2 divide 4 (2 para 4)
EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
I1
I0
EN
Y0
Y1
Y2
Y3
sinal de habilitaccedilatildeo (enable)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26
Descodificadores
bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4
G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1
Y3 Y2 Y1 Y0
A
B
G
Y0
Y1
Y2
Y3G
Y0
Y1
Y2
Y3
A
B
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27
Descodificadores
- Descodificador binaacuterio 3 divide 8
EN I2 I1 I0
0 x x x 1 1 1 1
1 0 0 0 1 1 1 0
1 0 0 1 1 1 0 1
1 1 1 0 1 0 1 1
1 1 1 1 0 1 1 1
Y7 Y6 Y1 Y0
- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8
- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis
I0
I1
Y0
Y1
Y2
Y3I2
Y4
Y5
Y6
Y7
EN
saiacutedas ativas a 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28
Descodificadores
bull Descodificador BCD para 7 segmentos
AB
abcdefg
CD
BI
(MSB)
(LSB)
a
b
cde
f g
(blanking input)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29
Codificadores
bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N
bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2
I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0
Y1
Y0
IDLE
I0
I1
I2
I3
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30
Codificadores
bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)
I6A2
A1
A0
GS
EO
I7
I5
I4
I3
I2
I1
I0
EI
EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1
1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0
got somethingenable outputenable input
GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31
Multiplexadores
bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)
Y
I0
I1
I2
I3
S0
S1entradasde seleccedilatildeo
Y = Is s=S1S0 I0
I1
I2
I3
Y
S0S1
siacutembolo habitual
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32
Multiplexadores
ndash Como fazer um mux 4divide1 com muxs 2divide1
ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis
bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33
Ou exclusivo
bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade
(iacutempar)
ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade
AB
AoplusB
A B AoplusB0 0 00 1 1 1 0 11 1 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34
Somadoressubtratores
bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito
iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1
bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B
bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)
ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35
Comparadores
bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante
bull um AND de N entradasbull negadas as entradas a comparar com zero
ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado
Ai = BiAiBi
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36
Comparadores
bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade
Ai Bi
AEQBoutAEQBin
os bits mais significativos (ateacute i-1) satildeo iguais
os bits ateacute i satildeo iguais
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37
Comparadores
bull Comparadores de magnitude (sem sinal)
ndash pode ser usado um subtratorndash comparador iterativo de magnitude
Ai Bi
AGTBoutAGTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB
resultado (AgtB) dos bits ateacute i
ALTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AltB
ALTBout
resultado (AltB) dos bits ateacute i
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 17
Expressatildeo lsquoproduto de somasrsquo
bull Produto de somas (POS product of sums)ndash Produto dos termos soma resultantes das combinaccedilotildees das
entradas para as quais F=0ndash Ex
X Y Z F(XYZ)0 0 0 10 0 1 10 1 0 0 X+Yrsquo+Z0 1 1 0 X+Yrsquo+Zrsquo1 0 0 11 0 1 11 1 0 0 Xrsquo+Yrsquo+Z1 1 1 1
F(XYZ)= (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 18
Siacutentese de circuitos combinatoacuterios
bull Expressotildees booleanas natildeo simplificadasndash soma canoacutenica e produto canoacutenicondash realizadas como circuitos loacutegicos de 2 niacuteveis
F(XYZ) = (X+Yrsquo+Z)(X+Yrsquo+Zrsquo)(Xrsquo+Yrsquo+Z)
YZX
F(XYZ)
niacutevel de portas AND
niacutevel de portas ORSOP AND-ORPOS OR-AND
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 19
Transformaccedilatildeo para NANDs
bull Portas loacutegicas NANDndash mais baratas e mais raacutepidas do que as ANDndash um AND eacute um NAND seguido de um inversor
bull Medida de complexidade de um circuito digitalndash nuacutemero de portas loacutegicas equivalentes
bull eacute o nuacutemero de NANDs de duas entradasbull eacute uma medida independente da tecnologia de fabrico
bull Transformar circuito AND-OR para NANDsndash faacutecil trocar os ANDs e o OR por NANDs
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 20
AND-OR para NANDs
Y
Z
X
F(XYZ)
Y
Z
X
F(XYZ)
Leis de DeMorganUm OR com as entradasnegadas eacute um NAND
Circuito AND-OR (da expressatildeo SOP)
E os inversoresE soacute com NAND de 2 entradas
Negando as saiacutedas dos ANDs e as entradas do OR
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 21
Circuitos combinatoacuterios complexos
bull Siacutentese a partir de tabelas de verdadendash Descriccedilatildeo formal -gt circuito AND-OR ou OR-ANDndash Aplica-se apenas a circuitos ldquopequenosrdquo
bull Circuitos complexos (dezenas de entradas)ndash Impraticaacutevel usar os meacutetodos estudadosndash 32 entradas 232 = 4 294 967 296 linhas da tabela de
verdadendash Projeto hieraacuterquico
bull Construir circuitos complexos agrave custa de circuitos mais simplesbull Um exemplo construir um somador de 32 bits agrave custa de full-
addersndash Um full-adder eacute um somador de 3 nuacutemeros de 1 bit
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 22
Funccedilotildees combinatoacuterias ldquopadratildeordquo
bull Funccedilotildees padratildeondash Podem identificar-se em circuitos complexosndash Existem disponiacuteveis (p ex como circuitos integrados)
ndash Facilitam o projecto de sistemas digitaisndash Exemplos de funccedilotildees padratildeo
bull Somadoressubtratores (deteccedilatildeo de overflow com ou sem sinal)bull Comparadores (igualdade e magnitude com sinal ou sem sinal)bull Descodificadores e codificadores (binaacuterio 7-segmentos BCD hex)bull Multiplexadores (multiplexers) (ldquocomutadoresrdquo digitais)
todos com interesse no contexto da arquitetura de computadores
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23
Desenho de circuitos
bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo
bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade
A
EN_A
EN_B
B
F
G
H
Entrada ativa com 0 (negada)
Nomes dos sinais
Saiacuteda ativa em 0 (negada)
Entrada ativa com 1
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24
Barramentos
bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]
A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)
A[31]8
8
A[70]
B[70]
A
BAgtB
A
B
S
Y8
comparador
multiplexador
MAX[70]
nordm de bits
barramento (8 bits)
fio (1 bit)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25
Descodificadores
bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)
bull Exemplo descodificador 2 divide 4 (2 para 4)
EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
I1
I0
EN
Y0
Y1
Y2
Y3
sinal de habilitaccedilatildeo (enable)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26
Descodificadores
bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4
G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1
Y3 Y2 Y1 Y0
A
B
G
Y0
Y1
Y2
Y3G
Y0
Y1
Y2
Y3
A
B
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27
Descodificadores
- Descodificador binaacuterio 3 divide 8
EN I2 I1 I0
0 x x x 1 1 1 1
1 0 0 0 1 1 1 0
1 0 0 1 1 1 0 1
1 1 1 0 1 0 1 1
1 1 1 1 0 1 1 1
Y7 Y6 Y1 Y0
- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8
- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis
I0
I1
Y0
Y1
Y2
Y3I2
Y4
Y5
Y6
Y7
EN
saiacutedas ativas a 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28
Descodificadores
bull Descodificador BCD para 7 segmentos
AB
abcdefg
CD
BI
(MSB)
(LSB)
a
b
cde
f g
(blanking input)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29
Codificadores
bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N
bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2
I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0
Y1
Y0
IDLE
I0
I1
I2
I3
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30
Codificadores
bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)
I6A2
A1
A0
GS
EO
I7
I5
I4
I3
I2
I1
I0
EI
EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1
1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0
got somethingenable outputenable input
GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31
Multiplexadores
bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)
Y
I0
I1
I2
I3
S0
S1entradasde seleccedilatildeo
Y = Is s=S1S0 I0
I1
I2
I3
Y
S0S1
siacutembolo habitual
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32
Multiplexadores
ndash Como fazer um mux 4divide1 com muxs 2divide1
ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis
bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33
Ou exclusivo
bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade
(iacutempar)
ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade
AB
AoplusB
A B AoplusB0 0 00 1 1 1 0 11 1 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34
Somadoressubtratores
bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito
iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1
bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B
bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)
ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35
Comparadores
bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante
bull um AND de N entradasbull negadas as entradas a comparar com zero
ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado
Ai = BiAiBi
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36
Comparadores
bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade
Ai Bi
AEQBoutAEQBin
os bits mais significativos (ateacute i-1) satildeo iguais
os bits ateacute i satildeo iguais
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37
Comparadores
bull Comparadores de magnitude (sem sinal)
ndash pode ser usado um subtratorndash comparador iterativo de magnitude
Ai Bi
AGTBoutAGTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB
resultado (AgtB) dos bits ateacute i
ALTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AltB
ALTBout
resultado (AltB) dos bits ateacute i
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 19
Transformaccedilatildeo para NANDs
bull Portas loacutegicas NANDndash mais baratas e mais raacutepidas do que as ANDndash um AND eacute um NAND seguido de um inversor
bull Medida de complexidade de um circuito digitalndash nuacutemero de portas loacutegicas equivalentes
bull eacute o nuacutemero de NANDs de duas entradasbull eacute uma medida independente da tecnologia de fabrico
bull Transformar circuito AND-OR para NANDsndash faacutecil trocar os ANDs e o OR por NANDs
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 20
AND-OR para NANDs
Y
Z
X
F(XYZ)
Y
Z
X
F(XYZ)
Leis de DeMorganUm OR com as entradasnegadas eacute um NAND
Circuito AND-OR (da expressatildeo SOP)
E os inversoresE soacute com NAND de 2 entradas
Negando as saiacutedas dos ANDs e as entradas do OR
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 21
Circuitos combinatoacuterios complexos
bull Siacutentese a partir de tabelas de verdadendash Descriccedilatildeo formal -gt circuito AND-OR ou OR-ANDndash Aplica-se apenas a circuitos ldquopequenosrdquo
bull Circuitos complexos (dezenas de entradas)ndash Impraticaacutevel usar os meacutetodos estudadosndash 32 entradas 232 = 4 294 967 296 linhas da tabela de
verdadendash Projeto hieraacuterquico
bull Construir circuitos complexos agrave custa de circuitos mais simplesbull Um exemplo construir um somador de 32 bits agrave custa de full-
addersndash Um full-adder eacute um somador de 3 nuacutemeros de 1 bit
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 22
Funccedilotildees combinatoacuterias ldquopadratildeordquo
bull Funccedilotildees padratildeondash Podem identificar-se em circuitos complexosndash Existem disponiacuteveis (p ex como circuitos integrados)
ndash Facilitam o projecto de sistemas digitaisndash Exemplos de funccedilotildees padratildeo
bull Somadoressubtratores (deteccedilatildeo de overflow com ou sem sinal)bull Comparadores (igualdade e magnitude com sinal ou sem sinal)bull Descodificadores e codificadores (binaacuterio 7-segmentos BCD hex)bull Multiplexadores (multiplexers) (ldquocomutadoresrdquo digitais)
todos com interesse no contexto da arquitetura de computadores
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23
Desenho de circuitos
bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo
bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade
A
EN_A
EN_B
B
F
G
H
Entrada ativa com 0 (negada)
Nomes dos sinais
Saiacuteda ativa em 0 (negada)
Entrada ativa com 1
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24
Barramentos
bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]
A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)
A[31]8
8
A[70]
B[70]
A
BAgtB
A
B
S
Y8
comparador
multiplexador
MAX[70]
nordm de bits
barramento (8 bits)
fio (1 bit)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25
Descodificadores
bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)
bull Exemplo descodificador 2 divide 4 (2 para 4)
EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
I1
I0
EN
Y0
Y1
Y2
Y3
sinal de habilitaccedilatildeo (enable)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26
Descodificadores
bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4
G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1
Y3 Y2 Y1 Y0
A
B
G
Y0
Y1
Y2
Y3G
Y0
Y1
Y2
Y3
A
B
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27
Descodificadores
- Descodificador binaacuterio 3 divide 8
EN I2 I1 I0
0 x x x 1 1 1 1
1 0 0 0 1 1 1 0
1 0 0 1 1 1 0 1
1 1 1 0 1 0 1 1
1 1 1 1 0 1 1 1
Y7 Y6 Y1 Y0
- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8
- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis
I0
I1
Y0
Y1
Y2
Y3I2
Y4
Y5
Y6
Y7
EN
saiacutedas ativas a 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28
Descodificadores
bull Descodificador BCD para 7 segmentos
AB
abcdefg
CD
BI
(MSB)
(LSB)
a
b
cde
f g
(blanking input)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29
Codificadores
bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N
bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2
I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0
Y1
Y0
IDLE
I0
I1
I2
I3
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30
Codificadores
bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)
I6A2
A1
A0
GS
EO
I7
I5
I4
I3
I2
I1
I0
EI
EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1
1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0
got somethingenable outputenable input
GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31
Multiplexadores
bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)
Y
I0
I1
I2
I3
S0
S1entradasde seleccedilatildeo
Y = Is s=S1S0 I0
I1
I2
I3
Y
S0S1
siacutembolo habitual
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32
Multiplexadores
ndash Como fazer um mux 4divide1 com muxs 2divide1
ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis
bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33
Ou exclusivo
bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade
(iacutempar)
ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade
AB
AoplusB
A B AoplusB0 0 00 1 1 1 0 11 1 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34
Somadoressubtratores
bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito
iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1
bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B
bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)
ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35
Comparadores
bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante
bull um AND de N entradasbull negadas as entradas a comparar com zero
ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado
Ai = BiAiBi
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36
Comparadores
bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade
Ai Bi
AEQBoutAEQBin
os bits mais significativos (ateacute i-1) satildeo iguais
os bits ateacute i satildeo iguais
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37
Comparadores
bull Comparadores de magnitude (sem sinal)
ndash pode ser usado um subtratorndash comparador iterativo de magnitude
Ai Bi
AGTBoutAGTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB
resultado (AgtB) dos bits ateacute i
ALTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AltB
ALTBout
resultado (AltB) dos bits ateacute i
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 21
Circuitos combinatoacuterios complexos
bull Siacutentese a partir de tabelas de verdadendash Descriccedilatildeo formal -gt circuito AND-OR ou OR-ANDndash Aplica-se apenas a circuitos ldquopequenosrdquo
bull Circuitos complexos (dezenas de entradas)ndash Impraticaacutevel usar os meacutetodos estudadosndash 32 entradas 232 = 4 294 967 296 linhas da tabela de
verdadendash Projeto hieraacuterquico
bull Construir circuitos complexos agrave custa de circuitos mais simplesbull Um exemplo construir um somador de 32 bits agrave custa de full-
addersndash Um full-adder eacute um somador de 3 nuacutemeros de 1 bit
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 22
Funccedilotildees combinatoacuterias ldquopadratildeordquo
bull Funccedilotildees padratildeondash Podem identificar-se em circuitos complexosndash Existem disponiacuteveis (p ex como circuitos integrados)
ndash Facilitam o projecto de sistemas digitaisndash Exemplos de funccedilotildees padratildeo
bull Somadoressubtratores (deteccedilatildeo de overflow com ou sem sinal)bull Comparadores (igualdade e magnitude com sinal ou sem sinal)bull Descodificadores e codificadores (binaacuterio 7-segmentos BCD hex)bull Multiplexadores (multiplexers) (ldquocomutadoresrdquo digitais)
todos com interesse no contexto da arquitetura de computadores
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23
Desenho de circuitos
bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo
bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade
A
EN_A
EN_B
B
F
G
H
Entrada ativa com 0 (negada)
Nomes dos sinais
Saiacuteda ativa em 0 (negada)
Entrada ativa com 1
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24
Barramentos
bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]
A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)
A[31]8
8
A[70]
B[70]
A
BAgtB
A
B
S
Y8
comparador
multiplexador
MAX[70]
nordm de bits
barramento (8 bits)
fio (1 bit)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25
Descodificadores
bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)
bull Exemplo descodificador 2 divide 4 (2 para 4)
EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
I1
I0
EN
Y0
Y1
Y2
Y3
sinal de habilitaccedilatildeo (enable)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26
Descodificadores
bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4
G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1
Y3 Y2 Y1 Y0
A
B
G
Y0
Y1
Y2
Y3G
Y0
Y1
Y2
Y3
A
B
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27
Descodificadores
- Descodificador binaacuterio 3 divide 8
EN I2 I1 I0
0 x x x 1 1 1 1
1 0 0 0 1 1 1 0
1 0 0 1 1 1 0 1
1 1 1 0 1 0 1 1
1 1 1 1 0 1 1 1
Y7 Y6 Y1 Y0
- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8
- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis
I0
I1
Y0
Y1
Y2
Y3I2
Y4
Y5
Y6
Y7
EN
saiacutedas ativas a 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28
Descodificadores
bull Descodificador BCD para 7 segmentos
AB
abcdefg
CD
BI
(MSB)
(LSB)
a
b
cde
f g
(blanking input)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29
Codificadores
bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N
bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2
I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0
Y1
Y0
IDLE
I0
I1
I2
I3
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30
Codificadores
bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)
I6A2
A1
A0
GS
EO
I7
I5
I4
I3
I2
I1
I0
EI
EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1
1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0
got somethingenable outputenable input
GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31
Multiplexadores
bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)
Y
I0
I1
I2
I3
S0
S1entradasde seleccedilatildeo
Y = Is s=S1S0 I0
I1
I2
I3
Y
S0S1
siacutembolo habitual
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32
Multiplexadores
ndash Como fazer um mux 4divide1 com muxs 2divide1
ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis
bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33
Ou exclusivo
bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade
(iacutempar)
ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade
AB
AoplusB
A B AoplusB0 0 00 1 1 1 0 11 1 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34
Somadoressubtratores
bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito
iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1
bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B
bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)
ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35
Comparadores
bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante
bull um AND de N entradasbull negadas as entradas a comparar com zero
ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado
Ai = BiAiBi
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36
Comparadores
bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade
Ai Bi
AEQBoutAEQBin
os bits mais significativos (ateacute i-1) satildeo iguais
os bits ateacute i satildeo iguais
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37
Comparadores
bull Comparadores de magnitude (sem sinal)
ndash pode ser usado um subtratorndash comparador iterativo de magnitude
Ai Bi
AGTBoutAGTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB
resultado (AgtB) dos bits ateacute i
ALTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AltB
ALTBout
resultado (AltB) dos bits ateacute i
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 23
Desenho de circuitos
bull Portas loacutegicas elementaresndash A sua funccedilatildeo eacute especificada pelo seu siacutembolo
bull Funccedilotildees complexasndash Natildeo existem siacutembolos ldquopadratildeordquo para cada funccedilatildeondash Usa-se um retacircngulo com entradas e saiacutedasndash Funccedilatildeo tabela de verdade
A
EN_A
EN_B
B
F
G
H
Entrada ativa com 0 (negada)
Nomes dos sinais
Saiacuteda ativa em 0 (negada)
Entrada ativa com 1
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 24
Barramentos
bull Grupo de N sinais loacutegicos relacionadosndash Representam um dado com N bitsndash Usam-se nomes do tipo A[70]
A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)
A[31]8
8
A[70]
B[70]
A
BAgtB
A
B
S
Y8
comparador
multiplexador
MAX[70]
nordm de bits
barramento (8 bits)
fio (1 bit)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25
Descodificadores
bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)
bull Exemplo descodificador 2 divide 4 (2 para 4)
EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
I1
I0
EN
Y0
Y1
Y2
Y3
sinal de habilitaccedilatildeo (enable)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26
Descodificadores
bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4
G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1
Y3 Y2 Y1 Y0
A
B
G
Y0
Y1
Y2
Y3G
Y0
Y1
Y2
Y3
A
B
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27
Descodificadores
- Descodificador binaacuterio 3 divide 8
EN I2 I1 I0
0 x x x 1 1 1 1
1 0 0 0 1 1 1 0
1 0 0 1 1 1 0 1
1 1 1 0 1 0 1 1
1 1 1 1 0 1 1 1
Y7 Y6 Y1 Y0
- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8
- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis
I0
I1
Y0
Y1
Y2
Y3I2
Y4
Y5
Y6
Y7
EN
saiacutedas ativas a 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28
Descodificadores
bull Descodificador BCD para 7 segmentos
AB
abcdefg
CD
BI
(MSB)
(LSB)
a
b
cde
f g
(blanking input)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29
Codificadores
bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N
bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2
I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0
Y1
Y0
IDLE
I0
I1
I2
I3
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30
Codificadores
bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)
I6A2
A1
A0
GS
EO
I7
I5
I4
I3
I2
I1
I0
EI
EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1
1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0
got somethingenable outputenable input
GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31
Multiplexadores
bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)
Y
I0
I1
I2
I3
S0
S1entradasde seleccedilatildeo
Y = Is s=S1S0 I0
I1
I2
I3
Y
S0S1
siacutembolo habitual
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32
Multiplexadores
ndash Como fazer um mux 4divide1 com muxs 2divide1
ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis
bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33
Ou exclusivo
bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade
(iacutempar)
ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade
AB
AoplusB
A B AoplusB0 0 00 1 1 1 0 11 1 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34
Somadoressubtratores
bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito
iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1
bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B
bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)
ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35
Comparadores
bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante
bull um AND de N entradasbull negadas as entradas a comparar com zero
ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado
Ai = BiAiBi
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36
Comparadores
bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade
Ai Bi
AEQBoutAEQBin
os bits mais significativos (ateacute i-1) satildeo iguais
os bits ateacute i satildeo iguais
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37
Comparadores
bull Comparadores de magnitude (sem sinal)
ndash pode ser usado um subtratorndash comparador iterativo de magnitude
Ai Bi
AGTBoutAGTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB
resultado (AgtB) dos bits ateacute i
ALTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AltB
ALTBout
resultado (AltB) dos bits ateacute i
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 25
Descodificadores
bull Descodificadores (decoders)ndash N entradas e M saiacutedas N lt M (geralmente)ndash Transforma um coacutedigo noutro com mais bitsndash Descodificador binaacuterio (ou N para 2N)
bull Exemplo descodificador 2 divide 4 (2 para 4)
EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
I1
I0
EN
Y0
Y1
Y2
Y3
sinal de habilitaccedilatildeo (enable)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 26
Descodificadores
bull Descodificadores disponiacuteveis como CIsndash Descodificador binaacuterio 2 divide 4
G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
Y3 Y2 Y1 Y0 G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1
Y3 Y2 Y1 Y0
A
B
G
Y0
Y1
Y2
Y3G
Y0
Y1
Y2
Y3
A
B
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27
Descodificadores
- Descodificador binaacuterio 3 divide 8
EN I2 I1 I0
0 x x x 1 1 1 1
1 0 0 0 1 1 1 0
1 0 0 1 1 1 0 1
1 1 1 0 1 0 1 1
1 1 1 1 0 1 1 1
Y7 Y6 Y1 Y0
- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8
- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis
I0
I1
Y0
Y1
Y2
Y3I2
Y4
Y5
Y6
Y7
EN
saiacutedas ativas a 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28
Descodificadores
bull Descodificador BCD para 7 segmentos
AB
abcdefg
CD
BI
(MSB)
(LSB)
a
b
cde
f g
(blanking input)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29
Codificadores
bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N
bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2
I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0
Y1
Y0
IDLE
I0
I1
I2
I3
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30
Codificadores
bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)
I6A2
A1
A0
GS
EO
I7
I5
I4
I3
I2
I1
I0
EI
EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1
1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0
got somethingenable outputenable input
GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31
Multiplexadores
bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)
Y
I0
I1
I2
I3
S0
S1entradasde seleccedilatildeo
Y = Is s=S1S0 I0
I1
I2
I3
Y
S0S1
siacutembolo habitual
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32
Multiplexadores
ndash Como fazer um mux 4divide1 com muxs 2divide1
ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis
bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33
Ou exclusivo
bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade
(iacutempar)
ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade
AB
AoplusB
A B AoplusB0 0 00 1 1 1 0 11 1 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34
Somadoressubtratores
bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito
iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1
bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B
bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)
ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35
Comparadores
bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante
bull um AND de N entradasbull negadas as entradas a comparar com zero
ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado
Ai = BiAiBi
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36
Comparadores
bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade
Ai Bi
AEQBoutAEQBin
os bits mais significativos (ateacute i-1) satildeo iguais
os bits ateacute i satildeo iguais
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37
Comparadores
bull Comparadores de magnitude (sem sinal)
ndash pode ser usado um subtratorndash comparador iterativo de magnitude
Ai Bi
AGTBoutAGTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB
resultado (AgtB) dos bits ateacute i
ALTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AltB
ALTBout
resultado (AltB) dos bits ateacute i
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 27
Descodificadores
- Descodificador binaacuterio 3 divide 8
EN I2 I1 I0
0 x x x 1 1 1 1
1 0 0 0 1 1 1 0
1 0 0 1 1 1 0 1
1 1 1 0 1 0 1 1
1 1 1 1 0 1 1 1
Y7 Y6 Y1 Y0
- Como fazer um descodificador 4 divide 16bull 16 funccedilotildees de 5 variaacuteveis (com enable)bull basta usar 2 descodificadores 3 divide 8
- E quantos satildeo necessaacuterios para fazer um 5 divide 32- Como realizar funccedilotildees loacutegicas de 3 variaacuteveis
I0
I1
Y0
Y1
Y2
Y3I2
Y4
Y5
Y6
Y7
EN
saiacutedas ativas a 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 28
Descodificadores
bull Descodificador BCD para 7 segmentos
AB
abcdefg
CD
BI
(MSB)
(LSB)
a
b
cde
f g
(blanking input)
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29
Codificadores
bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N
bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2
I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0
Y1
Y0
IDLE
I0
I1
I2
I3
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30
Codificadores
bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)
I6A2
A1
A0
GS
EO
I7
I5
I4
I3
I2
I1
I0
EI
EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1
1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0
got somethingenable outputenable input
GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31
Multiplexadores
bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)
Y
I0
I1
I2
I3
S0
S1entradasde seleccedilatildeo
Y = Is s=S1S0 I0
I1
I2
I3
Y
S0S1
siacutembolo habitual
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32
Multiplexadores
ndash Como fazer um mux 4divide1 com muxs 2divide1
ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis
bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33
Ou exclusivo
bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade
(iacutempar)
ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade
AB
AoplusB
A B AoplusB0 0 00 1 1 1 0 11 1 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34
Somadoressubtratores
bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito
iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1
bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B
bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)
ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35
Comparadores
bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante
bull um AND de N entradasbull negadas as entradas a comparar com zero
ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado
Ai = BiAiBi
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36
Comparadores
bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade
Ai Bi
AEQBoutAEQBin
os bits mais significativos (ateacute i-1) satildeo iguais
os bits ateacute i satildeo iguais
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37
Comparadores
bull Comparadores de magnitude (sem sinal)
ndash pode ser usado um subtratorndash comparador iterativo de magnitude
Ai Bi
AGTBoutAGTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB
resultado (AgtB) dos bits ateacute i
ALTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AltB
ALTBout
resultado (AltB) dos bits ateacute i
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 29
Codificadores
bull Codificadores (encoders)ndash N entradas e M saiacutedas N gt M (geralmente)ndash transforma um coacutedigo noutro com menos bitsndash codificador binaacuterio 2N divide N
bull se natildeo estiverem duas entradas em 1 simultaneamentebull Exemplo codificador binaacuterio 4 divide 2
I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0
Y1
Y0
IDLE
I0
I1
I2
I3
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 30
Codificadores
bull Codificador de prioridade 8 divide 38 entradas I7 (+ prioridade) a I0 (- prioridade)
I6A2
A1
A0
GS
EO
I7
I5
I4
I3
I2
I1
I0
EI
EI I7 I6 I5 I2 I1 I0 A2 A1 A0 GS EO0 x x x x x x 0 0 0 0 11 0 0 0 0 0 1 0 0 0 1 11 0 0 0 0 1 x 0 0 1 1 11 0 0 0 1 x x 0 1 0 1 1
1 0 0 1 x x x 1 0 1 1 11 0 1 x x x x 1 1 0 1 11 1 x x x x x 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0
got somethingenable outputenable input
GS ndash saiacuteda atuada se o circuito estaacute habilitado e alguma entrada eacute atuadaEO ndash uacutetil para atuar a entrada EI de outro codificador que receba entradas de menor prioridade
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31
Multiplexadores
bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)
Y
I0
I1
I2
I3
S0
S1entradasde seleccedilatildeo
Y = Is s=S1S0 I0
I1
I2
I3
Y
S0S1
siacutembolo habitual
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32
Multiplexadores
ndash Como fazer um mux 4divide1 com muxs 2divide1
ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis
bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33
Ou exclusivo
bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade
(iacutempar)
ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade
AB
AoplusB
A B AoplusB0 0 00 1 1 1 0 11 1 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34
Somadoressubtratores
bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito
iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1
bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B
bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)
ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35
Comparadores
bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante
bull um AND de N entradasbull negadas as entradas a comparar com zero
ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado
Ai = BiAiBi
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36
Comparadores
bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade
Ai Bi
AEQBoutAEQBin
os bits mais significativos (ateacute i-1) satildeo iguais
os bits ateacute i satildeo iguais
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37
Comparadores
bull Comparadores de magnitude (sem sinal)
ndash pode ser usado um subtratorndash comparador iterativo de magnitude
Ai Bi
AGTBoutAGTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB
resultado (AgtB) dos bits ateacute i
ALTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AltB
ALTBout
resultado (AltB) dos bits ateacute i
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 31
Multiplexadores
bull Multiplexadores (multiplexers ou muxs)ndash circuito seletor (um mux 4 divide 1)
Y
I0
I1
I2
I3
S0
S1entradasde seleccedilatildeo
Y = Is s=S1S0 I0
I1
I2
I3
Y
S0S1
siacutembolo habitual
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 32
Multiplexadores
ndash Como fazer um mux 4divide1 com muxs 2divide1
ndash Como realizar uma funccedilatildeo loacutegica de N variaacuteveis
bull com um mux de N linhas de seleccedilatildeobull e com um mux de N-1 linhas de seleccedilatildeo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33
Ou exclusivo
bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade
(iacutempar)
ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade
AB
AoplusB
A B AoplusB0 0 00 1 1 1 0 11 1 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34
Somadoressubtratores
bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito
iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1
bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B
bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)
ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35
Comparadores
bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante
bull um AND de N entradasbull negadas as entradas a comparar com zero
ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado
Ai = BiAiBi
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36
Comparadores
bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade
Ai Bi
AEQBoutAEQBin
os bits mais significativos (ateacute i-1) satildeo iguais
os bits ateacute i satildeo iguais
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37
Comparadores
bull Comparadores de magnitude (sem sinal)
ndash pode ser usado um subtratorndash comparador iterativo de magnitude
Ai Bi
AGTBoutAGTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB
resultado (AgtB) dos bits ateacute i
ALTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AltB
ALTBout
resultado (AltB) dos bits ateacute i
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 33
Ou exclusivo
bull Porta OU-exclusivo (XOR)ndash saiacuteda eacute 1 quando as entradas satildeo diferentesndash aplicaccedilatildeo somadores detetor de paridade
(iacutempar)
ndash funccedilatildeo loacutegica AoplusB = ArsquoB + ABrsquondash como se faz um XOR com 4 NANDsndash XNOR eacute um comparador de igualdade
AB
AoplusB
A B AoplusB0 0 00 1 1 1 0 11 1 0
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 34
Somadoressubtratores
bull Somadoresndash somador tipo ripple-carry (como se faz agrave ldquomatildeordquo)ndash ligaccedilatildeo de N full-adders em cascata (circuito
iterativo)bull Si = Ai oplus Bi oplus Ci-1bull Ci = AiBi + AiCi-1 + BiCi-1
bull Subtratoresndash como A - B = A + (-B) basta ldquotrocarrdquo o sinal de B
bull trocar o sinal trocar os bits todos (XORs) e somar 1 (carry-in)
ndash Portas XOR como inversores controladosbull X=A oplus B quando A=0 X=B quando A=1 X=Brsquo
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35
Comparadores
bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante
bull um AND de N entradasbull negadas as entradas a comparar com zero
ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado
Ai = BiAiBi
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36
Comparadores
bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade
Ai Bi
AEQBoutAEQBin
os bits mais significativos (ateacute i-1) satildeo iguais
os bits ateacute i satildeo iguais
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37
Comparadores
bull Comparadores de magnitude (sem sinal)
ndash pode ser usado um subtratorndash comparador iterativo de magnitude
Ai Bi
AGTBoutAGTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB
resultado (AgtB) dos bits ateacute i
ALTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AltB
ALTBout
resultado (AltB) dos bits ateacute i
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 35
Comparadores
bull Comparadores de igualdadendash entre uma variaacutevel de N bits e uma constante
bull um AND de N entradasbull negadas as entradas a comparar com zero
ndash entre duas variaacuteveis A e B de N bitsbull N portas XNOR comparam os bits de A e Bbull uma porta AND de N entradas produz o resultado
Ai = BiAiBi
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 36
Comparadores
bull Circuitos iterativosndash ligaccedilatildeo em cascata de sub-circuitos ldquosimplesrdquondash cada sub-circuito avalia parte dos operandosndash exemplo comparador iterativo de igualdade
Ai Bi
AEQBoutAEQBin
os bits mais significativos (ateacute i-1) satildeo iguais
os bits ateacute i satildeo iguais
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37
Comparadores
bull Comparadores de magnitude (sem sinal)
ndash pode ser usado um subtratorndash comparador iterativo de magnitude
Ai Bi
AGTBoutAGTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB
resultado (AgtB) dos bits ateacute i
ALTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AltB
ALTBout
resultado (AltB) dos bits ateacute i
Antoacutenio Joseacute Arauacutejo FEUP AOCO_201415 - Circuitos combinatoacuterios 37
Comparadores
bull Comparadores de magnitude (sem sinal)
ndash pode ser usado um subtratorndash comparador iterativo de magnitude
Ai Bi
AGTBoutAGTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AgtB
resultado (AgtB) dos bits ateacute i
ALTBin
pelos bits mais significativos (ateacute i-1) jaacute eacute AltB
ALTBout
resultado (AltB) dos bits ateacute i