Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
x z
z=f(x,y)
y
x
a
z
c
y b
Compartimento Compartimento
para discos Amplificador para fitas
Auto-falante Auto-falante
esquerdo direito
Qualquer projeto pode ser realizado seguindo estes passos usando diferentes nveis de
abstrao. Em um nvel de abstrao apenas determinados detalhes so representados.
Normalmente, os detalhes capturados em uma dada fase do projeto dependem da
complexidade do sistema. Por exemplo, praticamente impossvel projetar um
microprocessador inteiro usando apenas portas lgicas bsicas. Normalmente, inicia-se o
projeto pelos blocos bsicos no nvel lgico. A seguir, estes blocos so interconectados para
compor um sistema mais complexo, como por exemplo um microprocessador.
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 1-3
Este texto tem por objetivo introduzir o estudo de sistemas digitais, dando especial
ateno aos componentes bsicos destes sistemas. Um sistema digital pode ser definido como
um conjunto de componentes interconectados que processam informaes em forma digital ou
discreta. Na maioria dos sistemas digitais, os componentes bsicos utilizados so dispositivos
eletrnicos chamados circuitos integrados (CIs). As ligaes entre estes componentes
eletrnicos so conexes fsicas atravs das quais a informao digital pode ser transmitida.
Sistemas digitais modernos abrangem uma vasta gama de graus de complexidade. Os
componentes disponveis para a construo de sistemas digitais vo desde chaves do tipo liga-
desliga at computadores completos. O nmero de componentes em um sistema digital pode
variar de um, dois ou de milhares de componentes. Obviamente, quanto mais componentes
so necessrios implementao de um sistema digital, mais complexo ele e,
conseqentemente, mais difcil de entender seu funcionamento e de projet-lo. Da a
importncia do uso de nveis de abstrao no processo de projeto de sistemas digitais.
Um nvel de abstrao, ou de granularidade, caracterizado pelo tipo de objetos
utilizados na representao. Em geral, pode-se identificar quatro diferentes tipos de objetos
em um produto eletrnico: transistores, portas, registradores e processadores. Os
correspondentes nveis de abstrao so sumarizados na tabela 1.1.
1
Cout ULA controle
1
R3
A figura 1.5 mostra o diagrama de blocos mais detalhado para a unidade lgico-
aritmtica (ULA) da figura 1.4. J a figura 1.6 detalha o somador completo, que o tipo de
bloco usado para compor a ULA.
I3 I2 I1 I0
Ci Ci Ci Ci
R3 3 R3 2 R3 1 R3 0
R1 i Ii
FAD i
Ci
X0
A0 A1 A2 X1
O0
Co
R3 i
se (controle=0)
R3_ R1+R2;
seno
R3_ R1-R2;
Esta descrio indica que o valor de controle determina se a ULA realizar uma
soma ou uma subtrao.
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 1-6
Nesta seo, iremos estudar os tipos de dados mais comumente encontrados nos
sistemas digitais, mostrando como eles podem ser codificados em formato binrio. Os dados
encontrados nos sistemas digitais (note-se que os computadores atuais so sistemas digitais)
podem ser classificados em uma das seguintes categorias:
Nmeros usados em clculos aritmticos;
Letras do alfabeto, usadas no processamento de dados;
Smbolos discretos, usados para diversos propsitos
Note que, no nmero anterior, o peso de cada posio 10i, onde i corresponde
posio do dgito, contada a partir da direita, e sendo i=0. para o dgito mais direita.
Em geral, qualquer nmero decimal D , no formato d1 d0 d-1 d-2 tem como valor:
onde h m dgitos esquerda do ponto e n dgitos direita do ponto. Note que, se no houver
ponto, assume-se que este est direita do dgito mais direita. O valor deste nmero o
somatrio dos produtos de cada dgito pela correspondente potncia da base:
m1
D= d i ri
i = n
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 1-7
i= n
101012 = 1 16 + 0 8 + 1 4 + 0 2 + 1 1 = 2110
111 7 7 7
1000 10 8 8
1001 11 9 9
1010 12 10 A
1011 13 11 B
1100 14 12 C
1101 15 13 D
1110 16 14 E
1111 17 15 F
10000 20 16 10
10001 21 17 11
A tabela 1.3 mostra os inteiros binrios de 0 a 10001 e seus equivalentes octal, decimal
e hexadecimal codificados em binrio.
Note que nestes exemplos foram adicionados zeros esquerda, de modo que todos os
grupos tivessem 3 dgitos, no caso da converso direta binrio-octal, e 4 dgitos no caso da
converso direta binrio-hexadecimal.
A converso no sentido oposto tambm bastante simples. Substitui-se cada dgito
octal ou hexadecimal pelo conjunto de 3 ou 4 dgitos binrios que o representa.
m1
D= d i ri
i = n
Desta equao, possvel derivar um procedimento iterativo que obtm cada um dos
dgitos do nmero a partir do mais significativo, acumulando a soma decimal ponderada.
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 1-10
Essa equao tambm um bom ponto de partida para converter um nmero decimal
D para outra base r qualquer. Se dividirmos D por r na equao, a parte parametrizvel da
equao representa o quociente
com resto R = d0 . Em outras palavras, d0 obtido como o resto da diviso inteira de D por r.
Alm disso, como o quociente Q na equao anterior tem o mesmo formato do nmero
original, sabe-se que sucessivas divises por r permitem obter-se sucessivos dgitos de D, da
direita para a esquerda, at que todos os dgitos de D tenham sido encontrados.
Nmeros binrios positivos podem ser representados como nmeros sem sinal. No
entanto, para se representarem nmeros negativos, necessria a utilizao de alguma
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 1-12
1238910:
00011112:
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 1-13
Exemplo 1.7: determine o intervalo de representao para nmeros binrios com 4 dgitos
(bits), assumindo-se o uso de complemento de 2
Pelas frmulas acima, conclui-se que o intervalo de representao para nmeros de
quatro bits em complemento de 2 vai de -2 3 = -8 at 2 3 - 1 = +7.
0010 (+2)
+ 0100 (+4)
0110 (+6)
Da mesma maneira, somar dois nmeros negativos sempre produzir uma soma
negativa correta, desde que seja ignorado o bit de carry alm do bit de sinal:
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 1-14
1110 (-2)
+ 1100 (-4)
1010 (-6)
No entanto, existem casos em que uma operao produz um resultado que excede o
intervalo de representao do sistema numrico, criando uma condio chamada estouro ou
overflow.
Via de regra, a adio de dois nmeros com sinais diferentes nunca produz um
overflow. Entretanto, quando se somam dois nmeros com o mesmo sinal que produz uma
soma que maior que o maior nmero representvel, pode-se obter um resultado incorreto.
Por exemplo,
0100 (+4)
+ 0101 (+5)
1001 (-7)
Do mesmo modo,
1100 (-4)
+ 1011 ( -5)
0111 (+7)
Como os exemplos sugerem, possvel identificar uma regra simples para detectar
overflow em adies: ocorre um overflow sempre que o sinal da soma diferente do sinal dos
operandos. Mas, como ser visto, para implementar um circuito implementando a soma,
mais fcil identificar oveflow usando a seguinte regra: ocorre um overflow sempre que os bits
de carry para o bit de sinal e a partir do bit de sinal so diferentes.
Para realizar a subtrao em complemento de dois, pode-se usar o mesmo
procedimento usado para nmeros binrios sem sinal e as regras para a deteco de overflow
so as mesmas da adio. Mas, para implementar a subtrao no se usa este procedimento.
Ao invs disto, faz-se o complemento de dois do nmero que se quer subtrair (subtraendo) e
faz-se a soma dele com o nmero do qual vai se subtrair. Por exemplo,
0010 (+2)
+ 1100 Complemento de dois de (+4)
000 Carries
1110 ( -2) Em complemento de dois
Exerccios
1238910:
101112: 32 - 23 = 9 = 10012
10110012:
00011112:
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 1-16
00011112:
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)
2 lgebra Booleana e Circuitos Lgicos
Uma definio para a operao OU, que tambm denominada adio lgica, :
A operao OU resulta 1 se pelo menos uma das variveis de entrada vale 1.
Como uma varivel Booleana ou vale 1 ou vale 0, e como o resultado de uma operao
qualquer pode ser encarado como (ou atribudo a) uma varivel Booleana, basta que
definamos quando a operao vale 1. Automaticamente, a operao resultar 0 nos demais
casos. Assim, pode-se dizer que a operao OU resulta 0 somente quando todas as variveis
de entrada valem 0.
Um smbolo possvel para representar a operao OU +, tal como o smbolo da
adio algbrica (dos reais). Porm, como estamos trabalhando com variveis Booleanas,
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-2
sabemos que no se trata da adio algbrica, mas sim da adio lgica. Outro smbolo
tambm encontrado na bibliografia .
Listando as possibilidades de combinaes entre dois valores Booleanos e os
respectivos resultados para a operao OU, tem-se:
0+0 = 0
0+1 = 1
1+0 = 1
1+1 = 1
Note que a operao OU s pode ser definida se houver, pelo menos, duas variveis
envolvidas. Ou seja, no possvel realizar a operao sobre somente uma varivel. Devido a
isso, o operador + (OU) dito binrio.
Nas equaes, no costuma-se escrever todas as possibilidades de valores. Apenas
adotamos uma letra (ou uma letra com um ndice) para designar uma varivel Booleana. Com
isso, j se sabe que aquela varivel pode assumir ou o valor 0 ou o valor 1. Ento, supondo
que queiramos demonstar o comportamento da equao A+B (l-se A ou B), poderamos
faz-lo utilizando uma tabela verdade, como segue:
A B A+B
0 0 0
0 1 1
1 0 1
1 1 1
A B C A+B+C
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 1
00 = 0
01 = 0
10 = 0
11 = 1
Assim como a operao OU, a operao E s pode ser definida entre, pelo menos duas
variveis. Ou seja, o operador (E) tambm binrio.
Para mostrar o comportamento da equao A B (l-se A e B), escreve-se uma tabela
verdade, como segue:
A B AB
0 0 0
0 1 0
1 0 0
1 1 1
A B C ABC
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 1
0 = 1
1 = 0
Dada a equao que descreve uma funo Booleana qualquer, deseja-se saber
detalhadamente como esta funo se comporta para qualquer combinao das variveis de
entrada. O comportamento de uma funo descrito pela sua tabela verdade e este problema
conhecido como avaliao da funo ou da expresso que descreve a funo considerada. Em
suma, deseja-se achar a tabela verdade para a funo Booleana.
Uma tabela verdade consiste basicamente de um conjunto de colunas, nas quais so
listadas todas as combinaes possveis entre as variveis de entrada ( esquerda) e o
resultado da funo ( direita). Tambm, pode-se criar colunas intermedirias, onde so
listados os resultados de subexpresses contidas na expresso principal. Isto normalmente
facilita a avaliao, principalmente no caso de equaes muito complexas e/ou contendo
muitas variveis.
Quando numa mesma equao Booleana aparecem operaes E e OU, necessrio
seguir a ordem de precedncia. Tal como na lgebra dos reais, a multiplicao (lgica) tem
precedncia sobre a adio (lgica). Alm disso, expresses entre parntesis tm precedncia
sobre operadores E e OU que estejam no mesmo nvel. Quanto complementao, esta deve
ser avaliada to logo seja possvel. Caso a complementao seja aplicada sobre uma
subexpresso inteira, necessrio que se avalie primeiramente a subexpresso para, s aps,
inverter o seu resultado.
O nmero de combinaes que as variveis de entrada podem assumir pode ser
calculado por 2n, onde n o nmero de variveis de entrada.
O procedimento para a criao da tabela verdade a partir de uma equao Booleana :
1. Criar colunas para as variveis de entrada e listar todas as combinaes
possveis, utilizando a frmula no de combinaes = 2n (onde n o
nmero de variveis de entrada);
2. Criar uma coluna para cada varivel de entrada que aparea
complementada na equao e anotar os valores resultantes;
3. Avaliar a equao seguindo a ordem de precedncia, a partir do nvel de
parntesis mais internos:
1o multiplicao lgica
2o adio lgica
Tomemos como exemplo a expresso W = X + Y Z . A varivel W representa a
funo Booleana propriamente dita. Esta varivel depende das variveis que esto direita do
sinal =, ou seja, depende de X, Y e Z. Logo, so 3 as variveis de entrada. O total de
combinaes entre 3 variveis ser 23=8. Ento, a tabela verdade para W dever ter 3 colunas
esquerda e 8 linhas. Seguindo o procedimento dado acima, cria-se uma coluna, na qual
listam-se os valores para Z. Aps, inicia-se a avaliao propriamente dita, a partir do nvel
mais interno de parntesis. Como no h parntesis na expresso, resolvem-se as
subexpresses que envolvem a operao E. No caso em questo, h somente uma tal
subexpresso, que X Y . Ento, cria-se uma coluna para X Y , na qual anotam-se os
resultados para este produto. Finalmente, utilizam-se os resultados de X Y , listados na
coluna anterior, para operar o OU com a varivel X. Repare os passos descritos na tabela
verdade que segue. Nela, os parntesis em torno do produto X Y indicam somente que este
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-6
termo j foi avaliado e que no passo referente a esta coluna, tomaram-se apenas os valores
previamente encontrados.
X Y Z Z X Y W = X + Y Z
0 0 0 1 0 0
0 0 1 0 0 0
0 1 0 1 1 1
0 1 1 0 0 0
1 0 0 1 0 1
1 0 1 0 0 1
1 1 0 1 1 1
1 1 1 0 0 1
J vimos que uma funo Booleana pode ser representada por uma equao ou
detalhada pela sua tabela verdade. Mas uma funo Booleana tambm pode ser representada
de forma grfica, onde cada operador est associado a um smbolo especfico, permitindo o
imediato reconhecimento visual. Tais smbolos so conhecidos por portas lgicas.
Na realidade, mais do que smbolos de operadores lgicos, as portas lgicas
representam recursos fsicos, isto , circuitos eletrnicos, capazes de realizar as operaes
lgicas. Na eletrnica que trabalha com somente dois estados, a qual denominada eletrnica
digital, o nvel lgico 0 normalmente est associado ausncia de tenso (0 volt) enquanto o
nvel lgico 1, presena de tenso (a qual geralmente 5 volts). Nesta disciplina, nos
limitaremos ao mundo da lgebra Booleana, admitindo que as portas lgicas representam
tambm circuitos eletrnicos que, de alguma maneira, realizam as funes Booleanas
simbolizadas. Ento, ao conjunto de portas lgicas e respectivas conexes que simbolizam
uma equao Booleana, denominaremos circuito lgico.
2.3.1 Porta OU
O smbolo da porta OU pode ser visto na figura 2.1. Tal como na porta E, as entradas
so colocadas esquerda e a sada, direita. Deve haver no mnimo duas entradas, mas h
somente uma sada. O funcionamento da porta E segue a definio da operao E, dada na
seo 2.1.1.
A
A A+B A+B+C
B
B C
(a) (b)
Figura 2.1 - Smbolo da porta lgica OU com 2 entradas (a) e com 3 entradas (b).
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-7
2.3.2 Porta E
A A.B.C
A A.B
B
B C
(a) (b)
Figura 2.2 - Smbolo da porta lgica E com 2 entradas (a) e com 3 entradas (b).
A
A
Figura 2.3 - Smbolo do inversor (tambm conhecido como negador ou porta inversora).
Dada uma equao Booleana qualquer, possvel desenhar-se o circuito lgico que a
implementa. O circuito lgico composto das portas lgicas relacionadas s operaes que
so realizadas sobre as variveis de entrada. Os resultados das operaes so conduzidos por
fios, os quais, no desenho, so representados por linhas simples.
Os passos a serem seguidos para se realizar o desenho do circuito lgico a partir de
uma equao so praticamente os mesmos usados na avaliao da expresso. Tomemos como
exemplo a equao, avaliada na seo 2.2. Inicialmente, identificamos as variveis
independentes, que no caso so X, Y e Z. Para cada uma destas, traamos uma linha (da
esquerda para a direita), representando os fios que conduzem os valores. Feito isto, deve-se
seguir desenhando as portas necessrias para representar cada uma das subexpresses, na
mesma ordem tomada para a avaliao, ou seja:
1o parntesis (dos mais internos para os mais externos);
2o operaes E;
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-8
3o operaes OU.
X
W
Y
As leis da lgebra Booleana dizem respeito ao espao Booleano (isto ., valores que
uma varivel pode assumir) e operaes elementares deste espao. J as propriedades podem
ser deduzidas a partir das definies das operaes.
Sejam A e B duas variveis Booleanas. Ento, o espao Booleano definido:
se A0, ento A=1;
se A1, ento A=0.
As operaes elementares deste espao so operao OU, operao E e
complementao, cujas definies foram dadas nas sees 2.1.1, 2.1.2 e 2.1.3,
respectivamente.
As propriedades da lgebra Booleana so as seguintes.
Da adio lgica:
(1) A+0 = A
(2) A +1 = 1
(3) A+A = A
(4) A+A = 1
Da multiplicao lgica:
(5) A 0 = 0
(6) A 1 = A
(7) A A = A
(8) A A = 0
Da complementao:
(9) A=A
Comutatividade:
(10) A + B = B+ A
(11) A B = B A
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-9
Associatividade:
(12) A +(B + C ) =(A + B )+ C = ( A + C )+ B
(13) A (B C) = (A B) C = (A C) B
A + B = A B (2.4)
Dada uma funo Booleana, descrita por sua tabela verdade, derivar uma expresso
Booleana para esta funo encontrar uma equao que a descreva. Logo, a derivao de
expresses Booleanas o problema inverso da avaliao de uma expresso Booleana, descrito
na seo 2.2
H basicamente duas maneiras de se definir (ou descrever) uma funo Booleana:
descrevendo-se todas as situaes das variveis de entrada para as quais a funo vale 1 ou,
alternativamente, todas as situaes em que a funo vale 0. O primeiro mtodo conhecido
por soma de produtos (SdP), enquanto que o segundo chamado produto de somas (PdS).
Qualquer funo Booleana pode ser descrita por meio de soma de produtos ou por meio de
produto de somas. Como as funes Booleanas s podem assumir um dentre dois valores (0
ou 1), basta usar-se um dos dois mtodos para se encontrar uma equao para uma funo.
A seguir, so detalhados os mtodos de derivao de expresses Booleanas.
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-10
Dada uma funo Booleana de n variveis (ou seja, n entradas), haver 2n combinaes
possveis de valores. Dizemos que esse conjunto de valores que as variveis podem assumir,
juntamente com os respectivos valores da funo, constituem o espao da funo. A cada
combinao de entradas podemos associar um termo produto, no qual todas as variveis da
funo esto presentes, e que construdo da seguinte forma: se a varivel correspondente
vale 0, ela deve aparecer negada; se a varivel vale 1, ela deve aparecer no negada. A tabela
a seguir lista os termos produto associados a cada combinao de entradas para uma funo
Booleana de trs variveis (A, B e C, por exemplo).
A B C mintermo
0 0 0 A B C
0 0 1 A B C
0 1 0 A B C
0 1 1 A B C
1 0 0 A B C
1 0 1 A B C
1 1 0 A B C
1 1 1 A B C
Exemplo 2.1: encontrar a equao em soma de produtos (SdP) para a funo F, descrita pela
seguinte tabela verdade:
A B C F
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 0
A B C maxtermos
0 0 0 A + B+ C
0 0 1 A + B+ C
0 1 0 A + B+ C
0 1 1 A + B+ C
1 0 0 A + B+ C
1 0 1 A + B+ C
1 1 0 A + B+ C
1 1 1 A + B+ C
Exemplo 2.2: encontrar a equao em produto de somas (PdS) para a funo F, descrita pela
seguinte tabela verdade:
A B C F
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 0
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-12
Foi escolhida a mesma funo do exemplo anterior, para que se possa estabelecer
comparaes entre os dois mtodos de derivao. Os valores das variveis de entrada (A,B,C)
para os quais F=0 so (0,0,0), (0,0,1), (1,0,0) e (1,1,1). Os maxtermos associados a essas
condies (ou seja, os maxtermos 0), so A + B + C , A + B + C , A + B + C e A + B + C ,
respectivamente. Logo, a equao em produto de somas para F ser o E entre estas somas:
F =(A + B + C)(A + B + C)(A + B + C)(A + B + C) (2.7)
A B C mintermo maxtermo
0 0 0 m0 M0
0 0 1 m1 M1
0 1 0 m2 M2
0 1 1 m3 M3
1 0 0 m4 M4
1 0 1 m5 M5
1 1 0 m6 M6
1 1 1 m7 M7
E sua expresso em produto de somas, na forma cannica, pode ser reescrita como:
F = M0 M1 M4 M7 (2.10)
Ou simplesmente, como:
F = (0,1,4,7) (2.11)
Pela propriedade (4), tem-se que C + C=1. Ento, substituindo em 2.13, segue:
F = AB 1 + ABC + ABC (2.14)
produtos) Booleanas iguais equivale prpria funo Booleana em questo. Desta forma,
pode-se expandir o mintermo ABC para
ABC = ABC + ABC (2.16)
que uma manipulao algbrica decorrente da propriedade (3).
Repare que o mintermo A BC no pde ser agrupado com nenhum outro mintermo.
Note tambm que foram feitas todas as simplificaes possveis, uma vez que foram
agrupados e simplificados todos os pares de mintermos que se diferenciam de somente uma
varivel. Logo, a expresso 2.20 representa a mxima simplificao possvel sob a forma de
soma de produtos. E por esse motivo, ela dita equao mnima em soma de produtos da
funo F. Quanto a expresso 2.15, diz-se ser uma equao em soma de produtos
simplificada (porm, no-mnima). Logo, toda equao mnima simplificada, porm, nem
toda equao que foi simplificada necessariamente mnima.
Embora a equao mnima em soma de produtos apresente menor nmero de
operaes Booleanas que a representao na forma cannica, as vezes pode ser possvel
reduzir-se ainda mais o nmero de operaes, fatorando-se literais. Por exemplo, na expresso
2.20 pode-se fatorar o primeiro e o terceiro mintermos como segue:
F = B(A + C)+ A BC (2.21)
A expresso 2.21, obtida pela fatorao de 2.20, no nem do tipo soma de produtos,
nem produto de somas, pois h um termo que no nem produto, nem soma. Diz-se que a
expresso est na forma fatorada. No caso de 2.21, a fatorao no resultou em reduo do
nmero de operaes.
No que se refere a terminologia, as formas soma de produtos e produto de somas so
ditas formas padro (formas standard). A forma fatorada dita no-padro. As formas
cannicas so, pois, casos especiais de formas padro, nas quais os termos so mintermos ou
maxtermos. A fim de diferenciar somas de produtos cannicas de somas de produtos
simplificadas, usaremos a expresso soma de mintermos. De maneira similar, usaremos a
expresso produto de maxtermos para diferenciar produtos de somas cannicos de
produtos de somas simplificados.
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-15
1o nvel 2o nvel
A
O circuito da figura 2.5 pode ainda ser desenhado utilizando-se uma notao
simplificada para os inversores das entradas. Ao invs de se desenhar um inversor para cada
varivel que aparece negada na equao, coloca-se um crculo junto a cada entrada de cada
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-16
porta na qual h uma varivel negada. A aplicao desse procedimento para o circuito da
figura 2.5 resulta no seguinte desenho:
1o nvel 2o nvel
A
B
C
Figura 2.6 - Um circuito lgico para soma de produtos - outra possvel representao.
1o nvel 2o nvel
A
B
C
Pelo fato de apresentarem apenas dois nveis de portas (dois nveis lgicos), circuitos
para equaes representadas nas formas padro, cannicas ou simplificadas, so ditos
circuitos em dois nveis (ou lgica a dois nveis).
Dada a equao cannica de uma funo qualquer, o circuito para uma equao
simplificada a partir da cannica possui menos portas e/ou portas de menor complexidade. (A
complexidade relativa de uma porta pode ser medida pelo nmero de entradas que ela
apresenta). A figura 2.8 mostra o circuito lgico para a equao 2.20, que a forma mnima
para a funo da equao 2.12. Note que este circuito de menor complexidade que o circuito
da figura 2.6. A complexidade relativa de um circuito lgico pode ser calculada somando-se o
nmero de entradas das portas. Nos circuitos das figuras 2.6 e 2.7 h 4 portas de 3 entradas e
1 porta de 4 entradas. Ento, a complexidade relativa ser 4x3+1x4=16. No circuito da figura
2.8 h 2 portas de 2 entradas e 2 portas de 3 entradas. Sua complexidade relativa ser
2x2+2x3=10. Claramente, o circuito da figura 2.8 de menor complexidade que os circuitos
das figuras 2.6 e 2.7. Estes dois so de mesma complexidade relativa. No clculo da
complexidade relativa, as inverses normalmente no so levadas em conta.
Circuitos para formas fatoradas podem ser vistos como o caso mais genrico. Em
geral, as formas fatoradas conduzem a circuitos cujo nmero de nveis lgicos maior do que
dois. Por isso, circuitos lgicos para formas fatoradas so denominados circuitos multinvel
(lgica multinvel). Como dito na seo 2.6, as vezes uma forma fatorada pode apresentar
menor nmero de operaes do que a respectiva forma padro. Quando isso ocorre, o circuito
associado forma fatorada tambm ser de menor complexidade relativa. Entretanto, se no
ocorrer reduo no nmero de operaes, mesmo assim possvel que o circuito para a forma
fatorada seja de menor complexidade relativa, pois o conceito de complexidade relativa
tambm inclui o nmero de entradas de cada porta. Ento, a maneira mais segura de saber se o
circuito associado forma fatorada de menor complexidade ou no desenh-lo e somar o
nmero de entradas. A figura 2.9 mostra o circuito para a equao 2.21, obtida a partir da
equao 2.20 fatorando-se o literal B. Note que o nmero de operaes Booleanas destas
equaes o mesmo: 4. No entanto, a complexidade do circuito da forma fatorada
3x2+1x3=9, portanto menor do que a complexidade do circuito da figura 2.8.
1o nvel 2o nvel
A
B
A
C
F
B
Figura 2.9 - Circuito lgico multinvel, associado equao 2.21, a qual est na forma
fatorada.
A B C A B C A B C A B C
A B C A B C A B C A B C
Repare que nessa nova tabela, quaisquer dois mintermos adjacentes (na horizontal ou
na vertical) so passveis de serem simplificados, pois s se diferenciam de uma varivel.
importante ressaltar que esse conceito de adjacncia no est restrito aos limites da tabela,
uma vez que os elementos extremos de uma mesma linha (ou de uma mesma coluna) tambm
so simplificveis. Isto implica que a tabela de adjacncias de mintermos da figura 2.11 pode
e deve ser encarada como uma figura geomtrica tridimensional do tipo toride (ou uma
rosquinha). A figura a seguir explicita as relaes de adjacncia dos mintermos para uma
funo de trs variveis.
m0 m1 m3 m2
m4 m5 m7 m6
Exemplo 2.3: simplificar a funo F, cuja tabela verdade encontra-se no item 2.5.2.
O primeiro passo construir uma tabela para F, usando a nova disposio dos
mintermos.
C
F AB
BC
A 00 01 11 10
0 0 0 1 1
A 1 0 1 0 1
A BC B BC
Figura 2.13 - Grupos de mintermos-1 adjacentes e termos produto para uma funo de 3
variveis.
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-20
Aps, deve-se identificar todos os grupos de mintermos-1 adjacentes entre si. Cada
grupo de mintermos-1 originar um produto, conforme indicado na figura 213. A equao em
soma de produtos simplificada ser o OU entre os produtos encontrados:
F = A B + A BC + BC (2.22)
0 m0 m1
A 1 m2 m3
nome da C
funo
BC
A 00 01 11 10
0 m0 m1 m3 m2
A 1 m4 m5 m7 m6
nome da D
funo
CD
AB 00 01 11 10
00 m0 m1 m3 m2
01 m4 m5 m7 m6 B
10 m8 m9 m11 m10
C
Figura 2.14 - Mapas de Karnaugh para funes de 2, 3 e 4 variveis.
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-21
O primeiro passo para simplificar-se uma funo usando mapa de Karnaugh escolher
o mapa conforme o nmero de variveis da funo e preencher os valores dos mintermos
conforme a tabela verdade fornecida, ou conforme a equao fornecida. O segundo passo
identificar grupos de mintermos adjacentes que formem grupos de 2m elementos adjacentes
entre si, com 0mn, onde n o nmero de variveis da funo. Estes grupos so
denominados subcubos.
No caso de se querer encontrar uma expresso em soma de produtos, estaremos
interessados nos subcubos de mintermos-1. Ento, cada subcubo contendo mintermos-1 ir
originar um produto, no qual uma ou mais variveis podero estar ausentes devido
simplificao que obtida. Os produtos associados aos subcubos de mintermos-1,
simplificados ou no, so denominados implicantes. importante ressaltar que quanto maior
o nmero de elementos do subcubo, maior ser a simplificao obtida.
D
F0
CD
AB 00 01 11 10
00 0 0 0 0
01 1 1 1 1 B
11 0 0 0 0
A
10 0 0 0 0
D
F1
CD
AB 00 01 11 10
00 0 0 0 0
01 1 1 0 0 B
11 1 1 0 0
A
10 0 0 0 0
C
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-22
D
F2
CD
AB 00 01 11 10
00 0 1 1 0
01 0 0 0 0 B
11 0 0 0 0
A
10 0 1 1 0
D
F3
CD
AB 00 01 11 10
00 1 0 0 1
01 0 0 0 0 B
11 0 0 0 0
A
10 1 0 0 1
D
F4
CD
AB 00 01 11 10
00 1 1 1 1
01 1 0 1 1 B
11 1 0 1 1
A
10 1 1 1 1
D
F5
CD
AB 00 01 11 10
00 0 1 1 0
01 0 1 1 0 B
11 0 1 1 0
A
10 0 1 1 0
D
F6
CD
AB 00 01 11 10
00 0 1 1 0
01 0 1 1 0 B
11 0 1 1 0
A
10 0 1 1 0
C
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-24
D
F7
CD
AB 00 01 11 10
00 0 1 1 1
01 1 1 1 1 B
11 1 1 1 1
A
10 1 1 0 0
Observaes:
1. Cada mintermo-1 pode ser coberto por mais de um subcubo, caso isso resulte numa
simplificao maior;
3. Pode haver mais de uma expresso mnima para uma mesma funo Booleana;
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-25
Exemplo 2.6:. ache a equao mnima em soma de produtos para as funes Booleanas que
seguem:
Cobertura 1:
D
S0
CD
AB 00 01 11 10
00
01 B
A 11
10
Cobertura 2:
D
S0
CD
AB 00 01 11 10
00
01 B
A 11
10
C
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-26
Cobertura 3:
D
S0
CD
AB 00 01 11 10
00
01 B
A 11
10
S1(W,X, Y, Z) = (0,1,2,5,8.9.10)
D
S1
YZ
WX 00 01 11 10
00
01 B
A 11
10
Exemplo 2.7: determine a equao mnima em produto de somas para a funo Booleana.
S2(W,X, Y, Z) = (0,1,2,5,8,9,10)
Observao importante: repare que a funo foi especificada pela descrio de seus
mintermos-1. Mas como foi solicitada a expresso em produto de somas, uma vez montado o
mapa de Karnaugh usando a informao fornecida, passaremos a identificar os subcubos de
mintermos-0.
Z
S2
YZ
WX 00 01 11 10
00
01 X
W 11
10
S3(A,B,C,D) = (1,2,3,6,7,8,9,12,14)
Obs: existe mais de uma cobertura mnima possvel para essa funo.
Cobertura 1 para soma de produtos:
D
S3
CD
AB 00 01 11 10
00
01 B
11
A
10
C
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-28
00
01 B
11
A
10
C
Cobertura 1 para produto de somas:
D
S3
CD
AB 00 01 11 10
00
01 B
11
A
10
C
Cobertura 2 para produto de somas:
D
S3
CD
AB 00 01 11 10
00
01 B
11
A
10
C
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-29
onde o conjunto de condies de dont care est especificado por DC Repare que no caso
de uma funo que contenha condies de dont care (ou seja, uma funo incompletamente
especificada), no basta dizer somente onde esto os uns (ou somente os zeros) da funo:
necessrio informar tambm quais condies de entrada no so especificadas, o que feito
pelo conjunto DC.
D
S5
CD
AB 00 01 11 10
00
01 B
11
A
10
Observaes:
Iremos identificar cada condio de entrada no especificadas (ou dont care) por
meio de um X (xis maisculo). O valor que ser assumido para um dont care
totalmente independente dos demais dont cares;
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-30
Exemplo 2.10:. dada a funo que segue, determinar as equaes mnimas em SdP (soma de
produtos) e em PdS (produto de somas) para a funo dada. Desenhar os
respectivos circuitos lgicos e identificar, o circuito de menor complexidade
(entre SdP e PdS).
00
01 B
11
A
10
C
Cobertura para produto de somas:
D
S6
CD
AB 00 01 11 10
00
01 B
11
A
10
C
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-31
Observao: um mesmo dont care pode assumir um valor lgico para a cobertura em
SdP e outro valor lgico para a cobertura em PdS, pois as coberturas so totalmente
independentes.
Cada linha na tabela acima representa uma funo de duas variveis e os nomes destas
funes so dados na primeira coluna. As tabelas verdades de cada uma das funes so dadas
na terceira coluna. Note que cada funo foi designada por Fi onde i o decimal equivalente
ao nmero binrio que obtido interpretando-se os valores das funes dados na terceira
coluna como nmeros binrios.
Cada uma destas funes pode ser dada em termos de operaes E, OU e
complemento. Como pode ser visto na tabela, existem duas funes constantes, 0 e 1, que
retornam sempre 0 ou 1, respectivamente, independente de que valores se tem na entrada.
Existem quatro funes de uma varivel, que representam o complemento e a transferncia. E
existem 10 funes que definem oito operaes binrias: E, inibio, XOR, OU, NOR,
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-32
Figura 2.15 - Smbolos para portas lgicas com respectivos atrasos e custos
Na figura acima, os nmeros dentro do smbolo de cada porta lgica indica o atraso
atravs da porta, ou seja, o tempo que leva para que o resultado da operao lgica
correspondente aparea na sada da porta, quando se aplica valores na entradas. Assim, por
exemplo, a porta NOR possui um atraso de propagao de 1,4 ns. O nmero ao lado do
smbolo de uma porta lgica indica a quantidade de transistores necessrios para implement-
la. Assim, pode-se notar que a implementao de uma porta XOR (14 transistores) mais
"cara" que a implementao de uma porta XNOR (12 transistores). Evidentemente, para
portas lgicas com mltplas entradas (mais de duas entradas) estes valores so diferentes. A
figura 2.16 mostra portas lgicas com mltiplas entradas.
A A A (A.B.C.D)
A+B+C+D A.B.C.D
B B B
3,2 3,2 2,2
C C C
D D 10 D 8
10
A
A A+B+C A+B+C+D
2,8 B
B 3,2
C
C
D
8 10
2.11 Mapeamento
circuito e permite eliminar quaisquer dois inversores que aparecem um seguido do outro no
circuito. A figura 2.17 ilustra graficamente as regras dadas acima.
Regra 1:
Regra 2:
Regra 3:
Regra 4:
Regra 5:
Exemplo 2.11: encontrar uma implementao usando apenas portas NAND e outra
implementao usando apenas portas NOR para a funo de carry
ci +1 = xi yi + xi ci + y i ci ou ci +1 = ( xi + y i )( xi + ci )( y i + ci ) .
xi xi
yi 1,4
2,4
yi
c(i+1)
2,4 c(i+1) ci 1,4 1,8
ci 2,8
1,4
2,4
xi
xi
1,4
2,4 yi
yi
c(i+1) c(i+1)
2,4 ci 1,4 1,8
ci 2,8
1,4
2,4
Figura 2.18 soma de produtos e produto de somas com portas NAND e portas NOR,
respectivamente.
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-35
tempo
Quando uma varivel Booleana se modifica ao longo do tempo, ela costuma ser
chamada de sinal. Portanto, na anlise temporal (tambm conhecida como anlise de timing)
de um circuito, pode-se associar um sinal a cada entrada do circuito e a cada sada de cada
porta do circuito (o conjunto de entradas e de sadas de portas de um circuito chamado ns
ou nodos do circuito.) Normalmente, os sinais referentes s entradas de um circuito so
dados.
As portas lgicas so fabricadas com material semicondutor (silcio). Apesar das
reduzidas dimenses que a tecnologia atual permite que sejam alcanadas, as portas lgicas
no conseguem responder de maneira instantnea s variaes em suas entradas. Ao tempo
que decorre entre alguma das entradas de uma porta se modificar e essa modificao se
propagar at a sada, d-se o nome de atraso (da porta lgica). O atraso de uma porta P
normalmente representado por td(P) ou tdP ou tp(P) ou ainda tpP. importante ressaltar que
cada porta lgica pode apresentar um atraso diferente, mesmo em se tratando de portas de
mesma funo e mesmo nmero de entradas. O valor do atraso de uma porta depende de
vrios fatores, dentre eles a tecnologia de fabricao, as dimenses dos transistores que a
compem, a temperatura do local de operao etc.
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-36
Exemplo 2.11: determinar o sinal de sada S da porta que segue, a partir dos sinais A e
B aplicados s suas entradas.
A
S
B
Exemplo 2.11: determine as formas de onda e os atrasos envolvidos para S1, S2, S3
e S no circuito que segue, a partir das entradas fornecidas. Considere que as portas 1 e 2 tm o
mesmo valor para o atraso individual. Identifique o atraso total do circuito, indicando as
parcelas que o compem.
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-37
A S1
1
B
S2 S
2 4
C
D 3
S3
S1
S2
S3
S
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-38
Exerccios
Exerccio 2.1 - Dada a equao abaixo (que est na forma fatorada), use as propriedades da
lgebra Booleana para encontrar a equao mnima em soma de produtos.
S = Z (X + X Y)
S4(x0 , x1 , x2 , x3 ) = (1,3,5,7,8,9,11,13)
Cobertura para soma de produtos:
x3
S4
x2x3
x0x1 00 01 11 10
00
01 x1
11
x0
10
x2
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-39
x3
S4
x2x3
x0x1 00 01 11 10
00
01 x1
11
x0
10
x2
Exemplo 2.11:. dada a funo que segue, determinar as equaes mnimas em SdP (soma de
produtos) e em PdS (produto de somas) para a funo dada. Desenhar os
respectivos circuitos lgicos e identificar, o circuito de menor complexidade
(entre SdP e PdS).
Observao: neste caso, h duas coberturas mnimas para SdP. Determine cada uma nos dois
primeiros mapas.
Cobertura 1 para soma de produtos:
D
S7
CD
AB 00 01 11 10
00
01 B
11
A
10
C
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-40
D
S7
CD
AB 00 01 11 10
00
01 B
11
A
10
D
S7
CD
AB 00 01 11 10
00
01 B
11
A
10
C
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 2-41
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)
[4] BROWN, Stephen; VRANESIC, Zvonko. Fundamentals of Digital Logic with VHDL
Design, McGraw-Hill Higher Education (a McGraw-Hill Company), 2000 (ISBN texto:
0-07-012591-0 CD parte da coleo: 0-07-235596-4)
[5] ERCEGOVAC, Milos; LANG, Toms; MORENO, Jaime H. Introduo aos Sistemas
Digitais. Porto Alegre: Bookman, 2000 (ISBN: 85-7307-698-4)
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.
circuito
m sadas
n entradas combinacional (m equaes B ooleanas)
sadas
en tra das
ci rcui to
combin acio nal elementos de
mem ria
va rive is do
e stadoatua l
va ri ve is de relgio
p r ximo es tado (clock )
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=
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 3-3
T1 T5
B T2
C
F1
T3
T4
T6
F2
D
Exemplo 3.1: projetar um circuito que recebe um inteiro binrio de 3 bits e determina se este
nmero menor ou igual a 3. Usar somente portas NAND de duas entradas e inversores.
menor
A1A0
A2 00 01 11 10
1
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 3-4
menor=
3.3.1 Decodificadores
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
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 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
D2
D0
D1
D2
A0
DE C 3x8 D3
A1 D3
D4
A2
D5
D6
D7 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.
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 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:
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):
sadas
E A1 A0 D0 D1 D2 D3
desabilitadas - 0 X X 0 0 0 0
0 1 0 0 1 0 0 0
1 1 0 1 0 1 0 0
2 1 1 0 0 0 1 0
3 1 1 1 0 0 0 1
A figura 3.4a mostra o smbolo para esse decodificador e a figura 3.4b mostra uma
possvel implementao (circuito lgico).
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 3-8
A0
A1 D0
D0 D1
A0 D1
DE C 2x4
A1
D2
D2
D3
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
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
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 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 Y
MUX 4 -1 Y
A2
A2
A3
A3
A1 A 0 A1 A0
(a) (b)
A operao aritmtica mais simples a adio de dois dgitos binrios (bits), a qual
pode ser vista como a adio de dois nmeros binrios de um bit cada. Considerando-se todas
as 4 combinaes de valores que podem ocorrer, os resultados possveis dessa adio so:
0+0=0
0+1=1
1+0=1
1 + 1 = 10
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 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 S
meio so mador
(HAD)
B Cout
Figura 3.6 - Esquema das entradas e sadas de um meio somador (half adder ou HAD).
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
1 1 0 1
A + 1 1 0 1
B 1 1 0 1
resultado 1 0 1 0
transporte 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 B Cin Cout S
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 3-12
S
BCin
A 00 01 11 10
0 0 1 0 1
1 1 0 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 00 01 11 10
0 0 0 1 0
1 0 1 1 1
A
S
B
Cin
Cout
B A
S
Figura 3.10 - Representao de bloco para o somador completo (full adder ou FAD).
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 3-14
B3 A3 B2 A2 B1 A1 B0 A0
C4 C3 C2 C1 C0
FAD3 FAD2 FAD1 FAD0
S3 S2 S1 S0
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
sel2
C4 C3 C2 C1
FAD3 FAD2 FAD1 FAD0 sel1
S3 S2 S1 S0
3.4.4 O multiplicador
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 B0 multiplicando
A1 A0 multiplicador
C3 C2 transportes
+ A0 B 1 A0 B0
A1 B 1 A1 B 0 -
M3 M2 M1 M0 resultado
A0
B1 B0
A1
B1 B0
C2
C3 HAD HAD
Co Co
M3 M2 M1 M0
Figura 3.13 - Multiplicador de 2 bits.
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.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.
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)
4 Circuitos Seqenciais
Conforme j citado no captulo 3, os circuitos lgicos dos sistemas digitais podem ser
de dois tipos: circuitos combinacionais ou circuitos seqenciais. Um circuito combinacional
constitudo de um conjunto de portas lgicas, as quais determinam os valores das sadas
diretamente a partir dos valores atuais das entradas.
A figura 4.1 mostra o diagrama de blocos de um circuito seqencial. Um circuito
seqencial composto por um circuito combinacional e elementos de memria. As
entradas e as sadas do circuito seqencial esto conectadas somente ao circuito
combinacional. Os elementos de memria so circuitos capazes de armazenar informao
codificada em binrio. Algumas das sadas do circuito combinacional so entradas para os
elementos de memria, recebendo o nome de variveis do prximo estado. J as sadas dos
elementos de memria constituem parte das entradas para o circuito combinacional e recebem
o nome de variveis do estado atual. As conexes entre o circuito combinacional e os
elementos de memria configuram o que se costuma chamar lao de realimentao, pois a
sada de um bloco entrada para o outro e vice-versa.
A informao armazenada nos elementos de memria num dado instante determina o
estado em que se encontra o circuito seqencial. O circuito seqencial recebe informao
binria das entradas que, juntamente com a informao do estado atual, determinam os
valores das sadas e os valores do prximo estado (vide figura 4.1). Desta forma, fica
evidente que as sadas de um circuito seqencial dependem no apenas das entradas, mas
tambm do estado atual, armazenado nos elementos de memria. E o mesmo pode ser dito
para as variveis de prximo estado. Em funo deste comportamento seqencial, um circuito
seqencial especificado pela seqncia temporal de entradas, sadas e estados internos.
entradas .
.
.
.
sadas
. .
circuito
combinacional variveis do
estado atual
elementos de
. . memria .
. . .
. . .
variveis do
prximo estado
Figura 4.1 - Diagrama de blocos de um circuito seqencial.
borda
descendente
Exemplo 4.1: um circuito digital sncrono cadenciado pelo uso de um sinal de relgio de
200 MHz. Qual o maior atraso permitido para um circuito combinacional
qualquer dentro deste circuito.
Ora, se esse circuito deve trabalhar freqncia de 200 MHz, ento, cada um de seus
blocos combinacionais deve ter um atraso inferior ao perodo do relgio, o qual pode ser
calculado por:
1
T= 6
= 0,005x10 6 s = 5x10 9 s = 5ns
200x10 Hz
entradas .
.
.
.
sadas elementos
. . de memria
circuito (flip-flops)
combinacional
. . . variveis do
. . .
. . . estado atual
variveis do
prximo estado
4.1 Latches
4.1.1 O Latch RS
O latch RS o latch mais simples que existe. Ele pode ser construdo com o uso de
duas portas nor de 2 entradas cada, conectadas conforme mostra a figura 4.4. Note que h
duas entradas, chamadas R e S, e duas sadas, Q e Q . Note tambm que existe uma conexo
entre a sada Q e a outra entrada da nor n2. Existe tambm uma conexo entre a sada Q e a
outra entrada da nor n1. Conexes entre sada e entrada so denominadas realimentaes, e
no caso de circuitos digitais, so responsveis pela propriedade de armazenamento
apresentada pelo circuito.
R
n1 Q
n2 Q
S
Conforme j citado na introduo deste captulo, circuitos que possuem algum tipo de
realimentao so ditos seqenciais, pois seu comportamento no depende somente dos
valores das entradas, mas tambm do estado em que o circuito se encontra. Assim, a anlise
do funcionamento do latch RS obedecer os seguintes passos:
Identificao de uma combinao de entradas capaz de determinar o estado do latch de
maneira independente do estado anterior (se isso for possvel)
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 4-5
t0 t1 nada muda
valor indeterminado
(=desconhecido) nas sadas
td(n1) td(n2) aps t1
Figura 4.5 -Formas de onda para aplicao do vetor de entrada (R=1;S=0) seguido do vetor
(R=0;S=0) no latch RS.
t0 t1 nada muda
valor indeterminado
(=desconhecido) nas sadas
td(n2) td(n1) aps t1
Figura 4.6 -Formas de onda para aplicao do vetor de entrada (R=0;S=1) seguido do vetor
(R=0;S=0) no latch RS.
Note que para todas as situaes estudadas at aqui, os valores exibidos pelas sadas Q e
Q so sempre complementares. justamente por esse motivo que elas recebem essas
denominaes. Entretanto, se aplicarmos o vetor de entrada (R=1;S=1), ambas sadas se
estabilizaro em 1, o que conflita com o que foi colocado anteriormente. Ora, se um latch
deve ser capaz de armazenar um dentre os dois estados possveis para uma varivel Booleana
e se o estado est associado ao valor de Q e Q (Q exibe o estado e Q , o seu complemento),
ento qual seria o estado representado pela situao Q=1 e Q =1? Por no haver uma resposta
plausvel a essa pergunta, foi convencionado que esse seria um estado proibido (ou
indeterminado), de modo que a situao (R=1;S=1) deve sempre ser evitada, no caso do latch
RS.
Conforme j mencionado na introduo dessa seo, um latch, assim como um flip-flop,
pode assumir um dentre dois estados possveis. Esses estados correspondem aos valores que
uma varivel Booleana pode assumir, ou seja, 0 e 1. O estado 0 tambm chamado estado
reset e o estado 1 tambm chamado estado set.
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 4-7
Analisando-se a situao mostrada pelas formas de onda da figura 4.5, conclui-se que a
aplicao do vetor (R=1;S=0) faz com que o latch v para o estado set (i.e., a sada Q
estabiliza com o valor lgico 1), independente de seu estado anterior. Se aps isso for
aplicado o vetor (R=0;S=0), o latch no muda o seu estado. Avaliando-se agora as formas de
onda da figura 4.6, conclui-se que a aplicao do vetor (R=0;S=1) faz com que o latch v para
o estado reset (i.e., a sada Q estabiliza com o valor lgico 0), independente de seu estado
anterior. Se aps isso for aplicado o vetor (R=0;S=0), o latch no muda o seu estado.
Finalmente, pode-se afirmar que a aplicao do vetor (R=0;S=0) no muda o estado em que o
latch est. Por outro lado, o vetor (R=1;S=1) deve ser evitado, pos conduzir ao estado
proibido. Essas informaes podem ser resumidas pela tabela que segue:
R S Q Q ao
1 0 0 1 vai para estado reset
0 0 0 1 mantm estado reset (= estado anterior)
0 1 1 0 vai para estado set
0 0 1 0 mantm estado set (= estado anterior)
1 1 0 0 estado proibido
Tabela 4.1 - Resumo do funcionamento seqencial do latch RS.
A tabela anterior pode ser escrita de maneira mais compacta, de modo a incorporar a
informao da dependncia temporal.
R S Qt+1 comentrio
0 0 Qt mantm estado anterior
0 1 1 estado set
1 0 0 estado reset
1 1 - proibido
Tabela 4.2 - Tabela de transio de estados para o latch RS.
A tabela 4.2 lista os valores possveis para as entradas nas colunas mais esquerda,
admitindo que esses valores esto sendo aplicados no instante presente t. Para cada situao
de entradas, o novo valor da sada (e portanto, o novo estado do latch) para o instante
imediatamente posterior t+1 encontra-se na coluna mais direita. Como a sada Q sempre
exibe o complemento da sada Q, apenas o valor de Q listado, ficando Q subentendido.
O comportamento de circuitos seqenciais pode tambm ser expresso por meio de um
diagrama denominado diagrama de estados. Sendo o latch RS um circuito seqecial, pode-se
usar um diagrama de estados para representar seu funcionamento, conforme mostrado na
figura 4.7.
No diagrama da figura 4.7, os estados reset e set esto representados por nodos
(crculos). A transio entre estados mostrada por uma aresta (seta). A condio de entradas
segundo a qual uma determinada transio pode ocorrer est definida junto a aresta
respectiva. Por exemplo, estando o latch RS no estado reset, para que ele v para o estado set
necessrio que R=0 e S=1. Caso R=0 e S=0, o latch RS ficar no estado em que se encontra.
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 4-8
R=0 S=1
reset set
R=1 S=0
Para evitar que se tenha que desenhar o circuito completo toda a vez que houver uma
ocorrncia do latch RS, costuma-se adotar o smbolo mostrado na figura 4.8.
R Q
S Q
Exemplo 4.2: desenhar as formas de onda para as sadas do latch RS abaixo, a partir das
formas de onda fornecidas para as entradas R e S.
t1 t2
R Q
S
S Q
Q
No latch RS, cujo funcionamento foi descrito na subseo 4.1.1, uma alterao das
entradas R e S pode acarretar uma troca de estado. Porm, em alguns casos pode ocorrer que
os sinais conectados s entradas R e S sofram variaes no desejadas, sendo vlidos somente
em alguns intervalos de tempo bem determinados. Nesse caso, seria interessante que houvesse
uma entrada de maior prioridade que fosse encarregada de controlar a habilitao do latch,
deixando-o sensvel ou no aos valores das entradas R e S.
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 4-9
R R1
Q
Q
S S1
C R S Qt+1 comentrio
0 X X Qt mantm estado anterior
1 0 0 Qt mantm estado anterior
1 0 1 1 estado set
1 1 0 0 estado reset
1 1 1 - proibido
Tabela 4.3 - Tabela de transio de estados para o latch RS controlado.
C=0
C=0
(C=1 R=0 S=0)
(C=1 R=0 S=0)
(C=1 R=0 S=1)
(C=1 R=1 S=0)
reset set
R Q
C
S Q
Exemplo 4.3: desenhar as formas de onda para as sadas do latch RS abaixo, a partir das
formas de onda fornecidas para as entradas C, R e S.
t1 t2 t3 t4
R
R Q
C
S
S Q
4.1.3 O Latch D
D R Q
C C
S Q
C D Qt+1 comentrio
0 X Qt mantm estado anterior
1 0 0 estado reset
1 1 1 estado set
Tabela 4.4 - Tabela de transio de estados para o latch D.
D Q
C Q
Exemplo 4.4: desenhar as formas de onda para as sadas do latch D abaixo, a partir das
formas de onda fornecidas para as entradas.
t1 t2 t3 t4
D Q D
C Q Q
Os latches vistos at aqui apresentam lgica de ativao direta, isto , esto ativados
enquanto o controle estiver no nvel lgico 1 e desativados enquanto o controle estiver no
nvel lgico 0. possvel inverter-se essa lgica de ativao pela simples insero de um
inversor antes da entrada de controle. Assim, um latch com lgica de ativao
complementar (ou negada ou invertida) est ativado enquanto o controle vale 0 e
desativado enquanto o controle vale 1. A figura 4.14 mostra os smbolos do latch RS
controlado e do latch D, ambos com lgica de ativao complementar. Repare que a indicao
da lgica de ativao complementar feita por meio de um crculo colocado antes da entrada
de controle.
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 4-12
R Q D Q
C
S Q C Q
(a) (b)
Figura 4.14 - Smbolo do latch RS controlado (a) e do latch D (b), ambos com lgica de
ativao complementar.
As tabelas 4.5 e 4.6 mostram o funcionamento destes latches com lgica de ativao
negada. Comparando-se com as tabelas de transio dos latches correspondentes com lgica
de ativao direta, nota-se que as aes so as mesmas; apenas o que muda o nvel do sinal
de controle necessrio para ativ-los.
C R S Qt+1 comentrio
1 X X Qt mantm estado anterior
0 0 0 Qt mantm estado anterior
0 0 1 1 estado set
0 1 0 0 estado reset
0 1 1 - proibido
Tabela 4.5 - Tabela de transio de estados para o latch RS controlado com lgica de ativao
negada.
C D Qt+1 comentrio
1 X Qt mantm estado anterior
0 0 0 estado reset
0 1 1 estado set
Tabela 4.6 - Tabela de transio de estados para o latch D com lgica de ativao negada.
Exemplo 4.5: desenhar as formas de onda para as sadas do latch RS abaixo, a partir das
formas de onda fornecidas.
t1 t2 t3 t4
R Q R
C
Q S
S
Q
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 4-13
Exemplo 4.6: desenhar as formas de onda para as sadas do latch D abaixo, a partir das
formas de onda fornecidas.
D Q D
C Q Q
4.2 Flip-flops
mestre escravo
Qm
D Q
D Q D Q
C Q C Q Q
D
tdM tdM
Qm
tdE tdE
Exemplo 4.7: traar as formas de onda para as sadas de cada um dos latches do circuito que
segue, a partir das formas de onda fornecidas.
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 4-15
Q3 Q2 Q1 Q0
dado D Q D Q D Q D Q
C Q C Q C Q C Q
controle
controle
dado
Q3
Q2
Q1
Q0
Um flip-flop disparado pela borda (tambm referenciado por sensvel borda) ignora
o sinal de controle enquanto este se encontra estvel num dos dois nveis lgicos. Porm,
quando o sinal de controle passa por uma transio, o flip-flop disparado pela borda fica
ativado por um breve instante durante o qual as entradas podem (ou no) determinar a troca
de seu estado. Dependendo da maneira como construdo, o flip-flop ser disparado ou
somente pela borda ascendente ou somente pela borda descendente. A figura 4.17 mostra o
circuito de um flip-flop D disparado pela borda ascendente, feito com portas nand de duas
entradas.
R
Q
C
S Q
C D Qt+1 comentrio
X Qt mantm estado anterior
0 0 estado reset
1 1 estado set
Tabela 4.7 - Tabela de transio de estados para o flip-flop D disparado pela borda
ascendente.
D Q
C Q
Exemplo 4.8: traar as formas de onda para as sadas do flip-flop que segue, a partir das
formas de onda fornecidas.
D Q D
C Q Q
C J K Qt+1 comentrio
X X Qt mantm estado anterior
0 0 Qt mantm estado anterior
0 1 0 estado reset
1 0 1 estado set
1 1 Qt complementa estado anterior
Tabela 4.8 - Tabela de transio de estados para o flip-flop JK disparado pela borda
ascendente.
J Q
C
K Q
Exemplo 4.9: traar as formas de onda para as sadas do flip-flop JK que segue, a partir das
formas de onda fornecidas.
J
J Q
C K
K Q
Q
C D Qt+1 comentrio
X Qt mantm estado anterior
0 0 estado reset
1 1 estado set
Tabela 4.9 - Tabela de transio de estados para o flip-flop D disparado pela borda
descendente.
C J K Qt+1 comentrio
X X Qt mantm estado anterior
0 0 Qt mantm estado anterior
0 1 0 estado reset
1 0 1 estado set
1 1 Qt complementa estado anterior
Tabela 4.10 - Tabela de transio de estados para o flip-flop JK disparado pela borda
descendente.
D Q J Q
C
C Q K Q
(a) (b)
Figura 4.20 - Smbolos para o flip-flop D (a) e para o flip-flop JK (b), ambos disparados pela
borda descendente.
Exemplo 4.10: traar as formas de onda para as sadas do flip-flop D que segue, a partir das
formas de onda fornecidas. (Note que o enunciado no diz se o flip-flop
disparado pela borda ascendente ou pela borda descendente, pois essa
informao faz parte da interpretao da questo!)
D Q D
C Q Q
Q
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 4-19
Nos circuitos seqenciais complexos, muitas vezes necessrio que se possa colocar
todos os flip-flops num estado conhecido, o qual pode ser o estado reset (Q=0) ou o estado set
(Q=1). Entretanto, todos os flip-flops de um circuito seqencial sncrono esto sujeitos ao
mesmo sinal de controle, que normalmente o sinal de relgio, de modo que qualquer
mudana de estado somente pode ocorrer aps uma borda de relgio. Alm disso, a operao
de "resetar" (i.e., fazer o flip-flop ir para o estado reset) ou "setar" (i.e., fazer o flip-flop ir
para o estado set) pode no ser banal.
A fim de permitir que seja possvel "resetar" ou "setar" um flip-flop a qualquer tempo,
os flip-flops podem ser construdos de modo a possuir um pino de "reset" assncrono e/ou um
pino de "set" assncrono. A denominao "assncrono" refere-se ao fato de que a ao deste
pino independente do sinal de controle. Tais pinos so denominados clear (ou DC reset) e
preset (ou DC set).
Ento, para um flip-flop que tenha o pino de clear (ou DC reset), enquanto este pino
estiver ativado, a sada Q do flip-flop estar estvel com o valor 0, independente dos valores
das demais entradas (incluindo a de controle). De modo similar, para um flip-flop que
tenha o pino preset (ou DC set), enquanto este pino estiver ativado, a sada Q do flip-flop
estar estvel com o valor 1, independente dos valores das demais entradas (incluindo a
de controle). Alguns flip-flops podem possuir ambos pinos (clear e preset). Porm, no tem
sentido ativar ambos simultaneamente.
A ativao dos pinos clear e preset pode se dar por meio de lgica direta (i.e., nvel
lgico 1) ou por lgica complementar (i.e., nvel lgico 0), o que possvel de ser identificado
pelo desenho do flip-flop: caso haja um crculo junto ao pino, a ativao se d com lgica
complementar; caso contrrio, a ativao se d com lgica direta.
Exemplo 4.11: traar as formas de onda para as sadas do flip-flop que segue, a partir das
formas de onda fornecidas.
CK
dado D Q limpa
CK C Q dado
clear
Q
limpa
Q
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 4-20
Exemplo 4.12: traar as formas de onda para as sadas do flip-flop que segue, a partir das
formas de onda fornecidas.
CK
ajusta
ajusta
preset J
J Q
CK C K
K Q
Q
Q
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 4-21
D0 Q0 Y
C Q0
D1 Q1
C Q1
CK
O circuito apresenta uma entrada (cnt) e uma sada (Y). Alm disso, h 2 flip-flops D,
cujo contedo representa o estado em que o circuito se encontra.
O primeiro passo na anlise determinar as equaes Booleanas para as entradas de
cada flip-flop, em funo da entrada externa cnt e das sadas dos flip-flops (Q0 e Q1). Deste
modo, as equaes so:
D0 = cnt Q0 = cnt Q0 + cnt Q0 (4.2)
D1 = cnt Q1 + cnt Q1 Q0 + cnt Q1 Q0 (4.3)
As equaes 4.2 e 4.3 so chamadas equaes de excitao, uma vez que elas
descrevem o comportamento dos sinais que so aplicados s entradas dos flip-flops, os quais
iro determinar o estado do circuito seqencial para o prximo ciclo de relgio. Aplicando as
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 4-22
Q1t +1 = cnt Q1t + cnt Q1t Q0t + cnt Q1t Q0t (4.5)
cnt=1
cnt=0 Q1Q0=00 Q1Q0=01 cnt=0
Y=0 Y=0
cnt=1 cnt=1
cnt=1
cnt=0 Q1Q0=11 Q1Q0=10 cnt=0
Y=1 Y=0
Na figura 4.23 so mostradas formas de onda que ilustram uma possvel contagem: o
circuito foi suposto partir do estado 00 e o sinal cnt foi mantido com valor lgico 1 por 3
ciclos de relgio consecutivos. Aps, cnt foi feito igual a zero, o que desabilitou a contagem.
Com isso, o circuito contou de 0 a 3, parando em 3. Verifique o comportamento da sada Y
durante esta operao.
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 4-24
t0 t1 t2 t3
CK
cnt
Q1
Q0
Figura 4.23: diagrama de tempos para uma possvel operao do circuito seqencial da figura
4.21.
D0 Q0 Y
C Q0
D1 Q1
C Q1
CK
Conforme pode ser visto, esse circuito se diferencia daquele da figura 4.21 somente
pela sada Y, que neste caso tambm depende da entrada cnt. Mais precisamente, Y ser igual
a 1 somente quando Q1Q0=11 e cnt for igual a 1 (ou seja, enquanto o circuito estiver
contando):
Y = cnt Q0 Q1 (4.7)
Como a diferena entre este circuito e aquele da figura 4.21 diz respeito somente
sada Y, as equaes de estado para esse circuito correspondem s equaes de estado 4.4 e
4.5. E por conseguinte, a tabela de transio de estados para esse circuito a tabela 4.11.
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 4-25
Somente a tabela de sada ser diferente, uma vez que a equao de sada diferente. A tabela
de sada para o circuito da figura 4.24 mostrada a seguir.
cnt=1 / Y=0
cnt=1 / Y=1
Na figura 4.26 so mostradas formas de onda que ilustram uma possvel operao do
circuito da figura 4.24. O circuito conta de 0 at 3. No meio do ciclo em que a contagem
atinge o valor 3 (e portanto, Y=1), o sinal cnt passa a valer 0, o que suspende a contagem e
faz Y passar para 0.
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 4-26
t0 t1 t2 t3
CK
cnt
Q1
Q0
Figura 4.26 - Diagrama de tempos para uma possvel operao do circuito seqencial da
figura 4.24.
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 4-27
Cada um dos circuitos estudados nos dois exemplos anteriores (4.13 e 4.14)
corresponde a um dos dois modelos possveis para circuitos seqenciais, quais sejam:
modelo dependente dos estados ou modelo de Moore (exemplo 4.13) e
modelo dependente das entradas ou modelo de Mealy (exemplo 4.14).
No caso do modelo de Moore, as sadas dependem nica e exclusivamente do estado
em que o circuito se encontra, de modo que uma mudana nos valores das entradas s toma
efeito aps a prxima borda do relgio. J no caso do modelo de Mealy, as sadas dependem
no somente do estado em que o circuito se encontra, mas tambm do valor atual das entradas
externas, de modo que se estas se alteraram ainda antes da troca de estados, as sadas do
circuito podem se alterar. As figuras 4.27 e 4.28 mostram os diagramas de blocos para o
modelo de Moore e de Mealy, respectivamente.
entradas
I1 I2 Ik CK
...
D1 Q1
FF1
Q1
O1
D2 Q2
lgica de FF2 lgica de sada O2
sadas
prximo estado
...
Q2
On
...
D3 Q3
FF3
Q3
entradas
I1 I2 Ik CK
...
D1 Q1
FF1
Q1
O1
D2 Q2
lgica de FF2 lgica de sada O2
sadas
prximo estado
...
Q2
On
...
D3 Q3
FF3
Q3
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)
[3] BROWN, Stephen; VRANESIC, Zvonko. Fundamentals of Digital Logic with VHDL
Design. McGraw-Hill Higher Education (a McGraw-Hill Company), 2000
(http://www.mhhe.com/engcs/electrical/brownvranesic )
5 Circuitos de Armazenamento
5.1 Registradores
D Q D Q D Q D Q
3 2 1 0
C Q C Q C Q C Q
CK
Q3 Q2 Q1 Q0
os dados disponveis nas entradas D0, D1, D2 e D3 somente sero copiados quando o sinal de
relgio (CK, no caso) passar por uma borda ascendente. Os valores copiados quando da
passagem de uma borda ascendente permanecero armazenados pelos flip-flops at a
ocorrncia da prxima borda ascendente. Isto deixa o registrador imune a eventuais mudanas
indesejadas dos sinais representados por D0, D1, D2 e D3. O valor armazenado num flip-flop
qualquer est sempre presente na sua sada Q. Isto quer dizer que o dado armazenado no
registrador pode ser consultado por outro recurso de hardware a qualquer tempo, desde que
haja um caminho fsico (i.e., um conjunto de fios) entre a sada do registrador e a entrada do
outro elemento. O outro elemento pode ser, por exemplo, um somador/subtrator como no
captulo 3.
O registrador da figura 5.1 apresenta, porm, uma deficincia grave: toda a vez que o
sinal de relgio CK passar por uma borda ascendente, os valores das entradas D0, D1, D2 e
D3 sero copiados, mesmo que isso no seja explicitamente desejado. Entretanto, os circuitos
de um computador devem seguir as ordens dos sinais provenientes da unidade de controle. O
sinal de relgio serve apenas para determinar o momento no qual uma ordem dever ser
cumprida. Logo, um registrador de um computador deve possuir recursos capazes de realizar
a carga do dado (i.e., a carga paralela dos sinais conectados as suas entradas) quanto o relgio
passar pela borda ativa somente se o sinal de "carga" (tambm conhecido por "load") estiver
ativado. A figura 5.2 mostra um registrador de 4 bits com carga paralela e sinal de carga.
D3 D2 D1 D0
0 0 0 0
D Q D Q D Q D Q
1 1 1 1
3 2 1 0
C Q C Q C Q C Q
carga
CK
Q3 Q2 Q1 Q0
carga Reg
Figura 5.3 - Smbolo para um registrador de 4 bits, com carga paralela e sinal de carga. "Reg"
o nome do registrador.
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 5-3
Exemplo 5.1: desenhar a forma de onda da sada Q para o circuito que segue.
0
D Q
dado 1
carga C Q
clear
C
K
limpa
CK
limpa
dado
carga
dado D Q D Q D Q D Q
(entrada serial)
3 2 1 0
C Q C Q C Q C Q
clear clear clear clear
limpa
CK
Q3 Q2 Q1 Q0
CK
limpa
dado
Q3
Q2
Q1
Q0
Figura 5.5 - Registrador de deslocamento direita de 4 bits (com reset assncrono): exemplo
de funcionamento.
Repare que h uma ligao entre a sada de cada flip-flop e a entrada do seu vizinho
imediatamente direita (adjacente a direita). O registrador de deslocamento do exemplo 5.2
no possui sinal de carga. Porm, tal sinal normalmente existe, como ser visto mais adiante.
Um registrador de deslocamento esquerda deve apresentar uma ligao entre a sada
de cada flip-flop e a entrada do flip-flop imediatamente esquerda. Um tal registrador
mostrado na figura 5.6. Note que a entrada serial est conectada ao flip-flop mais direita
(flip-flop que armazena o bit menos significativo).
dado
(entrada serial)
D Q D Q D Q D Q
3 2 1 0
C Q C Q C Q C Q
clear clear clear clear
limpa
CK
Q3 Q2 Q1 Q0
CK
limpa
dado
Q3
Q2
Q1
Q0
Um registrador muito til aquele que, alm de permitir a carga paralela por meio de
sinal de carga, ainda permite deslocamentos direita e esquerda. Isso possvel se, na
entrada de cada flip-flop houver um seletor capaz de escolher de onde vem o dado a ser
armazenado no flip-flop corrente: de uma fonte externa (no caso de uma carga paralela), da
direita, da esquerda (no caso de deslocamento) ou do prprio flip-flop (no caso de
simplesmente se querer manter o contedo inalterado). Um tal registrador mostrado na
figura 5.7.
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 5-6
I I2 I1 I0
3
C1
C0
entrada serial
p/ desl. esq.
entrada serial 00 00 00 00
p/ desl. dir. 01 01 01 01
10 D Q 10 D Q 10 D Q 10 D Q
11 3 11
2 11 1 11 0
C Q C Q C Q C Q
DCReset DCReset DCReset DCReset
CK
clear
Q Q Q Q
3 2 1 0
CK C1 C0 operao
X X mantm contedo
0 0 mantm contedo
0 1 desloca esquerda (shift left)
1 0 desloca direita (shift right)
1 1 carga paralela
CK
D Q
limpa
CK C Q
clear Q
Q
limpa
Um circuito contador de mais bits possui uma conexo entre cada flip-flop vizinho, de
modo que cada flip-flop de maior ordem responsvel pela ordem de incremento de seu
vizinho de menor ordem.
Exemplo 5.5: encontrar as formas de onda para as sadas dos flip-flops do registrador abaixo.
D Q D Q D Q
0 1 2
CK C Q C Q C Q
clear clear clear
limpa
Q0 Q1 Q2
CK
limpa
Q0
Q0
Q1
Q1
Q2
5.2 Memrias
Nesta seo iremos estudar a estrutura fsica das memrias RAM, isto , os circuitos
que as compem.
Uma memria RAM organizada como uma matriz de 2n linhas com m bits
armazenados em cada linha, perfazendo um total de 2n x m bits. Em geral, n est entre 16 e
32, enquanto que m pode ser 1, 4, 8, 16 ou 32. A figura 5.10 ilustra essa organizao
matricial. Note que existem 2n linhas, tambm chamadas posies. A cada posio
associado um endereo, iniciando pelo endereo 0 (zero). Portanto, so necessrios n bits para
decodificar os 2n endereos existentes.
Suponha que se deseje fabricar num nico chip (circuito integrado) uma memria RAM
capaz de armazenar 2n x m bits, seguindo a organizao descrita anteriormente. A figura 5.11
mostra duas representaes grficas possveis para um tal chip. Este chip dever possuir n
entradas de endereo (An-1, , A1,A0), de modo a se poder selecionar uma (e somente uma)
dentre todas as 2n posies existentes na matriz. Este chip tambm dever conter m entradas
(In-1, , I1,I0), e m sadas (On-1, , O1,O0), de modo a permitir a leitura (=consulta) do
contedo de uma das 2n linhas ou a escrita (=gravao) de uma nova informao numa das 2n
linhas da matriz. Como existem duas operaes possveis sobre o contedo da matriz (leitura
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 5-9
e escrita), natural que deva existir uma entrada de seleo de operao. Esta entrada ser
denominada RWS (Read/Write Select). Quando RWS=0, a operao a ser realizada ser a
leitura do contedo da posio cujo endereo est presente na entrada de endereos. O valor
lido aparecer na sada do chip. Quando RWS=1, a operao a ser realizada ser a escrita da
informao binria presente na entrada do chip na linha cujo endereo est presente na
entrada de endereo. Por fim, deve existir um sinal de habilitao do chip como um todo (CS -
Chip Select). Caso CS=0, o chip est desativado. Caso CS=1, o chip estar realizando a
operao especificada pelo valor da entrada RWS.
0000 0 0110100
0001 1 0110100
0010 2 1011100
0011 3 1010001
0100 4 0110101
0101 5 1110110
0110 6 1010001
0111 7 0001101
: :
: :
1110 2n-2 0001100
1111 2n-1 1001100
m bits
Figura 5.10 - Organizao de uma memria RAM: linhas e endereos.
...
Im-1 I1 I0
An-1 An-1
A1 A1
RAM 2n x m RAM 2n x m
A0 A0
CS CS
RWS Om-1 O1 O0 RWS I/Om-1 I/O1 I/O0
... ...
(a) (b)
O sinal de habilitao do chip, CS, serve para o caso em que seja necessrio mais de um
chip para implementar a memria do computador.
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 5-10
seleo de linha
CM
entrada D sada
Q
buffer
habilitao de escrita
Figura 5.12 - Clula de memria (CM).
1
Um buffer (as vezes chamado driver) pode ter duas funes: reforar o sinal lgico (o que necessrio quando
existem muitas portas conectadas a uma mesma sada ou quando o sinal deve percorrrer um fio muito longo) ou
servir como uma chave eletrnica que isola fisicamente a sada da entrada (o que serve para disciplinar o acesso
de vrios sinais a um mesmo fio ou barramento).
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 5-11
devero ser fornecidas em t0, seguidas por CS em t1. Assim, os dados da memria estaro
disponveis somente em t2. O atraso t2-t0 denominado tempo de acesso memria
(memory-access time), enquanto que o tempo t2-t1 denominado tempo de habilitao da
sada (output-enable time). Note que aps os valores das entradas de endereo terem sido
modificadas em t3, os dados ainda estaro disponveis at t5. O intervalo t5-t3 denominado
tempo de manuteno da sada (output-hold time). J o intervalo t5-t4 denominado tempo
de desabilitao da sada (output-disable time). Como o caminho entre as entradas de
endereo e as sadas maior do que o caminho entre CS at as sadas, o tempo de acesso
determina a validade dos dados sempre que o endereo e CS forem aplicados ao mesmo
tempo. Por outro lado, se o endereo e CS deixarem de ser vlidos (CS=0, no caso), o tempo
de desabilitao determinar a validade dos dados.
CM CM CM CM
1
A1
DEC CM CM CM CM
2x4
A0
2
CM CM CM CM
3
write
enable CM CM CM CM
RWS
CS
A figura 5.15 mostra as restries temporais para o caso de um ciclo de escrita numa
memria RAM. No exemplo, foi assumido que CS e RWS foram aplicados simultaneamente,
no instante t1. Como o atraso entre o endereo e a sada maior do que o atraso entre CS ou
RWS e a sada, o endereo deve ser aplicado algum tempo antes, como por exemplo em t0. O
atraso t1-t0 denominado tempo de preparao do endereo (address setup time). Como
cada CM feita a partir de um latch D controlado com CS fazendo o papel de controle, cada
bit do dado na borda de descida de CS (t3) ficar armazenado no respectivo latch. Entretanto,
necessrio que o dado esteja estvel por algum tempo antes e depois da borda de descida de
CS para garantir a escrita. Na figura 5.15 esses tempos so anotados como tempo de
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 5-12
preparao do dado (data setup time) e tempo de manuteno do dado (data hold time),
sendo definitos respectivamente como t3-t2 e t4-t3.
Tambm importante ressaltar que CS ou RWS devem ter uma durao igual ou maior
que o intervalo de tempo t3-t1, o qual denominado durao do pulso de escrita (write-pulse
width). Alm disso, o endereo deve estar vlido por algum tempo aps a borda de descida de
RWS ou CS. Este tempo chamado tempo de manuteno do endereo (address-hold
time), e definido como t5-t3.
RWS
CS
t0 t1 t2 t3 t4 t5
RWS
CS
address- address-
setup time data-setup time hold time
data-
write pulse width hold time
t0 t1 t2 t3 t4 t5
Apesar da CM ter sido representada como sendo constituda por um latch D e duas
portas, na prtica sua fabricao pode ser levada a cabo com estruturas mais simples, que
utilizam menos transistores. A forma de implementao de CMs leva a classificao das
memrias RAM em estticas e dinmicas. No caso da RAM esttica (conhecida por SRAM,
static RAM), a CM feita com 6 transistores, onde quatro deles formam dois inversores
Introduo aos Sistemas Digitais (v.2001/1) Jos Lus Gntzel e Francisco Assis do Nascimento 5-13
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)
[3] BROWN, Stephen; VRANESIC, Zvonko. Fundamentals of Digital Logic with VHDL
Design. McGraw-Hill Higher Education (a McGraw-Hill Company), 2000
(http://www.mhhe.com/engcs/electrical/brownvranesic )