Técnica de modelagem de Máquina de Estados em VHDL
description
Transcript of Técnica de modelagem de Máquina de Estados em VHDL
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 => 0001 • s1 => 0010 • s2 => 0100• s3 => 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”.