Técnica de modelagem de
Máquina de Estados em VHDL
Assunto
• Abordagem de alguns tópicos relacionados
à implementação de máquina de estados
finitos (MEF) em VHDL.
Introdução
• Basicamente uma MEF consiste de
lógica combinacional, lógica seqüencial
e saída lógica. A lógica combinacional
normalmente é utilizada para a decisão
de próximos estados, a lógica
seqüencial para armazenar o estado
corrente da MEF. A saída pode ser um
misto de lógica seqüencial e lógica
combinacional.
Estrutura geral de uma MEF
Estrutura alternativa para uma MEF
Tipos de máquinas de estado
• M.E. de Mealy: As saídas do sistema
dependem do estado atual (corrente) e das
entradas atuais.
• M.E. de Moore: As saídas dependem
exclusivamente do estado corrente.
Tipos de codificação (representação) para
estados
•
Codificação binária: representação dos
estados como um código binário normal.
Ex.: (0000, 0001, 0010, 0011, ...)
•
Codificação Gray: é aquela que modifica
somente o valor de 1 bit entre dois dígitos
decimais subseqüentes. Ex.: (0010, 0110,
0111, 0101, ...)
Tipos de codificação (representação) para
estados
• One Hot: nesta representação um único bit
da seqüência tem valor lógico 1. Ex. (0001,
0010, 0100, 1000)
• One Cold: nesta representação todos os bits,
com exceção de um possuem valor lógico 1.
Ex.: (1110, 1101, 1011, 0111)
Classificação das máquinas de estado
implementadas.
• Podem ser classificadas como Seguras ou
inseguras.
• As ferramentas de síntese otimizam estados
que não podem ser alcançados, deixando-os
“afastados”
• Algumas vezes a otimização não é aceitável
Máquinas de estado seguras
• Se o número de estados (N) é uma
potência de 2 e é utilizada codificação
binária ou algoritmo de código Gray, a
máquina de estado pode ser
considerada segura. Significa que se
tem M número de registradores onde
N=2M. Como nessa implementação
todos os valores de estado possíveis
são alcançáveis, ela pode ser
considerada como segura.
Máquinas de estado inseguras
• Se o número de estados não é uma
potência de 2 ou não é utilizada
codificação binária ou algoritmo de
código de Gray. Por exemplo, One Hot,
é considerada implementação insegura.
• Segue um exemplo prático:
Exemplo de implementação de 4 estados através de
One Hot.
• Os estados na figura anterior:
• s0
• s1
• s2
• s3
=>
=>
=>
=>
0001
0010
0100
1000
• Como pode-se notar, existem 12 estados não
definidos. Geralmente esses estados são
acondicionados através da opção “others”
(em VHDL) para a estrutura case. A operação
default da ferramenta de síntese é otimizar,
afastando os estados inalcançáveis, de forma
a criar um circuito de alta performance. Mas
essa otimização criará um circuito “inseguro”.
Download

Apresentação do PowerPoint