Estoy trabajando en un diseño que crea un reloj de 1Hz de 20MHz PLL a cabo.
Para ello, he creado un contador que se apaga cuando su valor llega a 10 000 000. Ese reloj de 1Hz se utiliza como reloj de entrada de un registro de desplazamiento conectado a unos LEDs.
Ahora quiero restringir ese reloj de 1Hz.
Para ello, he añadido la siguiente línea en el archivo sdc:
create_generated_clock -name {clk_divider:inst5|q} -source [get_nets {inst1|altpll_component|auto_generated|wire_pll1_clk[0]}] -divide_by 20000 -duty_cycle 50 [get_nets {inst5|q}]
Si establezco el divided_by
al valor correcto, 20_000_000, no funciona, y el diseño no se sintetiza. Así que he puesto el valor a 20_000, para borrar las advertencias de Quartus Timing Analysis.
Pregunta
¿Tiene sentido esta restricción? ¿Debo corregirla y especificar que se trata de un reloj de 1 Hz de alguna manera?
Como el ejemplo es tonto, no tengo problemas de sincronización, pero en diseños más complicados, supongo que esto debería especificarse adecuadamente, para que el P&R pueda poner esta parte del diseño en un lugar que no moleste al resto del diseño.