Download - Semáforo

Transcript

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