Escolar Documentos
Profissional Documentos
Cultura Documentos
Os circuitos lgicos dos sistemas digitais podem ser de dois tipos: circuitos combinacionais ou circuitos seqenciais. Um circuito combinacional constitudo por um conjunto de portas lgicas as quais determinam os valores das sadas diretamente a partir dos valores atuais das entradas. Pode-se dizer que um circuito combinacional realiza uma operao de processamento de informao a qual pode ser especificada por meio de um conjunto de equaes Booleanas. No caso, cada combinao de valores de entrada pode ser vista como uma informao diferente e cada conjunto de valores de sada representa o resultado da operao. A figura 3.1 mostra o diagrama de blocos genrico de um circuito combinacional.
n entradas
circuito combinacional
Figura 3.1 - Diagrama genrico de um circuito combinacional. Um circuito seqencial, por sua vez, emprega elementos de armazenamento denominados latches e flip-flops, alm de portas lgicas. Os valores das sadas do circuito dependem dos valores das entradas e dos estados dos latches ou flip-flops utilizados. Como os estados dos latches e flip-flops funo dos valores anteriores das entradas, diz-se que as sadas de um circuito seqencial dependem dos valores das entradas e do histrico do prprio circuito. Logo, o comportamento de um circuito seqencial especificado pela seqncia temporal das entradas e de seus estados internos. A figura 3.2 esboa um diagrama de blocos genrico para circuitos seqenciais conhecido como modelo de Mealy. Circuitos seqenciais sero objeto de estudo do prximo captulo.
3-2
en tra das
sadas
Figura 3.2 - Diagrama genrico de um circuito seqencial segundo o modelo de Mealy. O procedimento bsico para se determinarem as equaes que descrevem as sadas de um circuito combinacional o seguinte: 1. dar um nome para as variveis associadas a cada sada de cada porta do circuito, exceto aquelas sadas que j possuem nome (como por exemplo, as sadas do circuito); 2. a partir da esquerda, e seguindo a ordem de precedncia determinada pelas ligaes, determinar as equaes associadas a cada varivel, at que as equaes de todas as sadas tenham sido encontradas. Uma vez determinadas as equaes das sadas, a montagem da tabela verdade ser direta, havendo uma coluna para cada sada. Exemplo 3.1: determinar as equaes das sadas F1 e F2 do circuito que segue. Vamos chamar as variveis associadas s sadas das portas de T1, T2, T3 etc. H somente duas portas cujas sadas j tem nome, que so justamente as sadas do circuito: F1 e F2. Listando as equaes para essas variveis, segue: T1= T2= T3= T4= F2= T5= T6= F1=
3-3
A B C F1 T3 T1 T2 T5
T4 T6
F2 D
3-4
Equao em soma de produtos, simplificada. menor= Circuito para a equao em soma de produtos, simplificada:
3-5
3.3.1 Decodificadores
Um decodificador um circuito combinacional usado para ativar ou habilitar um (e somente um) dentre m componentes. assumido que cada componente possui um ndice entre 0 e m-1, representado por um endereo em binrio. Um decodificador n : m (l-se n por m ) possui n entradas e m sadas, com m 2n. No caso de um decodificador 3:8, sero 8 sadas, onde cada sada pode ser encarada como um endereo diferente. Para ativar uma dentre 8 sadas so necessrias 3 variveis de entrada (da 3:8). Cada combinao das variveis de entrada seleciona um e somente uma dentre as 8 sadas, de modo que cada sada somente ser selecionada por uma das 8 combinaes. Desta forma, natural que se associe a cada sada um ndice decimal que represente a combinao de entradas responsvel pela sua ativao. Assumindo-se ativao em lgica direta, isto , que uma sada est ativada se ela vale 1, ento a tabela verdade para um decodificador 3:8 ser:
Entradas (sinais de controle)
endereo
sadas D0 1 0 0 0 0 0 0 0 D1 0 1 0 0 0 0 0 0 D2 0 0 1 0 0 0 0 0 D3 0 0 0 1 0 0 0 0 D4 0 0 0 0 1 0 0 0 D5 0 0 0 0 0 1 0 0 D6 0 0 0 0 0 0 1 0 D7 0 0 0 0 0 0 0 1
A2 0 1 2 3 4 5 6 7 0 0 0 0 1 1 1 1
A1 0 0 1 1 0 0 1 1
A0 0 1 0 1 0 1 0 1
Note que cada sada s vale 1 para uma determinada combinao das variveis de entrada. Alm disso, cada combinao de entrada s ativa uma dentre todas as 8 sadas. O circuito de um decodificador 3:8 ter, portanto, 8 sadas, sendo cada sada um dentre os 8 mintermos possveis para uma funo Booleana de 3 variveis. A figura 3.3a mostra o
3-6
smbolo para o decodificador 3:8, enquanto a figura 3.3b mostra um circuito possvel para o mesmo decodificador, utilizando portas E de 3 entradas e inversores.
A2 A1 A0
D0
D1
D0 D1 A0 A1 A2 DE C 3x8 D2 D3 D4 D5 D6 D7
D2
D3
D4
(a)
D5
D6
D7
(b)
Figura 3.3- Smbolo (a) e diagrama (b) de um decodificador 3:8. Um decodificador pode possuir uma entrada de habilitao (enable, em ingls). Esta entrada tem a funo de habilitar ou desabilitar seu funcionamento. Assim, se esta entrada valer 0, nenhuma sada estar ativada, independente dos valores das demais entradas. Por outro lado, se a entrada de habilitao valer 1, o decodificador estar ativando uma das sadas.
3-7
Neste exemplo, foi considerado que a habilitao do decodificador se d com lgica direta, isto , quando a entrada de habilitao valer 1. A lgica de habilitao poderia ser negada, ou seja, habilita se a entrada de habilitao valer 0 e no habilita, caso contrrio. A tabela verdade de um decodificador 2:4 com ativao e habilitao em lgica direta a seguinte:
entradas (sinais de controle)
endereo
sadas D0 0 0 0 0 1 0 0 0 D1 0 0 0 0 0 1 0 0 D2 0 0 0 0 0 0 1 0 D3 0 0 0 0 0 0 0 1
E sadas desabilitadas
A1 0 0 1 1 0 0 1 1
A0 0 1 0 1 0 1 0 1
0 0 0 0 1 1 1 1
0 1 2 3
Como pode-se verificar, nas primeiras 4 linhas o sinal de habilitao (E) vale zero, o que desativa as sadas, independentemente dos valores das demais entradas (A1 e A0). Desta forma, podemos re-escrever esta tabela de maneira mais compacta, indicando numa nica linha que, quando E=0, os valores das entradas A1 e A0 no interessam (=dont cares de entrada):
entradas (sinais de controle)
sadas D0 0 1 0 0 0 D1 0 0 1 0 0 D2 0 0 0 1 0 D3 0 0 0 0 1
E 0 1 2 3 0 1 1 1 1
A1 X 0 0 1 1
A0 X 0 1 0 1
A figura 3.4a mostra o smbolo para esse decodificador e a figura 3.4b mostra uma possvel implementao (circuito lgico).
3-8
A0 A1 D0
D0 A0 A1 DE C 2x4 D1 D2 D3
D1
D2
D3 E E
(a)
(b)
Figura 3.4: smbolo (a) e diagrama (b) de um decodificador 2x4 com entrada de habilitao.
3.3.2 Seletores
Um seletor (tambm conhecido como multiplexador) um circuito combinacional usado para selecionar uma dentre um conjunto de m fontes de informao disponveis. Um seletor que possui n entradas para realizar a seleo capaz de selecionar uma dentre 2n entradas. Logo, m deve ser menor ou igual a 2n. Dado o conjunto de entradas A0, A1, A2 e A3, e as variveis de seleo S0 e S1, a tabela verdade para um seletor 4-1 ser:
variveis de seleo
endereo
sada Y A0 A1 A2 A3
S1 0 1 2 3 0 0 1 1
S0 0 1 0 1
Pela tabela verdade acima percebe-se que a sada Y pode ser implementada por um circuito em soma de produtos, onde em cada produto estaro presentes as variveis S0 e S1 e uma dentre as variveis de entrada A0, A1, A2 e A3: Y = S0 S1 A0 + S0 S1 A1 + S0 S1 A 2 + S0 S1 A 3
3-9
A figura 3.5a mostra o smbolo para tal seletor e a figura 3.5b mostra um possvel circuito em soma de produtos.
A0
A1 A0 A1 A2 A3 A3 Y MUX 4 -1 Y A2
A1 A
A1
A0
(a)
(b)
3-10
Repare que no ltimo caso acima, o resultado da adio o valor 2, que em binrio necessita de dois dgitos para ser representado (10). Ora, um circuito aritmtico para realizar a adio de dois bits deve operar corretamente para qualquer combinao de valores de entrada. Isso significa que o circuito para a adio de dois bits deve possuir duas entradas e duas sadas, conforme ilustrado na figura 3.6.
A B
S Cout
Figura 3.6 - Esquema das entradas e sadas de um meio somador (half adder ou HAD). Denomina-se meia-soma a operao de adio de dois bits. O circuito mostrado na figura 3.6 denominado meio somador (half adder, em ingls). As duas entradas, A e B, representam os dois bits a serem adicionados. A sada S representa o dgito menos significativo do resultado, enquanto que a sada Cout representa o dgito mais significativo do resultado, o qual tambm conhecido por transporte de sada (carry out, em ingls), uma vez que ele assume valor 1 somente quando o resultado da soma de A e B no pode ser representado num nico dgito. A fim de se projetar o circuito do meio somador, devemos montar uma tabela verdade para as sadas S e Cout utilizando-se os valores que resultam da adio de dois dgitos binrios, como segue: A 0 0 1 1 B 0 1 0 1 Cout 0 0 0 1 S 0 1 1 0
Note que a sada S nada mais do que o XOR entre A e B ( S = A.B + A. B = A B). J a sada Cout o E entre A e B ( Cout = A B). Ento, um circuito para o meio somador usa apenas uma porta XOR de duas entradas e uma porta E de duas entradas, conforme mostrado na figura 3.7.
A S B
Cout
3-11
Entretanto, quando ao somarmos dois nmeros binrios que possuem mais de um dgito cada ocorrer transporte diferente de zero para a soma de um par de dgitos intermedirios, a soma do par seguinte dever considerar esse transporte proveniente do par anterior, conforme ilustra o exemplo a seguir (figura 3.8).
1 A B resultado transporte +
1 1 1 1 1
0 1 1 0 1
1 0 0 1 0 1 1 0 1
Figura 3.8 - Exemplo de adio de dois nmeros binrios com mais de um dgito. O exemplo mostrado na figura 3.8 ilustra bem o fato de, para cada posio exceto a menos significativa, o resultado obtido mediante a adio de trs bits: um pertencente ao nmero A, um pertencente ao nmero B e um terceiro que o transporte proveniente do resultado da adio entre os bits da posio anterior. O circuito capaz de realizar a soma de trs bits (A, B e Cin), gerando o resultado em dois bits (S e Cout) denominado somador completo (full adder, em ingls). Apesar da entrada Cin normalmente receber o transporte proveniente da soma imediantamente anterior (carry in, em ingls), a rigor as trs entradas so absolutamente equivalentes sob o ponto de vista funcional. A tabela verdade para a soma completa mostrada a seguir, juntamente com o mapa de Karnaugh e as equaes mnimas resultantes para S e Cout. A figura 3.9 mostra um circuito para o somador completo.
A 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
Cin 0 1 0 1 0 1 0 1
Cout 0 0 0 1 0 1 1 1
S 0 1 1 0 1 0 0 1
3-12
S BCin A 0 1 00 0 1 01 1 0 11 0 1 10 1 0
Conforme pode-se ver pelo mapa de Karnaugh acima, a expresso mnima em soma de produtos para S contm todos os mintermos da funo: S = A B Cin + A B Cin + A B Cin + A B Cin O circuito que implementa a sada S do somador completo pode ser derivado a partir da equao em soma de produtos acima. No entanto, pode-se ainda manipular tal equao conforme segue: S = A (B Cin + B Cin ) + A (B Cin + B Cin) = A (B Cin ) + A (B Cin ) = A B Cin Logo, o circuito para a sada S do somador completo pode tambm ser representado com duas portas XOR, conforme mostra a figura 3.9. Cout BCin A 0 1 00 0 0 01 0 1 11 1 1 10 0 1
3-13
A B Cin S
Cout
Cout
FAD
Cin
Figura 3.10 - Representao de bloco para o somador completo (full adder ou FAD).
3-14
B3
A3
B2
A2
B1
A1
B0
A0
C4
FAD3
C3
FAD2
C2
FAD1
C1
FAD0
C0
S3
S2
S1
S0
Figura 3.11- Somador paralelo de 4 bits. Repare que o somador completo de ndice zero, FAD0, tambm possui uma entrada Cin, aqui denominada C0. Como a priori no existe um valor de transporte a ser somado aos dgitos menos significativos, A0 e B0, esta entrada dever estar constantemente ligada a zero. J a sada de transporte Cout do dgito mais significativo, C4 no caso do somador de 4 bits, serve para indicar se o resultado da adio entre A e B pode ser representado em 4 bits. Caso o resultado no pode ser representado em 4 bits, C4 ir exibir o valor 1. Repare tambm que, uma vez que um novo par de valores A e B fornecido ao circuito somador, as ltimas 2 sadas que se estabilizam so S3 e C4 , uma vez que estas dependem de C3, que por sua vez depende da estabilizao de C2 e assim por diante. Desta forma, pode-se aproximar o atraso deste somador como sendo proporcional ao nmero de estgios (=nmero de somadores completos cascateados). Com efeito, a propagao do transporte ou carry ao longo da cadeia de somadores o ponto fraco deste tipo de somador. Existem outros tipos de somadores capazes de operar mais rapidamente, mas que por razes de tempo no sero estudados nesta disciplina. A construo de um somador para operar dois nmeros binrios de n bits requer o uso de n somadores completos, conectados segundo a mesma topologia mostrada na figura 3.11. importante ressaltar que tal somador pode operar dois nmeros inteiros quaisquer, positivos ou negativos, desde que ambos estejam representados em complemento de 2.
3.4.3 O somador/subtrator
A subtrao de dois nmeros inteiros em binrio pode ser feita utilizando-se a seguinte frmula: A B = A + B +1 onde todas as operaes so aritmticas, exceto B , que representa a complementao de B, bit a bit. A figura 3.12 mostra um circuito somador/subtrator de 4 bits. Esse circuito originado do somador paralelo de 4 bits, porm com a adio de portas xor nas entradas associadas a B, de modo a permitir a negao individual de cada bit de B. A tabela que segue mostra o funcionamento deste circuito, em funo dos sinais de controle sel1 e sel2. Note que sel1 coincide com C0.
3-15
A exemplo do que ocorre com o somador paralelo apresentado na seo anterior, tambm o somador/subtrator pode operar dois nmeros inteiros quaisquer, positivos ou negativos, desde que tais nmeros estejam representados em complemento de dois. Caso os dois nmeros a serem operados estivessem representados em sinal-magnitude, por exemplo, seria necessrio existir um circuito para testar o sinal de cada nmero e comparar as magnitudes, para s ento realizar a soma ou a subtrao. Como isso representaria a necessidade de um hardware mais complexo, e possivelmente mais caro e mais lento, a representao em complemento de dois dominantemente utilizada nos computadores atuais.
B3 A3 B2 A2 B1 A1 B0 A0 sel2
C4
FAD3
C3
FAD2
C2
FAD1
C1
FAD0
sel1
S3
S2
S1
S0
Figura 3.12 - Somador/subtrator de 4 bits. Operaes possveis para o somador/subtrator da figura 3.12.
sel2 0 0 1 1
sel1 0 1 0 1
operao S= A+B +0 S = A + B +1 S= A+ B +0 S = A + B +1
3.4.4 O multiplicador
A multiplicao de nmeros binrios realizada da mesma maneira como a de nmeros decimais. O multiplicando multiplicado por cada bit do multiplicador, comeando do bit menos significativo. Cada uma destas multiplicaes formam um produto parcial. Os sucessivos produtos parciais so deslocados uma posio para a esquerda. O produto final obtido a partir da soma dos produtos parciais.
3-16
Para entender como um multiplicador binrio pode ser implementado com um circuito combinacional, considere a multiplicao de dois nmeros de dois bits mostrada na figura abaixo: B1 A1 C3 + M3
A0
C2 A1 B 1 M2
B0 A0 A0 B0 M0
A0 B 1 A1 B 0 M1
B1
B0
A1
B1
B0
C2
C3
Co
HAD
Co
HAD
M3
M2
M1
M0
Figura 3.13 - Multiplicador de 2 bits. Os bits do multiplicando so B1 e B0, os bits do multiplicador so A1 e A0 e o produto M3M2M1M0. O primeiro produto parcial formado pela multiplicao de B1B0 por A0. A multiplicao de dois bits, tais como A0 e B0, produz um 1 se ambos os bits so 1, do contrrio ela produz um 0. Isto idntico operao E. Assim, o produto parcial pode ser implementado com portas E como mostrado no circuito da figura 3.13. O segundo produto parcial formado pela multiplicao de B1B0 por A1 e deslocado uma posio para a esquerda. Os dois produtos parciais so somados com dois circuitos meio-somadores. Usualmente tem-se mais bits nos produtos parciais, fazendo-se necessrio o uso de somadores completos para produzir a soma dos produtos parciais. Um circuito multiplicador binrio combinacional com mais bits pode ser construdo de maneira semelhante. Um bit do multiplicador operado por um E com cada bit do multiplicando em tantos nveis quanto existam bits no multiplicador. A sada binria em cada nvel de portas E somada em paralelo com o produto parcial do nvel anterior para formar um novo produto parcial. O ltimo nvel produz o resultado. Para j bits no multiplicador e k
3-17
bits no multiplicando, sero necessrios jk portas E e (j-1) somadores de k bits para gerar um produto de j+k bits.
Exerccios
Exerccio 3.1 - Projetar um decodificador 3:8 com ativao em lgica negada (isto , para cada sada Di, se Di=0, Di est ativada, se Di=1, a Di est desativada). Exerccio 3.2 - Projetar um decodificador 2:4 com entrada de habilitao. Tanto a habilitao como a ativao das sadas deve se dar em lgica negada. Exerccio 3.3 - Reprojete o decodificador do exerccio anterior utilizando somente portas NAND de 2 entradas. Exerccio 3.4 - Projete um decodificador 3:8 utilizando um inversor e 2 decodificadores 2:4 com entrada de habilitao. Exerccio 3.5 - Projetar um seletor 8-1 a partir de seletor 4-1. Exerccio 3.6 - Projetar um seletor 4-1, onde cada entrada composta por um conjunto de 2 bits. Usar o smbolo para representar cada seletor 4-1, ao invs de desenhar o circuito detalhado. Exerccio 3.7 - Desenhe o circuito lgico de um multiplicador de quatro bits.
Bibliografia Suplementar
[1] GAJSKI, Daniel D. Principles of Digital Design, New Jersey: Prentice Hall, 1997 (ISBN 0-13-301144-5) [2] MANO, M. Morris; Computer Engineering: Hardware Design. New Jersey: Prentice Hall, 1988 (ISBN 0-13-162926-3)