Sie sind auf Seite 1von 13

MQUINAS DE ESTADO:

MEALY E MOORE
(material at designao de estados)

CIRCUITOS SEQNCIAIS

De forma geral os circuitos digitais podem ser classificados em circuitos combinacionais e


circuitos seqenciais.
Nos circuitos combinacionais as sadas dependem somente das condies, ou combinaes
das entradas. Desta forma, toda vez que for aplicada uma certa combinao de valores em suas
entradas, o circuito apresentar sempre a mesma sada. Como exemplo, considere um conversor de
cdigos, um codificador e um multiplexador.
Por outro lado, nos circuitos seqenciais as sadas no dependem somente das entradas,
mas tambm da seqncia em que foram aplicadas. Como exemplo, considere um contador
sncrono crescente/decrescente. A aplicao de um sinal de clock no suficiente para determinar o
valor de contagem, a no ser que o valor de contagem anterior seja conhecido.
Assim, circuitos seqenciais devem lembrar a condio em que se encontra para poder
determinar a condio seguinte, em funo dos valores das entradas. Isto implica que o circuito
deva ter alguma forma de memorizar os estados em que se encontra. Esta memorizao feita com
o uso de flip-flops e de realimentaes, como podem ser ilustrados pelos contadores das Figuras
7.36 e 7.39.

MODELOS DE MQUINAS DE ESTADO

Um circuito seqencial pode ser dividido em duas partes; os flip-flops e a parte


combinacional, que composta por portas lgicas. A parte combinacional implementa a funo de
entrada dos flip-flops e a funo de sada do circuito. A Figura 1 apresenta o diagrama de um
circuito seqencial genrico.

Z1

X1
X2

Xm

.
..

Circuito
Seqencial
Sncrono

.
..

Z2

Zn

Clock
Figura 1 Diagrama de um Circuito Seqencial Sncrono.
Se fosse possvel agrupar e deslocar os flip-flops do restante do circuito, seria obtido o
modelo da Figura ou o modelo da Figura . No modelo da Figura a sada depende diretamente das
entradas e dos valores dos flip-flops. J no modelo da Figura a sada depende somente dos valores
dos flip-flops. Entretanto, em ambos os casos, as sadas dos flip-flops so realimentadas no
circuito.

Nestes dois modelos emprega-se o flip-flop D, entretanto, os mesmos conceitos so vlidos


para os demais tipos de flip-flops. O circuito combinacional deve gerar valores adequados para os
flip-flops considerados. Da mesma forma, os dois modelos empregam clock ativo por rampa de
subida, mas os mesmos resultados seriam obtidos usando-se clock ativo por rampa de descida.
Entretanto, no mesmo circuito no se deve misturar os dois tipos de gatilhamento.
O modelo apresentado na Figura conhecido como mquina de Mealy. Para este modelo,
tem-se:
Z i f ( X 1 , X 2 ,..., X m , Y1 , Y2 ,..., Yk )

Yi f ( X 1 , X 2 ,..., X m , Y1 , Y2 ,..., Yk )

O modelo apresentado na Figura conhecido como mquina de Moore. Para este modelo,
tem-se:
Z i f (Y1 , Y2 ,..., Yk )

Yi f ( X 1 , X 2 ,..., X m , Y1 , Y2 ,..., Yk )

Resumidamente, pode-se afirmar que as sadas de uma mquina de Mealy dependem das
entradas e do estado do circuito. Por outro lado, as sadas de uma mquina de Moore dependem
somente do estado do circuito. Por estado do circuito entende-se as combinaes das sadas dos
flip-flops do circuito.
Z1

X1
X2

.
..

.
..

Xm
Y1

Circuito
Combinacional

Z2

Zn

Y1

Y1

Clk

Y2

Y2

..

Y2

Clk

YK

+
YK

D
Clk

Clock

Figura 2 Modelo de uma Mquina de Mealy.

YK

X1
X2

..
.

Xm

Y1

Y2

Y1

Clk

Circuito
Combinacional

Y1

+
Y2

..

Circuito

Y2

Combinacional

Clk

de Entrada
+

YK

de Sada

YK

Z1

..
.

Z2

Zn

Clk

YK

Clock

Figura 3 Modelo de uma Mquina de Moore.

DIAGRAMA DE ESTADOS

Os diagramas de estado so empregados para o projeto de mquinas de estado. Os


diagramas de estado correspondem primeira etapa para o projeto de uma mquina de estado,
desta forma, corresponde etapa mais importante do projeto. Adicionalmente, esta etapa
corresponde traduo do problema para uma forma grfica e, portanto, depende de muito
cuidado por parte do projetista.
Um diagrama (grfico) de estado consiste de:
1. Estados, representados por crculos com os nomes dos estados,
2. Transies, representadas por setas entre estados,
3. Sadas, representadas junto aos estados no caso das mquinas de Moore, ou junto s
transies para o caso das mquinas de Mealy.
A melhor forma de se entender diagrama de estados atravs de exemplos.
Exemplo .1
Obter o diagrama de estados de um circuito sncrono que detecte a paridade mpar de um sinal
serial. Considere mquina de Moore.
O circuito proposto pode ser representado pela Figura . Observe que apresenta uma
entrada, sincronizada com o pulso de clock, e uma sada.

Clock

Figura 4 Detector a ser projetado.

O diagrama de estados pode ser iniciado pelo estado inicial, ou estado de reset. Neste
estado, a paridade do circuito par (afinal nenhum 1 foi recebido pelo circuito). Por se mquina de
Moore, a sada apresentada junto ao estado, na verdade, apresentada dentro do estado. Desta
forma a sua representao dada Figura (a). Se for recebido um 0, o circuito no muda de
paridade e continua no mesmo estado S0, conforme ilustrado pela Figura (b). Em outras palavras,
h uma transio do estado S0 para ele mesmo. Por outro lado, se o circuito receber um 1,
implicara na mudana de paridade, e conseqentemente o circuito deve mudar para o estado S1,
conforme ilustrado pela Figura (c). Observe que a sada do circuito vale 1 para este estado.
Estando no estado S1, se o circuito receber um 0, a paridade, isto , a quantidade de 1
acumulados no muda, e portando o circuito deve permanecer no estado S1, conforme ilustrado
pela Figura (d). Finalmente, se o circuito receber um 1, implicara na mudana de paridade, e
conseqentemente o circuito deve mudar para o estado S0, conforme ilustrado pela Figura (e).
Tendo em vista que o circuito apresenta apenas uma linha de entrada, esta linha pode
assumir os valores 0 e 1. Assim, somente podem existir duas transies (setas) saindo de cada
estado. Esta condio pode ser usada para verificar se todas opes j foram consideras na
elaborao de um diagrama de estados, que vale para o diagrama da Figura (e).

S0
0

(a)

S0
0

(b)

1
S0
0

S1
1

1
S0
0

S1
1

1
S0
0

S1
1

(c)

0
(d)

(e)

1
Figura 5 Diagrama de estados do detector de paridade mpar.

Exemplo 2
Obter o diagrama de estados de um circuito sncrono que detecte todas as ocorrncias da
seqncia 101. Considere mquina de Mealy.
O circuito proposto pode ser novamente representado pela Figura , apresentando assim,
uma entrada, o sinal de clock e uma sada. Neste exemplo, a sada somente por ir para um aps
cada ocorrncia da seqncia 101, isto , se por acaso a seqncia for interrompida, o circuito
deve retornar condio inicial e esperar por uma nova ocorrncia da seqncia.
O diagrama de estados pode ser iniciado pelo estado inicial, ou estado de reset. Estando o
circuito neste estado, se for recebido um 0, significa que no houve incio de seqncia e o circuito
continua no mesmo estado S0. Por ser mquina de Mealy, a sada representada junto com a
transio, valendo neste caso 0. Por outro lado, se o circuito receber um 1, implica na ocorrncia
do primeiro termo da seqncia, passando portanto, para o estado S1, conforme ilustrado pela
Figura (a). Observe que a sada continua valendo 0 pois a seqncia ainda no est completa.
Estando em S1, se for recebido outro 1, implicar que no houve continuidade na
seqncia. Entretanto, este novo 1 recebido pode ser o primeiro valor de uma nova tentativa da
seqncia. Desta forma, o circuito deve estar preparado para essa possibilidade e, portanto, o
circuito continua no estado S1. Por outro lado, o recebimento de um 0 implica na continuidade da
seqncia, isto , no recebimento do seu segundo termo, formando assim 10. Assim, o circuito vai
para o estado S2. Nestes dois casos, a sada vale 0 conforme indicado pelo diagrama da Figura (b).
Se, estando no estado S2, for recebido um 0 implica na quebra da seqncia e o circuito
deve voltar ao estado S0, obviamente apresentando valor 0 para a sada. Se por outro lado for
recebido 1, a seqncia se completa e sada deve ir para 1, sinalizando assim que a seqncia est
completa. A Figura (c) apresenta o diagrama de estados completo.
1
0
0
0

S0

S1

(a)

1
0
0
0

S0

S1

S2

1
0

(b)

1
0

(c)

0
0

1
0
0
0

S0

S1
0
0

1
1
S2

0
0

Figura 6 Diagrama de estados do detector de seqncia 101.


Na seqncia a seguir, ficam claras as duas ocorrncias distintas da seqncia 101. A sada
assume o valor 1 ao trmino de cada ocorrncia.

X = 111010001011
Z = 000010000010
Observe agora que na seqncia seguinte, o ltimo valor de uma seqncia tambm o
primeiro valor de outra seqncia.

X = 11101011001
Z = 00001010000
Assim, no diagrama de estados da Figura (c) a transio em 1 do estado S2 deve ser
direcionada ao estado S1. Afinal, o estado S1 sinaliza a ocorrncia do primeiro termo da seqncia.
Exemplo 3
Obter o diagrama de estados de um circuito sncrono que indique se o nmero de 0 recebidos for
par e maior que zero. Se ocorrer dois 1 consecutivos, o circuito deve travar (com sada igual a
zero). Considere mquina de Moore.
O circuito proposto pode ser novamente representado pela Figura , pois consiste de uma
entrada, uma linha de clock e uma sada. Este exemplo pode ser dividido em duas partes.
Inicialmente, a faz-se a deteco da condio de um nmero par de 0, correspondente a
Figura (a). Neste diagrama, S1 corresponde a um nmero mpar de 0 e S2 corresponde a um
nmero de 0 par e maior que zero.
O restante do circuito monitora a quantidade de 1. Desta forma o estado S3 tem a mesma
condio do estado S1, mas tendo ocorrido um 1 e o estado S4 tem a mesma condio do estado
S2, mas tendo ocorrido um 1. O estado S5 corresponde ocorrncia de um 1 partir do estado
inicial. Finalmente, o estado S6 corresponde ao estado de travamento. O digrama completo est
apresentado na Figura .
0
S0
0

0
S1
0

S2
1

(a)

0
S0
0

0
S1
0

S2
1
0

S5
0

1
S3
0

S4
1

S6
0
0,1

Figura 7 Diagrama de estados do exemplo 1.

(b)

Exemplo 4
Obter o diagrama de estados de um circuito sncrono que detecte todas as ocorrncias da
seqncia 0010.Ocorrendo mais que dois 0 consecutivos, a mquina volta ao estado inicial aps
a ocorrncia de um 1. Considere mquina de Mealy.
Como se devem buscar todas as ocorrncias da seqncia, devem-se observar tambm
situaes em que as duas seqncias podem estar entrelaadas, como ilustrado pela seqncia a
seguir.

X = 1001010100100100
Z = 0000100000010010
A Figura apresenta o diagrama de estados. Neste diagrama, o estado S1 corresponde
ocorrncia do primeiro 0 da seqncia. O estado S2 corresponde ocorrncia do segundo 0 da
seqncia, e o estado S3 corresponde ocorrncia do terceiro termo da seqncia. A ocorrncia do
prximo 0 corresponde ao trmino da seqncia, e na verdade, corresponde tambm ao primeiro
termo da seqncia seguinte, razo pela qual, o circuito segue do estado S3 para o estado S1.
1
0

0
1

1
0
S0

0
0

S1

1
0

0
0

S2

1
0

S3

0
0

S4

0
0

Figura 8 Diagrama de estados do exemplo 4


At o momento todos os exemplos foram feitos considerando-se circuitos com apenas uma
entrada, entretanto, circuitos podem ter duas ou mais entradas. De fato, uma mquina de estado
pode at no ter entradas!
Se uma mquina de estados tem duas entradas, cada estado tem quatro possveis transies
de sada, sendo uma para cada combinao das entradas. Seguindo este raciocnio, uma mquina de
trs entradas apresentaria oito possveis combinaes das entradas e conseqentemente oito
possveis transies de cada estado.
Exemplo 5
Obter o diagrama de estados de um circuito que gere a seqncia 0101 110 110 110... Considere
mquina de Moore.
Observe que este circuito no deve detectar nenhuma seqncia ou qualquer ocorrncia no
sinal de entrada. De fato, o circuito no tem linha de entrada, como pode ser observado pela Figura
. O diagrama de estados deste gerador de seqncia dado pela Figura . Observe que no h
condio para o circuito passar para o estado seguinte! Havendo o sinal de clock, o circuito
simplesmente passa para o estado seguinte.

Clock

Figura 9 Circuito gerador de seqncia.

S2
1
S0
0

S1
1

S1
0

S2
1

S2
1
S2
0

Figura 10 Diagrama de estados do gerador de seqncia.

TABELA DE ESTADOS

Os diagramas de estado correspondem traduo do problema para a forma grfica, pois a


forma grfica visualmente de fcil entendimento. Uma vez obtida a forma grfica, faz-se a
converso para a forma de tabela, que a forma efetivamente usada no projeto do circuito.
A tabela de estados obtida diretamente do diagrama de estados.
A tabela de estados consiste de:
1. Uma linha para cada estado,
2. Colunas para o estado atual, o estado seguinte e para a sada.
Exemplo 6
Obter a tabela de estados correspondente ao diagrama de estados da Figura (e).
A tabela de estados referente ao diagrama de estados da Figura (e) dada a seguir.
Atual
S0
S1

Seguinte
X=0 X=1
S0
S1
S1
S0

Sada
0
0

Por ser mquina de Moore, h somente uma coluna de sada. Observando o diagrama da
Figura (e), e estando o circuito no estado S0, se for recebido 0, isto , se X=1, ento o circuito vai
para S1 mas se X=0, o circuito volta para S0. Isto completa a primeira linha, e a segunda linha
obtida de forma similar.
Exemplo 7
Obter a tabela de estados correspondente ao diagrama de estados da Figura .

A tabela a seguir apresenta o diagrama de estados da Figura .

Atual
S0
S1
S2
S3
S4

Seguinte
X=0 X=1
S1
S0
S2
S0
S4
S3
S1
S0
S4
S0

Sada
X=0
X=1
0
0
0
0
0
0
1
0
0
0

Observe que por ser mquina de Mealy, a coluna de sada fica dividida em duas, sendo uma
pra a condio de X=0 e a outra para a condio de X=1.
Se o circuito considerado tivesse duas entradas, haveria quatro combinaes destas
entradas, e haveriam quatro colunas para estado seguinte e quatro colunas para as sadas (mquina
de Mealy).

ELIMINAO DE ESTADOS REDUNDANTES

Mesmo projetistas experientes eventualmente acabam cometendo erros ao elaborar o


diagrama de estados. Os erros podem ser fatais, isto , o circuito pode no operar como esperado
ou os erros podem ser de redundncia. Erros de redundncia surgem devido a um nmero
excessivo de estados no diagrama de estados. Com esta redundncia, o circuito poder operar de
forma correta, entretanto, certamente ficar maior, isto , sero necessrios mais componentes que
o necessrio. Este fato, dependendo da forma de implementao, poder implicar em custos
adicionais desnecessrios.
Em uma tabela de estados, ou diagrama de estados, dois estados so redundantes, ou
equivalentes se possurem as mesmas sadas e os mesmos estados seguintes, ou seus equivalentes.
Estes estados devem ser eliminados.
Considere como exemplo o diagrama de estados da Figura , que ilustra uma mquina de
Moore. O procedimento seria exatamente o mesmo se fosse considerado uma mquina de Mealy.
1
0

S0
0

S1
1
1

S3
0

S2
0

Figura 11 Diagrama de estados com redundncia.


A sua tabela de estados dada a seguir
Seguinte
Atual
Sada
X=0 X=1
S0
S0
S1
0
S1
S1
S2
1
S2
S2
S3
0
S3
S3
S1
0

Tanto pela tabela de estados quanto pelo diagrama de estados pode-se observar que os
estados S0 e S3 apresentam a mesma sada e os mesmos estados seguintes. Assim, estes estados so
equivalentes e um deles pode ser eliminado.
Eliminando-se a redundncia (estado S3, por exemplo), as ocorrncias de S3 ficam
substitudas por S0, como mostrado na tabela a seguir.
Seguinte
Atual
Sada
X=0 X=1
S0
S0
S1
0
S1
S1
S2
1
S2
S2
S0
0
Infelizmente nem sempre possvel eliminar redundncias de forma to fcil.
Eventualmente as redundncias podem estar cascateadas, o que dificultaria mais ainda a sua
deteco. Assim, faz-se necessrio o sua de uma tabela de eliminao de redundncias. Considere a
tabela de estados dada a seguir.
Seguinte
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
Faz-se uma anlise considerando todas as combinaes de linhas. Entre primeira e segunda
linha, o estado S0 e o estado S1 sero equivalentes se as sadas forem iguais (j so) e se os estados
seguintes S1 e S2 forem equivalentes. Esta condio pode ser colocada como:
S0 S1
se
S1 S2
Esta condio pode ser colocada em uma tabela condicional de equivalncias, como
indicado a seguir:
S1

S1 S2

S0 S1

S1 S2

se

S2
S3
S4
S5
S6
S0

S1

S2

S3

S4

S5

Este mesmo raciocnio pode ser empregado em todas as demais combinaes de linhas,
resultando na tabela a seguir.
S1

S1 S2

S2
S3

S5 S6

S0 S1 S0 S2
S0 S4 S0 S4
S0 S4
S5
S0 S4
S0 S2
S1 S2
S0 S4 S0 S4
S6
S0 S3 S2 S3
S1 S3 S2 S3
S0
S1
S2
S3
S4
S5
Observe que no pode haver equivalncia entre alguns estados, como por exemplo, entre
estados S0 e S2, pois suas sadas so diferentes.
Agora cada condio de equivalncia da tabela deve ser avaliada. Como exemplo, a
equivalncia S0 S1 depende da equivalncia S1 S2. Entretanto, pode-se observar que S1 S2 no
so equivalentes. Desta forma, S1 S2 tambm no so equivalentes, e que agora fica denotado na
tabela a seguir.
S4

S1

S1 S2

S2
S3
S4
S5
S6

S5 S6
S0 S1
S0 S4
S0 S4
S1 S2
S0 S4
S1 S3
S0

S0 S2
S0 S4
S0 S4
S0 S4
S2 S3
S1

S0 S2

S2

S0 S3

S2 S3

S4

S5

S3

Este procedimento repetido at que todas as no-equivalncias sejam detectadas, como


est mostrado na tabela a seguir.
S1

S1 S2

S2
S3
S4
S5
S6

S5 S6
S0 S1
S0 S4
S0 S4
S1 S2
S0 S4
S1 S3
S0

S0 S2
S0 S4
S0 S4
S0 S4
S2 S3
S1

S0 S2

S2

S0 S3

S2 S3

S4

S5

S3

Por esta tabela pode-se observar duas possibilidades de equivalncias:


S2 S3
S5 S6

se
se

S5 S6
S2 S3

A primeira possibilidade de equivalncia depende da segunda, e a segunda depende da


primeira, demonstrando o efeito cachorro correndo atrs do rabo. Se for admitido que a primeira
seja valida, a segunda tambm o ser. Por sua vez, a segunda sendo vlida, torna a primeira
tambm vlida.
Portanto,

S2 S3
S5 S6
Assim, um dos estados de cada equivalncia pode ser eliminado. Admitindo que sejam
eliminados S3 e S6, a nova tabela de estados fica:
Atual
S0
S1
S2
S4
S5

Seguinte
X=0 X=1
S1
S0
S2
S0
S5
S1
S0
S4
S2
S4

Sada
0
0
1
0
0

Adicionalmente, todas as ocorrncias de S3 e S6, devem ser substitudos por S2 e S5,


respectivamente.

DESIGNAO DE ESTADOS AUXILIARES

Se o circuito da Figura , ou o circuito da Figura Figura , tiver dois flip-flops, significa que
poder apresentar at quatro combinaes, ou estados com estes flip-flops. Se o circuito tiver trs
flip-flops, poder apresentar at oito combinaes, e assim sucessivamente. Cada uma dessas
combinaes dos flip-flops chamada de estado do circuito, da o nome de mquina de estados.
Cada um dos estados apresentados no diagrama de estados, ou na tabela de estados, ir
corresponder a uma das possveis combinaes de estados dos flip-flops. Esta etapa corresponde
busca de uma atribuio otimizada desses estados. Esta otimizao faz com que o circuito
combinacional implementado para estimular os flip-flops seja minimizado.
A atribuio de estados feita a partir da tabela de estados e consiste das seguintes
recomendaes, na ordem dada:
1. Estados, tendo os mesmos estados seguintes, devem ficar prximos,
2. Estados seguintes a um mesmo estado devem ficar prximos.
Como exemplo, considere a tabela de estados dada a seguir, correspondente a uma mquina
de Mealy. Se fosse considerada uma mquina de Moore, o procedimento seria exatamente o
mesmo.
Atual
S0
S1
S2
S3
S4
S5
S6

Seguinte
X=0 X=1
S1
S2
S4
S2
S1
S4
S5
S2
S1
S6
S5
S2
S1
S6

Sada
X=0
X=1
0
0
0
0
0
1
0
0
1
0
1
0
0
0

Inicialmente, verifica-se que esta tabela apresenta sete estados. Assim, sero necessrios
trs flip-flops.
Observando o primeiro critrio de proximidade, tem-se que S0, S2, S4 e S6 devem ficar
prximos, pois apresentam S1 como estado seguinte, na coluna X=0. Da mesma forma S3 e S5
devem ficar prximos, pois apresentam S5 como estado seguinte na mesma coluna. Seguindo este
raciocnio, as demais proximidades por este critrio seriam S0, S1, S3 e S5 devido ao estado
seguinte S2, e tambm S4 e S6 devido ao estado seguinte S6, ambas na coluna na coluna X=1.

Pelo segundo critrio de proximidade, S1 e S2 devem ficar prximos, pois so estados


seguintes a S1 na primeira linha. Da mesma forma S2 e S4 devem ficar prximos, pois so estados
seguintes a S2 na segunda linha. Este raciocnio mantido para os demais estados (nas demais
linhas).
Estas duas composies de proximidades resultam em:
S0 - S2 - S 4 - S6
S3 - S5
S0 - S1 - S 3 - S5
S4 - S6
S1 - S2
S2 S3
S1 S4
S2 S5
(duas vezes)
S1 S6
(duas vezes)
Deve-se tentar atingir o maior nmero possvel dessas proximidades, entretanto, quase
sempre impossvel atender a todas. Por proximidade, entende-se que dois estados devem diferir
em apenas um bit entre si, isto , devem ser vizinhos na horizontal ou na vertical.
Alm dessas recomendaes, deve-se preferencialmente posicionar o estado S0 na posio
de reset, isto , para todos os flip-flops em 0.
O mapa a seguir apresenta uma possvel atribuio de estados.
Y1

00

S0

S3

01

S2

S5

11

S4

10

S6

S1

Y2Y3