Anda di halaman 1dari 41

CAPTULO 10

MQUINAS DE ESTADO

Mquinas de estado so circuitos digitais utilizados no controle de operaes e


processos digitais, podendo ocorrer desde simples contadores execuo de operaes de
microprocessadores, e so muito usados em circuitos de comunicao. As mquinas de
estado podem ter qualquer nmero de entradas e pelo menos uma sada. As sadas podem
ser dependentes ou independentes das entradas, e cada uma apresenta suas aplicaes.

10.1 CONCEITOS DE MQUINAS DE ESTADOS

Mquina de estado um circuito digital sncrono, com entradas e sadas, como


indicado na Figura 10.1. Como todo circuito digital sncrono, a mquina de estado tambm
apresenta uma linha de sincronismo, ou linha de clock.

Figura 10.1 - Circuito sequencial sncrono.

Circuitos sequenciais sncronos so formados por flip-flops e portas lgicas.


Consequentemente, os flip-flops podem ser agrupados e separados do circuito
combinacional restante, que corresponde s portas lgicas. Essa separao de flip-flops e
circuito combinacional pode apresentar a estrutura da Figura 10.2, chamada de Mquina de
Mealy, ou da Figura 10.3, chamado de Mquina de Moore.

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.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


Figura 10.2 - Mquina de Mealy.

Figura 10.3 - Mquina de Moore.

De forma resumida, tem-se:

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.

10.2 PROJETO DE MQUINAS DE ESTADOS

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.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


10.2.1 Passo 1 Obteno do Diagrama de Estados

O Diagrama de Estados corresponde visualizao ou descrio grfica do


comportamento desejado do circuito. O diagrama composto pode estados circulados, por
transies e por valores das sadas. No diagrama de estados tem-se:

Estados: representam as condies de repouso do circuito.


Transies: representam as mudanas entre os estados, na ocorrncia de um sinal de
clock, dependente dos valores das entradas.
Sadas: indicadas nos estados, no caso da Mquina de Moore, e nas transies, no
caso de Mquina de Mealy.

Desta forma, os estados representam as condies de repouso, e as transies


indicam as transies entre estados na ocorrncia do sinal de clock. Em outras palavras, as
transies correspondem s condies temporrias do circuito. A Figura 10.4apresenta as
representaes genricas de Mquina de Mealy e Mquina de Moore, com as indicaes de
sada.

Figura 10.4 - Representaes de estados em (a) Mquina de Moore e (b) Mquina de Mealy.

A seguir so apresentados alguns exemplos de diagramas de estados.

Exemplo 1: Obtenha o diagrama de estados de uma mquina de estados capaz de detectar a


paridade mpar de um sinal serial, como indicado na Figura 10.5. Considere Mquina de
Moore.

Figura 10.5 - Detector de paridade.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


Por ser sinal serial, tem-se que h somente uma linha de entrada. A indicao da
paridade requer somente uma linha de sada. Por ser mquina de estado, tem-se o sinal de
clock.

Antes de se desenvolver a mquina de estado torna-se necessrio entender a


proposta. Paridade mpar corresponde ao nmero acumulado de 1 recebidos pelo circuito.
Se o nmero total de 1 recebidos for mpar, a sada 1, por outro lado se o nmero total de 1
recebidos for par, a sada 0.

Como exemplo de operao considere a sequncia apresentada na Tabela 10.1. O


instante a corresponde ao momento que se energiza o circuito, e como no houve nenhum
sinal recebido ainda, a quantidade de 1 acumulado 0, que par. No instante b o circuito
recebe 0, e assim a quantidade de 1 acumulado 0, que par. J no instante c o circuito
recebe 1, e assim a quantidade de 1 acumulado 1, que mpar. Como nos instantes d e e o
circuito recebe 0, a quantidade de 1 acumulado continua 1, isto , mpar. Por outro lado, no
instante f o circuito recebe 1, e assim a quantidade de 1 torna-se 2, que par.

Desta forma, nos instantes em que a quantidade de 1 acumulado par, a sada 0, e


quando a quantidade de 1 acumulado mpar, a sada 1.
Tabela 10.1 Exemplo de operao de um detector de paridade mpar.

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

Na condio inicial, ao ser energizado, o circuito se encontra no estado S0, onde a


paridade par, pois nenhum 1 foi recebido, como indicado na Figura 10.6.

S0
0
Figura 10.6 - Estado inicial do detector de paridade.

Admita agora que o circuito receba 0. A quantidade de 1 recebidos continua nula,


portanto a paridade continua par. Consequentemente a mquina deve permanecer nesse
mesmo estado, como indicado na Figura 10.7. Na verdade, se a mquina continuar a receber
0, sempre retornar para o estado S0 (instantes a e b da Tabela 10.1.).

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


Figura 10.7 - Detector de paridade recebendo primeiro 0.

Considere agora que o circuito receba 1. A quantidade de 1 recebidos passa a ser 1,


portanto a paridade muda para mpar. Consequentemente a mquina muda para o estado S1,
como indicado na Figura 10.8 (instante c da Tabela 10.1).

Figura 10.8 - Detector de paridade recebendo primeiro 1.

Se agora o circuito receber 0, a quantidade de 1 recebidos continua 1, portanto a


paridade mantm-se mpar. Consequentemente a mquina mantm-se no estado S1, como
indicado na Figura 10.9 (instante d e e da Tabela 10.1).

Figura 10.9 - Detector de paridade recebendo 0 no estado S1.

Considere agora que o circuito receba 1. A quantidade de 1 recebidos passa a ser 2,


portanto a paridade muda para par. Consequentemente a mquina muda para o estado S0,
como indicado na Figura 10.10 (instante f da Tabela 10.1).

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).

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


Figura 10.10 - Detector de paridade recebendo 1 no estado S1.

Exemplo 2: Obtenha o diagrama de estados de uma mquina de estados capaz de detectar


todas as ocorrncias da sequncia 101. Considere Mquina de Moore.

Por ser sequncia, entende-se que seja um sinal serial e consequentemente h


somente uma linha de entrada. A indicao de deteco da sequncia requer somente uma
linha de sada. Por ser mquina de estado, tem-se o sinal de clock, como indicado pela
Figura 10.11.

Figura 10.11 - Detector de sequncias.

Como exemplo de operao considere a sequncia apresentada na Tabela 10.2.


Observe que a sequncia 101 ocorre nos instantes fgh (marcado em vermelho) e nos
instantes hij (marcado em violeta). O instante h corresponde ao final da primeira sequncia e
incio da segunda sequncia.
Tabela 10.2 Exemplo de operao do detector de sequncia 101.

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

Na condio inicial, ao ser energizado, o circuito se encontra no estado S0. O


recebimento de 0 indica que no houve incio de sequncia 101 e portanto a mquina se
mantm nesse estado. Por outro lado, o recebimento de 1 indica que houve incio da
sequncia e portanto a mquina avana para o estado S1, como indicado na Figura 10.12.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


1

0 S0 S1
0 0

Figura 10.12 - Condies iniciais do detector de paridade.

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.

Figura 10.13 - Deteco parcial da sequncia.

Estando a mquina no estado S10 (onde j ocorreu a sequncia 10), o recebimento de


0 interrompe a continuidade da sequncia desejada. Isso fora o circuito a voltar ao estado
inicial para esperar o reincio da sequencia. Por outro lado, o recebimento de 1 completa a
sequncia desejada e a mquina avana para o estado S101, onde a sada torna-se 1. Estas
condies esto indicadas na Figura 10.14, e correspondem aos instantes fgh da Tabela 10.2.

0 S0 S1 1
0 0

0 0

S101 S10
1 0
1

Figura 10.14 - Deteco completa da sequncia.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


O ltimo 1 da sequncia 101 pode ser tambm o primeiro 1 de uma nova sequncia
101. Como j apresentado na Tabela 10.2, o instante h corresponde ao final da sequncia fgh
(marcado em vermelho) incio da sequncia hij (marcado em violeta). Desta forma,
estando a mquina no estado S101 (onde j ocorreu a sequncia 101), o recebimento de 0 d
continuidade sequncia desejada. Assim o circuito volta ao estado S10.

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.

Figura 10.15 - Diagrama de estados completo do detector de sequncia.

Exemplo 3: Obtenha o diagrama de estados de uma mquina que detecte se o nmero de 1


recebidos maior do que zero e divisvel por 3. Considere Mquina de Mealy.

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.

Tabela 10.3 Exemplo de operao de um detector de trs.

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

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


A mquina deve monitorar a quantidade de 1 recebidos e verificar se essa quantidade
maior que zero e divisvel por 3, Na condio inicial, ao ser energizado, o circuito se
encontra no estado S0 (nenhum 1 recebido). Nesse estado, ao receber 0 a sada vale 0 e na
ocorrncia de clock, o circuito retorna ao mesmo estado S0. Por outro lado, ao receber 1 a
sada tambm vale 0, porm na ocorrncia de clock o circuito muda para o estado S1. Essas
condies esto ilustradas na Figura 10.16.

Figura 10.16 - Condies iniciais do detector de trs.

O estado S1 corresponde um 1 acumulado. Nesse estado, ao receber 0 a sada vale 0


e na ocorrncia de clock, o circuito retorna ao prprio S1. Entretanto, ao receber 1 a sada
tambm vale 0, porm na ocorrncia de clock o circuito muda para o estado S2. Essas
condies esto ilustradas na Figura 10.17.

Como o estado S2 corresponde dois 1 acumulados, ao receber 0 a sada vale 0 e na


ocorrncia de clock, o circuito retorna ao prprio S2. Por outro lado, ao receber 1 a sada
torna-se 1, e na ocorrncia de clock o circuito muda para o estado S3. Observe que agora o
nmero de 1 acumulados trs, e portanto divisvel por trs. Essas condies esto
ilustradas na Figura 10.18.

1
0

0 S0 S1 0
0 0

1
0

S2

Figura 10.17 - Condies parciais do detector de trs.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


Figura 10.18 - Acumulo de trs 1 no detector de trs.

Como o estado S3 corresponde trs 1 acumulados (consequentemente divisvel por


trs), ao receber 0 a sada vale 1 e na ocorrncia de clock, o circuito retorna ao prprio S3.
Por outro lado, ao receber 1 a sada torna-se 0, e na ocorrncia de clock o circuito muda para
o estado S1. Essas condies completam o diagrama de estados, como pode ser visto na
Figura 10.19.

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

Figura 10.19 - Diagrama de estados completo do detector de trs.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


Exemplo 4: Obtenha o diagrama de estados de uma mquina que indique se o nmero de 0
recebidos par e maior que zero. Se ocorrer mais do que dois 1 consecutivos, a mquina
deve ir para um estado de travamento com sada em 0. Considere Mquina de Mealy.

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.

Na condio inicial, ao ser energizado, o circuito se encontra no estado S0 (nenhum 0


recebido). Nesse estado, ao receber 0 a sada vale 0 e na ocorrncia de clock, o circuito
avana para estado Si0 (quantidade mpar de 0 e nenhum 1). Agora estando no estado Si0, ao
receber 0, a quantidade de 0 torna-se par e a sada assume 1, e na ocorrncia de clock o
circuito avana para estado Sp0 (quantidade par de 0 e nenhum 1). Dando continuidade,
estando no estado Sp0, ao receber 0, a quantidade de 0 torna-se mpar e a sada assume 0, e
na ocorrncia de clock o circuito retorna para estado Si0 (quantidade mpar de 0 e nenhum
1). Essas condies esto ilustradas na Figura 10.20.

Figura 10.20 - Condies iniciais do detector de 0.

A segunda parte do problema a identificao de dois 1 consecutivos. Para a


deteco de dois 1 consecutivos, torna-se necessrio monitorar a ocorrncia do primeiro 1
(mantendo a identificao das paridades anteriores), e do segundo 1 imediatamente aps o
primeiro 1.

Estando no estado S0 (nenhum 0 recebido), ao receber 1 a sada vale 0 e na


ocorrncia de clock, o circuito avana para estado S1 (nenhum 0 e um 1). Agora estando no
estado S1, ao receber 0, a quantidade de 0 torna-se mpar e a sada permanece em 0, e na
ocorrncia de clock o circuito avana para estado Si0 (quantidade mpar de 0 e nenhum 1). A
passagem foi possvel, pois ao receber 0, houve a interrupo da possibilidade de dois 1
consecutivos. Essas condies esto ilustradas na Figura 10.21.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


Figura 10.21 - Ocorrncia inicial de 1 no detector 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.

Figura 10.22 - Condies intermedirias do detector de 0.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


A mquina de estado j recebeu 1 para atingir os estados S1, Si1 e Sp1. Assim, estando
em um desses estados, se o circuito receber outro 1, haver dois 1 consecutivos e portanto, n
ocorrncia de clock, a mquina passa para o estado de travamento St. Uma vez no estado St,
a mquina s sai dessa condio mediante reset. A Figura 10.23 apresenta o diagrama de
estados completo.

Figura 10.23 - Diagrama de estados completo do detector de 0.

Exemplo 5: Obtenha o diagrama de estados de uma mquina de estados capaz de detectar


todas as ocorrncias da sequncia 0010. Quando ocorrer mais do que dois 0 consecutivos, a
mquina deve ser reiniciada aps o prximo 1. Considere Mquina de Moore.

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

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


A Figura 10.24 apresenta o trecho responsvel pela deteco de 0010.

Figura 10.24 - Deteco de 0010.

O diagrama deve ser completado, considerando as demais possibilidades de entrada.


Assim, estando no estado inicial Si e ocorrer 1, a mquina continua em Si. Estando no estado
S0 e ocorrer 1, a mquina deve retornar para Si pois a sequencia desejada foi frustrada.

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.

Figura 10.25 - Deteco de mltiplos 0010.

A condio restante a deteco de mais de dois 0 consecutivos. Observe no


diagrama da Figura 10.25, que o estado S00 corresponde ao recebimento de dois 0
consecutivos. Assim, na ocorrncia outro 0, o circuito deve passar para o estado de
travamento S000 e l permanecer at a ocorrncia de 1, quando a mquina volta para o estado
inicial estado Si. A Figura 10.26 mostra o diagrama de estado completo.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


1
0 0 1

1 Si S0 S00 S001
0 1 0 0 0

1 0 0 0

1
S000 S0010
0 1
0

Figura 10.26 - Diagrama de estados completo do detector de 0010.

Exemplo 6: Obtenha o diagrama de estados de uma mquina capaz de gerar a sequncia


0101 110 110 110...

Como no h meno de entrada, significa que esse circuito no depende de entrada


para operar. Na verdade ele equivale um contador, pois nos contadores no h linhas de
entrada, mas h uma contagem a cada pulso de clock. A Figura 10.27 apresenta o diagrama
de estados desse circuito.

Figura 10.27 - Diagrama de estados completo do gerador de sequncia.

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:

Sequncia AB = 01, 11 sada torna-se 0,


Sequncia AB = 10, 11 sada torna-se 1,
Sequncia AB = 10, 01 sada troca de estado.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


Figura 10.28 - Mquina de estados de duas entradas.

A Figura 10.29 apresenta o diagrama de estados completo dessa mquina de estados.


Apesar de aparentemente grande, na verdade a operao bem simples. Deve-se observar
que as condies anteriores so dadas em pares.

Diretivas para Montagem de Diagrama de Estados:

A montagem do diagrama de estados deve ser iniciada pela sequncia ou pelo


problema principal.
As variantes da sequncia ou problema principal feita em seguida.
Se a mquina de estados tem uma entrada, essa entrada obviamente pode assumir o
valor 0 ou 1, consequentemente h duas transies (setas) saindo de cada estado
dessa mquina. Se a mquina tem duas entradas, deve haver quatro transies saindo
de cada estado.
Deve-se tentar vislumbrar todas as possibilidades de sequencia e tentar valid-las no
diagrama de estados. Quanto mais abrangente, melhor.
Verificar se no esqueceu de algum estado ou condio, ou se h estados adicionais.

Figura 10.29 - Diagrama de estados completo do gerador de sequncia.


Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD
10.2.2 Passo 2 Obteno da Tabela de Estados

A Tabela de estados corresponde traduo do Diagrama de Estados na forma de


tabela. A converso rpida e de fcil obteno. H uma coluna para o estado atual e
colunas para estados seguintes e sadas, com suas dependncias dos valores das entradas.

Exemplo 1: Obtenha a tabela de estados do diagrama de estados da Mquina de Moore da


Figura 10.26, que por convenincia reapresentado na Figura 10.30.

Figura 10.30 - Reapresentao do diagrama de estados da Figura 10.26.

A Tabela 10.5 apresenta a tabela de estados do diagrama de estados da Figura 10.30.


Observando a Figura 10.30, estando no estado Si, cuja sada vale 0, ocorrendo um sinal de
clock, a mquina vai para o estado S0 se X=0 e retorna para Si se X=1. Exatamente essa
mesma informao est presenta na Tabela 10.5. Isso feito para todos os estados do
diagrama.
Tabela 10.5 Tabela de estados do diagrama de estados da Figura 10.30.

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

Exemplo 2: Obtenha a tabela de estados do diagrama de estados da Mquina de Mealy da


Figura 10.23, que por convenincia reapresentado na Figura 10.31.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


0 0
0 1

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

Figura 10.31 - Reapresentao do diagrama de estados da Figura 10.23.

A Tabela 10.6 apresenta a tabela de estados do diagrama de estados da Figura 10.31.


Tabela 10.6 Tabela de estados do diagrama de estados da Figura 10.31.

Estado Seguinte Sada


Estado Atual
X=0 X=1 X=0 X=1
S0 Si0 S1 0 0
Si0 Sp0 Si1 1 0
Sp0 Si0 Sp1 0 1
S1 Si0 St 0 0
Si1 Sp0 St 0 0
Sp1 Si0 St 0 1
St St St 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.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


10.2.3 Passo 3 Eliminao de Estados Equivalentes

Durante a elaborao do Diagrama de Estados muito comum aparecerem estados


mais do que o necessrio. Assim, para implementar o circuito de forma otimizada, torna-se
necessrio eliminar esses estados equivalentes. Dois estados so equivalentes, ou
redundantes, se possuem as mesmas sadas e os mesmos estados seguintes, ou seus
equivalentes.

Esses estados podem ser eliminados atravs da metodologia apresentada a seguir,


que utiliza a tabela de estados com equivalncia apresentado na Tabela 10.7.
Tabela 10.7 Tabela de estados com equivalncias.

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

A seguir mantada uma tabela de possveis equivalncias, como apresentado na


Tabela 10.8, em que so colocadas as condies para a ocorrncia de uma equivalncia.
Tabela 10.8 Tabela condicional de possveis equivalncias, em branco.

S1 K

S2

S3

S4

S5

S6

S0 S1 S2 S3 S4 S5

A clula K da Tabela 10.8 corresponde ao cruzamento da coluna S0 e da linha S1.


Nessa clula so colocadas as condies para que exista equivalncia entre os estados atuais
S0 e S1 da Tabela 10.7.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


Observando a Tabela 10.7, verifica-se que para os estados S0 e S1 serem
equivalentes, as suas sadas devem ser iguais. Isto ocorre! Adicionalmente os estados
seguintes de S0 e S1 devem ser equivalentes. Assim, na coluna X=0, S1 e S2 deveriam ser
equivalentes, e portanto essa condio colocada na tabela condicional de equivalncias,
como vista na Tabela 10.9. Por outro lado, na coluna X=1, S0 e S0 j so iguais, e desta
forma no precisa ser lanado na Tabela 10.9.
Tabela 10.9 Tabela com as possveis equivalncias entre S0 e S1.

S1 S1S2

S2

S3

S4

S5

S6

S0 S1 S2 S3 S4 S5

Ainda referenciando-se Tabela 10.7, verifica-se que para os estados S0 e S2 no


podem jamais ser equivalentes pois tm sadas diferentes. Isso indicado na Tabela 10.10.
Tabela 10.10 Tabela com todas as possveis equivalncias.

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

Da mesma forma os estados S0 e S3 tambm no podem jamais ser equivalentes pois


tm sadas diferentes. Os estados S0 e S4 tm sadas iguais, e para serem equivalentes os seus
estados seguintes S0 e S1 deveriam ser iguais, como indicado na Tabela 10.10.

Continuando, para os estados S0 e S5 serem equivalentes, os seus estados seguintes


S1 e S2 deveriam ser iguais, assim como seguintes S0 e S4, como ilustrado na Tabela 10.10.
Continuando esse procedimento, completa-se a tabela de possveis equivalncias.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


Uma vez que a tabela de possveis equivalncias esteja completa, ela deve ser
avaliada para eliminar as no-equivalncias. Assim, veja pela Tabela 10.10 que S0 e S1
(primeira coluna e primeira linha) sero equivalentes se S1 e S2 forem equivalentes.
Entretanto, pode-se observar pela prpria tabela que S1 e S2 no so equivalentes (h uma
marca vermelha), portanto se S1 e S2 no sero equivalentes. Isso est sinalizado na Tabela
10.11 por uma marca na cor violeta.
Tabela 10.11 Tabela de equivalncias.

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

Dando continuidade, para que S0 e S4 (primeira coluna e quarta linha) sejam


equivalentes, ento S0 e S1 deveriam ser. Como S0 e S1 no so equivalentes, ento S0 e S4
no sero! Isso est sinalizado na Tabela 10.11 por uma marca na cor violeta. Seguindo o
mesmo procedimento, pode-se verificar todas no equivalncias da tabela. Aps a anlise
em todas as clulas, tem-se a Tabela 10.11.
Observe que S2 e S3 seriam equivalentes se S5 e S6 fossem equivalentes. Da mesma
forma, S5 e S6 seriam equivalentes se S2 e S3 fossem equivalentes. Como no h restrio
alguma esses dois casos, eles so equivalentes.
Como S2 e S3 so equivalentes, um deles deve ser eliminado na Tabela 10.7.
Admitindo que se deseje eliminar o S3, as inseres de S3 na tabela devem ser substitudas
por S2. Da mesma forma, admitindo que se deseje eliminar o S5, as inseres de S5 na tabela
devem ser substitudas por S6. A nova tabela de estados, com as equivalncias eliminadas
est indicada na Tabela 10.12.
Tabela 10.12 Tabela de estados com equivalncias eliminadas.

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

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


Como grande objeto de aprendizado, deve-se retornar ao diagrama de estados e
eliminar esses estados equivalentes. A seguir deve-se analisar o diagrama de estados para
localizar os pontos e motivos dos erros originais.

10.2.4 Passo 4 Designao de Estados Auxiliares

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.

Metodologia de Designao de Estados: A seguir so apresentadas as diretivas, que devem


ser atendidas preferencialmente na ordem de prioridades apresentada. Muitas vezes a
maioria das diretivas no ser atendida, e portanto no motivo de grandes preocupaes.

i. Estados, cujos estados seguintes so iguais, devem ficar prximos.


ii. Estados seguintes um mesmo estado devem ficar prximos.
iii. Estados com mesmas sadas devem ficar prximos.
Considere como exemplo a tabela de estados apresentada na Tabela 10.13.
Tabela 10.13 Tabela de estados para obter designao de estados auxiliares.

Estado Seguinte Sada


Estado Atual
X=0 X=1 X=0 X=1
S0 S1 S2 0 0
S1 S3 S2 0 1
S2 S1 S4 1 0
S3 S5 S2 1 1
S4 S1 S6 0 1
S5 S5 S2 0 1
S6 S1 S6 0 0

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.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


Pela segunda diretiva, os estados S1 e S2 so estados seguintes do S0 e devem ficar
prximos (primeira linha da Tabela 10.13). Na segunda linha da tabela, observe que os
estados S2 e S3 so estados seguintes do S1 e devem ficar prximos. Dando continuidade,
faz-se essa mesma anlise para as demais linhas. Observe entretanto que estados S2 e S5 so
estados seguintes dos estados S3 e S5, e desse modo tm um peso maior. Isso tambm ocorre
para estados S1 e S6 que so estados seguintes dos estados S4 e S6.

Pela terceira diretiva, os estados S0 e S6 devem ficar prximos pois apresentam as


mesmas sadas. Da mesma forma, os estados S1, S4 e S6 tambm devem ficar prximos.

A Tabela 10.14 apresenta essas condies de proximidade. Ao se implementar as


proximidades, dificilmente as diretivas i e ii sero completamente atendidas, e quase nunca
a terceira diretiva ser atendida.
Tabela 10.14 Tabela de proximidades.

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

Como h sete estados, so necessrias trs variveis auxiliares. Preferencialmente o


estado S0 deve posicionado em Y2Y1Y0 = 000, pois durante a inicializao ou ao ocorrer
reset, o circuito ir naturalmente para a condio Y2Y1Y0 = 000. Os demais estados so
colocados de forma a atender o maior nmero de proximidades possvel. Por proximidade
entende-se aqui somente uma varivel de distncia, isto , so prximos se forem vizinhos
na horizontal ou na vertical. A seguir apresentada uma possibilidade.

Y2
Y1Y0 0 1
00 S0 S3
01 S6 S1
11 S4
10 S2 S5

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


No primeiro mapa, na primeira coluna tem-se que S0 S2 S4 S6 esto prximos
entre si, pois a sequncia no importa. Nessa mesma coluna S4 S6 esto prximos. Nesse
primeiro mapa, S0 S3, S3 S5, e S3 S1 esto prximos entre si, satisfazendo portanto a
condio S0 S1 S3 S5, mesmo que aparentemente no estejam prximos. Essas
proximidades correspondem primeira diretiva, que foi integralmente atendida.

Com relao segunda diretiva, observe que S2 S5 e S1 S6 so atendidas


prioritariamente pois tm peso duplo. Entretanto, S1 S2, S2 S3 e S1 S4 no so atendidas.

Todas as proximidades da terceira diretiva foram atendidas. A Tabela 10.15 ilustra


as condies atendidas, para o primeiro mapa de proximidades.
Tabela 10.15 Tabela de proximidades.

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

A seguir apresentada outra possibilidade de alocao.

Y2
Y1Y0 0 1
00 S0 S4
01 S1 S6
11 S3
10 S5 S2

10.2.5 Passo 5 Mapas de Transio

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.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


Como exemplo sero usados a tabela de estados apresentada na Tabela 10.13,
reapresentada como Tabela 10.16 e tabela de designao de estados, tambm reapresentada
a seguir. Como h sete estados, foram necessrias trs variveis auxiliares Y2, Y1 e Y0. Alm
dessas variveis, h tambm a varivel de entrada X, e consequentemente o mapa de
transio conter quatro variveis.
Tabela 10.16 Tabela de estados da Tabela 10.13.

Estado Seguinte Sada


Estado Atual
X=0 X=1 X=0 X=1
S0 S1 S2 0 0
S1 S3 S2 0 1
S2 S1 S4 1 0
S3 S5 S2 1 1
S4 S1 S6 0 1
S5 S5 S2 0 1
S6 S1 S6 0 0

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

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


Agora observe a clula S6, que na designao de estados a seguir, ocupa a posio
Y2Y1Y0 = 001 (marcado em azul). Essa mesma posio Y2Y1Y0 = 001 corresponde clula
dupla no mapa de transio (marcado em verde). Pela tabela de estados, os estados seguintes
de S6 (marcado em rosa) so: S1 para X=0 e S6 para X=1. Desta forma, a clula dupla torna-
se:

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

Continuando, a clula S4 ocupa a posio Y2Y1Y0 = 011 na designao de estados e


essa mesma posio Y2Y1Y0 = 011 corresponde clula dupla no mapa de transio. Pela
tabela de estados, os estados seguintes de S4 so: S1 para X=0 e S6 para X=1. Desta forma, a
clula dupla torna-se:

Y2X
Y1Y0 00 01 11 10
00 S1 S2
01 S1 S6
11 S1 S6
10

Dando continuidade nesse processo, pode-se completar o mapa de transio, como


indicado a seguir. Deve-se, entretanto ficar atento com as posies de X=0 e X=1 para o
lado Y2=1.
Y2X
Y1Y0 00 01 11 10
00 S1 S2 S2 S5
01 S1 S6 S2 S3
11 S1 S6
10 S1 S4 S2 S5

Mapa de transio, como o prprio nome indica, apresenta as transies da mquina


de estado, ou em outras palavras, o mapa de transio indica o estado seguinte do circuito.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


Entretanto esse mapa de estado seguinte apresenta os nomes dos estados seguintes. Esses
nomes devem agora ser substitudos pelos valores binrios obtidos do mapa de designao
de estados.

Por convenincia so reapresentados abaixo mapa de designao de estados e o


mapa de transio. Todas as posies S1 do mapa de transio (marcado em azul) devem
receber o valor de S1 obtido do mapa de designao de estados (tambm marcado em azul),
que dado por Y2Y1Y0 = 101. Desta forma, os mapas de estado seguinte devem receber
Y2+Y1+Y0+ = 101 para todas as posies S1 do mapa de transio (tambm marcado em azul).

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).

Continuando, a posio S3 do mapa de transio (marcado em rosa) deve receber o


valor de S3 obtido do mapa de designao de estados (tambm marcado em rosa), que
dado por Y2Y1Y0 = 100. Consequentemente, os mapas de estado seguinte devem receber
Y2+Y1+Y0+ = 100 para a posio S3 do mapa de transio (tambm marcado em rosa).

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


Dando continuidade nesse procedimento, concluem-se os mapas de transio, como
apresentado a seguir.

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+

10.2.6 Passo 6 Mapas de Excitao dos Flip-flops

Os mapas de excitao dos flip-flops so obtidos da mesma forma que no caso de


contadores, e consequentemente ser aqui reapresentado de forma resumida. Os mapas de
excitao dos flip-flops so obtidos partir dos mapas de estado seguinte e das tabelas de
transio dos flip-flops, reapresentadas na Tabela 10.17.
Tabela 10.17 Tabela de transio de flip-flops.
Seguinte
Atual

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

A mquina de estado ser implementada com flip-flops JK. Considere inicialmente o


mapa de estado seguinte Y2+. Tendo em vista que Y2 a varivel de interesse, o mapa deve
ser dividido em Y2+=0 e Y2+=1, como indicado a seguir. Lembre-se que o mapa foi
preenchido com o estado seguinte da mquina de estados. Desta forma, tem-se e estado
atual do lado de fora do mapa, e o estado seguinte dentro do mapa.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


Y2=0 Y2=1
Y2X
Y1Y0 00 01 11 10
00 1 0 0 1
01 1 0 0 1
11 1 0
10 1 0 0 1

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.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


Y2X Y2X
Y1Y0 00 01 11 10 Y1Y0 00 01 11 10
00 1 0 00 1
01 1 0 01 1
11 1 0 11
10 1 0 10 1

J2 K2

Finalmentte, para a coluna


c Y2X = 10 tem--se Y2=1 (eestado atuall) e Y2+ =1
1 (estado
seguinnte). Com base
b na Tab ual) e Q+=11 (estado seeguinte),
bela 10.13, para Q=1 (estado atu
tem-see J2=- e K2=0,
= como in
ndicado a seeguir, juntam
mente com as leituras dde J2 e 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:

Noo lado 0 do mapa, l-see os 1 para a expresso de J.


Noo lado 1 do mapa, l-see os 0 para a expresso de K.
A varivel sen
ndo lida noo aparece na leitura (deeve ser elim
minada).

A seguir so reapressentados oss mapas Y1+ e Y0+, porm j com


m as indicaes das
leituraas simplifficadas. No lado 0 do maapa Y1+, leem-se oos 1, e tem-se
J1 Y2 Y1 X Y1Y0 X Y2 Y1Y0 , mas comoo Y1 elim ulta em J1 Y2 X Y0 X Y2 Y0 .
minado, resu

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

lado 1 do mapa Y0+, leem-se os 0. Asssim, tem-sse K0 Y2Y0 , mas com


mo Y1 eliiminado,

resultaa em K0 Y2 .

Notass de Aula ELTD01 Prof. Talles C Pimen


nta, PhD
Y2X Y2X
Y1Y0 00 01 11 10 Y1Y0 00 01 11 10
00 0 1 1 1 Y0=0 00 1 0 0 0
Y1=0
01 0 0 1 0 01 1 1 0 0
Y0=1
11 0 0 11 1 1
Y1=1
10 0 1 1 1 Y0=0 10 1 1 0 0

Y1+ Y0+

No caso de
d se utilizaarem flip-fllops D, a leeitura simpliificada feeita diretam
mente nos
mapass de transio.

10.2.77 Passo 7 Mapas de Sada


S

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.

Essa etapaa feita da mesma form


ma que a ob
bteno do mapa de traansio apreesentado
no passso 5, sendoo que a nicca diferenaa a utilizaao da sad
da ao invs do estado seguinte.
s
Comoo exemplo, considere
c a tabela de eestados da Tabela
T 10.1
13, reapreseentada como
o Tabela
10.18,, e o respecttivo mapa de
d designao, apresenttado a seguiir.

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).

Notass de Aula ELTD01 Prof. Talles C Pimen


nta, PhD
Tabela 10.18 Reapresentao da Tabela 10.13

Estado Seguinte Sada


Estado Atual
X=0 X=1 X=0 X=1
S0 S1 S2 0 0
S1 S3 S2 0 1
S2 S1 S4 1 0
S3 S5 S2 1 1
S4 S1 S6 0 1
S5 S5 S2 0 1
S6 S1 S6 0 0

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).

Continuando, a clula S4 ocupa a posio Y2Y1Y0 = 011 (marcado em rosa) na


designao de estados e essa mesma posio Y2Y1Y0 = 011 corresponde clula dupla no
mapa de transio (tambm marcado em rosa). Pela tabela de estados, as sadas para S4 so:
0 para X=0 e 1 para X=1 (marcado em rosa).

Dando continuidade nesse processo, pode-se completar o mapa de sada, como


indicado a seguir, cuja leitura Z Y2 X Y2 Y1Y0 XY1Y0 Y2Y1Y0 X . Deve-se, entretanto
ficar atento com as posies de X=0 e X=1 para o lado Y2=1.

Y2X
Y1Y0 00 01 11 10
00 0 0 1 1
01 0 0 1 0
11 0 1
10 1 0 1 0

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


No caso da Mquina de Moore, o procedimento torna-se mais simples. Como a sada
depende exclusivamente do estado, no h a presena das entradas no mapa de sada. Desta
forma, o mapa de sada tem o mesmo tamanho da designao de estados.

Como exemplo, considere a tabela de estados apresentado na Tabela 10.19 e a sua


respectiva designao de estados.
Tabela 10.19 Tabela de estados de Mquina de Moore.

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

Assim, a posio Y2Y1Y0 = 000 ocupada pela clula S0 na designao de estados,


deve receber o valor da sada de S0, que vale 0, no mapa de sada. Essa condio est
indicada na cor marrom. Continuando a posio ocupada pela clula S1, deve receber o valor
da sada de S1, no mapa de sada, que vale 1, como indicado em rosa. Esses dois valores
esto indicados a seguir.

Y2
Y1Y0 0 1
00 0
01 0
11
10

Dando continuidade nesse processo, pode-se completar o mapa de sada, como


indicado a seguir, cuja leitura Z Y2 Y1Y0 Y1Y0 .

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


Y2
Y1Y0 0 1
00 0 1
01 0 0
11 1
10 0 0

10.2.8 Exemplo Completo

Um exemplo completo permite a visualizao de todo o processo de projeto da


mquina de estados. Ele tambm permite integrar os conceitos discretos nos passos.

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.

Figura 10.32 - Diagrama de estados do exemplo completo.

Passo 2 - Tabela de estados: A Tabela 10.20 apresenta a tabela de estados do exemplo


completo, obtida a partir do diagrama de estados.
Tabela 10.20 Tabela de estados do exemplo completo.

Estado Seguinte Sada


Estado Atual
X=0 X=1 X=0 X=1
Si S0 S1 0 0
S0 S0 S01 0 0
S01 S10 S1 1 0
S1 S10 S1 0 0
S10 S100 S01 0 0
S100 S0 S01 0 1

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


Passo 3 Eliminao de equivalncias: A Tabela 10.21 apresenta as equivalncias do
exemplo completo. Como se pode observar, no h equivalncias.
Tabela 10.21 Tabela de equivalncias do exemplo completo.

S0 S1S01

S01
S0S10
S1 S0S10
S01S1
S0S100 S10S100
S10 S0S100
S1S01 S1S01
S100

Si S0 S01 S1 S10

Passo 4 Designao de estados auxiliares: A Tabela 10.22 apresenta as proximidades


desejadas nessa mquina de estados.
Tabela 10.22 Tabela de proximidades do exemplo completo.

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

Passo 5 Mapas de transio: Com base na Tabela 10.20 e na designao de estados


anterior, o mapa de estados seguintes dado por:

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+

Passo 6 Mapas de excitao dos flip-flops: A utilizao de flip-flops D permite que a


leitura seja feita diretamente nos mapas de estado seguinte. As leituras so dadas por:

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

A leitura da sada dada por Z Y2 Y1Y0 X Y2 Y0 X .

A Figura 10.33 apresenta o circuito completo da mquina de estados do exemplo


completo.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


Figura 10.33 - Circuito digital do exemplo completo.

A validao do circuito deve ser feita por simulao ou montagem do circuito. A


Figura 10.34 apresenta alguns sinais empregados para validar o circuito. Esses sinais so
muito importantes para entender a operao de uma Mquina de Mealy. Para facilitar o
entendimento, veja o diagrama de estados da Figura 10.32, reapresentado como Figura
10.35.

Partindo do estado Si, na ocorrncia de sinal de clock, com entrada em 1, a mquina


vai para o estado S1. Na ocorrncia de 0 e com sinal de clock, o circuito muda para o estado
S10. Havendo 1, e com pulso de clock, a mquina vai para o estado S01. Como se pode
observar pelo diagrama de estados, estando a mquina no estado S01, se X=0, a sada vale 1
(pois ocorreu a sequncia 010), e se se X=1, a sada vale 0. Essa mesma condio pode ser
vista no instante A do diagrama de tempo da Figura 10.34. Neste caso, observe que a sada
muda em funo da entrada, mesmo que no haja mudana de estado.

Figura 10.34 - Exemplo de operao da mquina de estados.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


Figura 10.35 - Reapresentao do diagrama de estados da Figura 10.32.

Continuando, estando a mquina no estado S01 e havendo 0, a mquina vai para o


estado S10 no pulso de clock. Havendo outro 0, e com pulso de clock, a mquina vai para o
estado S100. Como se pode observar pelo diagrama de estados, estando a mquina no estado
S100, se X=0, a sada vale 0, e se se X=1, a sada vale 1 (pois ocorreu a sequncia 1001).
Essa mesma condio pode ser vista no instante B do diagrama de tempo da Figura 10.34.
Aqui tambm a sada muda em funo da entrada, mesmo que no haja mudana de estado,
caracterizando assim uma Mquina de Mealy.

Essa caracterstica da sada alterar, em funo da entrada, novamente apresentada


no instante de tempo C, correspondente sequncia 010.

10.2.9 Mltiplas Sadas

Mquinas de estado podem ter mltiplas entradas e mltiplas sadas, conforme


representado nas Figura 10.1, Figura 10.2 e Figura 10.3. O Exemplo 7, mostrado na Figura
10.29, ilustra uma mquina de duas entradas.

Para demonstrar uma mquina de mltiplas entradas e mltiplas sadas considere


uma Mquina de Moore com duas entradas X1 e X2, e trs sadas Z1, Z2 e Z3. Se somente X1
passar para 1, a sada Z1 torna-se 1. Se somente X2 passar para 1, a sada Z2 torna-se 1. A
sada Z3 torna-se 1 somente se X1=X2.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


O seu diagrama de estados est apresentado na Figura 10.36. Como se pode
observar, a sada Z1 torna-se ativa nos estados S1 e S11, a sada Z2 torna-se ativa nos estados
S2 e S21 e a sada Z3 torna-se ativa nos estados Si e Sx. Nessa representao apresentam-se os
valores de todas as sadas, em cada estado.

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.

A Figura 10.37 apresenta uma forma alternativa de representar a mesma mquina de


estado. Nessa representao, so sinalizadas apenas as sadas que assume o valor 1.
Visualmente essa representao mais interessante pois mostra apenas a sada que merece
ateno, especialmente para circuitos com muitas 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.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


10.3 MQUINAS DE ESTADO UTILIZANDO VERILOG

Mquinas de Estado utilizando Verilog.

10.4 EXERCCIOS

1. Obter o digrama de estados de um circuito que detecte todas as ocorrncias das


sequncias 0010 e 100 em um sinal serial. Considere mquina de Moore.
2. Obter o digrama de estados de um circuito que detecte todas as ocorrncias da
sequncia 0101 em um sinal serial. Se ocorrer a sequncia 110, a mquina deve travar.
Considere uma mquina de Moore.
3. Obter o diagrama de estados de uma mquina com uma entrada e uma sada, em que a
sada se torna 1 somente aps a ocorrncia de pelo menos dois 0 consecutivos seguido
imediatamente de dois 1 consecutivos. Considere mquina de Moore.
4. Uma mquina com uma entrada e uma sada deve examinar grupos de quatro dgitos e
gerar uma sada 1 se ocorrerem as sequncias 1010 ou 0110. Considere uma mquina
de Mealy.
5. Uma mquina de estados tem uma entrada e duas sadas Z0 e Z1. Z0 torna-se 1 toda vez
que ocorrer a sequncia 100 e Z1 torna-se 1 toda vez que ocorrer a sequncia 010
desde que nunca tenha ocorrido a sequncia 100. Considere uma mquina de Mealy.
6. Uma mquina de estados tem duas entradas X1 e X0 e uma sada. Se o valor binrio do
par de entradas X1X0 crescer a sada torna-se 1, se j no estiver. Se o valor binrio
do par de entradas X1X0 decrescer a sada torna-se 0, se j no estiver. Se o valor
binrio se mantiver, o valor da sada se mantm. Considere uma mquina de Moore.
7. Uma mquina de estados tem duas entradas X1 e X0 e uma sada. Se o nmero de 1 do
par de entradas X1X0 crescer a sada torna-se 1, se j no estiver. Se o nmero de 1
do par de entradas X1X0 decrescer a sada torna-se 0, se j no estiver. Outras
combinaes mantm o valor da sada. Considere uma mquina de Moore.
8. Uma mquina com uma entrada e uma sada deve examinar grupos de quatro dgitos e
gerar uma sada 1 se ocorrerem sequncias correspondentes nmeros BCD8421
vlidos. Considere uma mquina de Mealy.
9. Obtenha o diagrama de estados de uma mquina de Moore cuja sada 1 se o nmero
de 0 recebidos par e o nmero de 1 recebidos mpar.
10. Obter o diagrama de estados de uma mquina de Mealy que converta um sinal serial no
cdigo BCDXS3 em um cdigo serial no cdigo BCD8421. Para este caso, considere que
na ocorrncia do quarto pulso, a mquina volta ao seu estado inicial, para esperar uma

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD


nova sequncia de pulsos. Considere tambm que o sinal serial inicia-se pelo bit menos
significativo.
11. Obter o diagrama de estados de uma mquina de estados que indique a paridade par de
"1" aps a ocorrncia de pelo menos dois "0" consecutivos em um sinal serial.
Considere mquina de Mealy.
12. Uma mquina de estados tem duas entradas X1 e X0 e uma sada. A sada deve sinalizar
toda vez que as entradas X1X0 forem iguais por quatro perodos de clock. Considere
mquina de Moore.
13. Implemente a mquina de estado do exerccio 2 utilizando flip-flops JK.
14. Implemente a mquina de estado do exerccio 8 utilizando flip-flops D.
15. Simule e valide os projetos anteriores.

Notas de Aula ELTD01 Prof. Tales C Pimenta, PhD

Anda mungkin juga menyukai