Sie sind auf Seite 1von 4

CONTADOR ASÍNCRONO .

Carlos Enrique Portugal Martínez| Ingeniería en Computación|


Cómputo reconfigurable| Luis Alberto Hernández Zuccolotto|
2019, junio 19.
Contador asíncrono.
Un contador es un circuito que cambia de estado de acuerdo a una secuencia
establecida por su configuración para mostrar una sucesión numérica. Estos circuitos
hacen uso de flip-flops, cada uno de ellos representa un bit. Es decir, si el circuito tiene
tres flip-flops podrá expresar un numero de hasta tres bits.

En este caso, al se un contador asíncrono, la entrada clk va a ser controlada


manualmente, por lo que el pulso no será contante. Así mismo, el diseño cuenta con
un reset para regresar la salida a 0, sea cual sea su estado actual.

Diagrama lógico.

PÁGINA 1
Código en VDHL.
La implementación en VHDL es:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
use IEEE.NUMERIC_STD.ALL;

entity contador_asincrono is port(


reset,clk: in bit;
salida:out std_logic_vector(6 downto 0);
c:out std_logic_vector(3 downto 0));
end contador_asincrono;

architecture Behavioral of contador_asincrono is


signal Q: std_logic_vector(3 downto 0):="0000";
signal aux: integer:=0;

begin
contador: process (clk,reset)
begin
if reset = '1' then
Q <= "0000";
elsif (clk' event and clk = '1') then
aux <= aux + 1;
if (aux = 1) then
Q <= Q + 1;
aux <= 0;
end if;
if (Q = "1001") then
Q <= "0000";
end if;
end if;
c<="0111";
case Q is
when "0000" => salida <= "0000001";
when "0001" => salida <= "1001111";
when "0010" => salida <= "0010010";
when "0011" => salida <= "0000110";
when "0100" => salida <= "1001100";
when "0101" => salida <= "0100100";
when "0110" => salida <= "0100000";
when "0111" => salida <= "0001111";
when "1000" => salida <= "0000000";
when "1001" => salida <= "0000100";
when others => salida <= "1111111";
end case;
end process;
end Behavioral;

PÁGINA 2
Diagrama a bloques.

PÁGINA 3

Das könnte Ihnen auch gefallen