18
MAQUINA DE ESTADO FINITO MAQUINA DE ESTADO FINITO (FSM) (FSM) Autómata finito Autómata finito

MAQUINA DE ESTADO FINITO (FSM) - fceia.unr.edu.ar DE ESTADO FINITO.pdf · Modelo de Moore E Lógica del Qt+1 Qt S próximo estado Lógica ... -- Definimos la máquina de estados MAQUINA:

  • Upload
    lamkien

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MAQUINA DE ESTADO FINITO (FSM) - fceia.unr.edu.ar DE ESTADO FINITO.pdf · Modelo de Moore E Lógica del Qt+1 Qt S próximo estado Lógica ... -- Definimos la máquina de estados MAQUINA:

MAQUINA DE ESTADO FINITOMAQUINA DE ESTADO FINITO(FSM)(FSM)

Autómata finitoAutómata finito

Page 2: MAQUINA DE ESTADO FINITO (FSM) - fceia.unr.edu.ar DE ESTADO FINITO.pdf · Modelo de Moore E Lógica del Qt+1 Qt S próximo estado Lógica ... -- Definimos la máquina de estados MAQUINA:

Modelo de Modelo de MealyMealy

EQtQt+1

SLógica del Lógica del próximo próximo estadoestado

Lógica Lógica de salidade salida

MEMORIA

Qt+1 = f (E, Qt) S = g (E, Qt)

Ck

Page 3: MAQUINA DE ESTADO FINITO (FSM) - fceia.unr.edu.ar DE ESTADO FINITO.pdf · Modelo de Moore E Lógica del Qt+1 Qt S próximo estado Lógica ... -- Definimos la máquina de estados MAQUINA:

Modelo de Modelo de MooreMoore

EQtQt+1 SLógica del Lógica del

próximo próximo estadoestado

Lógica Lógica de salidade salida

MEMORIA

Qt+1 = f (E, Qt) S = g (E, Qt)

Ck

Page 4: MAQUINA DE ESTADO FINITO (FSM) - fceia.unr.edu.ar DE ESTADO FINITO.pdf · Modelo de Moore E Lógica del Qt+1 Qt S próximo estado Lógica ... -- Definimos la máquina de estados MAQUINA:

Diagrama de Diagrama de transición de estadostransición de estados

q2q2e2

q2q1e2

q1q1e1

Estado futuro

Estado presente

Entrada

Page 5: MAQUINA DE ESTADO FINITO (FSM) - fceia.unr.edu.ar DE ESTADO FINITO.pdf · Modelo de Moore E Lógica del Qt+1 Qt S próximo estado Lógica ... -- Definimos la máquina de estados MAQUINA:

Detectar la secuencia 0Detectar la secuencia 0--00--11(por (por MooreMoore))

Page 6: MAQUINA DE ESTADO FINITO (FSM) - fceia.unr.edu.ar DE ESTADO FINITO.pdf · Modelo de Moore E Lógica del Qt+1 Qt S próximo estado Lógica ... -- Definimos la máquina de estados MAQUINA:

En el ambiente ISE tenemos distintas En el ambiente ISE tenemos distintas alternativas para describir una FSM:alternativas para describir una FSM:

!! Con el código VHDLCon el código VHDL!! Con el editor de máquina de estadoCon el editor de máquina de estado!! Con captura de esquemasCon captura de esquemas

Page 7: MAQUINA DE ESTADO FINITO (FSM) - fceia.unr.edu.ar DE ESTADO FINITO.pdf · Modelo de Moore E Lógica del Qt+1 Qt S próximo estado Lógica ... -- Definimos la máquina de estados MAQUINA:

Con VHDLCon VHDLDeclaración de la Declaración de la entidadentidad

-- !!!! MAQUINA DE MOORE !!!!

library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity Maq_sinc isPort ( reset : in std_logic;

e : in std_logic;ck : in std_logic;s : out std_logic);

end Maq_sinc;

Page 8: MAQUINA DE ESTADO FINITO (FSM) - fceia.unr.edu.ar DE ESTADO FINITO.pdf · Modelo de Moore E Lógica del Qt+1 Qt S próximo estado Lógica ... -- Definimos la máquina de estados MAQUINA:

Con VHDL Con VHDL ((contincontin.).)Declaración de la Declaración de la arquitecturaarquitectura

architecture Behavioral of Maq_sinc istype estados is (est1, est2, est3, est4);signal est_actual: estados:= est1;beginprocess (reset, ck)beginif reset = '1' then est_actual<= est1 ;elsif ck='1' and ck'event thencase est_actual iswhen est1 => if e='1' then est_actual <= est1; else est_actual <= est2;end if;when est2 => if e='1' then est_actual <= est1; else est_actual <= est3;end if;when est3 => if e='1' then est_actual <= est4; else est_actual <= est3;end if;when est4 => if e='1' then est_actual <= est1; else est_actual <= est2;end if;end case;end if;end process;process (est_actual)begincase est_actual iswhen est1 => s<='0';when est2 => s<='0';when est3 => s<='0';when est4 => s<='1';end case;end process;end Behavioral;

Page 9: MAQUINA DE ESTADO FINITO (FSM) - fceia.unr.edu.ar DE ESTADO FINITO.pdf · Modelo de Moore E Lógica del Qt+1 Qt S próximo estado Lógica ... -- Definimos la máquina de estados MAQUINA:

Resultado de la simulaciónResultado de la simulación

Page 10: MAQUINA DE ESTADO FINITO (FSM) - fceia.unr.edu.ar DE ESTADO FINITO.pdf · Modelo de Moore E Lógica del Qt+1 Qt S próximo estado Lógica ... -- Definimos la máquina de estados MAQUINA:

SEMÁFOROSEMÁFORO

!! En la intersección de una En la intersección de una carreteracarretera y un y un camino camino vecinalvecinal se se instala un semáforo con el siguiente comportamiento:instala un semáforo con el siguiente comportamiento:!! En el estado inicial indica verde para la carretera y rojo en elEn el estado inicial indica verde para la carretera y rojo en el caminocamino!! Existen sensores (sensor) que detectan la presencia de vehículosExisten sensores (sensor) que detectan la presencia de vehículos en en

el camino, cuando esto ocurre se habilita el tránsito por el camel camino, cuando esto ocurre se habilita el tránsito por el camino ino durante 10 segundos.durante 10 segundos.

!! Transcurrido los 10 segundos, se pone verde la carretera y duranTranscurrido los 10 segundos, se pone verde la carretera y durante te 20 segundos no se atiende la señal del sensor.20 segundos no se atiende la señal del sensor.

!! Se dispone de una señal de reloj de frecuencia de 1Hz.Se dispone de una señal de reloj de frecuencia de 1Hz.!! La evolución de los semáforos es la estándar (verde, amarillo, rLa evolución de los semáforos es la estándar (verde, amarillo, rojo) ojo)

Page 11: MAQUINA DE ESTADO FINITO (FSM) - fceia.unr.edu.ar DE ESTADO FINITO.pdf · Modelo de Moore E Lógica del Qt+1 Qt S próximo estado Lógica ... -- Definimos la máquina de estados MAQUINA:

Caja negra para modelar según una Red de Caja negra para modelar según una Red de PetriPetri

Page 12: MAQUINA DE ESTADO FINITO (FSM) - fceia.unr.edu.ar DE ESTADO FINITO.pdf · Modelo de Moore E Lógica del Qt+1 Qt S próximo estado Lógica ... -- Definimos la máquina de estados MAQUINA:

Red de Red de PetriPetri

Page 13: MAQUINA DE ESTADO FINITO (FSM) - fceia.unr.edu.ar DE ESTADO FINITO.pdf · Modelo de Moore E Lógica del Qt+1 Qt S próximo estado Lógica ... -- Definimos la máquina de estados MAQUINA:

DIAGRAMA DE ESTADOSDIAGRAMA DE ESTADOS

Page 14: MAQUINA DE ESTADO FINITO (FSM) - fceia.unr.edu.ar DE ESTADO FINITO.pdf · Modelo de Moore E Lógica del Qt+1 Qt S próximo estado Lógica ... -- Definimos la máquina de estados MAQUINA:

library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity FSM isPort ( sensor : in std_logic;

reset : in std_logic;clk : in std_logic;sem_carre : out std_logic_vector(2 downto 0);sem_camino : out std_logic_vector(2 downto 0));

end FSM;

architecture Behavioral of FSM istype estado is (inicial, carre_amari, cami_verde, cami_amari,espera);constant verde :std_logic_vector (2 downto 0):= "001";

constant amarillo :std_logic_vector (2 downto 0):= "010";constant rojo :std_logic_vector (2 downto 0):= "100";signal estado_actual : estado:=inicial;signal reset_cuenta : boolean:= false;signal fin_cuenta_10, fin_cuenta_20 : boolean;signal cuenta : integer range 0 to 63;BEGIN

Page 15: MAQUINA DE ESTADO FINITO (FSM) - fceia.unr.edu.ar DE ESTADO FINITO.pdf · Modelo de Moore E Lógica del Qt+1 Qt S próximo estado Lógica ... -- Definimos la máquina de estados MAQUINA:

-- Definimos la máquina de estadosMAQUINA:process (clk, reset)beginif reset ='1' thenestado_actual <= inicial;elsif clk='1' and clk'event then

CASE estado_actual IS WHEN inicial =>

if sensor ='1' then estado_actual <=carre_amari;end if;

WHEN carre_amari =>estado_actual <= cami_verde;

WHEN cami_verde =>if fin_cuenta_10 thenestado_actual <= cami_amari;end if;

WHEN cami_amari =>estado_actual <= espera;

WHEN espera => if fin_cuenta_20 thenestado_actual <= inicial;end if;

END CASE ;end if;end process MAQUINA;

Page 16: MAQUINA DE ESTADO FINITO (FSM) - fceia.unr.edu.ar DE ESTADO FINITO.pdf · Modelo de Moore E Lógica del Qt+1 Qt S próximo estado Lógica ... -- Definimos la máquina de estados MAQUINA:

SALIDA:process (estado_actual) beginCASE estado_actual is

WHEN inicial => sem_carre <= verde;sem_camino <= rojo;reset_cuenta <= true;

WHEN carre_amari => sem_carre <= amarillo;sem_camino <= rojo;reset_cuenta <= true;

WHEN cami_verde => sem_carre <= rojo;sem_camino <=verde;reset_cuenta <= false;

WHEN cami_amari => sem_carre <= rojo;sem_camino <= amarillo;reset_cuenta <= true;

WHEN espera => sem_carre <= verde;sem_camino <= rojo;reset_cuenta <= false;

END CASE;end process salida;

Page 17: MAQUINA DE ESTADO FINITO (FSM) - fceia.unr.edu.ar DE ESTADO FINITO.pdf · Modelo de Moore E Lógica del Qt+1 Qt S próximo estado Lógica ... -- Definimos la máquina de estados MAQUINA:

-- Definición del contadorCONTADOR:process (clk)beginif clk='1' and clk'event then

if reset_cuenta then cuenta <= 0;else cuenta <= cuenta + 1;end if;

end if;end process contador;

-- Detección de las finalizaciones de tiempos 10s y 20sfin_cuenta_10 <= true WHEN cuenta = 9 ELSE false;fin_cuenta_20 <= true WHEN cuenta = 19 ELSE false;

end Behavioral;

Page 18: MAQUINA DE ESTADO FINITO (FSM) - fceia.unr.edu.ar DE ESTADO FINITO.pdf · Modelo de Moore E Lógica del Qt+1 Qt S próximo estado Lógica ... -- Definimos la máquina de estados MAQUINA:

RESULTADO DE LA SIMULACIÓNRESULTADO DE LA SIMULACIÓN