Está en la página 1de 6

Código en VDHL:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity cont_60 is

port(CLK: in std_logic;

C1: inout std_logic_vector(3 downto 0); -- 0 - 16

C2: inout std_logic_vector(3 downto 0); -- 0 -- 16

Seven_1: out std_logic_vector(6 downto 0);

Seven_2: out std_logic_vector(6 downto 0)

);

end cont_60;

architecture uno of cont_60 is

signal Reloj: std_logic;

signal Div: std_logic_vector(24 downto 0);

component Display is

port(Bin: in std_logic_vector (3 downto 0);

Seven: out std_logic_vector (6 downto 0));

end component;

begin

--Divisor de frecuencia

process(CLK)

begin

if CLK'event and CLK = '1' then

Div <= Div + 1;

end if;

end process;

Reloj <= Div(24);

process(CLK)
begin

if CLK' event and CLK = '1' then

if C1 /= "1001" then -- decenas

C1 <= C1 + 1;

else

C1 <= "0000";

if C2 /= "0101" then -- El que cuenta de 0- 5

C2<= C2 +1;

else

C2 <= "0000";

end if;

end if;

end if;

end process;

Display1: Display port map(C1, seven_1); -- Decimal

Display2: Display port map(C2, seven_2); -- Hexal

end uno;
Figura ¿?
Codificador de un contador 60
Así es como queda en VDHL la figura N0. 1. Del contador modulo 60. El cual
funciona sin ningún error
Figura ¿? RTL de un contador 60
En el RTL podemos observar que se cumplen los datos de manera correcta

Figura ¿? Simulación de un contador 60


En la imagen podemos notar que nuestra simulación es correcta y que funciona tal y como lo
desarrollamos en VDHL

Figura ¿? Implementación de un contador 60


en la imagen anterior podemos apreciar el funcionamiento del proyecto que fue un éxito. Nuestro
contador funciona muy bien empieza en 0 y va hasta el 59 y vuelve a contar.

Figura ¿? Asignación de pines

También podría gustarte