L ogica Seq uencial - corradi.junior.nom.br

Propaganda
Captulo 4
Logica Seq
uencial
4.1 Introduc~ao
Nos circuitos combinacionais, as sadas em um instante t dependiam unica e exclusivamente das
entradas do circuito naquele mesmo instante, ou seja, do estado atual de suas entradas. Nos
circuitos que estudaremos neste captulo, as sadas n~ao dependem mais somente do estado atual
das entradas, mas tambem de estados anteriores do circuito.
Podemos representar um circuito sequencial como sendo composto de um circuito combinacional associado a uma unidade de memoria, capaz de armazenar estados anteriores do sistema:
E0
E
entradas 1
En
logica
combinacional
S0
S1 sadas
Sm
memoria
Neste texto estudaremos somente os circuitos sequenciais sncronos. Neste tipo de circuito,
todas as mudancas de estado internas s~ao cadenciadas por um sinal externo de sincronizac~ao
chamado clock, que geralmente e uma onda quadrada de frequ^encia constante. O sinal de clock
deve ser comum e unico para todas as partes do circuito. Desta forma, consideramos que as
mudancas de estado em um circuito sequencial s~ao provocadas pelos pulsos do sinal de clock,
em instantes de tempo discretos: t, t + 1, t + 2, t + 3, . . .
A sada de um circuito sequencial e func~ao de um numero limitado de estados anteriores, que
devem portanto ser armazenados em algum lugar do circuito sequencial. As unidades basicas
de memoria empregadas em circuitos sequenciais s~ao os ip-ops, que estudaremos a seguir.
50
4.2 Flip-ops
Um ip-op (gangorra, em ingl^es) e um dispositivo que possui dois estados internos estaveis e
complementares, sendo por isso tambem chamado de biestavel. O estado interno de um ip-op
vale \0" ou \1", e pode permanecer indenidamente em um deles, em funca~o de suas entradas.
Desta forma, um ip-op pode armazenar 1 bit de informaca~o digital, e por isso constitui a
celula basica de memoria. Um ip-op normalmente apresenta um conjunto de entradas capaz
de alterar seu estado interno, e duas sadas apresentando respectivamente seu estado interno e
o complemento deste.
E1
entradas
Q
Flip-op
E2
Q
sadas
estado interno
Existem diversos tipos de ip-ops com comportamentos distintos, mas que podem ser transformados entre si. A seguir veremos os tipos mais conhecidos:
4.2.1 Flip-op RS (Reset-Set)
O ip-op de tipo RS (Reset-Set) e o mais simples desses dispositivos, e pode ser facilmente
construdo a partir de duas portas n~ao-E, como mostra a gura abaixo:
S
Q
R
Q
Mantendo as entradas R e S inativas (1), temos dois estados possveis de equilbrio para essa
estrutura, que podemos observar na gura abaixo:
S
1
1
1
1
0
1
R
1
1
0
0
Q
Q
S
1
1
0
0
1
0
R
1
1
1
1
Q
Q
51
A determinac~ao do estado das sadas de um ip-op RS em um instante futuro (Qt+1 e Qt+1 )
deve levar em conta suas entradas atuais Rt e S t e o estado interno atual Qt do mesmo:
S t Rt Qt Qt+1 Qt+1
1
2
3
4
5
6
7
8
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
Vamos analisar as situaco~es possveis para as entradas do ip-op:
Nas linhas 1 e 2, temos S t = Rt = 0, e por consequ^encia Qt+1 = Qt+1 = 1, o que
corresponde a uma situaca~o \proibida" no funcionamento normal do ip-op (as duas
sadas sempre devem ser complementares).
As linhas 3 e 4, nas quais S t = 0 e Rt = 1 correspondem a uma situac~ao de Set, ou seja,
impomos o valor \1" ao estado seguinte Qt+1 do ip-op, pouco importando seu estado
atual Qt .
As linhas 5 e 6, nas quais S t = 1 e Rt = 0 correspondem a uma situaca~o de Reset, ou seja,
impomos o valor \0" ao estado seguinte Qt+1 do ip-op, pouco importando seu estado
atual Qt .
Na situaca~o das linhas 7 e 8 temos S t = Rt = 1, e o ip-op armazena seu estado anterior:
Qt+1 = Qt .
Apos estas constatac~oes, a tabela anterior pode ser resumida assim:
S R Qt+1
0
0
1
1
0
1
0
1
proibido
1 (set)
0 (reset)
Qt (estado anterior)
A partir da tabela acima podemos construir o mapa de Karnaugh e obter a func~ao logica que
representa o comportamento do ip-op RS. Como os estados onde Rt = St = 0 s~ao proibidos,
vamos considerar a func~ao nestes pontos como sendo irrelevante (X). Obtemos o seguinte mapa,
e a func~ao logica associada:
Q RS
0
1
00 01 11 10
X 1
X 1 1
;!
Qt+1 = Rt + StQt
O ip-op RS tambem pode ser construdo a partir de portas n~ao-OU, apresentando um
comportamento similar:
52
S
Q
Q
R
Podemos modicar o ip-op RS para incluir uma entrada de controle, que pode servir por
exemplo para sincroniza-lo em relac~ao a um sinal de relogio externo (clock):
S
Q
clock
Q
R
Neste novo circuito as entradas R e S s~ao ditas sncronas em relac~ao ao sinal de clock Ck.
Temos ent~ao a seguinte tabela-verdade:
Ck S R Qt+1
0 X X Qt
1 0 0 Qt
1 0 1 0 (reset)
1 1 0 1 (set)
1 1 1 proibido
Podemos ainda acrescentar a estrutura do ip-op RS duas entradas do tipo clear e preset,
para alterar imediatamente o estado do ip-op sem necessidade das entradas R e S (ou seja,
de forma assncrona em relaca~o ao sinal de clock):
clear
S
Q
clock
Q
R
preset
53
Pela tabela verdade podemos observar que as entradas preset e clear n~ao podem operar
simultaneamente:
PS CLR Qt+1
0
0
1
1
0
1
0
1
proibido
1
0
operac~ao normal
4.2.2 Nveis e transi
c~oes
Os circuitos vistos ate o momento t^em entradas sensveis a nvel, cujo funcionamento e baseado
em nveis logicos constantes e bem denidos (0 ou 1). Este comportamento, desejavel em circuitos combinacionais, pode provocar problemas em circuitos sequenciais sncronos. Por exemplo,
o circuito do ip-op RS com entrada de sincronizac~ao (clock) vai estar ativo durante toda a
duraca~o de cada pulso de clock. Com isto, ele pode mudar de estado diversas vezes em cada
pulso de clock, caso as entradas mudem durante esse intervalo. Para contornar este problema
foram criadas as entradas sensveis a transica~o, que s~ao consideradas ativas somente durante as
transic~oes de nvel logico do sinal aplicado. Com isso uma entrada pode ser sensvel a quatro
diferentes tipos de excitaca~o:
Nvel logico alto: o sinal aplicado vale 1.
Nvel logico baixo: o sinal aplicado vale 0.
Transic~ao positiva: o sinal aplicado passa de 0 a 1.
Transic~ao negativa: o sinal aplicado passa de 1 a 0.
O sinal de clock e normalmente aplicado a entradas sensveis a transic~ao, positiva ou negativa.
Transico~es positivas e negativas s~ao representadas em tabelas-verdade respectivamente pelos
smbolos " e #. A gura abaixo indica os pontos de sensibilidade de uma entrada em relac~ao ao
sinal de clock, e indica os smbolos usados para representar cada tipo de entrada:
transic~ao positiva
nvel alto
nvel alto
nvel baixo
nvel baixo
clock
transic~ao negativa
4.2.3 Flip-op D (Data)
transica~o positiva
dispositivo
transica~o negativa
Neste tipo de ip-op a sada Q assume o valor de uma entrada de dados D sempre que for
habilitado pelo sinal de clock. Este tipo de dispositivo e bastante empregado na construc~ao de
registradores de deslocamento e no armazenamento de dados (buer). Sua representac~ao e sua
tabela-verdade s~ao as seguintes:
54
PS
D
CLR
Q
FF-D
clock
Q
Ck Dt Qt+1
0 X Qt
"
Dt Dt
1 X Qt
A partir da tabela podemos escrever que na transica~o Qt+1 = Dt .
4.2.4 Flip-op T (Toggle)
Neste tipo de ip-op a sada Q e invertida (toggled) quando a entrada T esta ativa e o sinal
de clock a habilitar. Este tipo de dispositivo e bastante empregado em contadores e divisores
de frequ^encia, pois seu comportamento permite a divis~ao por dois da frequ^encia do sinal de
entrada. Sua representac~ao e sua tabela-verdade s~ao as seguintes:
PS
T
clock
CLR
FF-T
Q
Q
Ck Tt Qt+1
0 X Qt
"
0 Qt
"
1 Qt
A partir da tabela podemos escrever que na transica~o Qt+1 = T t Qt + Tt Qt = Tt Qt . Para
compreender melhor o funcionamento deste tipo de ip-op, vamos observar seu comportamento
temporal:
55
clock
T
Q
t
Durante o perodo em que T = 1, a cada transic~ao positiva do clock o nvel da sada Q e
invertido. Com isso, o sinal da sada tem a metade da frequ^encia do sinal de clock.
4.2.5 Flip-op JK
O ip-op de tipo JK apresenta um comportamento misto entre os ip-ops RS e T. Ele possui
duas entradas J e K (que equivalem respectivamente as entradas S e R dos ip-ops RS) e uma
entrada de clock. Para os estados normais, o comportamento e o mesmo do ip-op RS, mas
quando J = K = 1 (denido como estado proibido no ip-op RS), a sada e complementada,
como ocorre no ip-op T. Com isso, podemos denir a seguinte representaca~o e tabela-verdade
para o ip-op JK:
PS
CLR
J
K
FF-JK
clock
Ck Jt Kt Qt+1
0 X X Qt
"
0 0 Qt
Q
Q
0 1
0
1 0
1
1 1 Qt
O ip-op JK e bastante popular, pois a partir dele podemos obter os demais ip-ops sem
necessidade de circuitos adicionais, como veremos na sec~ao 4.2.7.
A equac~ao de estado do ip-op JK pode ser obtida a partir de seu mapa de Karnaugh:
Q J K 00 01 11 10
0
1 1 ;! Qt+1 = Jt Qt + K t Qt
1
1
1
"
"
"
56
4.2.6 Flip-op mestre-escravo
Antes da disponibilidade de ip-ops com entradas sensveis a transica~o, uma estrutura especial
denominada ip-op mestre-escravo era usada para isolar as entradas instaveis e sincronizar o
sistema em relaca~o ao clock. O circuito normalmente usado para implementar ip-ops mestreescravo e composto por dois ip-ops RS em cascata, e pode ser visto na gura a seguir:
mestre
escravo
Qm
Sm
Rm
Qm
Qs
Qs
clock
Vamos analisar o que ocorre em um ip-op mestre-escravo em um pulso completo de clock.
No incio, com a descida do sinal de clock no escravo, este e desconectado do mestre. Ao nal da
subida, as entradas do mestre s~ao habilitadas e este comeca a atualizar seu estado interno em
funca~o as entradas. O mestre permanece assim ate o incio da descida do pulso de clock, quando
suas entradas s~ao desabilitadas, e ao nal da descida seu estado e transferido ao escravo. Com
isso, a sada do ip-op escravo e completamente isolada de eventuais oscilac~oes nas entradas
Sm e Rm. A gura a seguir ilustra esse comportamento.
registra entrada do mestre
desabilita entradas do mestre
clock
t
isola mestre do escravo
transfere estado ao escravo
O ip-op de tipo mestre-escravo caiu em desuso com o surgimento de entradas sensveis a
transic~ao, sendo raramente usado hoje em dia.
4.2.7 Convers~ao entre ip-ops
Os ip-ops apresentados t^em comportamentos similares, e podem ser facilmente convertidos
entre si, atraves de conex~oes simples e do uso de algumas portas adicionais. Vejamos alguns
exemplos:
Convers~ao de ip-op JK em ip-op D:
57
D
J
K
Q
FF-JK
Q
clock
Convers~ao de ip-op JK em ip-op T:
T
J
K
Q
FF-JK
Q
clock
Convers~ao de ip-op RS em ip-op T:
R
T
Q
FF-RS
clock
Q
S
Convers~ao de ip-op RS em ip-op JK:
K
R
FF-RS
clock
J
S
Q
Q
Convers~ao de ip-op D em ip-op T:
T
clock
D
Q
FF-D
Q
58
4.2.8 Par^ametros operacionais
Para a operac~ao correta dos ip-ops alguns par^ametros devem ser respeitados, sobretudo no que
diz respeito as caractersticas temporais dos sinais de entrada. Os par^ametros mais importantes
s~ao:
Frequ^encia maxima fmax : e a maxima frequ^encia admitida para o sinal de clock, ou seja, a
maxima frequ^encia de operac~ao do dispositivo.
Tempo de setup tsetup: e o tempo mnimo de presenca do sinal em uma entrada de dados
antes da ocorr^encia do pulso de clock.
Tempo de perman^encia thold: e o tempo mnimo que o sinal deve permanecer em uma entrada de dados apos a transic~ao do clock.
Tempo de preset tpreset: e o tempo mnimo que uma entrada do tipo preset ou clear precisa
estar ativa para efetuar sua func~ao.
Largura de pulso tw : e o tempo mnimo que o clock precisa permanecer em um nvel alto
(caso a porta seja sensvel a ") ou baixo (caso a porta seja sensvel a #) para que possa ser
conavel.
A gura abaixo ilustra esses par^ametros, que s~ao fortemente dependentes da tecnologia
empregada para a construc~ao do dispositivo. Alguns destes valores ser~ao revistos no captulo ??,
mas os manuais de dados tecnicos dos dispositivos (Data Sheets dos fabricantes) os apresentam
em detalhe.
tsetup thold
D
Clock
CLR
tw
tpreset
Q
4.3 Diagramas de estado
Podemos representar o comportamento de um circuito sequencial atraves de equac~oes logicas
ou de tabelas-verdade. Essa forma de representac~ao somente e viavel para circuitos simples,
contendo apenas um ip-op. Quando a complexidade do circuito aumenta, torna-se necessario
empregar outras formas de representaca~o para denir seu comportamento de maneira el e sem
inconsist^encias ou ambiguidades. Uma ferramenta muito util para a representaca~o do comportamento de circuitos sequenciais complexos e o diagrama de estados, tambem chamado aut^omato
nito, que veremos nesta sec~ao.
59
4.3.1 Estrutura basica
Um diagrama de estados e uma construc~ao graca composta por um conjunto de estados (indicados por crculos) e de transico~es (indicados por arcos com setas). Os estados representam todas
as situac~oes possveis para o sistema, e as transico~es indicam as mudancas de estado possveis,
e em que condic~oes elas s~ao provocadas (os valores das entradas que as provocam). O estado
inicial do sistema e indicado por um crculo duplo.
Vejamos por exemplo o diagrama de estados de um semaforo, indicado na gura a seguir.
Esse diagrama possui os estados verde (estado inicial), amarelo, vermelho e parado. As transico~es
entre estados est~ao indicadas pelas setas, com os nomes dos eventos que as provocam.
avancar
avancar
vermelho
verde
conserto
problema
avancar
amarelo
problema
problema
parado
No caso especco dos circuitos sequenciais sncronos, o diagrama de estados possui algumas
caractersticas importantes que devem ser levadas em conta em sua interpretaca~o. A primeira e
o seu aspecto sncrono: o diagrama deve indicar as mudancas possveis no sistema no proximo
proximo pulso de clock, em func~ao do valor das entradas do circuito naquele momento.
Outra caracterstica diz respeito a nomeaca~o dos arcos que representam as transico~es: um
determinado arco leva de um estado atual ao seu proximo estado, e seu rotulo indica a combinac~ao de entrada que ativa aquela transic~ao e o valor de sada que ela ira provocar. A gura
abaixo ilustra esse funcionamento:
estado atual
A
proximo estado
B
01
1
entrada
sada
A interpretaca~o da transic~ao acima e a seguinte: no proximo pulso de clock, se o sistema
estiver no estado interno A e ocorrer a entrada 01, ent~ao o sistema passara ao estado B e a sada
passara a valer 1.
4.3.2 Um exemplo: o somador serial
Vamos usar o diagrama de estados para representar o comportamento de um circuito um pouco
mais complexo: um somador completo serial. Este circuito tem duas entradas At e Bt que
60
recebem os dois dgitos binarios a somar, e uma sada St , que apresenta a soma obtida. Alem
disso, o circuito armazena o excesso Ct;1 (carry) da soma anterior e considera esse valor na soma
atual. Desta forma, podemos somar numeros binarios longos, processando um bit por pulso de
clock.
00110110010111
01011101110011
At
P
St
10010100001010
Bt
clock
A partir das entradas At e Bt e do excesso da ultima soma Ct;1 podemos construir a seguinte
tabela-verdade para a soma atual St e seu excesso Ct :
Ct;1 At Bt St Ct
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
O valor a ser memorizado e o ultimo excesso, que constitui portanto o estado interno do
sistema. Com isso podemos deduzir que o sistema possui dois estados internos: um quando
Ct;1 = 0, que chamaremos q0, e outro quando Ct;1 = 1, que chamaremos q1 . Podemos ent~ao
construir o diagrama de estados que representa seu comportamento, considerando como entradas
o par At Bt e como sada a soma St :
00
0
01
1
11
0
q0
10
1
01
0
q1
00
1
10
0
11
1
O diagrama acima permite representar de forma sucinta e sem ambiguidades o comportamento esperado para o somador serial. Esses diagramas ser~ao de suma import^ancia para a
analise e projeto de circuitos sequenciais sncronos, por isso sua estrutura deve ser perfeitamente
compreendida.
61
4.3.3 Tabelas de estados
Uma forma alternativa de representac~ao do comportamento de um circuito sequencial e sob
a forma de uma tabela, que indica para cada estado e para cada combinac~ao das entradas, o
proximo estado e o valor da sada (sob a forma de fraca~o). Para o somador serial podemos
construir a seguinte tabela de estados (que pode ser obtida da tabela-verdade ou do diagrama
de estados):
q AB
q0
q1
00 01 10 11
q0
0
q0
1
q0
1
q1
0
q0
1
q1
0
q1
0
q1
1
O diagrama de estados e a tabela de estados contem exatamente a mesma informac~ao e por
isso s~ao equivalentes.
4.3.4 Diagramas de estado dos ip-ops
Podemos construir os diagramas de estado dos ip-ops a partir das tabelas-verdade e das
equac~oes logicas vistas ate o momento para os mesmos. O diagrama de estado de um ip-op
e bastante simples, porque a sada se confunde com o proximo estado interno do sistema (Q e
ao mesmo tempo sada e estado). Vejamos como cam os diagramas de estado dos principais
ip-ops:
Flip-
op RS: Considerando como entrada o par R S e como sada Q:
11
0
01
0
10
1
q0
00
?
11
1
q1
01
0
10
1
00
?
Flip-
op D: Considerando como entrada D e como sada Q:
1
1
0
0
q0
q1
0
0
Flip-
op T: Considerando como entrada T e como sada Q:
1
1
62
1
1
q1
q0
0
0
0
1
1
0
Flip-
op JK: considerando como entrada o par JK e como sada Q:
01
0
00
1
11
1
10
1
q0
q1
11
0
01
0
00
0
10
1
4.4 An
alise de circuitos sequenciais s
ncronos
O comportamento de um circuito sequencial e denido por uma sequ^encia de estados que evolui
em func~ao de seu estado atual e das entradas do circuito essa evoluc~ao e cadenciada por um
sinal de clock. A partir das denico~es apresentadas no incio deste captulo, podemos propor a
seguinte estrutura generica para um circuito sequencial sncrono:
entradas
E0
E1
logica
En
Y1
Yr
ip-op
ip-op
...
ip-op
sadas
Sm
combinacional
Y0
estado
atual
S0
S1
X0
X1
Xr
excitaca~o
dos
ip-ops
clock
Na estrutura acima, a parte combinacional fornece as sadas S do circuito e os sinais de
controle X que ir~ao excitar os ip-ops, ambos em func~ao de suas entradas E e de seu estado
63
atual Y . Os ip-ops armazenam o estado Y do sistema, cuja evoluc~ao e cadenciada pelo sinal
de clock.
4.4.1 Objetivo
As relac~oes entre entradas, estado atual, sadas e proximo estado podem ser completamente
especicadas atraves de um diagrama de estados, como vimos na sec~ao 4.3. O objetivo principal
da analise de um circuito sequencial sncrono e a obtenca~o de um diagrama de estados indicando
seu comportamento, e o estudo deste para a compreens~ao do funcionamento do circuito. Para a
analise de um circuito devem ser efetuados os seguintes passos:
1. Identicar as variaveis (sinais) de entrada, de sada, de controle dos ip-ops (excitac~ao)
e de estado.
2. Obter as equaco~es relativas a parte combinacional do circuito, atraves das tecnicas ja
estudadas no captulo 3:
Si (t) =
Xk (t) =
F (E0 (t) : : : En (t) Yo (t) : : : Yr (t))
G (E0 (t) : : : En (t) Yo (t) : : : Yr (t))
3. Escrever as equac~oes de proximo estado de cada ip-op, em func~ao do tipo de ip-op,
de seu estado atual e das entradas de controle Xi :
Yi(t + 1) =
H(Yi (t) Xi (t))
4. Montar uma tabela-verdade relacionando cada uma das entradas E (t), sadas S (t), estados
X (t) e proximos estados X (t + 1), com a seguinte forma:
E0 (t) . . . En (t) X0 (t) . . . Xr (t) S0 (t) . . . Sm (t) X0 (t + 1) . . . Xr (t + 1)
0
...
...
...
0
...
0
...
...
...
0
...
0
...
...
...
0
...
0
...
...
...
0
...
5. A partir da tabela, construir o diagrama de estados do circuito.
A seguir veremos como a tecnica de analise e aplicada, atraves do estudo de dois exemplos.
4.4.2 Um exemplo
Vamos analisar o circuito da gura a seguir, para obter seu diagrama de estados:
1
J1
K1
clock
FF1
Q1
J2
K2
FF2
Q2
J3
K3
FF3
Q3
S
64
O circuito pode ser redesenhado para colocar em evid^encia a separac~ao existente entre suas
partes combinacional e sequencial (o sinal de clock dos ip-ops ca subentendido):
S
Q1
Q2
Q3
FF1
FF2
FF3
J1
K1
1
J2
K2
J3
K3
Nosso primeiro passo na analise consiste em identicar todas as variaveis envolvidas:
Vari
aveis de entrada: nenhuma
Vari
aveis de sada: S
Vari
aveis de controle: J1 K1 J2 K2 J3 K3
Vari
aveis de estado: Q1 Q2 Q3
A seguir vamos identicar e renar as equac~oes:
Sada:
S (t) = Q3 (t)
Controle:
J1 (t) = K1 (t) = 1
J2 (t) = K2 (t) = Q1 (t)
J3 (t) = K3 (t) = Q1 (t)Q2 (t)
65
Proximo estado:
Q1 (t + 1) = J1 (t)Q1 (t) + K 1 (t)Q1 (t)
= 1Q1 (t) + 0Q1 (t)
= Q1 (t)
Q2(t + 1) = J2 (t)Q2 (t) + K 2 (t)Q2 (t)
= Q1 (t)Q2 (t) + Q1 (t)Q2 (t)
= Q1 (t) Q2 (t)
Q3 (t + 1) = J3 (t)Q3 (t) + K 3 (t)Q3 (t)
= Q1 (t)Q2 (t)Q3 (t) + (Q1 (t)Q2 (t))Q3 (t)
= (Q1 (t)Q2 (t)) Q3 (t)
A partir desses dados podemos construir a tabela-verdade para esse circuito. Para sua
construc~ao, devem ser enumeradas todas as combinaco~es possveis para as entradas E (t) e estados
dos ip-ops Q(t). A partir desses dados e das equaco~es obtidas, podem ser determinadas as
sadas do sistema S (t) e os estados futuros dos ip-ops Q(t + 1). Deve-se observar que cada
combinaca~o de estados dos ip-ops corresponde a um estado interno qi diferente para o sistema.
Entradas
|
|
|
|
|
|
|
|
|
n
o
q0
q1
q2
q3
q4
q5
q6
q7
Estado atual
Sadas
Proximo estado
Q1(t) Q2 (t) Q3 (t) S (t) Q1 (t + 1) Q2 (t + 1) Q3 (t + 1)
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
no
q4
q5
q6
q7
q2
q3
q1
q0
A partir da tabela-verdade obtida podemos montar o diagrama de estados do circuito, que
representa seu comportamento temporal:
;
0
q0
q4
;
0
q2
;
0
;
;
1
q7
q6
0
;
1
q3
;
1
q5
;
1
q1
66
O diagrama de estados do circuito permite observar facilmente que a sequ^encia de valores da sada do circuito sera composta alternadamente por quatro \0" e quatro \1":
000011110000111100001111. . .
4.4.3 Outro exemplo
Vamos analisar o circuito da gura a seguir, para obter seu diagrama de estados:
X
Z
Q1
Q2
Q2
FF1
FF2
D1
D2
Primeiramente vamos identicar todas as variaveis envolvidas:
Variaveis de entrada: X
Variaveis de sada: Z
Variaveis de controle: D1 D2
Variaveis de estado: Q1 Q2
A seguir vamos identicar e renar as equac~oes:
Sada:
Z (t) = X (t) + Q2 (t)
Controle:
D1 (t) = Q1 (t) + Q2 (t)
D2 (t) = X (t)Q1 (t)
67
Proximo estado:
Q1 (t + 1) = D1 (t)
= Q1 (t) + Q2 (t)
Q2 (t + 1) = D2 (t)
= X (t)Q1 (t)
A partir desses dados podemos construir a tabela-verdade para esse circuito:
Entradas
X (t)
0
0
0
0
1
1
1
1
Estado atual
Sadas
Proximo estado
n Q1 (t) Q2 (t) Z (t) Q1 (t + 1) Q2 (t + 1)
q0 0
0
0
1
0
q1 0
1
1
0
0
q2 1
0
0
1
0
q3 1
1
1
1
0
q0 0
0
1
1
0
q1 0
1
1
0
0
q2 1
0
1
1
1
q3 1
1
1
1
1
o
no
q2
q0
q2
q2
q2
q0
q3
q3
Finalmente podemos montar o diagrama de estados do circuito:
q1
01
1
1
1
q0
1
1
q2
q3
0
1
0
0
0
0
1
1
Como vimos anteriormente, podemos tambem representar o diagrama de estados na forma
de uma tabela de estados:
estado
entradas
atual X (t) = 0 X (t) = 1
q0
q1
q2
q3
q2
0
q0
1
q2
0
q2
1
q2
1
q0
1
q3
1
q3
1
4.5 Projeto de circuitos sequenciais s
ncronos
O projeto de circuitos sequenciais sncronos segue uma abordagem analoga a utilizada no processo de analise, mas em sentido inverso. Desta forma, o projeto pode ser decomposto nos seguintes
passos:
68
1. Descrica~o completa da operaca~o desejada para o circuito, envolvendo:
identicaca~o das entradas e sadas
identicaca~o dos estados internos (n ip-ops para 2n estados)
denic~ao do comportamento desejado, atraves de um diagrama de estados.
2. Determinac~ao da tabela-verdade para o circuito, com base nos valores possveis para as
entradas e estados internos do circuito. Esta tabela tambem devera conter colunas para
os sinais de excitac~ao dos ip-ops, em func~ao do tipo de ip-op escolhido.
3. Minimizac~ao das func~oes correspondentes a parte combinacional do circuito, ou seja, sadas
e controles dos ip-ops.
4. Construc~ao do circuito nal.
Para a determinac~ao da tabela-verdade teremos de empregar \tabelas de excitac~ao" para os
ip-ops, que permitem determinar os valores das entradas de controle em funca~o da transic~ao
de estado desejada. Essas tabelas podem ser facilmente deduzidas a partir das tabelas-verdade
dos ip-ops. Por exemplo, para o ip-op JK temos:
Qt Jt Kt Qt+1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
Qt Qt+1 Jt Kt
;!
0
0
1
1
0
1
0
1
0 X
1 X
X 1
X 0
De maneira similar podemos obter a tabela de excitaca~o para o ip-op D:
Qt Dt Qt+1
0
0
1
1
0
1
0
1
0
1
0
1
Qt Qt+1 Dt
;!
0
0
1
1
0
1
0
1
0
1
0
1
4.5.1 Um exemplo
Neste exemplo vamos projetar um circuito para implementar o somador serial cujo comportamento foi apresentado na sec~ao 4.3.2. Nosso primeiro passo e determinar a operaca~o desejada
para o circuito, e para isso vamos determinar os seguintes dados:
Entradas: os bits a somar: A(t) e B (t)
Sada: a soma acumulada: S (t)
Estados internos: dois estados, indicando o excesso da ultima operaca~o efetuada: sem
carry (q0 ) e com carry (q1 ).
69
Comportamento: indicado no diagrama de estados apresentado na sec~ao 4.3.2.
Como temos dois estados internos, precisaremos de apenas uma variavel de estado Q(t) e
por consequ^encia apenas um ip-op.
Neste ponto podemos montar a tabela-verdade do circuito. Ja conhecemos At , Bt , St , Qt
e Qt+1 , apresentados no diagrama de estados. Devemos ent~ao escolher um tipo de ip-op
para a implementac~ao e obter as colunas correspondentes a sua excitaca~o. Essas colunas ser~ao
determinadas a partir de cada par \estado atual ! estado futuro" para cada ip-op, usando
a tabela de excitac~ao do ip-op escolhido. Escolhendo um ip-op JK ou D, nossa tabela de
estados assume a seguinte forma:
entradas estado atual sadas proximo estado excitac~ao dos ip-ops
At Bt
0
0
1
1
0
0
1
1
Qt
0
1
0
1
0
1
0
1
St
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
Qt+1
Jt Kt
0
0
0
1
0
1
1
1
0
0
0
1
X
X
X
X
X
X
X
X
1
0
0
0
Dt
0
0
0
1
0
1
1
1
Com a tabela construida, podemos passar a determinac~ao das func~oes combinacionais necessarias a gerac~ao da sada e das excitac~oes do ip-op. Para St podemos construir o seguinte
mapa de Karnaugh:
Q AB
00 01 11 10
1
1
1
1
0
1
;!
St = At Bt Qt
Para Jt temos:
Q AB
0
1
00 01 11 10
1
X X X X
;!
Jt = At Bt
Para Kt temos:
Q AB
0
1
00 01 11 10
X X X X
1
;!
Kt = At B t = At + Bt
A partir das funco~es mnimas obtidas podemos sintetizar a parte combinacional do circuito,
que acoplada ao ip-op nos dara o circuito nal:
70
At
Bt
St
Q FF
J
K
clock
O circuito acima pode ser apresentado de uma forma mais agradavel e intuitiva:
At
Bt
St
J
K
FF Q
clock
4.5.2 Outro exemplo
Vamos construir um circuito para implementar o comportamento descrito atraves do seguinte
diagrama de estados:
q1
1
0
0
0
q0
0
0
0
0
1
0
q2
1
1
Nosso primeiro passo e determinar a operaca~o desejada para o circuito, e para tal vamos
determinar os seguintes dados:
71
Entrada: uma entrada, que chamaremos Et
Sada: uma sada, que chamaremos St
Estados internos: o sistema possui tr^es estados (q0 , q1 e q2 ), o que nos leva a um mnimo
de dois ip-ops e portanto duas variaveis de estado Q1t e Q2t , cuja combinac~ao nos
permitira a indicac~ao do estado do sistema:
Q1t Q2t
0
0
1
1
estado
q0
q1
q2
0
1
0
1
sem uso
Comportamento: indicado no diagrama de estados apresentado acima.
Neste ponto podemos montar a tabela-verdade do circuito. Ja conhecemos Et , St , Q1t , Q2t ,
Q1t+1 e Q2t+1 , apresentados no diagrama de estados. Escolhendo um ip-op JK, devemos
ent~ao determinar J 1t , K 1t , J 2t e K 2t :
entrada
Et
0
0
0
0
1
1
1
1
estado atual sada
no Q1t Q2t St
q0 0
0
0
q1 0
1
0
q2 1
0
0
| 1
1
X
q0 0
0
0
q1 0
1
0
q2 1
0
1
| 1
1
X
proximo estado excitac~ao dos ip-ops
no Q1t+1 Q2t+1 J 1t K 1t J 2t K 2t
q0
0
0
0 X
0
X
q0
0
0
0 X X
1
q0
0
0
X 1
0
X
| X
X
X X X X
q1
0
1
0 X
1
X
q2
1
0
1 X X
1
q2
1
0
X 0
0
X
| X
X
X X X X
Com a tabela assim construida, podemos passar a determinaca~o das func~oes combinacionais
necessarias a geraca~o da sada e das excitaco~es dos ip-ops, em func~ao da entrada Et e dos
estados Q1t e Q2t . Para St podemos construir o seguinte mapa de Karnaugh:
Et Q1 Q2 00 01 11 10
0
1
X
X
1
;!
St = Et Q1t
;!
J 1t = Et Q2t
Para as excitac~oes J 1t , K 1t , J 2t e K 2t temos:
Et Q1 Q2 00 01 11 10
0
1
1
X X
X X
Et Q1 Q2 00 01 11 10
0
1
X X X
X X X
1
;!
K 1t = E t
72
Et Q1 Q2 00 01 11 10
0
1
X X
X X
1
;!
Et Q1 Q2 00 01 11 10
0
1
X
X
1
1
X X
X X
;!
J 2t = Et Q1t
K 2t = 1
A partir das funco~es mnimas obtidas podemos sintetizar a parte combinacional do circuito,
que acoplada aos ip-ops nos dara o circuito nal:
Et
St
Q1
Q1
Q2
Q2
FF1
FF2
J1
K1
J2
K2
1
4.6 Principais circuitos sequenciais s
ncronos
Nesta sec~ao veremos alguns circuitos sequenciais sncronos de uso bastante frequente, e portanto
facilmente encontrados na forma de chips completos. Esses circuitos podem tambem ser sintetizados atraves da tecnica de projeto vista na seca~o anterior. Abordaremos aqui os registradores
de deslocamento e os contadores.
4.6.1 Registradores de deslocamento
Um registrador de deslocamento e um arranjo linear de n ip-ops capaz de armazenar n bits
de informac~ao. A cada pulso de clock os dados podem ser deslocados uma posica~o para a
direita ou para a esquerda, de acordo com a implementac~ao do registrador, o que justica o
nome desse dispositivo. Os dados podem ser carregados no registrador de forma paralela (todos
simultaneamente, atraves de entradas especiais) ou sequencial, atraves de um dos extremos do
73
registrador e fazendo uso do mecanismo de deslocamento de bits. A gura a seguir mostra
o diagrama simplicado de um registrador de deslocamento para a direita com 8 bits (foram
omitidos o sinal de clock e as entradas de controle):
entrada paralela
E0 E1 E2 E3 E4 E5 E6 E7
Es
Ss
entrada
serial
sada
serial
S0 S1 S2 S3 S4 S5 S6 S7
sada paralela
As duas setas indicam os sentidos possveis do uxo de dados no interior do registrador de
deslocamento:
uxo sequencial: os dados uem para a direita na cad^encia do clock. O primeiro ipop assume o valor da entrada serial Es , e o dado do outro extremo, que ja atravessou o
registrador, e apresentado na sada serial Ss. Portanto, a cada pulso de clock o dado mais
antigo (a direita) e descartado e um novo dado entra no registrador (a esquerda). Desta
forma, um dado demora n pulsos de clock para atravessar um registrador de deslocamento
de n bits.
uxo paralelo: o conteudo do registrador pode ser acessado atraves das sadas paralelas,
e pode ser totalmente alterado fazendo-se uso das entradas paralelas. Essas operaco~es
normalmente podem ser efetuadas de maneira assncrona.
Podemos compreender melhor o funcionamento de um registrador de deslocamento analisando seu comportamento temporal. O diagrama de tempo a seguir mostra o comportamento de
um registrador de deslocamento de 4 bits com o conteudo inicial 1000 (apenas um bit ativo no
primeiro registro), e com Es = 0:
clock
S0
S1
S2
S3
Segundo a maneira como a informac~ao ui no interior de um registrador de deslocamento,
podemos classica-lo em quatro grupos:
74
Serie-serie: como cada bit demora n pulsos de clock para atravessar o registrador, este
dispositivo e usado em linhas de retardo digitais, para criar atrasos no sinal digital (por
exemplo, em c^amaras de eco digitais podem ser usados registradores com milhares de bits).
Serie-paralelo: os dados s~ao carregados em serie e retirados atraves da sada paralela.
Esta estrutura e normalmente usada para em comunicaca~o de dados, para converter sinais
seriais (na linha telef^onica) em sinais paralelos (no interior do computador).
Paralelo-serie: exerce a funca~o inversa do anterior, sendo por isso tambem empregado em
comunicac~ao de dados.
Paralelo-paralelo: a carga e descarga do registrador e feita atraves das portas paralelas.
Pode ser usado para deslocar (shift) valores binarios, ou para armazena-los temporariamente (bu er).
Veremos a seguir algumas estruturas simples para a implementac~ao dos registradores de
deslocamento. Empregamos ip-ops de tipo D por serem os que melhor se enquadram neste
tipo de aplicac~ao, e por sua simplicidade. Para construir um registrador de deslocamento serieserie, basta acoplarmos ip-ops tipo D em serie:
Es
clock
D FF Q
D FF Q
D FF Q
D FF Q
Ss
O registrador serie-paralelo tem uma implementaca~o similar, bastando extrair a sada individual de cada ip-op para compor a sada paralela. Para construir os registradores paralelo-serie
e paralelo-paralelo, usamos as entradas preset e clear de cada ip-op para carregar o registrador
com os valores presentes na entrada paralela:
E0
E1
E2
En
pr clr
D FF Q
pr clr
D FF Q
pr clr
D FF Q
pr clr
D FF Q
carregar
Es
clock
Ss
75
Podemos tambem construir um registrador bidirecional, cujo sentido de deslocamento (da
esquerda para a direita ou vice-versa) e estabelecido atraves de uma porta de controle M :
M = 1: esquerda ! direita: Eed ! FF1 ! FF2 ! FF3 ! FF4 ! Sed
M = 0: direita ! esquerda: Ede ! FF4 ! FF3 ! FF2 ! FF1 ! Sde
M
M
Sde
Ede
Eed
Sed
clock
1
D
Q
2
D
Q
3
D
Q
4
D
Q
4.6.2 Contadores
Contadores s~ao circuitos sequenciais que permitem contar pulsos de uma entrada, apresentando
a contagem sob a forma de um numero binario, em uma sada com n bits. Os contadores t^em
muitas aplicac~oes, dentre as quais a contagem de eventos, a divis~ao de frequ^encia, o sequenciamento de operaco~es, etc.
Podemos classicar os contadores segundo diversos par^ametros:
Sincronismo: um contador pode ser sncrono, quando todos os seus ip-ops est~ao sob o
comando de um mesmo clock, ou assncronos, quando os ip-ops podem ser excitados
por clocks distintos.
Sentido: um contador pode contar de forma ascendente ou descendente, ou ambos.
Programaca~o: um contador pode efetuar uma contagem entre dois extremos xos, ou
podemos estabelecer os valores inicial e nal para a contagem.
O contador de implementac~ao mais simples e o assncrono ascendente, que pode ser facilmente
obtido atraves da associac~ao de ip-ops tipo T em cascata:
76
1
T Q
T Q
T Q
T Q
Q
Q
Q
Q
FF
FF
clock
Q0
FF
Q1
FF
Q2
Q3
O circuito acima permite contar 16 passos, de 00002 a 11112 , em sentido ascendente, como
mostra o diagrama temporal a seguir:
clock
Q0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
Q1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
Q2
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
Q3
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
Caso seja necessaria uma contagem com sada sequencial, podemos associar a saida do
contador um decodicador 4 16, e assim teremos na sada do decodicador uma sequ^encia
S0 ! S1 ! S2 ! ! S15 que evolui a cada pulso do clock. Tambem podemos ver o circuito
anterior como um divisor de frequ^encia: para um sinal de clock de frequ^encia fc, a sada Q0 tem
frequ^encia fc=2, a sada Q1 tem frequ^encia fc=4 e assim por diante.
Para a construca~o de um contador assncrono descendente basta usar as sadas Q para
associar os ip-ops. O contador da gura a seguir efetua o ciclo 0000 ! 1111 ! 1110 !
1101 ! 1100 ! ! 0000:
1
clock
T Q
T Q
T Q
T Q
Q
Q
Q
Q
FF
FF
Q0
FF
Q1
FF
Q2
Q3
77
Podemos associar os dois circuitos e obter um contador ascendente-descendente, sob o comando de uma porta de controle M : caso M = 1 teremos uma contagem ascendente, e caso
M = 0 ela sera descendente:
M
1
T Q
T Q
Q
Q
FF
FF
O projeto de contadores sncronos pode ser feito facilmente atraves da tecnica de projeto
descrita neste captulo. Duas estruturas de contadores sncronos s~ao bastante conhecidas: o
contador sncrono com transporte serie ou com transporte paralelo. Estes nomes indicam a
forma como a evoluc~ao dos bits menos signicativos do contador s~ao consideradas na evoluc~ao
dos bits mais signicativos. Ambas as estruturas s~ao apresentadas a seguir (para 4 bits):
1
FF
FF
T Q
FF
T Q
FF
T Q
T Q
clock
Q0
1
FF
Q1
FF
T Q
Q2
FF
T Q
Q3
FF
T Q
T Q
clock
Q0
Q1
Q2
Q3
78
Para a construc~ao de contadores sncronos decrescentes ou bidirecionais podem ser seguidos
os mesmos procedimentos apresentados para os contadores assncronos, ou seja, usar Q ao inves
de Q ou associar uma logica de controle para selecionar entre Q e Q.
Os contadores vistos ate o momento permitem contar M = 2n passos, onde n e o numero
de ip-ops usados. Podemos no entanto construir contadores para operar com um valor M
qualquer, que chamaremos contadores em modulo M. Por exemplo, um contador em modulo 5
permite contar 5 passos, percorrendo o ciclo 000 ! 001 ! 010 ! 011 ! 100 ! 000 ! .
O primeiro passo para a construc~ao de um contador em modulo M e a determinac~ao do
numero de ip-ops necessarios para a contagem. Isso pode ser feito com base no numero de
dgitos binarios necessarios para representar os estados do contador. Por exemplo, um contador
em modulo 6 (610 = 1102 ) ira precisar de 3 ip-ops, enquanto um contador em modulo 26 ira
necessitar de 5 ip-ops (pois 2610 = 110102 ).
A seguir deve-se construir um contador assncrono usando os ip-ops necessarios. Para
obter a contagem ate M , deve-se conectar todas as sadas ativas no estado M a uma porta AND
que ira ativar as entradas clr de todos os ip-ops. Assim, quando a contagem atingir M , a
porta AND sera ativada e os ip-ops voltar~ao a zero, reiniciando a contagem. O circuito a
seguir usa essa tecnica para implementar um contador em modulo 26 (ou seja, que vai de 0 a
25):
1
clock
T Q
T Q
T Q
T Q
clr
clr
clr
clr
FF
FF
Q0
FF
Q1
T Q
FF
Q2
FF
clr
Q3
Q4
4.7 Exerc
cios
1. Projete um registrador em anel de 3 bits, com deslocamento para a direita. Qualquer que
seja o valor inicial, o valor de cada bit e deslocado para a direita, e o ultimo a direita passa
a ser o primeiro a esquerda. O bit da esquerda e o mais signicativo. Use ip-ops de tipo
D.
2. Projete um contador de 3 bits com clear, usando ip-ops de tipo T.
3. Projete um contador crescente-decrescente de 2 bits em codigo Gray. Se a entrada U = 1
o contador e crescente, e sen~ao e decrescente. Esse tipo de contador e usado para controlar
motores de passo bidirecionais.
4. Projete um contador programavel obedecendo as caractersticas da tabela a seguir, usando
ip-ops de tipo JK:
79
entradas modo de
operac~ao
0 0 n~ao muda
0 1 modulo 3
1 0 modulo 5
1 1 modulo 7
x1 x2
5. Considere um somador paralelo de 4 bits, no qual X e o sinal de controle, e A e B s~ao
os registradores de 4 bits. Se X = 0 nenhuma operaca~o e efetuada, mas se X = 1 e
realizada a soma dos registradores A e B , e o resultado e depositado no registrador A.
Projete o circuito do somador, considerando que o mesmo pode ser decomposto em celulas
somadoras de 1 bit (o excesso ou carry de cada estagio deve servir como entrada para o
estagio seguinte).
6. Construa o diagrama de estados do gerador pseudo-aleatorio de rudo cujo circuito e apresentado a seguir:
output
D Q
D Q
FF
FF
D Q
D Q
FF
FF
clock
7. Projete um circuito detector de paridade par serial para palavras de 8 bits, usando ipops de tipo D, e responda: a) quantos pulsos de relogio s~ao necessarios para detectar a
paridade de uma palavra b) compare o circuito obtido com o detector de paridade paralelo
apresentado na sec~ao 3.6.
8. Obtenha o diagrama de estados do circuito a seguir:
1
J Q
J Q
J Q
K
K
K
FF
FF
clock
9. Obtenha o diagrama de estados do circuito a seguir:
FF
output
80
EEL5310 - Sistemas Digitais - EEL/UFSC - Prof. Carlos Maziero
output
J Q
J Q
K Q
K Q
FF
clock
input
10. Projete um divisor de frequ^encia por 10.
FF
Download