-- Contador de 16 estados
-- Tiene carga paralela y señal de capacitación (enable)
library ieee;
use ieee.std_logic_1164.ALL;

- Declaración de la entidad
Entity compt_x is
port (

ck, enable, load: in bit;
d: in natural range 0 to 15;
q: out natural range 0 to 15);

end compt_x ;

-- Definición de la arquitectura
Architecture bhr of compt_x is
signal
estat: natural:=0;
begin

Process
Begin

loop -- Bucle de carga de estado (se activa con la señal load)

loop -- Bucle de conteo

wait until ck='1'; -- Cambio de estado activo por flanco de reloj
exit when load=‘1'; -- load=1 indica carga de estado
if enable='1' then estat <= (estat+1) mod 16;
end if;

end loop;
estat <= d; -- Carga paralela
wait until load=‘0';

end loop;

End process;
q <= estat; -- La salida toma el valor del estado: asignación concurrente

end bhr;


WcN - Joan Oliver. Diseño de circuitos digitales con VHDL