Sei sulla pagina 1di 9

Projeto de Máquinas de Estados Finitos – Prof. MSc.

André Macário Barros – 11/06/2018

1. INTRODUÇÃO

Este material tem por objetivo auxiliá-lo(a) a projetar uma Máquina de Estados Finitos,
comumente abreviada por FSM (Finite State Machine).
É necessário que:
a) o sistema a ser projetado possua um número definido de estados de funcionamento;
b) sejam conhecidas as condições para se passar de um estado para outro; e
c) sejam também conhecidos os valores de saída que o sistema deva fornecer em cada
estado.

2. UM EXEMPLO

Considere um sistema, neste caso um circuito, com uma entrada x e uma saída y, que tenha de
sinalizar a detecção da sequência “111”, conforme apresentado na Figura 1.

x
detetor y
clock
de “111”
reset
Figura 1 – Circuito detector da sequência “111”.

Uma especificação que o sistema detector deva ter para acusar a sequência “111” pode ser:
1) quando a entrada x receber um primeiro “1”, y produzirá um “0”;
2) em seguida, se x receber um segundo “1”, y continuará a produzir um “0”;
3) quando x receber um terceiro “1”, y deverá fornecer “1”, pois foi detectada uma
sequência “111”.
Este circuito precisa funcionar com memória para armazenar a informação dos bits que
passaram pela entrada x para determinar a detecção da sequência desejada. Portanto, fica constatada a
necessidade de um circuito sequencial.

1 de 9
Projeto Máquinas de Estados Finitos – Prof. MSc. André Macário Barros – 11/06/2018

3. DIAGRAMA DE TRANSIÇÃO DE ESTADOS

Com a finalidade de se ter uma descrição precisa do ponto de vista técnico para o exemplo
apresentado na seção 2, livre de eventuais erros de uma especificação baseada em um texto, o
diagrama da Figura 2 representa todos os estados em que o sistema deva funcionar, bem como suas
transições de um estado para outro.

x=0
x=1
estado A estado B
y=0 x=0 y=0

x=0 x=0 x=1

x=1 estado D x=1 estado C


y=1 y=0

Figura 2 – Exemplo de um diagrama de transição de estados.

Na Figura 2, podem ser observados os estados que para este exemplo foram aleatoriamente
batizados de “A” a “D”, cada um deles exibindo os níveis lógicos em que se encontra a saída y do
circuito. Pode-se também observar as transições: por exemplo, para que o circuito passe do estado
“C” para o estado “D”, a entrada precisa receber um nível lógico “1”, que seria o terceiro da sequência
“111”. Por este motivo existe a seta para a esquerda entre os estados “C” e “D”. Observar que, ao se
construir o diagrama de estados, constatam-se mais informações que são consequências da
especificação, mas não foram ditas, por exemplo, o estado “C” voltar para o estado “A” por ter
recebido um “0” ao invés de um “1”.

2 de 9
Projeto Máquinas de Estados Finitos – Prof. MSc. André Macário Barros – 11/06/2018

4. MODELO GERAL DE UMA FSM

Uma representação genérica de uma FSM pode ser visualizada na Figura 3.

entrada saída
1ógica
combinacional

estado_pr estado_nx

lógica
clock
sequencial reset
Figura 3 – Representação geral de uma FSM.

A Figura 3 representa um modelo geral para qualquer máquina de estado. Observe que
máquinas de estado operam de forma síncrona e para que isto ocorra necessitam de uma entrada de
clock. Da mesma forma que a entrada de clock, a entrada de reset também se faz necessária para que
o sistema possa retornar a um estado inicial de maneira assíncrona. Logo, quando uma especificação
de uma sistema a ser desenvolvido via FSM não mencione entradas, deve-se subentender que tal
sistema tenha então pelo menos as entradas de clock e reset. O clock será o responsável por governar
os momentos em que as transições ocorram.

5. MÁQUINAS DE MOORE E MÁQUINA DE MEALY

Na Figura 3, o rótulo estado_pr representa a informação que é passada do bloco sequencial


para o combinacional referente ao estado presente (atual). Da mesma forma, estado_nx é a
informação referente ao próximo estado (estado futuro) que é transmitida no sentido contrário, isto é,
do bloco de lógica combinacional para as entradas dos flip-flops do bloco sequencial.
As FSMs podem se apresentar em duas formas específicas: Máquina de Moore a Máquina de
Mealy. A Máquina de Moore corresponde àqueles sistemas que têm suas saídas determinadas
unicamente pelos estados que a máquina pode assumir. E a Máquina de Mealy tem suas saídas
determinadas tanto pelo estado presente quanto pelo valor em que se encontram suas entradas.

3 de 9
Projeto Máquinas de Estados Finitos – Prof. MSc. André Macário Barros – 11/06/2018

6. PROCEDIMENTO PARA PROJETO DE UMA FSM

O procedimento a seguir apresentado será exemplificado através da implementação do


circuito detector que está sendo abordado.
Os passos a serem seguidos em um projeto de uma FSM são:
1) Analisar a especificação e constatar se o circuito de fato necessita ser sequencial, isto
é, se o mesmo requer memória;
2) A partir da especificação, elaborar o diagrama de estados do sistema;
3) A partir do número E de estados obtidos, esboçar o circuito genérico da FSM com um

número N de flip flops tal que 2N ≥ E;


4) Obter a tabela-verdade das entradas/estado presente (estado_pr) versus saídas/estado
futuro (estado_nx);
5) Elaborar os Mapas de Karnaugh para cada uma das saídas referentes às
tabelas-verdade obtidas e encontrar as funções lógicas mínimas;
6) De posse das funções lógicas obtidas, completar o desenho genérico esboçado no
passo (3).

7. EXEMPLO DE PROJETO UTILIZANDO FSM

Será utilizado neste exemplo o circuito detector da sequência “111”. Os passos que aqui serão
mencionados são os que foram apresentados na seção 6.
O passo (1) já foi analisado na seção 2, isto é, este circuito requer memória e por este motivo
precisa de um circuito sequencial.
O passo (2) já foi também executado e o diagrama de estados correspondente está apresentado
na Figura 2.

7.1 Execução do Passo (3)


Há, de acordo com o diagrama de estados da Figura 2, quatro estados. Portanto,

2N ≥ 4 ; log2 (2N ) ≥ log2 4 ; N log2 2 ≥ log2 4 ; N . 1 ≥ 2 ; N ≥ 2;

N = 2 flip-flops.
Determinado o número de flip-flops, é possível desenhar-se o esboço do circuito, apresentado
na Figura 4.

4 de 9
Projeto Máquinas de Estados Finitos – Prof. MSc. André Macário Barros – 11/06/2018

Figura 4 – Circuito “genérico” do circuito detector de sequência (passo 3).

Para efeitos de simplicidade, não foi representada a entrada de reset no bloco da lógica
sequencial (cada flip-flop recebe uma entrada de reset assíncrono).

7.2 Execução do Passo (4)

A primeira tabela-verdade do circuito, com base no diagrama de estados (Figura 2) está


apresentada na Tabela 1.

linha estado_pr entrada (x) saída (y) estado_nx


0 A 0 0 A
1 A 1 0 B
2 B 0 0 A
3 B 1 0 C
4 C 0 0 A
5 C 1 0 D
6 D 0 1 A
7 D 1 1 D
Tabela 1 – Tabela-verdade obtida a partir de um diagrama de estados.

Deve-se tomar cuidado ao se montar a tabela para que não haja confusão. A leitura da linha 6
da Tabela 1, por exemplo, deve ser feita, com base na Figura 2, da seguinte forma: “O estado ‘D’,
fornece a saída y = 1 e, ao receber ‘0’ na entrada x, irá para o estado ‘A’”. Analogamente, a linha 3
da mesma tabela, por exemplo é lida da mesma forma: “O estado ‘B’, fornece a saída y = 0 e, ao
receber ‘1’ na entrada x, irá para o estado ‘C’”.

5 de 9
Projeto Máquinas de Estados Finitos – Prof. MSc. André Macário Barros – 11/06/2018

Para que seja possível a obtenção dos Mapas de Karnaugh, a Tabela 1 que foi obtida receberá
agora três substituições: os estados presente e próximo serão substituídos por seus correspondentes
apresentados no esboço da Figura 5: estado_pr por Q1 e Q0 e estado_nx por D1 e D0, conforme
explicado na seção 5. E a última substituição é feita sobre os nomes dos estados: “A” por “00”, “B”
por “01”, “C” por “10” e “D” por “11”. Com isto chega-se à Tabela 2, com as entradas sendo Q1, Q0 e
x e as saídas sendo y, D1 e D0.

Q1 Q0 x y D1 D0
0 0 0 0 0 0
0 0 1 0 0 1
0 1 0 0 0 0
0 1 1 0 1 0
1 0 0 0 0 0
1 0 1 0 1 1
1 1 0 1 0 0
1 1 1 1 1 1
Tabela 2 – Tabela-verdade adequada à obtenção dos Mapas de Karnaugh.

7.3 Execução do Passo (5)

De acordo com a Tabela 2, o Mapa de Karnaugh para a saída y está apresentado na Figura 5, já
com o grupo de mintermos determinado para a obtenção da função mínima.

Q1 Q0
00 01 11 10
x

0 2 6 4

0 1

1 3 7 5
1 1

Figura 5 – Mapa de Karnaugh para a saída y.

6 de 9
Projeto Máquinas de Estados Finitos – Prof. MSc. André Macário Barros – 11/06/2018

Do mapa obtido, é possível ser escrito que:


y = m6 + m7

y = m110 + m111 = Q1 Q0

y = Q1 Q0 (1)

O Mapa de Karnaugh para a saída D1 está apresentado na Figura 6, já com os grupos de


mintermos determinados para a obtenção da função mínima.

Q1 Q0
00 01 11 10
x

0 2 6 4

1 3 7 5
1 1 1 1

Figura 6 – Mapa de Karnaugh para a saída D1.

Do mapa obtido, é possível ser escrito que:


D1 = ( m3 + m7 ) + ( m7 + m5 )

D1 = ( m011 + m111 ) + ( m111 + m101 )

D1 = Q0 x + Q1 x (2)

7 de 9
Projeto Máquinas de Estados Finitos – Prof. MSc. André Macário Barros – 11/06/2018

O Mapa de Karnaugh para a saída D0 está apresentado na Figura 7, já com os grupos de

mintermos determinados para a obtenção da função mínima.

Q1 Q0
00 01 11 10
x

0 2 6 4

1 3 7 5
1
1 1 1

Figura 7 – Mapa de Karnaugh para a saída D0.

Do mapa obtido, é possível ser escrito que:


D0 = ( m1 + m5 ) + ( m7 + m5 )

D0 = ( m001 + m101 ) + ( m111 + m101 )

D0 = Q0' x + Q1 x (3)

7.4 Execução do Passo (6)

A partir das equações obtidas, aqui repetidas, é possível agora retornar-se à Figura 5 e
redesenhá-la em sua forma final, conforme pode ser visto na Figura 8.
y = Q1 Q0 (1)

D1 = Q1 x + Q0 x (2)

D0 = Q1 x + Q0' x (3)

8 de 9
Projeto Máquinas de Estados Finitos – Prof. MSc. André Macário Barros – 11/06/2018

Figura 8 – Circuito final obtido via técnica de projeto de FSMs.

8. CODIFICAÇÃO PARA VHDL

Este material é uma pequena revisão principalmente voltada àqueles que não conheciam a
técnica de projetos usando FSMs. Uma das grandes vantagens que será observada quando uma FSM
for desenvolvida em VHDL será o fato que somente necessitaremos dominar o diagrama de transição
de estados. Uma vez estabelecido, basta codifica-lo, dispensando desta forma a maioria dos passos
abordados. Tudo o que você precisará fazer é especificar as transições, o valor que a saída receberá e
as tratativas a serem dadas para cada um dos valores que as entradas de dados receberão. Para isto
seguiremos uma template padrão que será apresentada a seguir.

9. REFERÊNCIA

PEDRONI, Volnei. Eletrônica digital moderna com VHDL. Rio de Janeiro: Elsevier, 2010.

9 de 9

Potrebbero piacerti anche