Programación en VHDL/Ejemplos/Contador

← Ejemplos/Sumador Contador Ejemplos/Biestable-Latch →



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;

← Ejemplos/Sumador Contador Ejemplos/Biestable-Latch →