¿Cuáles son las implicaciones cuando un bloque siempre controla el interruptor que cambiará la fuente del reloj (en realidad, más de una frecuencia que proviene de un divisor de reloj) que está sincronizando el bloque siempre? ¿Cómo manejará la herramienta de síntesis el tiempo? ¿Cómo deberían darse las restricciones en tal caso?
Ejemplo:
assign clk = (freq_val=='d0) ? clk_5M : (freq_val=='d1) ? clk_10M : clk_200M
always@(posedge clk) begin
if(cond1) freq_val='d0;
else if(cond2) freq_val<='d1;
else freq_val<='d0;
end