Necesito diseñar un contador ascendente de 8 bits en VHDL usando T flip flop y generar una declaración. Sé cómo funciona el contador, pero no puedo diseñarlo en VHDL.
El problema principal es "usar generar declaración". Como puedo ver, en un contador ascendente (rizado o síncrono; cualquiera de los dos está bien; decidí usar el rizado), la salida anterior se alimenta como un reloj. Así que puedo asignar Q (i -1) para el reloj en el i'th flip flop generado. Pero ¿qué pasa con el primer flip flop? Tiene un reloj aplicado explícitamente.
Por lo tanto, si uso la declaración de generación, no puedo simplemente asignar el reloj a la salida anterior; El primer flip flop siempre creará problemas. Otro pensamiento que surgió fue inicializar explícitamente el primer contador y luego usar la declaración de generación para los 7 flip flops restantes. Pero también en este caso, creo que el primer flip flop (o, mejor dicho, el segundo) que utiliza generar sentencias planteará un problema similar (es decir, el reloj de mapeo).
¿Estoy equivocado o me falta algo importante aquí?
Aquí está el código (código planificado, no código real):
component tff is
Port ( t : IN BIT ;
clk : IN BIT ;
q : OUT BIT );
end component
--Other irrelevant stuff
For i IN 0 TO 7 GENERATE
tffx : tff PORT MAP ( tIn , q(i-1) , q(i) ) ;
end GENERATE ;
--More irrelevant stuff
Gracias.