Escolar Documentos
Profissional Documentos
Cultura Documentos
SISTEMAS DIGITAIS 1
Departamento de Informtica
ESCOLA DE ENGENHARIA
UNIVERSIDADE DO MINHO
Maro 2006
NDICE
1. Introduo3
2. lgebra Booleana.9
3. Conceitos sobre Sistemas Combinacionais...21
4. VHDL.....42
5. Aplicao de Sistemas Combinacionais.64
6. Conceitos sobre Sistemas Sequenciais..89
7. Aplicao de Sistemas Sequenciais...116
8. Dispositivos Programveis e Memrias127
9. Bibliografia.....147
1. Introduo
1.1.
+5
+5
1
V
Time
1
Time
1.2.
Abstraco digital
1.3.
As portas lgicas so o dispositivo digital mais elementar. Uma porta lgica possui
uma ou mais entradas e gera uma sada que uma funo dos valores actuais das
entradas. Uma porta lgica um circuito combinacional porque as sadas
dependem exclusivamente da combinao actual das entradas.
1.5.
Flip-flops
Um flip-flop um dispositivo que guarda um 0 ou um 1 na sada. O estado do flipflop o valor que ele guarda no presente instante. O valor guardado s pode ser
alterado em determinados instantes, impostos por uma entrada de relgio (clock).
Um circuito digital que inclui flip-flops um circuito sequencial. A sada dum
circuito sequencial depende, em qualquer instante, alm do valor actual das
entradas, da sequncia de valores que no passado foi aplicada nas entradas. Um
circuito sequencial possui memria dos eventos passados.
1.6.
Ferramentas de CAD
Circuitos integrados
Um circuito integrado (CI) uma coleco de portas lgicas produzidas num nico
chip. Os CIs podem ser classificados, de acordo com o seu tamanho, em:
SSI (small scale integration): de 1 a 20 portas lgicas - ANDs, Ors e NOTs;
MSI (medium scale integration): 20 a 200 portas lgicas - descodificadores,
registos e contadores;
LSI (large scale integration): 200 a 200.000 portas lgicas - memrias de
capacidade reduzida e PLDs simples;
VLSI (very large scale integration): mais de 1 milho de transstores microprocessadores, memrias e PLDs complexas.
Como exemplo, pode dizer-se que o Pentium4 tem 42 milhes de transstores.
A figura seguinte mostra um exemplo de encapsulamento do tipo DIP (Dual In-line
Pin package).
1.8.
PLDs
Alguns CIs permitem que a sua funcionalidade lgica seja programada no prprio
chip aps terem sido fabricados. A maior parte destes CIs pode mesmo ser
reprogramada, o que permite que alguns erros sejam corrigidos sem ter que o
substituir ou retirar. As PLDs: possuem uma estrutura a dois-nveis, com portas
AND e OR, e ligaes programveis pelo utilizador. As CPLDs (PLDs complexas) e
as FPGAs (Field Programmable Gate Arrays) foram idealizadas com o intuito de
implementarem sistemas de maior dimenso. A utilizao de HDLs e das
respectivas ferramentas permite que um projecto seja compilado, sintetizado e
descarregado para o dispositivo em menos tempo.
1.9.
2. lgebra de Boole
O sucesso da tecnologia dos computadores baseia-se em 1 lugar na simplicidade
com que se projectam circuitos digitais e na facilidade da sua produo. Os circuitos
digitais so constitudos por unidades de processamento elementares, designadas
por portas lgicas, e unidades de memria elementares, designadas por flip-flops.
A simplicidade do projecto de circuitos digitais deve-se ao facto de as entradas e as
sadas de cada porta lgica ou flip-flop assumir apenas 2 valores: 0 e 1. As
alteraes no valor dos sinais so determinadas pelas leis da lgebra de Boole.
A lgebra de Boole permite optimizar funes. No projecto de circuitos digitais
pode usar-se tcnicas de optimizao de outras reas.
2.1.
Sinais binrios
2.2.
Portas lgicas
Com 3 tipos de porta elementares (AND, OR, NOT) consegue construir-se qualquer
sistema digital combinacional, ou seja, formam um conjunto completo.
10
G. Boole
C. Shannon
Axiomas
11
Teoremas
X+0 = X
X+1 = 1
X+X = X
(X) = X
X+X = 1
(T1) X1 = X
(T2) X0 = 0
(T3) XX = X
(T5) XX = 0
(Identidades)
(Elementos nulos)
(Idempotncia)
(Involuo)
(Complementos)
X+Y = Y+X
(T6)
XY = YX
(X+Y)+Z = X+(Y+Z) (T7)
(XY)Z = X(YZ)
XY+XZ = X(Y+Z) (T8)
(X+Y)(X+Z)=X+YZ
X+XY = X
(T9)
X(X+Y) = X
XY+XY = X
(T10) (X+Y)(X+Y) = X
XY+XZ+YZ = XY+XZ
(X+Y)(X+Z)(Y+Z) = (X+Y)(X+Z)
(Comutatividade)
(Associatividade)
(Distributividade)
(Cobertura)
(Combinao)
(Consenso)
X+X+ ... +X = X
XX ... X = X
12
Teoremas de DeMorgan:
(T13)
(T13)
[F(X1,X2,...,Xn,0,1,+,)] = F(X1,X2,...,Xn,1,0,+)
13
T13
T13
(X+Y) = XY
(XY) = X+Y
2.7.
Dualidade
Lgica positiva
Lgica negativa
DUAL
DUAL
Lgica
positiva
Lgica
negativa
15
2.8.
Representao normalizada
16
Um mintermo de n-variveis pode ser representado por um inteiro com n-bits, que
se designa por nmero do mintermo. No mintermo i, uma varivel surge
complementada se o bit correspondente na representao binria de i for 0; seno,
a varivel no-complementada. Por exemplo, linha 5 (101) corresponde o
mintermo XYZ. No maxtermo i, uma varivel surge complementada se o bit
correspondente na representao binria de i for 1; seno, a varivel nocomplementada. Por exemplo, linha 5 (101) corresponde o maxtermo X+Y+Z.
Para que a especificao dos mintermos e maxtermos faa sentido, preciso
conhecer o nmero de variveis da funo e a sua ordem (X,Y,Z nos exemplos).
A partir da correspondncia entre a tabela de verdade e os mintermos, pode
derivar-se uma representao algbrica dessa funo lgica. A soma cannica
duma funo lgica uma soma dos mintermos que correspondem a linhas da
tabela de verdade para as quais a funo 1. Por exemplo, a partir da tabela
seguinte obtm-se:
F = X,Y,Z m(0,3,4,6,7) = XYZ + XYZ + XYZ + XYZ + XYZ
A notao X,Y,Z m(0,3,4,6,7) identifica 1 lista de mintermos e representa a
soma dos mintermos 0, 3, 4, 6 e 7 envolvendo as variveis X, Y e Z.
17
Alguns exemplos:
A,B,C m(0,1,2,3) = A,B,C M(4,5,6,7)
X,Y m(1) = X,Y M(0,2,3)
W,X,Y,Z m(1,2,3,5,8,12,13) = W,X,Y,Z M(0,4,6,7,9,10,11,14,15)
Foram apresentadas
combinacionais:
formas
distintas
de
representar
funes
lgicas
A tabela de verdade
A soma algbrica de mintermos (a soma cannica)
A lista de mintermos, com notao
Produto algbrico de maxtermos (o produto cannico)
A lista de maxtermos, com notao
2.9.
Exemplos
X + YZ
X(Y+Y)(Z+Z) + YZ(X+X)
XYZ + XYZ+ XYZ + XYZ+ XYZ + XYZ
XYZ + XYZ + XYZ + XYZ+ XYZ
X,Y,Z m(3,4,5,6,7)
[T5]
[T3]
[T8] e+A.B=(e+A).(e+B)
[T8] e+A.B=(e+A).(e+B)
[T5 ] X+X=1
19
[T5] [T8]
[T5] [T8]
[T5] [T8]
Y
0
0
1
1
0
0
1
1
Z
0
1
0
1
0
1
0
1
W
1
1
0
0
0
1
0
1
X,Y,Z
X,Y,Z
M(2,3,4,6)
m(0,1,5,7)
20
[T3] X+X=X
[T5] X+X=1
Aps obter a descrio formal da funo lgica dum circuito, pode (i) determinar-se
o seu comportamento para vrias combinaes de entradas; (ii) alterar-se a
descrio algbrica de modo a induzir diferentes estruturas para o circuito; (iii)
transformar a descrio algbrica numa forma normalizada (por exemplo, PLD); (iv)
utilizar a descrio algbrica do circuito para analisar um sistema de maior
dimenso, do qual este sistema seja parte integrante.
Considere-se o seguinte circuito.
A partir da tabela de verdade pode extrair-se de forma directa uma expresso lgica
(por exemplo, SOP).
21
= ((X+Y) Z) + (XYZ)
= (XZ) + (YZ) + (XYZ)
= ((X+Y) Z) + (XYZ)
= (X+Y+X) (X+Y+Y) (X+Y+Z) (Z+X) (Z+Y) (Z+Z)
= 1 1 (X+Y+Z) (Z+X) (Z+Y) 1 =
= (X+Y+Z) (X+Z) (Y+Z)
22
[T8]
[T5]
23
Outras vezes, a descrio comea com uma listagem das combinaes das
entradas para as quais uma determinada sada deve estar activa ou inactiva. Esta
listagem equivale tabela de verdade dessa sada.
Exemplo: construir um circuito que detecte nmeros primos de 4-bits.
Dada uma combinao de entrada N=N3N2N1N0 com 4-bits, o circuito gera
1 na sada quando N=1,2,3,5,7,11,13 e gera 0 nos outros casos.
F = N3,N2,N1,N0 m(1,2,3,5,7,11,13) =
N3 N2 N1 N0 + N3 N2 N1 N0 + N3 N2 N1 N0 + N3 N2 N1 N0 +
N3 N2 N1 N0 + N3 N2 N1 N0 + N3 N2 N1 N0
A concretizao da expresso SOP da sada do detector :
24
At aqui foram apresentados mtodos para projectar circuitos que usam apenas
portas AND, OR e NOT. Em certas situaes, o projectista pode querer usar portas
NAND ou NOR, dado que so mais rpidas que ANDs e ORs na maioria das
tecnologias. Contudo, a generalidade das pessoas no desenvolve proposies
lgicas usando o NAND e o NOR como elementos de ligao. No se diz: No
gosto duma rapariga, se ela no for inteligente ou no for elegante e tambm se ela
no for rica ou no for simptica, ou seja, G=(I+E)(R+S). mais frequente dizerse: Gosto duma rapariga, se ela for inteligente e elegante ou se ela for rica e
simptica, ou seja, G = (IE) + (RS).
Qualquer expresso lgica pode ser convertida numa expresso SOP equivalente e
ser deste modo implementada com portas AND e OR. Um circuito AND-OR com 2nveis pode ser convertido num circuito NAND-NAND com 2-nveis, atravs duma
simples substituio de portas (ver o exemplo abaixo).
A1+ ... +An = (A1. . An) NAND
Vimos que qualquer expresso SOP pode ser concretizada de duas formas: atravs
dum circuito AND-OR ou dum circuito NAND-NAND. Aplicando o princpio da
dualidade a esta regra, obtemos uma declarao que tambm verdadeira:
Qualquer expresso POS pode ser concretizada de duas formas: atravs
dum circuito OR-AND ou dum circuito NOR-NOR.
A figura seguinte mostra a aplicao do princpio da dualidade.
25
a)
b)
c)
d)
Circuito original
Circuito aps adicionar pares de inversores
Eliminao de uma porta no normalizada
Circuito com menos atraso no NAND e menos um nvel no inversor do que o anterior
Qualquer conjunto de tipos de porta lgica que permite concretizar qualquer funo
lgica um conjunto completo. A porta AND de 2-entradas mais a porta OR de 2entradas mais o inversor formam 1 conjunto complete. A figura seguinte mostra
outros conjuntos completos: (i) a porta NAND de 2-entradas e (ii) a porta NOR de 2entradas.
NAND
NOR
26
Qualquer funo lgica pode ser expressa numa soma de produtos de literais. As
portas AND e OR, com qualquer nmero de entradas, podem ser construdas a
partir de portas do mesmo tipo com 2-entradas.
3.2.
Minimizao
27
Dada a funo
Z = ABC+ABC+ABC+ABC=A(B+B)C+(A+A)BC+ABC
= AC+BC+ABC
i) A implementao Z1 na figura anterior constitui uma concretizao a dois-nveis
(dado que os inversores no contam), em que o nmero de literais maior que nas
outras alternativas.
ii) A implementao Z2 uma concretizao multi-nvel, que utilize portas com
menos entradas mas possui um nmero de nveis maior:
Z = ABC+AC+BC
= (AB)C+(A+B)C
= (AB)C+(AB).C
iii) A implementao Z3 uma concretizao que utilize uma porta mais complexa
(XOR), que significa um atraso maior, mas emprega menos portas:
Z = (AB)C+(AB).C = (AB) xor C
As tcnicas de minimizao reduzem o nmero e o tamanho das portas necessrias
para construir um circuito, diminuindo assim o custo do sistema. Os mtodos de
minimizao reduzem o custo dum circuito AND-OR ou OR-AND a 2-nveis atravs
de:
Minimizar o nmero de portas no primeiro nvel;
Minimizar o nmero de entradas em cada porta do primeiro nvel;
Minimizar o nmero de entradas em cada porta do segundo nvel.
Os mtodos de minimizao no consideram o custo dos inversores entrada. Isto
resulta de se considerar que todas as variveis de entrada, e seus complementares,
esto disponveis (adequado para implementaes com PLDs). Tambm assumem
que a funo a minimizar est representada por uma tabela de verdade ou por uma
lista de mintermos ou maxtermos. A minimizao baseia-se nos teoremas T10 e
T10:
produtoY + produtoY = produto
(soma + Z) (soma + Z) = soma
Estes teoremas indicam que se dois termos diferem apenas numa varivel, podem
ser substitudos por um nico termo com menos uma varivel. Deste modo, poupase uma porta e a outra porta possui menos uma entrada.
28
F = A B' + A B = A (B' + B) = A
O valor de B varia nas linhas do on-set
B eliminado , A mantm-se
O valor de A no varia nas linhas do on-set
Essncia da simplificao:
Encontrar pares de elementos do ON-set em que apenas uma varivel muda de
valor. A varivel que muda de valor pode ser eliminada.
Vamos aplicar esta tcnica expresso do detector de nmeros primos.
F = N3,N2,N1,N0 m(1,2,3,5,7,11,13) =
N3N2N1N0 + N3N2N1N0 + N3N2N1N0 + N3N2N1N0 + ... =
(N3N2N1N0 + N3N2N1N0) + (N3N2N1N0 + N3N2N1N0) + ... =
(N3N2N0) + (N3N2N0) + ... = N3N0 + ...
3.3.
Mapas de Karnaugh
29
funo lgica. O mapa para uma funo lgica de n-entradas um array com 2n
clulas, uma por cada mintermo (ver a figura seguinte para os casos n=2, 3 e 4).
F x,y
G x,y,z
H w,x,y,z
30
32
O procedimento utilizado para combinar clulas, pode ser estendido para permitir
combinar mais do que 2 clulas-a-1 num nico termo.
F
33
Uma soma mnima para a funo lgica F uma expresso do tipo soma de
produtos (SOP) para F tal que nenhuma outra expresso SOP para F possui menos
termos de produto, e qualquer expresso SOP com o mesmo nmero de termos de
produto possui pelo menos tantos literais como ela. A soma mnima possui o menor
nmero de termos de produto possvel (nmero de portas no 1 nvel e nmero de
entradas na porta do 2 nvel) e o menor nmero de literais possvel (nmero de
entradas nas portas do 1 nvel).
Uma funo lgica P implica a funo lgica F (P F) se para cada combinao
de entradas em que P=1, ento tambm F=1. Ou seja, F inclui ou cobre P. Um
implicante maior duma funo lgica F um termo de produto normal P que
implica F, de tal modo que se qualquer varivel for eliminada de P, ento o termo de
produto resultante j no implica F. Em termos dum mapa de Karnaugh, um
implicante maior de F um conjunto de clulas-a-1 envolvido por um rectngulo, de
tal modo que se tentarmos aument-lo (de modo a cobrir o dobro das clulas), ele
vai cobrir um ou mais 0s.
Teorema do implicante maior: uma soma mnima uma soma de
implicantes maiores.
Para encontrar uma soma mnima, no necessrio ter em conta qualquer termo
de produto que no seja um implicante maior. A soma de todos os implicantes
maiores duma funo designada por soma completa. A soma completa no
necessariamente uma soma mnima.
34
35
O 3 mapa aquele que se obtm ao retirar os implicantes essenciais e os 1s que eles cobrem.
simplifica mais que
36
F = XY + XZ + WX
F = (X+Y) (X+Z) (W+X)
Visitam-se apenas
distinguidas.
as
clulas-a-1distinguidas
37
no
as
clulas-a-X
Mapa de Karnaugh
inicial
Implicantes essenciais
e cobertura mnima
para os 1s restantes
3.4.
Hazards
38
Os mtodos usados para eliminar hazards consideram que apenas uma entrada
varia em cada instante. Este pressuposto equivale a efectuar um deslocamento
atravs de clulas vizinhas num mapa de Karnaugh. Os mapas de Karnaugh podem
ser usados para detectar hazards estticos em circuitos com estrutura AND-OR ou
OR-AND. Num circuito bem projectado e que implemente uma soma de produtos a
2-nveis s podem ocorrer hazards em 1s estticos (no em 0s estticos).
Para o mapa da figura seguinte, como no h um termo de produto que cobre
ambas as combinaes XYZ=111 e XYZ=110, possvel que se gere um breve
glitch a 0 na sada (se o AND que muda para 0 o fizer antes do AND que muda para
1). Para eliminar o hazard, deve incluir-se no circuito uma porta AND extra.
39
40
Outro exemplo, em que se usam 3 ANDs extra para eliminar os hazards estticos:
ii) Ocorre um glitch, que eliminado com o termo extra C.D (situao laranja no mapa).
41
4. VHDL
O VHDL foi desenvolvido na dcada de 80 pelo DoD e pelo IEEE. VHDL um
acrnimo de VHSIC Hardware Description Language; VHSIC um acrnimo de
Very High Speed Integrated Circuit.
O VHDL possui as seguintes caractersticas:
4.1.
4.2.
Entidades e arquitecturas
Numa entidade, mode indica qual a direco dum porto da interface. Um porto
uma entrada, sada ou entrada/sada dum mdulo. As possibilidades para a
direco dum porto so:
in:
entrada da entidade;
out:
sada da entidade;
buffer: sada da entidade (o seu valor pode ser lido dentro da
arquitectura);
inout: entrada e sada da entidade.
Nesta declarao, signal-type designa um tipo de sinal predefinido ou um tipo
definido pelo utilizador.
Sinal o objecto primrio utilizado para descrever sistemas, equivale a um fio
fsico e tem um historial de valores passados associado. Os sinais funcionam
como canais de comunicao entre instrues concorrentes. A sintaxe da
declarao dum sinal :
signal nome_sinal : tipo_sinal := valor_inicial_opcional ;
44
Tipos
46
O contedo dos elementos dum array pode ser especificado por posio,
colocando a lista de valores a atribuir entre parnteses:
B := (1,1,0,1,1,0,0,1);
-- tipo byte
O contedo do array tambm pode ser especificado usando ndices:
W := (0=>0, 3=>0, 9=>0,others=>1); -- tipo word
O contedo dum array STD_LOGIC pode ser especificado usando strings:
B := 11011001;
W := 0110111110111111;
Tambm se pode especificar uma parcela dum array:
B(2 to 4):=101;
W(9 downto 0):=0101011010;
Pode juntar-se arrays usando o operador de concatenao (&):
0&1&1Z
equivalente a 011Z.
B(6 downto 0)& B(7) equivale a rodar o array B um 1bit esquerda.
4.4.
Funes e procedimentos
47
48
Bibliotecas e packages
49
Um exemplo:
library ieee;
4.6.
Projecto estrutural
50
(i)
(ii)
(iii)
51
52
53
4.7.
54
55
4.8.
57
58
4.9.
Dimenso temporal
simular o modelo dum circuito obtm-se uma boa aproximao para o seu
comportamento temporal.
Outra forma de incorporar informao temporal numa descrio VHDL consiste
em usar a instruo wait. Esta instruo sequencial pode ser usada para
suspender um processo durante um intervalo determinado. frequente usar a
instruo wait para ajudar a descrever os padres que se aplicam nas
entradas dum circuito que est a ser simulado. Um exemplo:
61
library IEEE;
use
IEEE.std_logic_1164.all;
entity testAlu1bit is
end entity test_alu1bit;
architecture tst of testAlu1bit is
component alu1bit is
port (
a, b, c : in std_logic;
sel
: in std_logic_vector
(1 downto 0);
res, f
: out std_logic);
end component alu1bit;
signal
signal
signal
signal
i1
i2
ci
op
:
:
:
:
std_logic := '0';
std_logic := '0';
std_logic := '0';
std_logic_vector
(1 downto 0) := "00";
signal res : std_logic;
signal co : std_logic;
begin
-- instanciar
-- a testar
ALU1: alu1bit
port map (
a
=>
b
=>
c
=>
sel
=>
res
=>
f
=>
o sistema
i1
i2
ci
op
res
co
process (i1) is
begin
if i1='1' then
i1 <= '0' after 10ns;
elsif i1='0' then
i1 <= '1' after 10ns;
end if;
end process;
process (i2) i
begin
if i2='1' then
i2 <= '0' after 20ns;
elsif i2='0' then
i2 <= '1' after 20ns;
end if;
end process;
process (ci) is
begin
if ci='1' then
ci <= '0' after 40ns;
elsif ci='0' then
ci <= '1' after 40ns;
end if;
end process;
process (op) is
begin
if op="00" then
op <= "01" after
elsif op="01" then
op <= "10" after
elsif op="10" then
op <= "11" after
elsif op="11" then
op <= "00" after
end if;
end process;
end architecture;
,
,
,
,
,
);
80ns;
80ns;
80ns;
80ns;
4.11. Sntese
O VHDL foi pensado para ser uma linguagem de descrio e simulao. Mais
tarde, foi tambm adoptado no processo de sntese. A linguagem possui vrias
caractersticas e construtores NO sintetizveis. O subconjunto da linguagem e
o estilo de programas apresentados at aqui so em boa medida sintetizveis
pela maior parte das ferramentas comerciais.
O cdigo que descreve um circuito pode ter um impacto enorme na qualidade
do circuito que se consegue sintetizar. Como exemplo pode dar-se o das
estruturas de controlo encadeadas, do tipo if-elsif-elsif-else. Estas estruturas
podem originar uma srie de portas lgicas em cadeia usadas para testar as
vrias condies. prefervel usar um case ou uma atribuio selectiva, desde
que as condies de seleco (choices) sejam mutuamente exclusivas.
62
63
A prxima figura mostra uma representao mais compacta da PLA 4x3 com 6
termos de produto.
64
= I1I2 + I1I2I3I4
= I1I3 + I1I3I4 + I2
= I1I2 + I1I3
+ I1I2I4
65
Cada sada dispe dum conjunto nico e fixo de termos de produto que pode
usar. Uma PAL normalmente mais rpida do que uma PLA equivalente.
Descodificadores
66
Descodificador 2-para-4:
Tabela de verdade.
Smbolo.
Esquemtico.
(por exemplo, Y0=EN./I1./I0)
Smbolo do 74x138.
67
Para descodificar entradas ainda com mais bits, pode usar-se uma hierarquia
de descodificadores. Por exemplo, pode construir-se um descodificador 5-para32 com um descodificador 2-para-4 e quatro 3-para-8 (ver figura seguinte). O
descodificador 2-para-4 descodifica os 2 bits mais significativos, gerando 4
68
69
5.3.
Descodificadores de 7-segmentos
70
TPC 1:
Obter as expresses minimizadas para as sadas do descodificador de 7segmentos ao lado usando mapas de Karnaugh (sem BI_L).
TPC 2:
Escrever em VHDL uma descrio fluxo de dados para o descodificador de 7segmentos.
5.4.
Codificadores
71
Codificador 2n-para-n.
Codificador 8-para-3:
Assume-se que apenas uma entrada est activa em cada instante. As
equaes das sadas do codificador so:
Y2 = I4 + I5 + I6 + I7
Y1 = I2 + I3 + I6 + I7
Y0 = I1 + I3 + I5 + I7
72
= I7
= I6I7
= I5I6I7
= I4I5I6I7
(equaes idnticas para H3 a H0)
A0
A1
A2
IDLE
= H1 + H3 + H5 + H7
= H2 + H3 + H6 + H7
= H4 + H5 + H6 + H7
= I0I1I2I3I4I5I6I7
73
5.5.
Buffers Tri-state
5.6.
Multiplexadores
74
75
76
77
5.7.
78
VHDL dispe de operadores xor e xnor nativos. Uma porta XOR de 3-entradas
pode ser especificada pelo seguinte cdigo VHDL em estilo fluxo de dados.
79
5.8.
Comparadores
A sada DIFF activada quando algum par de bits da entrada (Ai , Bi) for
diferente. O circuito pode ser facilmente adaptado para funcionar com palavras
de qualquer nmero de bits.
Um circuito iterativo genrico um circuito combinacional com a seguinte
estrutura:
80
Colocar EQ0 a 1 e i a 0.
Se EQi 1 e Xi=Yi, colocar EQi+1 a 1.
Seno colocar EQi+1 a 0.
Incrementar i.
Se i < n regressar etapa 2.
81
Este CI dispe de sadas com indicao de maior que, menor que e igual
a. O CI 74x85 possui ainda entradas em cascata para combinar mltiplos
circuitos de modo a construir comparadores com mais do que 4 bits.
AGTBOUT = (A>B) + (A=B) AGTBIN
AEQBOUT = (A=B) AEQBIN
ALTBOUT = (A<B) + (A=B) ALTBIN
Por exemplo, (A>B) dado por:
A3B3 + (A3B3) A2B2 + (A3B3) (A2B2) A1B1 +
(A3B3) (A2B2) (A1B1) A0B0
Com 3 circuitos 74x85, pode construir-se um comparador de 12-bits.
82
5.9.
ii) Smbolo do
somador completo
83
Duas palavras em binrio, cada uma com n bits, podem ser somadas usando
um somador de ripple. Um somador de ripple composto por uma cadeia de
n somadores completos, onde cada somador processa um bit:
= X Y BIN
= XY + XBIN + YBIN
85
86
5.10. Multiplicadores
O algoritmo tradicionalmente usado para multiplicar nmeros binrios emprega
deslocamentos e somas na obteno do resultado. Contudo, no essa a
nica forma possvel de implementar a multiplicao.
Dadas duas entradas de n-bits (X, Y), pode escrever-se a tabela de verdade
que expressa o produto P=X*Y de 2n-bits atravs duma funo combinacional
de X e Y. A maior parte das estratgias de implementao de multiplicadores
combinacionais baseiam-se no algoritmo tradicional com deslocamentos e
somas.
87
88
6.2.
Estado
89
6.3.
Elementos bi-estveis
Pode usar-se uma nica varivel de estado (sinal Q) para definir o estado do
circuito. Logo, h 2 estados possveis: Q=0 e Q=1.
O elemento bi-estvel to simples que no possui entradas, o que impede
que o seu estado seja controlado. Quando o circuito alimentado, ele assume
um estado aleatrio e permanece nele indefinidamente. Efectuando uma
anlise do bi-estvel segundo uma perspectiva analgica percebe-se melhor o
seu funcionamento.
90
6.4.
Latches e flip-flops
91
Pode construir-se uma latch S-R com portas NOR (S=set, R=reset).
Normalmente QN o complemento de Q. Se S e R estiverem ambos a 0, o
circuito comporta-se como o elemento bi-estvel. Deve activar-se S ou R para
forar o ciclo de feedback a atingir o estado (estvel) desejado. A entrada S
define (sets ou presets) a sada Q a 1 e a entrada R define (resets ou clears) a
sada Q a 0.
Pode construir-se uma latch S-R, com entradas de set e reset activas no nvel
baixo, com portas NAND. O funcionamento desta latch S-R idntico ao da
anterior, com 2 diferenas:
S_L e R_L so activas no nvel baixo, logo a latch mantm o seu estado
quando S_L=R_L=1.
Quando S_L e R_L estiverem ambas activas, ambas as sadas ficam a 1
(e no a 0).
Uma latch S-R (ou /S-/R) reage ao valor das entradas em qualquer momento.
Contudo, pode ser alterada para reagir ao valor das entradas apenas quando
uma entrada de enable (C) estiver activa. O circuito alterado comporta-se tal
como a latch S-R quando C=1 e mantm o estado quando C=0.
92
Esta latch elimina a situao problemtica da latch S-R, que ocorre quando S e
R so activadas (a 1) em simultneo. Quando C=1, a latch est aberta /
transparente e a sada Q acompanha a entrada D. Quando C=0, a latch est
fechada e a sada Q mantm o ltimo valor.
93
A primeira latch chama-se mestre e est aberta quando CLK=0. Quando CLK
muda para 1, a latch mestre fecha. A segunda latch, o escravo, est aberta
enquanto CLK=1, mas a sada muda de valor apenas no incio desse intervalo,
dado que o mestre est fechado nesse intervalo.
O tringulo na entrada CLK um indicador de entrada dinmica e assinala um
comportamento sensvel s transies (edge-triggered).
No intervalo definido pelos setup time mais o hold time, em torno dos bordos do
CLK a que o FF sensvel, a entrada D deve permanecer fixa.
Alguns flip-flops D possuem 2 entradas assncronas que servem para forar o
seu estado, independentemente das entradas CLK e D: PR e CLR.
94
95
Com um flip-flop D edge-triggered pode construir-se um flip-flop J-K edgetriggered (sensvel s transies). O flip-flop JK amostra o valor das entradas
(J e K) e altera as sadas (Q e QN) no bordo ascendente do CLK de acordo
com a equao caracterstica: Q* = J . Q + K . Q
No intervalo definido pelos setup time mais o hold time, em torno do bordo
ascendente de CLK, as entradas J e K devem permanecer fixas.
O flip-flop JK tem aplicao comum em mquinas de estado porque gera
menos lgica combinacional.
96
O flip-flop T tambm pode ter uma entrada de enable. Neste caso, o flip-flop s
muda de estado no bordo ascendente do relgio (T) se a entrada de enable EN
estiver activa.
Tambm se pode usar um flip-flop D e J-K para obter um flip-flop T com enable.
97
6.5.
Uma mquina de estados finita (FSM) pode ser definida formalmente por um
quinteto <S,I,O,F,G>, em que:
S representa o conjunto de estados.
I representa o conjunto de entradas.
O representa o conjunto de sadas.
F representa a funo que gera o prximo estado.
G representa a funo que gera as sadas.
A funo F atribui a cada combinao (estado, entradas) outro estado:
F:SxIS. A funo G obtm o valor das sadas para o estado actual.
Existem 2 tipos de FSM, aos quais correspondem 2 definies diferentes para a
funo G que gera as sadas. Nas mquinas do tipo Moore, a funo G baseiase no estado: G:SO e as sadas dependem apenas do estado da FSM. Nas
mquinas do tipo Mealy, a funo G baseia-se nas entradas e estado:
G:SxIO e as sadas dependem do estado e das entradas da FSM.
O meta-modelo FSM assume que o tempo est dividido em intervalos
uniformes e que as transies ocorrem apenas no incio de cada intervalo. Para
definir esses intervalos, a que se chama ciclos de relgio, usa-se um sinal de
relgio. Cada modelo FSM pode ser implementado com flip-flops e portas
lgicas.
Genericamente, uma mquina de estados sncrona e do tipo Mealy possui a
seguinte estrutura:
98
99
100
101
102
103
104
105
106
107
108
109
IDLE=000.
Q2 distingue as partes simtricas R1R2R3 e L1L2L3.
Usa-se cdigo gray em Q1Q0 nas sequncias IDLEL1L2L3 e
IDLER1R2R3 para minimizar as transies nas variveis de
estado.
110
6.6.
111
112
113
114
Exemplo do sistema que controla as luzes de trs dum carro (pgina 110), em
que a mquina de estados agora descrita em VHDL. Usam-se cdigos de
estado iguais aos valores das sadas (pgina 108), dispensando assim a lgica
para gerar as sadas.
115
Introduo
Contadores
116
118
119
120
7.3.
121
122
7.4.
124
7.5.
PLDs sequenciais
125
126
8. CPLDs e Memrias
8.1.
Introduo
medida que a tecnologia de fabrico de CIs avanou, surgiu o interesse
natural em produzir PLDs cada vez maiores para tirar partido duma densidade
de transstores (dentro do chip) cada vez maior.
Uma CPLD um dispositivo que incorpora num nico chip uma coleco de
PLDs interligadas por uma estrutura programvel. Esta estrutura permite que
as PLDs sejam interligadas do mesmo modo que o seriam fora do chip. A
famlia de CPLDs 9500 da Xilinx vai ser usada como exemplo para a
arquitectura duma CPLD.
127
128
129
130
131
132
133
Um buffer de entrada.
Um buffer tri-state para sada.
Lgica para gerar o sinal que controla o buffer de sada.
134
8.2.
Qualquer circuito sequencial possui pelo menos um tipo de memria, uma vez
que cada flip-flop e latch guarda um bit de informao. Contudo, o termo
memria usado para identificar um dispositivo em que os bits esto
armazenados de forma estruturada, normalmente em forma de array
bidimensional, em que se acede a uma linha de bits de cada vez.
O campo de aplicao da memria vasto e variado:
Em microprocessadores (uPs);
Em sistemas baseados em uPs ou microcontroladores, para guardar os
dados a processar e/ou as instrues a executar;
Em dispositivos de armazenamento portteis: cartes SD/CF, flash
drivers, leitores MP3
Em sistemas udio/vdeo (como leitores/gravadores de CD/DVD) para
guardar uma parte da informao a processar e assim melhorar o
desempenho.
135
136
137
138
139
RAMs
A designao memria de leitura/escrita (RWM - Read/Write Memory) aplica-se
a arrays de memria que permitem que a informao seja guardada e lida em
qualquer momento. Actualmente, a maior parte das memrias RWM do tipo
RAM.
Numa memria de acesso aleatrio (RAM - Random-Access Memory), o tempo
que demora a ler ou escrever um bit no depende da sua localizao. Segundo
a definio anterior, as ROMs tambm so memrias de acesso aleatrio, mas
a designao RAM geralmente s se aplica a RAMs que suportam leitura e
escrita. Numa memria RAM esttica (SRAM), o contedo escrito numa
determinada posio mantm-se enquanto o chip estiver alimentado, a no ser
que se escreva outro valor nessa posio. Uma memria RAM dinmica
(DRAM), s mantm o contedo guardado em cada posio se ele for reposto
(refreshed) periodicamente. O refrescamento consegue-se lendo o contedo de
determinada posio e reescrevendo-o na mesma posio.
A maior parte das RAMs so memrias do tipo voltil. Ou seja, quando se
desliga a alimentao perde-se o seu contedo. Contudo, algumas RAMs
mantm o contedo mesmo quando se desliga a alimentao. Neste caso, so
memrias do tipo no-voltil.
140
Uma RAM de 2nxb bits possui como entradas um endereo de n bits, b bits de
dados e (3) sinais de controlo e como sadas apenas b bits de dados:
Os sinais de controlo so semelhantes aos da ROM apresentada, adicionandose o sinal WE que habilita a escrita na RAM: CS, OE e WE. Quando se activa
as entradas WE e CS, o valor da entrada de dados escrito na posio da
RAM seleccionada pelo endereo.
Cada posio, ou clula, de memria numa RAM esttica comporta-se como
uma latch D, e no como um flip-flop D sensvel s transies do relgio. Ou
seja, sempre que WE e CS estiverem activos, a latch associada com a posio
seleccionada est aberta: a sada segue a entrada de dados. O valor que fica
guardado na posio em causa aquele que estiver presente na sada de
dados da latch quando ela fecha.
Normalmente, as RAMs estticas permitem apenas 2 tipos de acesso: leitura e
escrita.
Para efectuar uma leitura:
141
142
Para que a entrada e sada dos dados da SRAM se faa pelos mesmos pinos
(bidireccionais) a organizao interna apenas tem que ser alterada
ligeiramente:
143
144
145
146
9. Bibliografia
John F. Wakerly, Digital Design Principles and Practices, PrenticeHall International, 3 edio actualizada, 2001.
147