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”.