Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 1

library ieee;

use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity quintosemaforo is
port(
clk: in bit;
count: in std_logic_vector(7 downto 0);
q: out std_logic_vector(2 downto 0);--semaforo E O || R A V
y: out std_logic_vector(2 downto 0);--semaforo N S || R A V
a: out std_logic_vector(3 downto 0));--Calles
end quintosemaforo;

architecture arc of quintosemaforo is


begin
process(clk)
begin
if clk'event and clk = '1' then
case count is

--when X"E4" => q <= "100"; y <= "010"; a <= "1110";--3 AMARILLO

when X"E5" => q <= "001"; y <= "100"; a <= "1111";--3 E O verde 20 seg
when X"E6" => q <= "001"; y <= "100"; a <= "1111";--3
when X"E7" => q <= "001"; y <= "100"; a <= "1111";--3
when X"E8" => q <= "001"; y <= "100"; a <= "1111";--3
when X"E9" => q <= "001"; y <= "100"; a <= "1111";--3
when X"EA" => q <= "001"; y <= "100"; a <= "1111";--3
when X"EB" => q <= "001"; y <= "100"; a <= "1111";--3
when X"EC" => q <= "001"; y <= "100"; a <= "1111";--3
when X"ED" => q <= "001"; y <= "100"; a <= "1111";--3
when X"EE" => q <= "001"; y <= "100"; a <= "1111";--3
when X"EF" => q <= "001"; y <= "100"; a <= "1111";--3
when X"F1" => q <= "001"; y <= "100"; a <= "1111";--3
when X"F2" => q <= "001"; y <= "100"; a <= "1111";--3
when X"F3" => q <= "001"; y <= "100"; a <= "1111";--3
when X"F4" => q <= "001"; y <= "100"; a <= "1111";--3
when X"F5" => q <= "001"; y <= "100"; a <= "1111";--3
when X"F6" => q <= "001"; y <= "100"; a <= "1111";--3
when X"F7" => q <= "001"; y <= "100"; a <= "1111";--3
when X"F8" => q <= "001"; y <= "100"; a <= "1111";--3
when X"F9" => q <= "010"; y <= "100"; a <= "1111";--3 AMARILLO
when X"FA" => q <= "100"; y <= "001"; a <= "1111";--3 N S verde 5 seg
when X"FB" => q <= "100"; y <= "001"; a <= "1111";--3
when X"FC" => q <= "100"; y <= "001"; a <= "1111";--3
when X"FD" => q <= "100"; y <= "001"; a <= "1111";--3
when X"FE" => q <= "100"; y <= "010"; a <= "1111";--3 AMARILLO

when others => q <= "000"; y <= "000"; a <= "0000";

end case;
end if;
end process;

end arc;

You might also like