You are on page 1of 11

1

Mquina de estados finitos

Uma mquina de estados finitos representa a modelagem de um comportamento, composto por estados, transies e aes. As aes realizadas pela sada do sistema dependem de seu estado atual e dos valores apresentados sua entrada. Uma transio indica uma mudana de estado e descrita por uma condio que precisa ser realizada para que a transio ocorra. Uma ao a descrio de uma atividade que deve ser executada num determinado momento. O modelo grfico de uma mquina de estados est apresentado na figura I

Prximo Estado

Estado Atual

Funo do prximo estado

Entradas

Funo de Sada

Sadas

Figura I

Em um dado momento, a mquina pode estar somente em um nico estado, atravs do processamento de uma entrada na mquina, o estado atual define o

comportamento da mquina e quais aes devero ser tomadas pela mesma (inclusive se h necessidade de mudar de estado. Cada transio define de qual estado para qual estado a mquina deve mudar. A mquina de estados pode tambm ser representada por um diagrama de estados. Como exemplo, construiremos o diagrama de uma mquina de estados que recebe um trem de pulsos [1,0,1,1,0,1,0,0,1,0,1,1,1], e envie um sinal quando identificar trs bits 1 seguidos. A figura II. representa o diagrama de estados da mquina:

0/0

A
1/0 0/0 0/0

B
1/0

1/1

C
Figura II

Maquina de estado de Moore

Nas mquinas de estado de Moore, as sadas dependem somente dos estados em que se encontram. Esse modelo e suas variaes so normalmente utilizados na implementao de controladores de sistemas digitais.

Figura III O problema citado no item anterior, pode ser resolvido utilizando-se uma mquina de Moore. Deve-se projetar um circuito que responda com uma sada S em nvel alto (1), quando forem identificadas entradas igual a 1 durante 3 pulsos do relgio, como mostra a fig. 3: Nota-se que a primeira seqncia de trs 1s na entrada vem a partir do ciclo 5 ao ciclo 7. Por causa disso, no ciclo seguinte (8), a sada vai para 1. A sada voltou para 0 no ciclo seguinte porque a entrada no permaneceu em 1. A sada s ser novamente 1 , no ciclo 12, aps uma nova seqncia de trs 1s. A sada, dessa vez, permaneceu em 1, j que a entrada tambm o fez. Verifica-se que a mquina possui 4 estados, e que a entrada define quem o estado seguinte. Por exemplo: se a primeira entrada um 0, a mquina deve esperar at

que essa v para 1. Porm, se a primeira entrada um 1, a mquina deve comear o reconhecimento da seqncia 111. Por causa disso, temos que explicitar no nosso diagrama os valores assumidos pela entrada. Alm disso, as setas apontam para o prximo estado que aquela entrada determinou.

Figura IV Definem-se ento as mudanas de estado, atravs da tabela verdade de transies mostrada na tabela abaixo.

Estado Atual (Q1Q0)

Sada (S)

Estado Seguinte Ent=0 Ent=1 01 (B) 10 (C) 11 (D) 11 (D)

A B C D

0 0 0 1

00 (A) 00 (A) 00 (A) 00 (A)

Estado atual (Q1Q0) 00 00 01 01 10 10 11 11

Entrada (E) 0 1 0 1 0 1 0 1

Estado Seguinte (D1D0) 00 01 00 10 00 11 00 11

D1 = Q1Q0E + Q1Q0E + Q1Q0E D1 = Q1E + Q0E E D0 = Q1Q0E + Q1Q0E + Q1Q0E D0 = Q1E + Q0E

Mquina de estados de Mealy

Nas mquinas de estado de Mealy, as sadas dependem da transao de estados atuais e das entradas.

Para ilustrar o funcionamento de uma mquina de estados de Mealy, resolveremos o mesmo problema do tpico anteriror. A seqncia de passos para conseguir o circuito a mesma que foi seguida anteriormente. A diferena em como o diagrama de estados ser modelado. Sendo assim, faz-se:

X/Y quer dizer: Entrada/Sada Pode-se ler assim: No estado A, com entrada 0, sada 0 No estado A, com entrada 1, sada 0

Dessa vez, a tabela gerada a partir do diagrama de estados um pouco diferente, mas segue o mesmo raciocnio das tabelas construdas anteriormente. Nota-se que a primeira coluna o estado atual, a segunda coluna o prximo estado se a entrada for igual a 0 e, finalmente, a terceira coluna o prximo estado se a entrada for igual a 1.

Estado atual (Q1Q0) ent = 0 00 (A) 01 (B) 10 (C) 00 (A) / 0 00 (A) / 0 00 (A) / 0

Estado Seguinte/Sada ent = 1 01 (B) / 0 10 (C) / 0 10 (C) / 1

Agora necessario construir as expresses para chegar ao circuito final. Para facilitar a tabela e dividida como mostra abaixo:

Estado atual (Q1Q0)

Entrada (E)

Sada (S)

00 00 01 01 10 10

0 1 0 1 0 1

0 0 0 0 0 1

Para o circuito de Mealy, a sada fica assim definida:

S = Q1Q0E

Agora, necessrio fazer a tabela dos estados seguintes. A idia a mesma que utilizada para fazer a tabela da sada. Sendo assim: Estado atual (Q1Q0) 00 00 01 01 10 10 Entrada (E) Estado 0 1 0 1 0 1 Estado Seguinte (D1D0) 00 01 00 10 00 10

Da tabela pode-se obter as seguintes expresses: D1 = Q1Q0E + Q1Q0E .: D1 = E(Q1 xor Q0) E D0 = Q1Q0E Agora obtem-se finalmente o circuito, segundo Mealy:

10

11

Referncia

Universidade de Santa Cruz do Sul. Disponvel em <http://menphis.unisc.br/acr/disciplinas/aulas_sistemas_digitais/maquina_de_estados.pd f> http://pt.wikipedia.org/wiki/M%C3%A1quina_de_estados_finitos

Universidade Federal de Santa Catarina. Disponivel http://www.inf.ufsc.br/~barreto/trabaluno/TC_roberta_diogo_henrique.pdf>

em

<

The University of Maryland. Disponivel http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Seq/fsm.html>

em

<

You might also like