Eletrônica Embarcada Aula 7 - Desenv Desenvolvim olvimento ento de de projetos projetos utili utilizando zando FPGA: Implementação de sistemas seqüenciais projetadas em Máquina de Estados Finitos
Prof.º Pro f.º Láz Lázaro aro Cam Camarg argoo
Introdução Uma máquina de estados finitos ou autômato finito é uma modelagem de um comportamento composto por estados, transições e ações. Um estado armazena informações sobre o passado passado.. Uma transição indica uma mudança de estado e é descrita por uma condição que precisa ser realizada para que a transição ocorra. Uma ação é a des descr criçã içãoo de de uma uma atividade que deve ser realizada em determinado momento.
Introdução
(continuação)
Uma máquina de estados é um sistema seqüencial. O número de estados são finitos. As entrada e saídas são consideradas em instantes de tempo discretos que são definidos por pulsos de um sinal de sincronização chamado relógio (clock).
Tipos de máquinas As máquinas de estados são classificados de acordo com o tipo de função de saída, em dois tipos: Máquina de Mealy e Máquina de Moore A máquina de Mealy é um sistema seqüencial cuja saída no tempo t depende do estado e da entrada no tempo t, ou seja:
Tipos de máquinas
(continuação)
Na máquina de Mealy a saída Y pode mudar em qualquer instante, em função da entrada X.
Tipos de máquinas
(continuação)
A máquina de Moore é um sistema seqüencial cuja saída no tempo t depende somente do estado no tempo t.
Na máquina de Moore a saída Y muda apenas na transição do relógio.
Tipos de máquinas
(continuação)
O comportamento das máquinas de Moore e Mealy machines é idêntico, mas suas implementações diferem. Na representação da máquina de Moore, nos arcos do grafo somente são representados os sinais de entrada causadores da transição de um estado para outro.
Tipos de máquinas
(continuação)
Na representação da máquina de Mealy, nos arcos do grafo são representados os sinais de entrada causadores da transição de um estado para outro, com os respectivos valores para a saída.
Transformando as representações As representações podem ser transformadas de uma para a outra. Vantagens e desvantagens:
Mealy:
glitches (ruídos) problemas de amostragem mais fácil de projetar menor número total de estados
Moore:
sem glitches
Síntese de Redes Seqüenciais A síntese de redes seqüenciais pode ser obtida seguindo-se uma série bem determinada de passos: O primeiro passo consiste em elaborar um diagrama de estados, que seja uma interpretação fiel do problema original;
Opcionalmente pode-se minimizar o número de estados no diagrama de estados;
Escrever a tabela de estados, com os estados atuais, próximos estados e saídas;
Atribuir a cada estado uma combinação de variáveis de estado (flip-flops);
Síntese de Redes Seqüenciais (continuação)
Construir a tabela de excitação do tipo de flip-flop utilizado;
Montar o mapa de Karnaugh para cada uma das entradas dos flip-flops do circuito, com o auxílio da tabela de excitação;
Obter a equação final de cada entrada de cada um dos flipflops do circuito a partir da simplificação do mapa de Karnaugh;
Fazer o mesmo procedimento para as equações das variáveis de saída.
Finalmente, elaboração do diagrama lógico do circuito, lembrando que todos os elementos de memória (flip-flops) recebem o mesmo sinal de relógio.
Descrição de máquinas de estados usando VHDL 1. Os dois componentes do sistema seqüencial , ou seja, a função de transição de estado e a função de saída são descritas como processos (process) separados. 2. O primeiro processo descreve a função de transição de estado e é ativado sempre que há um evento no sinal de relógio (clock). 3. O segundo processo descreve a função de saída e é ativado sempre que há uma transição de estado ou um evento nos sinais de entrada
Descrição de máquinas de estados usando VHDL
(continuação)
Faça uma descrição VHDL da máquina de estados especificada pelo diagrama de estados abaixo: 0/0
1/0
Sinic
1/0
S1
1/0
0/0
S11 1/1
0/0
0/0
S110
•
library IEEE; use ieee.std_logic_1164.all;
•
use ieee.std_logic_unsigned.all;
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
ENTITY detetor_de_padroes IS PORT ( x : IN STD_LOGIC; y : OUT STD_LOGIC; clk : IN STD_LOGIC ); END detetor_de_padroes; ARCHITECTURE comportamental OF detetor_de_padroes IS TYPE estados IS (Sinic, S1, S11, S110); -- tipo define os estados SIGNAL estado_atual: estados; -- sinal do tipo estados SIGNAL estado_anterior: estados; -- sinal do tipo estados BEGIN PROCESS (clk) BEGIN IF RISING_EDGE (clk) THEN – processo responsável pela mudança de estado CASE estado_atual IS WHEN Sinic => IF x = '0 ' THEN estado_atual <= Sinic; ELSE estado_atual <= S1; estado_anterior <= Sinic; END IF; WHEN S1 => IF x = '0' THEN estado_atual <= Sinic; estado_anterior <= S1; ELSE estado_atual <= S11; estado_anterior <= S1; END IF; WHEN S11 => IF x = '0' THEN estado_atual <= S110; estado_anterior <= S11; 0/0 ELSE estado_atual <= S11; estado_anterior <= S11; END IF; WHEN S110 => IF x = '0' THEN estado_atual <= Sinic; estado_anterior <= S110; ELSE estado_atual <= S1; Sinic estado_anterior <= S110; END IF; END CASE; END IF; END PROCESS;
•
• •
PROCESS (estado_atual, estado_anterior, x) -- processo
responsável
BEGIN
saída
-- pela função de
CASE estado_atual IS WHEN Sinic => y <= '0'; WHEN S1 => IF estado_anterior = S110 THEN y <= '1'; ELSE y <= '0'; END IF; WHEN S11 => y <= '0'; WHEN S110 => y <= '0'; END CASE; END PROCESS; END comportamental;
Máquina de Early 1/0
1/0
S1
1/0
0/0
S11 1/1
0/0
0/0
S110
Descrição de máquinas de estados usando VHDL
(continuação)
0
1
1
0
1
PADRÃO
1
1
0
1
Implementação de Máquina de Estados Finitos Semáforo
Implementação de Máquina de Estados Finitos (continuação)
Tutorial: 1.Criar Projeto e modelar sistema: 2.New > State Machine File
Implementação de Máquina de Estados Finitos (continuação)
Modelo inicial: Estados (state tool), transições(transition tool), entradas (insert input port) e saídas (insert output port)
Implementação de Máquina de Estados Finitos (continuação)
State Machine Wizard> Edit an existing state machine design (ok)>Sunchronous (Next)> Editar valores de saídas dos Estados sob as condições adicionais, quando elas existirem.
Implementação de Máquina de Estados Finitos (continuação)
Editar valores de saídas dos Estados sob as condições adicionais, quando elas existirem.
Implementação de Máquina de Estados Finitos (continuação)
Modelo inicial pronto > salvar >generate HDL tool (escolher opção VHDL) >Compilar o modelo
Implementação de Máquina de Estados Finitos (continuação)
Simulação
1.Inserir sinais do modelo 2.Inserir Node fstate para analise da posição do estado 3.Mudança de parâmetros de simulação 4.Edit>End time (tempo final da simulação) 60s 5.Edit>Grid size (tamanho das divisões )
5s
Implementação de Máquina de Estados Finitos (continuação)
Implementação de Máquina de Estados Finitos (continuação)
Simulação
1.Editar forma de onda para sinal reset 2.Editar forma de onda para sinal parada
Implementação de Máquina de Estados Finitos (continuação)
Criação e simulação do Bloco funcional da máquina de estado