Beruflich Dokumente
Kultur Dokumente
Introduo
Uma mquina de estados finitos ou autmato finito
uma modelagem de um comportamento composto por
estados, transies e aes.
Um estado armazena informaes sobre o passado.
Uma transio indica uma mudana de estado e
descrita por uma condio que precisa ser realizada
para que a transio ocorra.
Uma ao a descrio de uma atividade que deve
ser realizada em determinado momento.
Introduo
(continuao)
Tipos de mquinas
As mquinas de estados so classificados de acordo
com o tipo de funo de sada, em dois tipos:
Mquina de Mealy e Mquina de Moore
A mquina de Mealy um sistema seqencial cuja
sada no tempo t depende do estado e da entrada no
tempo t, ou seja:
Tipos de mquinas
(continuao)
Tipos de mquinas
(continuao)
Tipos de mquinas
(continuao)
Tipos de mquinas
(continuao)
Transformando as
representaes
As representaes podem ser transformadas de uma
para a outra.
Vantagens e desvantagens:
Mealy:
glitches (rudos)
problemas de amostragem
mais fcil de projetar
menor nmero total de estados
Moore:
sem glitches
Descrio de mquinas de
estados usando VHDL
1. Os dois componentes do sistema seqencial , ou
seja, a funo de transio de estado e a funo de
sada so descritas como processos (process)
separados.
2. O primeiro processo descreve a funo de transio
de estado e ativado sempre que h um evento no
sinal de relgio (clock).
3. O segundo processo descreve a funo de sada e
ativado sempre que h uma transio de estado ou um
evento nos sinais de entrada
Descrio de mquinas de
estados usando VHDL
(continuao)
0/0
1/0
1/0
S1
Sinic
1/0
0/0
S11
1/1
0/0
0/0
S110
library IEEE;
use ieee.std_logic_1164.all;
responsvel
use ieee.std_logic_unsigned.all;
sada
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 responsvel pela mudana 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;
-- pela funo 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;
Mquina de Early
1/0
1/0
S1
1/0
0/0
S11
1/1
0/0
0/0
S110
Descrio de mquinas de
estados usando VHDL
(continuao)
PADRO
Implementao de Mquina de
Estados Finitos
Semforo
Implementao de Mquina de
Estados Finitos
(continuao)
Tutorial:
1.Criar Projeto e modelar sistema:
2.New > State Machine File
Implementao de Mquina de
Estados Finitos
(continuao)
Modelo inicial:
Estados (state tool), transies(transition tool), entradas (insert
input port) e sadas (insert output port)
Implementao de Mquina de
Estados Finitos
(continuao)
Implementao de Mquina de
Estados Finitos
(continuao)
Implementao de Mquina de
Estados Finitos
(continuao)
Implementao de Mquina de
Estados Finitos
(continuao)
Simulao
1.Inserir sinais do modelo
2.Inserir Node fstate para analise da posio do estado
3.Mudana de parmetros de simulao
4.Edit>End time (tempo final da simulao) 60s
5.Edit>Grid size (tamanho das divises )
5s
Implementao de Mquina de
Estados Finitos
(continuao)
Implementao de Mquina de
Estados Finitos
(continuao)
Simulao
1.Editar forma de onda para sinal reset
2.Editar forma de onda para sinal parada
Implementao de Mquina de
Estados Finitos
(continuao)