Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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
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
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.
3 de 9
Projeto Máquinas de Estados Finitos – Prof. MSc. André Macário Barros – 11/06/2018
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.
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
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).
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.
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
6 de 9
Projeto Máquinas de Estados Finitos – Prof. MSc. André Macário Barros – 11/06/2018
y = m110 + m111 = Q1 Q0
y = Q1 Q0 (1)
Q1 Q0
00 01 11 10
x
0 2 6 4
1 3 7 5
1 1 1 1
D1 = Q0 x + Q1 x (2)
7 de 9
Projeto Máquinas de Estados Finitos – Prof. MSc. André Macário Barros – 11/06/2018
Q1 Q0
00 01 11 10
x
0 2 6 4
1 3 7 5
1
1 1 1
D0 = Q0' x + Q1 x (3)
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
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