Contador de 0 a 9
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY CONTDOR_0_TO_9 IS
PORT ( CLICK : IN STD_LOGIC;
INI : IN STD_LOGIC;
RESET : IN STD_LOGIC;
DISPLY : OUT STD_LOGIC_VECTOR(6 DOWNTO 0)
);
END CONTDOR_0_TO_9;
ARCHITECTURE BEHAVIORAL OF CONTDOR_0_TO_9 IS
CONSTANT RETRASO_FIN : INTEGER := 49_999_999;
SIGNAL RETRASO : INTEGER RANGE 0 TO RETRASO_FIN :=0;
SIGNAL CONTADOR_PRINCIPAL : INTEGER RANGE 0 TO 9 := 0;
BEGIN
PROCESS(CLK)
BEGIN
IF RISING_EDGE(CLK) THEN
IF RESET = '1' THEN
RETRASO <= 0;
CONTADOR_PRINCIPAL <= 0;
ELSE
IF INI = '1' THEN
RETRASO <= RETRASO +1;
IF RETRASO = RETRASO_FIN THEN
RETRASO <= 0;
CONTADOR_PRINCIPAL <=CONTADOR_PRINCIPAL +1;
IF CONTADOR_PRINCIPAL =9 THEN
CONTADOR_PRINCIPAL <=0;
END IF;
END IF;
END IF;
END IF;
END IF;
END PROCESS;
--""ABCDEFG
DISPLAY <= "1111110" WHEN CONTADOR_PRINCIPAL = 0 ELSE
"0110000" WHEN CONTADOR_PRINCIPAL = 1 ELSE
"1101101" WHEN CONTADOR_PRINCIPAL = 2 ELSE
"1111001" WHEN CONTADOR_PRINCIPAL = 3 ELSE
"0110011" WHEN CONTADOR_PRINCIPAL = 4 ELSE
"1011011" WHEN CONTADOR_PRINCIPAL = 5 ELSE
"1011111" WHEN CONTADOR_PRINCIPAL = 6 ELSE
"1110000" WHEN CONTADOR_PRINCIPAL = 7 ELSE
"1111111" WHEN CONTADOR_PRINCIPAL = 8 ELSE
"1111011";
END BEHAVIORAL;
--""ABCDEFG
DISPLAY <= "1111110" WHEN CONTADOR_PRINCIPAL = 0 ELSE
"0110000" WHEN CONTADOR_PRINCIPAL = 1 ELSE
"1101101" WHEN CONTADOR_PRINCIPAL = 2 ELSE
"1111001" WHEN CONTADOR_PRINCIPAL = 3 ELSE
"0110011" WHEN CONTADOR_PRINCIPAL = 4 ELSE
"1011011" WHEN CONTADOR_PRINCIPAL = 5 ELSE
"1011111" WHEN CONTADOR_PRINCIPAL = 6 ELSE
"1110000" WHEN CONTADOR_PRINCIPAL = 7 ELSE
"1111111" WHEN CONTADOR_PRINCIPAL = 8 ELSE
"1111011";
UFC
NET CLK LOC =E7;
NET INI LOC =P14:
NET RESET LOC =B14;
NET DISPLAY<6> LOC =C6
NET DISPLAY<5> LOC =A7
NET DISPLAY<4> LOC =B7
NET DISPLAY<3> LOC =A8
NET DISPLAY<2> LOC =A9
NET DISPLAY<1> LOC =B9
NET DISPLAY<0> LOC =F10
Comentarios
Publicar un comentario