MQUINAS DE ESTADO
No caso da Mquina de Mealy, como pode ser observado pela Figura 10.3, as sadas
Zi dependem dos estados dos flip-flops e das entradas Xi. Assim, se houver mudana nas
entradas, as sadas podero mudar de valor, e se houver pulso de clock que cause mudana
de estado, as sadas tambm podero mudar. Na Mquina de Moore, como pode ser
observado pela Figura 10.3, as sadas Zi dependem somente dos estados dos flip-flops.
Mquina de Mealy: as sadas dependem das estradas e dos estados dos flip-
flops.
Mquina de Moore: as sadas dependem somente dos estados dos flips-flops.
Mquinas de estado podem ser melhor entendidas atravs do seu projeto. Assim, a
seguir sero apresentados os sete passos de projeto, e a seguir a anlise das formas de onda
tpicas.
Figura 10.4 - Representaes de estados em (a) Mquina de Moore e (b) Mquina de Mealy.
X 0 1 0 0 1 0 1 0 1 1 1
Z 0 0 1 1 1 0 0 1 1 0 1 0
Instante a b c d e f g h i j k l
1 recebidos 0 0 1 1 1 2 2 3 3 4 5 6
Obs Par Par mpar mpar mpar Par Par mpar mpar Par mpar Par
S0
0
Figura 10.6 - Estado inicial do detector de paridade.
Com essa ltima transio, o diagrama de estados fica completo, onde todas as
combinaes esto contempladas. Estando a no estado S0, se for recebido 0, a mquina
mantm-se no estado S0 (instante g da Tabela 10.1), e se for recebido 1, a mquina muda
para o estado S1 (instante h da Tabela 10.1).
X 0 1 0 0 1 0 1 0 1 1 1
Z 0 0 0 0 0 0 0 1 0 1 0 0
Instante a b c d e f g h i j k l
0 S0 S1
0 0
Admita agora que, no estado S1, o circuito receba 1. Isso frustra a continuidade da
sequncia. Entretanto esse 1 pode ser tambm o incio da sequncia, e nesse caso o circuito
mantm-se no estado S1. Por outro lado, o recebimento de 0 significa que a sequncia
progrediu, e consequentemente a mquina avana para o estado S10, como indicado na
Figura 10.13, e correspondente aos instantes fg da Tabela 10.2.
0 S0 S1 1
0 0
0 0
S101 S10
1 0
1
Por outro lado, o recebimento de 1 leva a mquina ao estado S1, pois esse 1
entendido como o reincio da sequncia. Estas condies esto indicadas no diagrama de
estados completo apresentado na Figura 10.15.
Novamente, essa uma mquina com uma entrada, uma sada e a linha de clock,
tendo portanto o mesmo diagrama de blocos das Figura 10.5 e Figura 10.11 Como exemplo
de operao considere a sequncia aleatria apresentada na Tabela 10.3.
X 0 1 0 0 1 0 1 0 1 1 1
Z 0 0 0 0 0 0 0 1 1 0 0 1
Instante a B c d e f g h i j k l
1 recebidos 0 0 1 1 1 2 2 3 3 4 5 6
1
0
0 S0 S1 0
0 0
1
0
S2
Observe que estando estado S3, ao ocorrer o sinal de clock e com 1 na entrada, a
quantidade acumulada de 1 quatro. Isso tem o mesmo efeito de trs (divisvel por trs)
mais um, assim, o circuito passa para o estado S1. Esse mesmo raciocnio se repete para
cinco 1 acumulados (equivalente a dois 1 acumulados), e para seis 1 acumulados, que
equivale a trs 1 acumulados, pois ambos so divisveis por trs
1
0
0 S0 S1 0
0 0
0
0
1
0
0 0
S3 1 S2
1 0
1
Essa descrio corresponde uma mquina com uma entrada, uma sada e a linha de
clock, tendo portanto o mesmo diagrama de blocos das Figura 10.5 e Figura 10.11. Como h
duas consideraes (paridade de 0 e 1 consecutivos), o diagrama de estados ser
desenvolvido inicialmente somente para a paridade de 0.
Essa mesma abordagem pode ser feita para os estados Si0 e Sp0. Estando no estado Si0
(quantidade mpar de 0 e nenhum 1), ao receber 1 a sada vale 0 e na ocorrncia de clock, o
circuito avana para estado Si1 (quantidade mpar de 0 e um 1). Partindo do estado Si1, ao
receber 0 a sada vale 1 e na ocorrncia de clock, o circuito avana para estado Sp0
(quantidade par de 0 e um 1). Isso possvel, pois ao receber 0, h a interrupo da
possibilidade de dois 1 consecutivos.
Agora estando no estado Sp0 (quantidade par de 0 e nenhum 1), ao receber 1 a sada
vale 1 e na ocorrncia de clock, o circuito passa para estado Sp1 (quantidade par de 0 e um
1). Partindo do estado Sp1, ao receber 0 a sada vale 0 e na ocorrncia de clock, o circuito
avana para estado Si0 (quantidade par de 0 e um 1). Novamente isso s possvel, pois ao
receber 0, h a interrupo da possibilidade de dois 1 consecutivos. Essas condies esto
ilustradas na Figura 10.22.
Essa descrio corresponde uma mquina com uma entrada, uma sada e a linha de
clock, tendo portanto o mesmo diagrama de blocos das Figura 10.5 e Figura 10.11. Como
exemplo de operao considere a sequncia apresentada na Tabela 10.4. Observe que a
sequncia 0010 ocorre nos instantes defg (marcado em vermelho) e nos instantes ghij
(marcado em violeta). O instante g corresponde ao final da primeira sequncia e incio da
segunda.
Tabela 10.4 Exemplo de operao do detector de sequncia 0010.
X 0 1 0 0 1 0 0 1 0 0 0
Z 0 0 0 0 0 0 1 0 0 1 0 0
Instante a b c d e f g h i j k l
O estado S0010 indica que a sequncia 0010 j ocorreu e, portanto a sada vale 1. O
ltimo 0 dessa sequncia o primeiro 0 de uma nova sequncia 0010. Desta forma, estando
a mquina no estado S0010 e ocorrendo 0, o circuito passa para o estado S00. Assim, basta
ocorrer 10 e a nova sequncia se completa. Essas condies foram incorporadas ao
diagrama, como mostrado na Figura 10.25.
1 Si S0 S00 S001
0 1 0 0 0
1 0 0 0
1
S000 S0010
0 1
0
Exemplo 7: Obtenha o diagrama de estados de uma mquina de estados com duas entradas
(A e B) e uma sada, como indicado na Figura 10.28, que apresente a seguinte operao:
Estado Seguinte
Estado Atual Sada
X=0 X=1
Si S0 Si 0
S0 S00 Si 0
S00 S000 S001 0
S000 S000 Si 0
S001 S0010 Si 1
S0010 S00 Si 0
S0 Si0 0 Sp0
0 0
0
1 1 1
0 0 1
S1 Si1 0 0 Sp1
1 0
1
1 0
0 1
1
St
0 1
0 0
Observando a Figura 10.31, estando no estado Si0, ocorrendo X=0 a sada vale 1 e na
ocorrncia do sinal de clock, a mquina vai para o estado Sp0. Por outro lado, ocorrendo X=1
a sada vale 0 e na ocorrncia do sinal de clock, a mquina vai para o estado Si1. Essa mesma
informao est presenta na segunda linha da Tabela 10.5. Essa mesma anlise vlida para
os demais estados do diagrama.
Estado Seguinte
Estado Atual Sada
X=0 X=1
S0 S1 S0 0
S1 S2 S0 0
S2 S5 S1 1
S3 S6 S1 1
S4 S0 S4 0
S5 S2 S4 0
S6 S3 S4 0
S1 K
S2
S3
S4
S5
S6
S0 S1 S2 S3 S4 S5
S1 S1S2
S2
S3
S4
S5
S6
S0 S1 S2 S3 S4 S5
S1 S1S2
S2
S3 S5S6
S0S2
S4 S0S1
S0S4
S1S2
S5 S0S4 S0S2
S0S4
S1S3 S0S4
S6 S0S3 S2S3
S0S5 S2S3
S0 S1 S2 S3 S4 S5
S1 S1S2
S2
S3 S5S6
S0S2
S4 S0S1
S0S4
S1S2
S5 S0S4 S0S2
S0S4
S1S3 S0S4
S6 S0S3 S2S3
S0S5 S2S3
S0 S1 S2 S3 S4 S5
Estado Seguinte
Estado Atual Sada
X=0 X=1
S0 S1 S0 0
S1 S2 S0 0
S2 S5 S6 S1 1
S3 S6 S1 1
S4 S0 S4 0
S5 S2 S4 0
S6 S3 S2 S4 0
At esse momento os estados so dados por seus nomes, entretanto circuitos digitais
lidam com valores binrios. Assim, os nomes dos estados devem ser traduzidos por valores
digitais. Dois flip-flops permitem alocar quatro estados (00, 01, 10 e 11), trs flip-flops
permitem alocar oito estados, e assim sucessivamente.
A traduo do nome do estado em um valor digital pode ser feito de forma aleatria,
e o circuito funcionar corretamente. Entretanto existe uma metodologia de alocao que
torna o circuito mais compacto. Esta metodologia ser apresentada a seguir.
Pela primeira diretiva, pode-se observar que os estados S0, S2, S4 e S6 apresentam o
estado seguinte S1 para X=0, portanto esses estados devem ficar prximos. Observe tambm
que os estados S3 e S5 apresentam o estado seguinte S5 e portanto devem ficar prximos.
Continuando, os estados S0, S1, S3 e S5 apresentam o estado seguinte S2 para X=1, portanto
esses estados devem ficar prximos. Finalmente os estados S4 e S6 apresentam o estado
seguinte S6 e consequentemente devem ficar prximos.
Proximidades
S0 S2 S4 S6
S3 S5
Diretiva i
S0 S1 S3 S5
S4 S6
S1 S2
S2 S3
Diretiva ii S1 S4
(S2 S5)*2
(S1 S6)*2
S0 S6
Diretiva iii
S1 S4 S6
Y2
Y1Y0 0 1
00 S0 S3
01 S6 S1
11 S4
10 S2 S5
Proximidades
S0 S2 S4 S6
S3 S5
Diretiva i
S0 S1 S3 S5
S4 S6
S1 S2
S2 S3
Diretiva ii S1 S4
(S2 S5)*2
(S1 S6)*2
S0 S6
Diretiva iii
S1 S4 S6
Y2
Y1Y0 0 1
00 S0 S4
01 S1 S6
11 S3
10 S5 S2
O passo anterior serviu para obter mapa de estados auxiliares que converteu nomes
de estados em seus valores binrios. De posse do mapa de estados auxiliares e da tabela de
estados, pode-se ento determinar o estado seguinte da mquina em funo das variveis de
entrada. Em outras palavras, sabendo a condio atual do circuito (valor binrio do estado),
pode-se determinar os estados seguintes (valores binrios) em funo das entradas.
Y2
Y1Y0 0 1
00 S0 S3
01 S6 S1
11 S4
10 S2 S5
Y2X
Y1Y0 00 01 11 10
00
01
11
10
Observe que a clula S0, na designao de estados, ocupa a posio Y2Y1Y0 = 000
(marcado em vermelho). Essa mesma posio Y2Y1Y0 = 000 corresponde uma clula dupla
no mapa de transio (marcado em laranja). Essa clula dupla se divide em X=0 e X=1.
Desta forma, nessa clula dupla colocam-se os valores seguintes de S0, que esto obtidos da
tabela de estados (marcado em violeta). Os estados seguintes de S0 so: S1 para X=0 e S2
para X=1. Desta forma, a clula dupla torna-se:
Y2X
Y1Y0 00 01 11 10
00 S1 S2
01
11
10
Y2
Y1Y0 0 1
00 S0 S3
01 S6 S1
11 S4
10 S2 S5
Y2X
Y1Y0 00 01 11 10
00 S1 S2
01 S1 S6
11
10
Y2X
Y1Y0 00 01 11 10
00 S1 S2
01 S1 S6
11 S1 S6
10
Y2 Y2X
Y1Y0 0 1 Y1Y0 00 01 11 10
00 S0 S3 00 S1 S2 S2 S5
01 S6 S1 01 S1 S6 S2 S3
11 S4 11 S1 S6
10 S2 S5 10 S1 S4 S2 S5
Y2X Y2X
Y1Y0 00 01 11 10 Y1Y0 00 01 11 10
00 1 0 0 00 0 1 1
01 1 0 01 0 1
11 1 11 0
10 1 0 10 0 1
Y2+ Y1+
Y2X
Y1Y0 00 01 11 10
00 1 0 0
01 1 0
11 1
10 1 0
Y0+
Da mesma forma, todas as posies S2 do mapa de transio (marcado em laranja)
devem receber o valor de S2 obtido do mapa de designao de estados (tambm marcado em
laranja), que dado por Y2Y1Y0 = 010. Desta forma, os mapas de estado seguinte devem
receber Y2+Y1+Y0+ = 010 para todas as posies S2 do mapa de transio (tambm marcado
em laranja).
Y2X Y2X
Y1Y0 00 01 11 10 Y1Y0 00 01 11 10
00 1 0 0 1 00 0 1 1 1
01 1 0 0 1 01 0 0 1 0
11 1 0 11 0 0
10 1 0 0 1 10 0 1 1 1
Y2+ Y1+
Y2X
Y1Y0 00 01 11 10
00 1 0 0 0
01 1 1 0 0
11 1 1
10 1 1 0 0
Y0+
Q Q+ S R J K D T
0 0 0 - 0 - 0 0
0 1 1 0 1 - 1 1
1 0 0 1 - 1 0 1
1 1 - 0 - 0 1 0
Y2+
Assim, para toda a coluna Y2X = 00 tem-se Y2=0 (estado atual fora do mapa) e
+
Y2 =1 (estado seguinte dentro do mapa). Com base na Tabela 10.13, para Q=0 (estado
atual) e Q+=1 (estado seguinte), tem-se J2=1 e K2=-, como indicado a seguir.
Y2X Y2X
Y1Y0 00 01 11 10 Y1Y0 00 01 11 10
00 1 00
01 1 01
11 1 11
10 1 10
J2 K2
Para a coluna Y2X = 01 tem-se Y2=0 (estado atual) e Y2+ =0 (estado seguinte). Com
base na Tabela 10.13, para Q=0 (estado atual) e Q+=0 (estado seguinte), tem-se J2=0 e
K2=-, como indicado a seguir.
Y2X Y2X
Y1Y0 00 01 11 10 Y1Y0 00 01 11 10
00 1 0 00
01 1 0 01
11 1 0 11
10 1 0 10
J2 K2
Para a coluna Y2X = 11 tem-se Y2=1 (estado atual) e Y2+ =0 (estado seguinte). Com
base na Tabela 10.13, para Q=1 (estado atual) e Q+=0 (estado seguinte), tem-se J2=- e
K2=1, como indicado a seguir.
J2 K2
Y2X Y2X
Y1Y0 00 01 11 10 Y1Y0 00 01 11 10
00 1 0 00 1 0
01 1 0 01 1 0
11 1 0 11
10 1 0 10 1 0
J2 X K2 X
Essa mesm
ma leitura poderia
p ter ssido feita diretamente no uinte Y2+
n mapa de estado segu
utilizaando a leituura simplificcada. Na leiitura simpliificada, os mapas
m de eexcitao deevem ser
lidos dda seguinte forma:
No laado 1 do mapa
m Y1+, leem-se os 00. Assim, teem-se K1 Y1Y0 Y2Y1 X , mas como Y1
eliminnado, tem-see K1 Y0 Y2 X .
Da mesm
ma forma,, no ladoo 0 do mapa
m Y0+, leem-se os 1, e tem-se
J 0 Y2 Y0 X Y2Y1Y0 , mas co
omo Y1 eliiminado, reesulta em J 0 Y2 X Y2Y1 . Finalm
mente, no
resultaa em K0 Y2 .
Y1+ Y0+
No caso de
d se utilizaarem flip-fllops D, a leeitura simpliificada feeita diretam
mente nos
mapass de transio.
O passo anterior
a serv
viu para esstabelecer o circuito co
ombinacionnal responsvel pela
realim
mentao doos flip-flop
ps, que corrresponde parte do
o Circuito Combinaciional da
Mquina de Meealy apresen
ntada na F
Figura 10.2
2, ou que corresponde
c e integralm
mente ao
Circuiito Combinacional da Mquina
M dee Moore ap
presentada na
n Figura 100.3. Essa ciircuitaria
serve para fazer a mquina se deslocarr entre seuss estados, em
m funo daa excitao..
Agora serr apresentaado o circuiito responsvel por apresentar os valores das sadas.
Essa ccircuitaria de
d sada corresponde aoo restante do
d Circuito Combinacio
C onal da Mq
quina de
Mealyy apresentaada na Fig
gura 10.2, ou que corresponde integralm
mente ao Circuito
Combbinacional de
d Sada da Mquina
M dee Moore aprresentada naa Figura 10..3.
Pode-se observar
o quee uma Mquina de Mealy
M ente a sada depende
e conssequentemen
do vallor da entradda X. Portan
nto o mapa de transio
o deve incorporar a varrivel X.
Observe que
q a clulaa S0, na de signao dee estados, ocupa
o a possio Y2Y1Y0 = 000
(marcado em vermelho). Esssa mesma pposio Y2Y1Y0 = 000 correspondee uma clu
ula dupla
no maapa de trannsio (marccado em larranja). Essaa clula dup
pla se dividde em X=0
0 e X=1.
Desta forma, nesssa clula du
upla colocam
m-se os valo
ores de sad
da para S0, qque esto ob
btidos da
tabelaa de estadoss (marcado em violetaa). As sadaas para S0 so: 0 para X=0 e 0 para X=1
(marcado em laraanja).
Y2
Y1Y0 0 1
00 S0 S3
01 S6 S1
11 S4
10 S2 S5
Y2X
Y1Y0 00 01 11 10
00 0 0
01
11 0 1
10 1 0
Agora observe a clula S2, que na designao de estados a seguir, ocupa a posio
Y2Y1Y0 = 010 (marcado em azul). Essa mesma posio Y2Y1Y0 = 010 corresponde clula
dupla no mapa de transio (marcado em verde). Pela tabela de estados, as sadas para S6
(marcado em marrom) so: 1 para X=0 e 0 para X=1 (marcado em verde).
Y2X
Y1Y0 00 01 11 10
00 0 0 1 1
01 0 0 1 0
11 0 1
10 1 0 1 0
Estado Seguinte
Estado Atual Sada
X=0 X=1
S0 S1 S2 0
S1 S3 S2 0
S2 S1 S4 0
S3 S5 S2 1
S4 S1 S6 1
S5 S5 S2 0
S6 S1 S6 0
Y2
Y1Y0 0 1
00 S0 S4
01 S1 S6
11 S3
10 S5 S2
Y2
Y1Y0 0 1
00 0
01 0
11
10
Exemplo: Projete uma mquina de estados capaz de detectar todas as ocorrncias das
sequencias 010 e 1001 de um sinal serial. Implemente com flip-flops D.
Passo 1 - Diagrama de estados: A Figura 10.32 apresenta o diagrama de estados. Uma das
sequencias inicia-se pela esquerda (010) e a outra pela direita (1001). Observe que elas se
entrelaam pois todas as ocorrncias de ambas devem ser detectadas.
S0 S1S01
S01
S0S10
S1 S0S10
S01S1
S0S100 S10S100
S10 S0S100
S1S01 S1S01
S100
Si S0 S01 S1 S10
Proximidades
Si S0 S100
S01 S1
Diretiva i
Si S01 S1
S0 S10 S100
S0 S1
Diretiva ii (S0 S01)*2
(S1 S10)*2
S01 S100
Si S0 S1 S10 S100
Diretiva iii
Si S0 S01 S1 S10
Com base nessas proximidades, uma designao de estados auxiliares dada por:
Y2
Y1Y0 0 1
00 S i S100
01 S01 S0
11 S1 S10
10
Y2X
Y1Y0 00 01 11 10
00 S0 S1 S01 S0
01 S10 S1 S01 S0
11 S10 S1 S01 S100
10
Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD
Novamente com base na designao de estados anterior, os mapas de estado seguinte
so apresentados a seguir.
Y2X Y2X
Y1Y0 00 01 11 10 Y1Y0 00 01 11 10
00 1 0 0 1 00 0 1 0 0
01 1 0 0 1 01 1 1 0 0
11 1 0 0 1 11 1 1 0 0
10 10
Y2+ Y1+
Y2X
Y1Y0 00 01 11 10
00 1 1 1 1
01 1 1 1 1
11 1 1 1 0
10
Y0+
D2 X
D1 Y2 X Y2Y0
D0 Y2 Y1 X
Passo 7 Mapas de sada: Com base na Tabela 10.20 e na designao de estados, o mapa
de sada dado por:
Y2X
Y1Y0 00 01 11 10
00 0 0 1 0
01 1 0 0 0
11 0 0 0 0
10
11
01
01
S2 01 S02 S11
010 000 100 11
10 00 11
01 00 10 10
00 10
01
01
00 Si 11 Sx 11
001 001
01 00 10
00 01
00
10 10 11
S1 S01 S21
100 10 000 11 010
10
11
Figura 10.36 - Diagrama de estado de uma mquina de duas entrada e trs sadas.
11
01
01
S2 01 S11
Z2 S02 Z1 11
10 00 11
01 00 10 10
00 10
01
01
00 Si 11 Sx 11
Z3 Z3
01 00 10
00 01
00
10 10 11
S1 S01 S21
Z1 10 11 Z2
10
11
Figura 10.37 - Diagrama simplificado de uma mquina de duas entrada e trs sadas.
10.4 EXERCCIOS