Programación en VHDL/Ejemplos/Contador
El objetivo es crear un contador con reset asíncrono, señal de habilitación y salida con un número de bits configurable, con la siguiente definición de interfaz:
- Entradas:
- reset: Reset del sistema.
- clk: Reloj del sistema.
- enable: Activación-Desactivación del contador.
- Salidas:
- count: Salida del contador.
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.all;
USE IEEE.NUMERIC_STD.all;
ENTITY count IS
GENERIC (width:POSITIVE:=8);
PORT (clk : IN std_logic;
reset : IN std_logic;
enable: IN std_logic;
count : OUT std_logic_vector(width-1 DOWNTO 0)
);
END count;
ARCHITECTURE arch1 OF count IS
SIGNAL cnt : UNSIGNED(width-1 DOWNTO 0);
BEGIN
pSeq : PROCESS (clk, reset) IS
BEGIN
IF reset = '1' THEN
cnt <= (others => '0');
ELSIF clk'event AND clk='1' THEN
IF enable='1' THEN
cnt <= cnt + 1;
END IF;
END IF;
END PROCESS;
count <= std_logic_vector(cnt);
END arch1;