Semáforo

3
Semáforo -Este semáforo tiene 3 luces, verde, ambar y rojo, -Esta normalmente en verde -Para que cambie de color (verde a rojo) es necesario presionar un boton llamado stop, con lo cual el semáforo primero pasa de verde a ambar y permanece en ese estado durante 5 segundos. -Luego pasa a rojo durante 20 segundos. -Los últimos 5 segundos son mostrados en un display 7 segmentos -Para luego regresar al color verde por defecto. Diseño: LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all ; USE ieee.std_logic_arith.all; ENTITY semaforo IS PORT( Clock, Stop: IN std_logic; Luces: OUT std_logic_vector(2 DOWNTO 0); Display: OUT std_logic_vector(4 DOWNTO 0)); END semaforo; ARCHITECTURE description OF semaforo IS --SIGNAL New_Clock: std_logic:='0'; SIGNAL Cuenta: std_logic_vector(4 DOWNTO 0):=(OTHERS=>'0'); TYPE Estados IS (S0, S1, S2); SIGNAL Estado_Actual, Estado_Siguiente: Estados; SIGNAL Cuenta_Display: std_logic_vector(4 DOWNTO 0):=(OTHERS=>'0'); BEGIN -- ----Generacion de clock_1hz --New_Clock_Process: PROCESS(Clock) --VARIABLE Contador: Integer:=1; --BEGIN --IF RISING_EDGE(Clock) THEN -- IF (Contador = 25000000) THEN -- New_Clock <= NOT New_Clock; -- Contador:=1; -- ELSE -- Contador := Contador+1; -- END IF; --END IF; --END PROCESS New_Clock_Process; --FSM-- Logica_estado_siguiente: PROCESS(Estado_Actual, Stop, Cuenta)

description

Semáforo

Transcript of Semáforo

Semforo

-Este semforo tiene 3 luces, verde, ambar y rojo,-Esta normalmente en verde-Para que cambie de color (verde a rojo) es necesario presionar un boton llamado stop, con lo cual el semforo primero pasa de verde a ambar y permanece en ese estado durante 5 segundos.-Luego pasa a rojo durante 20 segundos.-Los ltimos 5 segundos son mostrados en un display 7 segmentos-Para luego regresar al color verde por defecto.

Diseo:

LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned.all;USE ieee.std_logic_arith.all;

ENTITY semaforo ISPORT( Clock, Stop: IN std_logic;Luces: OUT std_logic_vector(2 DOWNTO 0);Display: OUT std_logic_vector(4 DOWNTO 0));END semaforo;

ARCHITECTURE description OF semaforo IS--SIGNAL New_Clock: std_logic:='0';SIGNAL Cuenta: std_logic_vector(4 DOWNTO 0):=(OTHERS=>'0');TYPE Estados IS (S0, S1, S2);SIGNAL Estado_Actual, Estado_Siguiente: Estados;SIGNAL Cuenta_Display: std_logic_vector(4 DOWNTO 0):=(OTHERS=>'0');BEGIN------Generacion de clock_1hz--New_Clock_Process: PROCESS(Clock)--VARIABLE Contador: Integer:=1;--BEGIN--IF RISING_EDGE(Clock) THEN-- IF (Contador = 25000000) THEN-- New_Clock IF Stop='1' THENEstado_Siguiente