Bueno, ahora les mostraré cómo se puede hacer un contador de 1 bit por si quieren dividir su señal de reloj entre 2 o cualquier cosa que necesiten. Este es un contador utilizando los muy útiles FlipFlops tipo D con Clear y Chip Enable (FDCE). Les enseño el circuito
El código para implementar este circuito es muy sencillo. Se los muestro
library IEEE;
use IEEE.std_logic_1164.all;
library UNISIM;
use UNISIM.vcomponents.all;
entity contador_1bit is
port(
CK1: in std_logic; -- Reloj de entrada(50MHz)
CK2: out std_logic -- Reloj de salida (25MHz)
);
end contador_1bit;
architecture contador_1bit of contador_1bit is
signal notQ, temp_Q: std_logic; -- Crea las señales a utilizar
begin
bit0: FDCE generic map ('0') -- Comienza en 0
port map (C=>CK1, D=>notQ, Q=>temp_Q, CE=>'1', CLR=>'0'); -- Asigna los pines
notQ<=not temp_Q;
-- Niega la salida del FDCE y la regresa a la entrada
CK2<=temp_Q; -- Asigna la salida
end architecture;
Como podrán ver, hice uso del FDCE que vimos la vez anterior. Con esto ya no tenemos que construir nuestros Flip Flops, pues ya vienen hechos. Para que vean que sí funciona, les enseño la simulación.
Les dejo los archivos que utilicé en mi cuenta de MediaFire.
http://www.mediafire.com/download/pse2y062rdy60tl/Contador_1bit.zip
My Github
https://github.com/DiegoRosales
No hay comentarios:
Publicar un comentario