A menudo necesito crear un contador grande en mis proyectos, principalmente para hacer algo de tiempo, que podría ser parpadear un LED cada segundo ect.
He hecho esto creando un contador grande, como se muestra en el código a continuación.
sec_proc : process(resety, clk)
variable cntr : integer range 0 to 54000000;
begin
if resety = '0' then
cntr := 0;
sec_out <= '1';
elsif rising_edge(clk) then
if cntr = 54000000 or timein_en = '0' then
sec_out <= '1';
cntr := 0;
else
sec_out <= '0';
cntr := cntr + 1;
end if;
end if;
end process;
El código anterior a menudo me da problemas de tiempo, no se mantiene el tiempo, tengo una holgura negativa. ¿Cómo implementas dichos contadores efectivos para la síntesis en vhdl?