Escolar Documentos
Profissional Documentos
Cultura Documentos
x
y
z
z=f(x,y)
a
c
1-2
Compartimento
para fitas
Amplificador
Auto-falante
esquerdo
Auto-falante
direito
1-3
Portas
Registrador
Processador
Comportamento
Equaes diferenciais,
diagramas correntevoltagem
Equaes Booleanas,
mquinas de estado
finitas (FSM)
Algoritmos, flowcharts,
conjunto de instrues,
generalizaes de FSMs
Especificao
executvel, programas
Estrutura
Transistores,
resistores,
capacitores
Portas lgicas,
Flip-flops
Fsico
Clulas analgicas e
digitais
Somadores,
comparadores,
contadores,
registradores
Processadores,
controladores,
ASICs
Microcircuitos
Mdulos, unidades
Placas de circuito
impresso, mdulos
multicircuitos
1-4
R1
ULA
Cout
controle
1
4
R3
1-5
A figura 1.5 mostra o diagrama de blocos mais detalhado para a unidade lgicoaritmtica (ULA) da figura 1.4. J a figura 1.6 detalha o somador completo, que o tipo de
bloco usado para compor a ULA.
R13 R2 3
R12 R2 2
R10 R2 0
R11 R2 1
Controle
xor 3
xor 2
I3
I2
Ci
Cout
Ci
Ci
Ci
FAD 0
FAD 1
Co
Co
I0
I1
FAD 2
FAD 3
xor 0
xor 1
Co
Co
R3 3
R3 2
R3 0
R3 1
Ii
R1 i
FAD i
Ci
X0
A0
A1
A2
X1
O0
Co
R3 i
1-6
m1
i = n
ri
1-7
m 1
b 2
i= n
Octal
0
1
2
3
4
5
6
Decimal
0
1
2
3
4
5
6
Hexa
0
1
2
3
4
5
6
111
1000
1001
1010
1011
1100
1101
1110
1111
10000
10001
7
10
11
12
13
14
15
16
17
20
21
7
8
9
10
11
12
13
14
15
16
17
1-8
7
8
9
A
B
C
D
E
F
10
11
A tabela 1.3 mostra os inteiros binrios de 0 a 10001 e seus equivalentes octal, decimal
e hexadecimal codificados em binrio.
Tabela 1.3 - Representao de inteiros em binrio, octal, decimal e hexadecimal.
Binrio
Octal
codificado em
binrio
Decimal
codificado em
binrio
Hexadecimal
codificado em
binrio
000
0000
0000
001
0001
0001
10
010
0010
0010
11
011
0011
0011
100
100
0100
0100
101
101
0101
0101
110
110
0110
0110
111
111
0111
0111
1000
001 000
1000
1000
1001
001 001
1001
1001
1010
001 010
0001 0000
1010
1011
001 011
0001 0001
1011
1100
001 100
0001 0010
1100
1101
001 101
0001 0011
1101
1110
001 110
0001 0100
1110
1111
001 111
0001 0101
1111
10000
010 000
0001 0110
0001 0000
10001
010 001
0001 0111
0001 0001
1-9
m1
i = n
ri
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
Q = ((( dm-1 ) r + dm-2 ) r + ) r + d1
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.
si
0
1
1
0
1
0
0
1
ci+1
0
0
0
1
0
1
1
1
x
y
carries
x+y
1
1
S10
512
1
256
1
128
1
1
0
S9
1
0
S8
1
0
S7
64
1
1
1
1
S6
32
0
1
1
0
S5
16
1
1
1
1
S4
8
1
1
0
0
S3
4
0
0
1
1
S2
2
1
1
1
1
S1
1
1
1
0
S0
1-11
di
0
1
1
0
1
0
0
1
bi+1
0
1
1
1
0
0
0
1
x
y
borrows
x-y
512
1
256
1
128
1
1
0
64
1
1
1
1
32
0
1
0
1
16
1
1
0
0
8
1
1
0
0
4
0
0
0
0
2
1
1
0
0
0
1
0
1
D9
D8
D7
D6
D5
D4
D3
D2
D1
1
1
1
0
d0
1-12
Complemento de r
Complemento de (r-1).
1-13
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:
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
000
1110 ( -2)
Exerccios
Exerccio 1.1 - Realizar as converses indicadas a seguir.
a) 179 para binrio
179 2 = 89
89 2 = 44
resto = 1
1-15
58 8 =
1-16
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-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+1
1+0
1+1
=
=
=
=
0
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
0
0
1
1
B
0
1
0
1
A+B
0
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
A+B+C
0
1
1
1
1
1
1
1
2-3
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
A+B+C
0
1
1
1
1
1
1
1
A+B
0
0
1
1
1
1
1
1
(A+B)+C
0
1
1
1
1
1
1
1
B+C
0
1
1
1
0
1
1
1
(B+C)+A
0
1
1
1
1
1
1
1
=
=
=
=
0
0
0
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
0
0
1
1
B
0
1
0
1
AB
0
0
0
1
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
2-4
ABC
0
0
0
0
0
0
0
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
ABC
0
0
0
0
0
0
0
1
AB
0
0
0
0
0
0
1
1
(AB)C
0
0
0
0
0
0
0
1
BC
0
0
0
1
0
0
0
1
A(BC)
0
0
0
0
0
1
0
1
0
1
1
0
A
1
0
2-5
2-6
termo j foi avaliado e que no passo referente a esta coluna, tomaram-se apenas os valores
previamente encontrados.
X Y Z
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
X Y
0
0
1
0
0
0
1
0
Z
1
0
1
0
1
0
1
0
W = X + Y Z
0
0
1
0
1
1
1
1
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+B
A+B+C
B
C
(a)
(b)
Figura 2.1 - Smbolo da porta lgica OU com 2 entradas (a) e com 3 entradas (b).
2-7
2.3.2 Porta E
O smbolo da porta E mostrado na figura 2.2. esquerda esto dispostas as entradas
(no mnimo duas, obviamente) e direita, a sada (nica). As linhas que conduzem as
variveis de entrada e sada podem ser interpretadas como fios que transportam os sinais
eltricos associados s variveis. O comportamento da porta E segue extritamente a definio
(e tabela verdade) dada na seo 2.1.2.
A.B
A
B
A
B
C
A.B.C
(b)
(a)
Figura 2.2 - Smbolo da porta lgica E com 2 entradas (a) e com 3 entradas (b).
Figura 2.3 - Smbolo do inversor (tambm conhecido como negador ou porta inversora).
2-8
3o operaes OU.
A figura 2.4 mostra o circuito lgico para a equao W = X + Y Z .
X
W
Y
Z
A+0 = A
A +1 = 1
A+A = A
A+A = 1
Da multiplicao lgica:
(5)
(6)
(7)
(8)
A 0 = 0
A 1 = A
A A = A
A A = 0
Da complementao:
(9)
A=A
Comutatividade:
(10)
(11)
A + B = B+ A
A B = B A
2-9
Associatividade:
(12)
(13)
A +(B + C ) =(A + B )+ C = ( A + C )+ B
A (B C) = (A B) C = (A C) B
A (B + C) = A B + A C
(2.3)
A + B = A B
(2.4)
2-10
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
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
(2.5)
2-11
(2.6)
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
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)
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
(2.8)
(2.9)
2-13
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)
(2.12)
(2.13)
Pela propriedade (4), tem-se que C + C=1. Ento, substituindo em 2.13, segue:
F = AB 1 + ABC + ABC
(2.14)
(2.15)
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).
(2.17)
(2.18)
(2.19)
(2.20)
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.
2-15
1o nvel
2o nvel
A
B
C
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.
No caso de equaes na forma produto de somas (cannica ou simplificada), o
primeiro nvel constitudo por portas OU, sendo cada uma responsvel por uma das somas
lgicas da equao. O segundo nvel, por sua vez, constitudo por uma porta E, que realiza o
produto lgico das parcelas. A figura 2.7 mostra um possvel circuito lgico para a equao
2.7.
1o nvel
2o nvel
A
B
C
2-17
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
F
C
1o nvel
2o nvel
2-18
3o nvel
A
C
F
B
Figura 2.9 - Circuito lgico multinvel, associado equao 2.21, a qual est na forma
fatorada.
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
A B C
1 0 0
1 1 0
A B C
A B C
1 1 1
A B C
1 0 1
A B C
A B C
A B C
A B C
A B C
A B C
2-19
A B C
A B C
m1
m3
m2
m4
m5
m7
m6
A BC
BC
Figura 2.13 - Grupos de mintermos-1 adjacentes e termos produto para uma funo de 3
variveis.
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)
B
B
m0
m1
m2
m3
nome da
funo
C
BC
00
01
11
10
m0
m1
m3
m2
m4
m5
m7
m6
B
nome da
funo
D
CD
AB
00
01
11
10
00
m0
m1
m3
m2
01
m4
m5
m7
m6
11 m12
m13
m15
m14
m8
m9
m11
m10
10
C
Figura 2.14 - Mapas de Karnaugh para funes de 2, 3 e 4 variveis.
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.
Exemplo 2.4: determinar os implicantes das funes dadas a seguir.
D
F0
CD
AB
00
01
11
10
00
01
11
10
D
F1
CD
AB
00
01
11
10
00
01
11
10
2-22
D
F2
CD
AB
00
01
11
10
00
01
11
10
C
D
F3
CD
AB
00
01
11
10
00
01
11
10
D
F4
CD
AB
00
01
11
10
00
01
11
10
C
D
F5
CD
AB
00
01
11
10
00
01
11
10
C
D
F6
CD
AB
00
01
11
10
00
01
11
10
0
C
2-23
2-24
D
F7
CD
AB
00
01
11
10
00
01
11
10
Observaes:
1. Cada mintermo-1 pode ser coberto por mais de um subcubo, caso isso resulte numa
simplificao maior;
2. Um ltimo teste para verificar se a expresso obtida realmente a mnima consiste
em verificar se algum subcubo pode ser removido, sem deixar algum mintermo-1
descoberto. Um subcubo que poder ser removido sem descobrir mintermos dito
subcubo no-essencial. Logo, todo o subcubo que no pode ser removido dito
essencial.;
3. Pode haver mais de uma expresso mnima para uma mesma funo Booleana;
2-25
00
01
11
10
00
01
A
11
10
Cobertura 2:
D
S0
CD
AB
00
01
11
10
00
01
A
11
10
2-26
Cobertura 3:
D
S0
CD
AB
00
01
11
10
00
01
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
A
11
10
C
Conforme j mencionado anteriormente, tambm possvel obter-se uma expresso
mnima em produto de somas a partir do mapa de Karnaugh da funo Booleana. Para tanto,
deve-se identificar os subcubos de mintermos-0, ao invs de subcubos de mintermos-1. Cada
subcubo de mintermo-0 ir originar um termo soma, possivelmente j simplificado, o qual
recebe o nome de implicado.
Os passos para a obteno de uma cobertura mnima so os mesmos j descritos para a
obteno da expresso em soma de produtos.
2-27
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
11
10
Y
Exemplo 2.8: determinar a expresso mnima em soma de produtos e a expresso mnima
em produto de somas para a funo Booleana dada a seguir. Desenhar o
circuito lgico para cada expresso obtida.
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
11
A
10
00
01
11
10
00
01
11
A
10
00
01
11
10
00
01
11
A
10
00
01
11
10
00
01
11
A
10
2-28
2-29
D
S5
CD
AB
00
01
11
10
00
01
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;
2-30
Para uma mesma funo Booleana, deve-se identificar a soluo em soma de produtos
num mapa de Karnaugh e a soluo em produto de somas em outro mapa, a fim de
evitar confuses
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).
S6(A,B,C,D) = (0,3,5,6,7) + DC(10,11,12,13,14,15)
Cobertura para soma de produtos:
D
S6
CD
AB
00
01
11
10
00
01
11
A
10
00
01
11
10
00
01
11
A
10
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.
Nome
Smbolo
Zero
Valores para
x,y=
00 01 10 11
0 0 0 0
Expresso
algbrica
Comentrio
F0 = 0
Constante 0
E
Inibio
Transferncia
x.y
x/y
0 0 0 1
0 0 1 0
0 0 1 1
F1 = xy
F2 = xy
F3 = x
xey
x mas no y
x
Inibio
Transferncia
y/x
0 1 0 0
0 1 0 1
F4 = x y
F5 = x
y mas no x
y
XOR
xy
F6 = xy + xy
OU
x+y
NOR
Equivalncia
Complemento
xy
1 0 0 0
1 0 0 1
1 0 1 0
F7 = x + y
F8 = (x + y)'
F9 = xy + x' y'
F10 = y '
x ou y, mas no
ambos
x ou y
Implicao
Complemento
Implicao
xy
x'
xy
1
1
1
1
0
1
F11 = x + y
F12 = x
F13 = x + y
Se y, ento x
No x
Se x, ento y
NAND
Um
xy
1
1 1 1 0
1 1 1 1
F14 = ( xy )'
F15 = 1
No E
Constante 1
y'
0
1
1
1
0
0
No-OU
x igual a y
No y
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,
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 implementla. 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
B
C
A+B+C
A.B.C
A
B
C
2,8
1,8
A
B
C
D
(A.B.C)
A
B
C
2,8
A
B
C
D
A+B+C+D
3,2
10
A
B
C
A
B
C
D
A.B.C.D
3,2
10
A+B+C
2,8
A
B
C
D
(A.B.C.D)
2,2
8
A+B+C+D
3,2
10
2-33
2.11 Mapeamento
No projeto de circuitos, tem-se frequentemente o seguinte problema: dada uma funo
booleana (mnima ou no), deve-se projetar um circuito lgico usando somente alguns poucos
tipos de portas que esto disponveis. Esta ao de adaptar-se a lgica de uma funo ao
conjunto de portas que est disponvel denominada mapeamento tecnolgico (ou
simplesmente mapeamento) da funo. O conjunto de portas disponvel denominado
biblioteca de portas, e depende de vrios fatores, dentre os quais, da tecnologia em que o
circuito ser implementado.
Assim, o problema de mapeamento pode ser formulado da seguinte maneira: dada uma
funo booleana simplificada, em SdP ou em PdS, ou dado um circuito para essa funo, e
dada uma biblioteca de portas, mapear a funo usando somente as portas (tipos de portas)
que existem na biblioteca.
Este processo envolve vrias tarefas. Primeiro ser mostrado como converter uma
funo ou circuito lgico envolvendo portas E, OU e complemento em uma funo ou circuito
lgico contendo apenas portas NAND (ou somente portas NOR). Esta tarefa consiste de duas
partes: converso e otimizao. Durante a converso, cada porta E e porta OU substituda
por uma porta NAND ou NOR equivalente, enquanto que durante a otimizao, so
eliminados quaisquer dois inversores, um seguido do outro, que possam ter surgido durante a
converso.
As regras para a tarefa de converso so baseadas nos Teoremas de De Morgan, como
mostrado a seguir:
Regra 1: xy = ((xy )' )'
Regra 2: x + y = (( x + y )' )' = ( x ' y ' )'
Regra 3: xy = (( xy )' )' = ( x '+ y ' )'
Regra 4: x + y = (( x + y )' )'
Regra 5: ( x ' )' = x
As regras 1 e 2 so usadas para a converso para portas NAND, enquanto as regras 3 e
4 so usadas para a converso para portas NOR.. A regra 5 usada para a otimizao do
2-34
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:
xi
2,4
yi
1,4
ci
1,4
yi
ci
2,4
2,8
c(i+1)
1,4
2,4
Soma de Produtos
xi
yi
2,4
yi
ci
c(i+1)
1,8
1,4
c(i+1)
2,4
2,4
Produto de Somas
2,8
ci
1,4
c(i+1)
1,8
1,4
Figura 2.18 soma de produtos e produto de somas com portas NAND e portas NOR,
respectivamente.
2-35
tempo
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
B
S
identificar com uma linha vertical cada mudana no valor (=transio) dos sinais
das entradas. Note que as formas de onda das entradas sempre so fornecidas,
fazendo parte dos dados do problema.
Para cada intervalo de tempo delimitado por duas linhas verticais adjacentes,
identificar o sinal resultante usando a tabela verdade da porta em questo;
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.
A
B
C
D
A
B
C
D
S1
S2
S3
S
S1
S2
S3
2-37
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)
Exerccio 2.2 - Ache a equao em soma de mintermos e a equao em produto de
maxtermos para as funes F1 e F2 descritas pela tabela verdade abaixo e
desenhe os respectivos circuitos lgicos
A B C
F1
F2
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
00
01
11
10
00
01
x1
11
x0
10
x2
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).
S7(A,B,C,D) = (4,6,8,9,12,13,14) + DC(0,2,5,10)
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
11
A
10
D
S7
CD
AB
00
01
11
10
00
01
11
A
10
D
S7
CD
AB
00
01
11
10
00
01
11
A
10
2-40
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)
[3] TAUB, H. Circuitos Digitais e Microprocessadores. McGraw-Hill, 1982.
[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)
[6] KATZ, Randy H. Contemporary Logic Design. The Benjamin/Cummings Publishing
Company, Inc. , 1994 (ISBN: 0-8053-2703-7)
3 Circuitos Combinacionais
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
m sadas
(m equaes B ooleanas)
3-2
sadas
en tra das
ci rcui to
combin acio nal
elementos de
mem ria
va rive is do
e stadoatua
va ri ve is de
relgio
p r ximo es tado
(clock )
3-3
A
T1
T5
T2
C
F1
T3
T4
T6
F2
D
00
01
11
10
3-4
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:
endereo
Entradas
(sinais de controle)
sadas
A2
A1
A0
D0
D1
D2
D3
D4
D5
D6
D7
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
D2
D0
D1
D2
A0
A1
D3
DE C 3x8
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.
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:
endereo
sadas
desabilitadas
entradas
(sinais de controle)
sadas
A1
A0
D0
D1
D2
D3
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):
endereo
sadas
desabilitadas
entradas
(sinais de controle)
sadas
A1
A0
D0
D1
D2
D3
A figura 3.4a mostra o smbolo para esse decodificador e a figura 3.4b mostra uma
possvel implementao (circuito lgico).
3-8
A0
D0
A1
D1
D0
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
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:
endereo
variveis de
seleo
sada
S1
S0
A0
A1
A2
A3
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
Y
Y
MUX 4 -1
A2
A2
A3
A3
A1 A
A1
(a)
A0
(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
meio so mador
(HAD)
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
Cout
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
resultado
transporte
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.
Cin
Cout
3-12
S
BCin
00
01
11
10
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
00
01
11
10
3-13
A
S
B
Cin
Cout
Cout
FAD
Cin
Figura 3.10 - Representao de bloco para o somador completo (full adder ou FAD).
B3
C4
B2
A3
FAD3
C3
S3
B1
A2
FAD2
C2
FAD1
S2
B0
A1
S1
C1
3-14
A0
FAD0
C0
S0
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
B3
B2
B1
A2
B0
A1
A0
sel2
C4
C3
FAD3
S3
FAD2
S2
C2
FAD1
C1
S1
FAD0
sel1
S0
sel2
sel1
operao
descrio
S= A+B +0
adiciona A e B ( S = A + B )
S = A + B +1
adiciona A e B incrementado
( S = A + B + 1)
S= A+ B +0
subtrai B decrementado de A
( S = A B -1)
S = A + B +1
subtrai B de A ( S = A - B)
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
B0
A0
A0 B 1
A1 B 0
M1
A0 B0
M0
C3
multiplicando
multiplicador
transportes
C2
+
A1 B 1
M2
M3
A0
resultado
B1
A1
B1
B0
B0
C2
C3
Co
M3
HAD
M2
Co
HAD
M1
M0
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)
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.
Os circuitos seqenciais podem ser divididos em dois tipos, conforme o comportamento
temporal dos seus sinais: sncronos e assncronos.
4-2
borda
ascendente
perodo (T)
nvel baixo
borda
descendente
1
T
(4.1)
4-3
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:
T=
1
= 0,005x10 6 s = 5x10 9 s = 5ns
6
200x10 Hz
entradas
sadas
.
.
.
.
.
.
circuito
combinacional
.
.
.
.
.
.
.
.
.
elementos
de memria
(flip-flops)
variveis do
estado atual
variveis do
prximo estado
4-4
4.1 Latches
Os vrios flip-flops existentes se diferenciam pelo nmero de entradas que possuem e
na maneira pela qual tais entradas afetam o estado em que o flip-flop se encontra. Os tipos
mais bsicos de flip-flops so denominados latches. Os latches operam por nveis dos sinais
de entrada (diz-se que so sensveis a nvel) e servem como base na construo dos flip-flops
mais sofisticados.
Apesar de serem capazes de armazenar informao binria, os latches so pouco
utilizados na construo de circuitos seqenciais sncronos por serem menos prticos do que
os flip-flops.
A seguir, sero estudados o latch RS, o latch RS controlado e o latch D.
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
n2
4-5
valor indeterminado
(=desconhecido)
t0
t1
td(n1)
td(n2)
4-6
nada muda
nas sadas
aps t1
R
S
Q
Q
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.
valor indeterminado
(=desconhecido)
t0
t1
td(n2)
td(n1)
nada muda
nas sadas
aps t1
R
S
Q
Q
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.
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
1
0
0
0
1
S
0
0
1
0
1
Q
0
0
1
1
0
1
1
0
0
0
ao
vai para estado reset
mantm estado reset (= estado anterior)
vai para estado set
mantm estado set (= estado anterior)
estado proibido
S
0
1
0
1
Qt+1
Qt
1
0
-
comentrio
mantm estado anterior
estado set
estado reset
proibido
4-8
R=0 S=1
(R=0 S=0)
(R=0 S=1)
(R=0 S=0)
(R=1 S=0)
reset
set
R=1 S=0
t2
R
R
S
Q
Q
4-9
R1
Q
C
Q
S1
R
X
0
0
1
1
S
X
0
1
0
1
Qt+1
Qt
Qt
1
0
-
comentrio
mantm estado anterior
mantm estado anterior
estado set
estado reset
proibido
C=0
(C=1 R=0 S=0)
(C=1 R=1 S=0)
reset
set
4-10
C
Q
t2
t3
t4
C
S
S
Q
Q
Q
4.1.3 O Latch D
A necessidade de evitar a ocorrncia do estado proibido um detalhe que dificulta o
projeto de circuitos seqenciais com latches RS. O latch D construdo a partir do latch RS,
de maneira tal que, pela colocao de um inversor entre as entradas S e R, fica assegurado que
nunca ocorrer a situao de entradas R=1 e S=1, responsveis pelo surgimento do estado
proibido (figura 4.12). Desta forma, a tabela de transio do latch D pode ser derivada da
tabela do latch RS controlado, onde as entradas R e S passam a ser a entrada D (com D=S).
Duas combinaes de entradas desaparecem: uma que resultava na manuteno do estado e
outra que resultava no estado proibido. A tabela de transio do latch D mostrada na tabela
4.3 e seu smbolo, na figura 4.13.
D
C
S
Q
Q
C
0
1
1
D
X
0
1
Qt+1
Qt
0
1
4-11
comentrio
mantm estado anterior
estado reset
estado set
t2
t3
t4
C
D
Q
Q
4-12
C
S
(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
1
0
0
0
0
R
X
0
0
1
1
S
X
0
1
0
1
Qt+1
Qt
Qt
1
0
-
comentrio
mantm estado anterior
mantm estado anterior
estado set
estado reset
proibido
Tabela 4.5 - Tabela de transio de estados para o latch RS controlado com lgica de ativao
negada.
C
1
0
0
D
X
0
1
Qt+1
Qt
0
1
comentrio
mantm estado anterior
estado reset
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
C
R
C
S
Q
Q
t2
t3
t4
4-13
Exemplo 4.6: desenhar as formas de onda para as sadas do latch D abaixo, a partir das
formas de onda fornecidas.
C
D
Q
Q
4.2 Flip-flops
Conforme visto na seo anterior, os latches controlados D e RS so ativados ou
controlados pelo nvel lgico do sinal de controle. Isso significa que, enquanto o sinal de
controle estiver ativando o latch, eventuais variaes das entradas D ou R e S sero
percebidas pelo latch e este poder mudar de estado. Essa caracterstica particularmente
imprpria para a construo de circuitos seqenciais sncronos, uma vez que em tais circuitos
qualquer troca de estado deve ocorrer de maneira sincronizada com o sinal de relgio.
Os flip-flops so circuitos derivados dos latches, porm ativados pela transio do
sinal de controle (i.e., pela borda). Isso faz com que um flip-flop permanea ativado apenas
durante um intervalo de tempo muito pequeno, aps a ocorrncia de uma transio do sinal de
controle. Assim, uma eventual troca de estado s pode ocorrer durante esse breve intervalo de
tempo em que o flip-flop est ativado. Entre duas transies sucessivas do mesmo tipo (ou
subida ou descida) do sinal de controle, o flip-flop mantm o ltimo estado adquirido.
Dependendo de sua construo, um flip-flop pode ser disparado pela transio de
subida ou pela transio de descida do sinal de controle. Diz-se ento, que flip-flops so
disparados pela borda (ascendente ou descendente, conforme for o caso), enquanto que
latches so sensveis ao nvel lgico (alto ou baixo, conforme for o caso). A seguir, sero
estudados os flip-flops mais utilizados.
escravo
mestre
Qm
D
4-14
Q
Q
C
Figura 4.15 - Flip-flop D mestre-escravo.
Analisando-se as conexes, possvel deduzir facilmente que os dois latches
funcionam de maneira complementar com relao ao sinal de controle externo: enquanto o
controle vale 1, o mestre est ativado e o escravo est mantendo seu estado anterior e
enquanto o controle vale 0, o mestre est mantendo seu estado anterior e o escravo est
ativado. Como a entrada do escravo est conectada sada do mestre, o ltimo valor lido
durante a ativao do mestre aparecer na sada do escravo no semiperodo seguinte. A figura
4.16 exemplifica o funcionamento do flip-flop D mestre-escravo a partir de formas de onda
arbitrrias para as entradas C e D.
D
tdM
tdM
Qm
tdE
tdE
Q1
Q2
Q3
dado
4-15
Q0
controle
controle
dado
Q3
Q2
Q1
Q0
R
Q
C
S
4-16
D
X
0
1
Qt+1
Qt
0
1
comentrio
mantm estado anterior
estado reset
estado set
Tabela 4.7 - Tabela de transio de estados para o flip-flop D disparado pela borda
ascendente.
Na tabela anterior, o smbolo indica que a ativao do flip-flop instantnea e s
ocorre durante as bordas ascendentes do sinal de controle C. Por outro lado, entre duas bordas
ascendentes consecutivas do sinal de controle, o flip-flop mantm o estado anteriormente
armazenado. O smbolo do flip-flop D mostrado na figura 4.18; o tringulo colocado na
entrada de controle C indica que a ativao se d pela borda ascendente (e no pelo nvel
lgico, como ocorre no latch D).
D
Q
Q
J
X
0
0
1
1
K
X
0
1
0
1
Qt+1
Qt
Qt
0
1
Qt
4-17
comentrio
mantm estado anterior
mantm estado anterior
estado reset
estado set
complementa estado anterior
Tabela 4.8 - Tabela de transio de estados para o flip-flop JK disparado pela borda
ascendente.
O smbolo do flip-flop JK disparado pela borda ascendente mostrado na figura 4.19.
Tambm nesse smbolo, o tringulo na entrada de controle indica que a ativao se d pela
borda ascendente.
J
C
K
C
J
J
Q
C
K
K
Q
Q
Q
D
X
0
1
Qt+1
Qt
0
1
4-18
comentrio
mantm estado anterior
estado reset
estado set
Tabela 4.9 - Tabela de transio de estados para o flip-flop D disparado pela borda
descendente.
C
J
X
0
0
1
1
K
X
0
1
0
1
Qt+1
Qt
Qt
0
1
Qt
comentrio
mantm estado anterior
mantm estado anterior
estado reset
estado set
complementa estado anterior
Tabela 4.10 - Tabela de transio de estados para o flip-flop JK disparado pela borda
descendente.
A figura 4.20 mostra os smbolos do flip-flop D e do flip-flop JK disparados pela
borda descendente. Note a existncia de um crculo antes da entrada de controle, indicando
que os flip-flops so disparados pela borda descendente.
D
C
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!)
C
D
Q
Q
4-19
CK
dado
CK
C
clear
limpa
dado
Q
limpa
Q
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
J
preset
J
CK
Q
K
C
K
Q
Q
Q
4-21
D0
Q0
Q0
D1
Q1
Q1
CK
(4.2)
(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
4-22
(4.4)
(4.5)
(4.6)
estado atual
prximo estado
cnt
0
0
0
0
1
1
1
1
Q1t
0
0
1
1
0
0
1
1
Q1t+1
0
0
1
1
0
1
1
0
Q0t
0
1
0
1
0
1
0
1
Q0t+1
0
1
0
1
1
0
1
0
entrada
estado atual
sada
cnt
0
0
0
0
1
1
1
1
Q1t
0
0
1
1
0
0
1
1
Y
0
0
0
1
0
0
0
1
Q0t
0
1
0
1
0
1
0
1
4-23
Q1Q0=00
Y=0
Q1Q0=01
Y=0
cnt=0
cnt=1
cnt=1
cnt=1
cnt=0
Q1Q0=11
Y=1
Q1Q0=10
Y=0
cnt=0
t0
t1
t2
4-24
t3
CK
cnt
Q1
Q0
Y
Figura 4.23: diagrama de tempos para uma possvel operao do circuito seqencial da figura
4.21.
Exemplo 4.14: determinar a tabela de transio de estados, a tabela de sada e o diagrama de
estados para o circuito seqencial mostrado na figura 4.24.
cnt
D0
Q0
Q0
D1
Q1
Q1
CK
(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.
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.
entrada
estado atual
sada
cnt
0
0
0
0
1
1
1
1
Q1t
0
0
1
1
0
0
1
1
Y
0
0
0
0
0
0
0
1
Q0t
0
1
0
1
0
1
0
1
cnt=1 / Y=0
Q1Q0=00
Q1Q0=01
cnt=1 / Y=0
cnt=1 / Y=1
cnt=1 / Y=0
cnt=0 / Y=0
Q1Q0=11
cnt=0 / Y=0
Q1Q0=10
cnt=0 / Y=0
t0
t1
t2
4-26
t3
CK
cnt
Q1
Q0
Y
Figura 4.26 - Diagrama de tempos para uma possvel operao do circuito seqencial da
figura 4.24.
4-27
I2
Ik
CK
...
D1
Q1
FF1
Q1
O1
Q2
FF2
Q2
...
D3
lgica de sada
O2
...
lgica de
prximo estado
D2
sadas
On
Q3
FF3
Q3
4-28
entradas
I1
I2
Ik
CK
...
D1
Q1
FF1
Q1
O1
Q2
FF2
Q2
...
D3
lgica de sada
O2
...
lgica de
prximo estado
D2
sadas
On
Q3
FF3
Q3
4-29
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
Nos sistemas digitais, e em particular nos computadores, as informaes esto
representadas por conjuntos de dgitos binrios denominados "palavras". Nos computadores
atuais o tamanho da palavra de 32, 64 ou 128 bits. Porm, at h pouco tempo atrs, os
computadores pessoais usavam apenas 8 e 16 bits.
Naturalmente, um sistema digital projetado para trabalhar com um determinado
tamanho de palavra, devendo portanto conter recursos de hardware que lhe permitam
processar e armazenar simultaneamente conjuntos de n bits, onde n o tamanho da palavra.
A seguir estudaremos os circuitos digitais responsveis pelo armazenamento de
informao. Alguns destes circuitos so construdos de modo a tambm poder manipular a
informao armazenada. Dentre as operaes possveis esto os deslocamentos ( direita e
esquerda), o incremento e o decremento.
5.1 Registradores
Um registrador um circuito digital formado por n flip-flops, de modo a poder
armazenar simultaneamente (e de maneira independente) n bits. Trata-se de um tipo de
elemento de armazenamento bsico: um processador possui um conjunto de registradores que
pode variar de trs a algumas dezenas. A existncia de registradores dentro do processador
acelera o processamento, pois os dados que esto sendo manipulados ficam armazenados
prximo dos recursos de processamento (ULA, por exemplo), o que reduz os acessos feitos
memria.. A figura 5.1 mostra um registrador de 4 bits feito com flip-flops D (disparados pela
borda ascendente).
D3
D1
D2
3
C
D0
0
Q
CK
Q3
Q2
Q1
Q0
5-2
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.
D2
D3
0
1
D1
3
C
D0
2
Q
0
Q
carga
CK
Q2
Q3
Q1
Q0
Reg
4
Figura 5.3 - Smbolo para um registrador de 4 bits, com carga paralela e sinal de carga. "Reg"
o nome do registrador.
5-3
dado
carga
C
clear
C
K
limpa
Q
CK
limpa
dado
carga
Q
Figura 5.4 - Um bit do registrador com carga paralela.
Este exemplo ilustra o funcionamento do circuito associado a um bit de um registrador
de carga paralela com sinal de carga.
5-4
2
Q
1
Q
clear
0
Q
clear
Q
Q
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).
Exemplo 5.3: traar as formas de onda dos bits armazenados no registrador-deslocador
mostrado a seguir, a partir das formas de onde fornecidas.
5-5
dado
(entrada serial)
D
3
C
clear
clear
clear
Q
clear
limpa
CK
Q3
Q2
Q1
Q0
CK
limpa
dado
Q3
Q2
Q1
Q0
I2
I1
5-6
I0
C1
C0
entrada serial
p/ desl. esq.
entrada serial
p/ desl. dir.
00
01
10
11
00
01
10
11
3
C
2
C
00
01
10
11
00
01
10
11
1
C
DCReset
DCReset
0
C
DCReset
DCReset
CK
clear
Q
C1
X
0
0
1
1
C0
X
0
1
0
1
operao
mantm contedo
mantm contedo
desloca esquerda (shift left)
desloca direita (shift right)
carga paralela
5-7
CK
D
Q
limpa
Q
CK
clear
limpa
0
CK
clear
clear
Q
clear
limpa
Q0
Q1
Q2
CK
limpa
Q0
Q0
Q1
Q1
Q2
5-8
5.2 Memrias
Na seo anterior, vimos como so construdos diversos tipos de registradores. Apesar
de serem muito rpidos, os registradores tm capacidade de armazenamento reduzidssima:
cada registrador capaz de armazenar somente uma palavra por vez. Porm, nos sistemas
digitais em geral, e particularmente nos computadores, grandes quantidades de informao
(palavras) devem poder ser armazenadas. Para tanto, necessrio que o sistema digital possua
um conjunto especfico de circuitos que sejam mais apropriados ao armazenamento
simultneo de um grande nmero de palavras. Tais circuitos efetivamente existem e so
genericamente denominados de memrias.
Do ponto de vista do funcionamento, as memrias podem permitir apenas a consulta
(leitura) ao seu contedo ou podem permitir a consulta (leitura) e a modificao (escrita) de
seu contedo. As memrias que s permitem a leitura so chamadas de ROMs (Read-Only
Memories, que significa memrias de leitura apenas), enquanto que as memrias que
permitem a leitura e a escrita so genericamente denominadas RAMs (Random-Access
Memories, que significa memrias de acesso randmico).
O contedo das ROMs pode ser escrito (gravado) quando da fabricao ou mesmo aps,
por um usurio, que no caso pode ser o fabricante do computador, por exemplo. A
caracterstica principal que uma vez gravadas as informaes na ROM, estas no podero
ser modificados, mas somente consultadas (lidas). J as memrias RAM possuem circuitos
capazes de armazenar as informaes binrias, as quais podem ser modificadas um nmero
indeterminado de vezes.
Tanto as memrias ROM como as memrias RAM so fabricadas com a tecnologia
CMOS, que alis a mesma tecnologia de fabricao dos microprocessadores. Porm, o que
origina a diferena de funcionamento entre ROMs e RAMs o tipo de circuitos utilizados. Na
seo que segue, veremos detalhes de implementao das memrias RAM, as quais so
utilizadas na implementao da memria principal dos computadores.
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.
endereo em
binrio
endereo em
decimal
contedo
(exemplo)
0000
0001
0010
0011
0100
0101
0110
0111
0
1
2
3
4
5
6
7
:
:
2n-2
2n-1
0110100
0110100
1011100
1010001
0110101
1110110
1010001
0001101
:
:
0001100
1001100
1110
1111
m bits
Figura 5.10 - Organizao de uma memria RAM: linhas e endereos.
...
An-1
A1
Im-1
I1
I0
An-1
A1
RAM 2n x m
A0
A0
CS
CS
RWS
Om-1
O1
O0
RWS
RAM 2n x m
I/Om-1
...
...
(a)
(b)
I/O1 I/O0
5-10
CM
entrada
sada
buffer
habilitao de escrita
Figura 5.12 - Clula de memria (CM).
A figura 5.13 mostra um exemplo de memria RAM 4 x 4, constituda por 16 CMs.
Para cada acesso memria, o decodificador de endereos ativa o sinal de seleo de linha
associado ao endereo aplicado as suas entradas, o que ativa todos os CMs da linha
selecionada. Neste momento, se RWS=1 e CS=1, o novo conjunto de bits ser armazenado
nas CMs da linha selecionada. Por outro lado, se RWS=0 e CS=1, os bits que esto
armazenados na linha selecionada passaro pelos buffers de sada das respectivas CMs e pelos
buffers de entrada/sada do chip.
A organizao da memria RAM implica em restries de tempo nas operaes de
escrita e leitura. Por exemplo, como o caminho crtico da entrada a sada passa pelo
decodificador, as entradas de endereo devem estar estveis antes de quaisquer outros sinais.
Isto significa que durante o ciclo de leitura mostrado pela figura 5.14 as entradas de endereo
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).
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.
0
CM
CM
CM
CM
CM
CM
CM
CM
CM
CM
CM
CM
CM
CM
CM
CM
A1
DEC
2x4
A0
2
3
write
enable
RWS
CS
IO3
IO2
IO1
IO0
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
endereo
endereo vlido
dados
dados vlidos
output-enable
time
output-disable
time
output-hold
time
access time
t0
t1
t2
t3
t4
t5
endereo
endereo vlido
dados
dados vlidos
addresssetup time
addresshold time
datahold time
data-setup time
write pulse width
t0
t1
t2
t3
t4
t5
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 )