Ejemplo de diseño de un contador de módulo 10:

Anuncio
Ejemplo de diseño de un contador de módulo 10:
Contador Módulo 10
Contador Módulo 16
CE
4 bits
“0000”
ClkEn
Q
4 bits
4 bits
4 bits
SLoad
CLK
4 bits
CLK
CLR
“1001”
CNT
Reset
-- Descripción en VHDL:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity Contador_M10 is
port(CE,CLK,Reset: in std_logic;
CNT : out std_logic_vector (3 downto 0));
end Contador;
architecture Behavioral of Contador_M10 is
signal cnt_temp: std_logic_vector (3 downto 0);
begin
process(CLK,Reset)
begin
if(Reset='1')then
cnt_temp<="0000";
elsif(CLK'event and CLK='1') then
if(CE='1') then
if(cnt_temp=”1001”) then cnt_temp<="0000";
else cnt_temp<=cnt_temp+1;
end if;
end if;
end if;
end process;
CNT<=cnt_temp;
end Behavioral;
=
D
Para la implementación de los contadores de módulo 6 y módulo 10, es necesario añadir la
señal Tc (“Terminal Count”), tal y como se indica en la siguiente figura, se activa a nivel alto
cuando el contador llega al valor final de cuenta y la señal de reloj está habilitada.
Contador Módulo 10
Contador Módulo 16
CE
4 bits
“0000”
ClkEn
Q
Tc
4 bits
4 bits
4 bits
SLoad
CLK
=
D
4 bits
CLK
CLR
“1001”
CNT
Reset
Descargar