maquinas de estado

13
 MÁQUINAS DE ESTADO: MEALY E MOORE (material até designação de estados) 1 CIRCUITOS SEQÜÊNCIAIS De forma geral os circuitos digitais podem ser classificados em circuitos combinacionais e circuitos seqüencia is.  Nos circuitos combi nacio nais as saídas dependem somente das condições, ou combi nações das entradas. Desta forma, toda e! que for aplicada uma certa combinação de alores em suas entradas, o circuito apresentar" sempre a mesma saída. #omo e$emp lo, considere um conersor de c%digos, um codificador e um multiple$ador. &or outro lado, nos circuitos seqüenciais as saídas não dependem somente das entradas, mas também da seqü 'nci a em que foram apli cada s. #omo e$e mp lo, cons ider e um contador síncrono crescentedecrescente. aplicação de um sinal de cloc* não é suficiente para determinar o alor de contagem, a não ser que o alor de contagem anterior se+a conecido. ssim, circuitos seqüenciais deem -lembrar a condição em que se encontra para poder determinar a condição seguinte, em função dos alores das entradas. /sto implica que o circuito dea ter alguma forma de mem ori!ar os estados em que se encontra. 0sta memo ri!ação é feita com o uso de flip1flops e de realimentações, como podem ser ilustrados pelos contadores das 2iguras 3.45 e 3.46. 2 MODELOS DE MÁQUINAS DE ESTADO 7m ci rc ui to seqüenci al pode ser di id id o em duas partes8 os fl ip 1f lo ps e a parte combi nacion al, que é composta por portas l%gicas. parte combinacio nal imp leme nta a função de entrada dos flip1flops e a função de saída do circuito. 2igura 9 apresenta o diagrama de um circuito seqüencial genérico. . . . . . . Z 1 Z 2 Z n X 1 X 2 X m Circuito Seqüencial Síncrono Clock Figura 1 Diagrama de um #ircuito :eqüencial :íncrono. :e fosse possíel agrupar e deslocar os flip1flops do restante do circuito, seria obtido o modelo da 2igura ou o modelo da 2igura . No modelo da 2igura a saída depende diretamente das entradas e dos alores dos flip1fl ops. ;" no modelo da 2igura a saída depende somente dos alores dos fli p1 flo ps. 0ntretanto, em ambos os casos, as saíd as dos fli p1 flo ps são real iment adas no circuito.

Upload: rafael-guimaraes-de-paula

Post on 05-Oct-2015

225 views

Category:

Documents


0 download

TRANSCRIPT

Mapas de Karnaugh

MQUINAS DE ESTADO:MEALY E MOORE(material at designao de estados)1CIRCUITOS 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.2MODELOS 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.

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:

O modelo apresentado na Figura conhecido como mquina de Moore. Para este modelo, tem-se:

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.

Figura 2 Modelo de uma Mquina de Mealy.

Figura 3 Modelo de uma Mquina de Moore.3DIAGRAMA 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.

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

Figura 5 Diagrama de estados do detector de paridade mpar.Exemplo 2Obter 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.

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.

Observe agora que na seqncia seguinte, o ltimo valor de uma seqncia tambm o primeiro valor de outra seqncia.

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 3Obter 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 .

Figura 7 Diagrama de estados do exemplo 1.Exemplo 4Obter 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.

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.

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 5Obter 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.

Figura 9 Circuito gerador de seqncia.

Figura 10 Diagrama de estados do gerador de seqncia.4TABELA 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 6Obter 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.AtualSeguinteSada

X=0X=1

S0S0S10

S1S1S00

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 7Obter a tabela de estados correspondente ao diagrama de estados da Figura .

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

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

S0S1S000

S1S2S000

S2S4S300

S3S1S010

S4S4S000

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

5ELIMINAO 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.

Figura 11 Diagrama de estados com redundncia.

A sua tabela de estados dada a seguir

AtualSeguinteSada

X=0X=1

S0S0S10

S1S1S21

S2S2S30

S3S3S10

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

X=0X=1

S0S0S10

S1S1S21

S2S2S00

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.

AtualSeguinteSada

X=0X=1

S0S1S00

S1S2S00

S2S5S11

S3S6S11

S4S0S40

S5S2S40

S6S3S40

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:S1S1 S2( S0 S1 se S1 S2

S2

S3

S4

S5

S6

S0S1S2S3S4S5

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

S2

S3

S5 S6

S4S0 S1

S0 S4S0 S2

S0 S4

S5S0 S4

S1 S2S0 S4

S0 S2

S6S0 S4

S1 S3S0 S4

S2 S3

S0 S3S2 S3

S0S1S2S3S4S5

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.S1S1 S2

S2

S3

S5 S6

S4S0 S1

S0 S4S0 S2

S0 S4

S5S0 S4

S1 S2S0 S4

S0 S2

S6S0 S4

S1 S3S0 S4

S2 S3

S0 S3S2 S3

S0S1S2S3S4S5

Este procedimento repetido at que todas as no-equivalncias sejam detectadas, como est mostrado na tabela a seguir.

S1S1 S2

S2

S3

S5 S6

S4S0 S1

S0 S4S0 S2

S0 S4

S5S0 S4

S1 S2S0 S4

S0 S2

S6S0 S4

S1 S3S0 S4

S2 S3

S0 S3S2 S3

S0S1S2S3S4S5

Por esta tabela pode-se observar duas possibilidades de equivalncias:S2 S3 se S5 S6S5 S6 se 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 S3S5 S6

Assim, um dos estados de cada equivalncia pode ser eliminado. Admitindo que sejam eliminados S3 e S6, a nova tabela de estados fica:AtualSeguinteSada

X=0X=1

S0S1S00

S1S2S00

S2S5S11

S4S0S40

S5S2S40

Adicionalmente, todas as ocorrncias de S3 e S6, devem ser substitudos por S2 e S5, respectivamente.6DESIGNAO 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.AtualSeguinteSada

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

S0S1S200

S1S4S200

S2S1S401

S3S5S200

S4S1S610

S5S5S210

S6S1S600

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 - S4 - S6S3 - S5

S0 - S1 - S3 - S5

S4 - S6

S1 - S2S2 S3

S1 S4S2 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.Y101

Y2Y3

00S0S3

01S2S5

11S4-

10S6S1

EMBED Visio.Drawing.6

EMBED Visio.Drawing.6

EMBED Visio.Drawing.6

EMBED Visio.Drawing.6

EMBED Visio.Drawing.6

EMBED Visio.Drawing.6

EMBED Visio.Drawing.6

EMBED Visio.Drawing.6

EMBED Visio.Drawing.6

EMBED Visio.Drawing.6

PAGE

_1146663037.vsd

_1146989397.vsd

_1147013384.vsd

_1147174796.vsd

_1147179856.vsd

_1147010732.vsd

_1146918243.vsd

_1146985880.vsd

_1146989280.vsd

_1146663290.vsd

_1146403313.unknown

_1146579714.vsd

_1146658618.vsd

_1146576281.vsd

_1146403085.vsd

_1146403168.unknown

_1146402932.vsd

_1146402988.vsd

_1146402646.unknown