posible cruce de dominio de reloj?

Por favor vea el siguiente código. (En aras de la claridad, es un YCbCr 4:2:2 a 4:4:4 SerDes).

always @(posedge clk_54, posedge reset) begin
if (reset)
    cntr <= 0;
else if (flag_in) 
    cntr <= cntr+1; 
end

always @(posedge clk_54, posedge reset) begin
if (reset) begin
    Y  <= 0;
    Cb <= 0;
    Cr <= 0; end
if (cntr==0) 
    Cb <= YCbCr;
else if ((cntr==1)||(cntr==3)) 
    Y <= YCbCr; 
else if (cntr==2) 
    Cr <= YCbCr;
end

El reloj de entrada es de 54 MHz. cntres un contador de dos bits. flag_ines una bandera que le dice al contador cuándo comenzar. Está muy claro que ninguna de las tres señales de salida, Y, Cbo Cr, cambia a una velocidad superior a 27 MHz (la mitad de 54). Si es así, ¿puedo muestrear con seguridad las señales a 27 MHz y no preocuparme por los problemas de cruce del dominio del reloj , configuración y espera, etc.?

Planeo sintetizar con Vivado y colocarlo en un FPGA. El reloj de 27 MHz se derivará del asistente de sincronización de 54 MHz con Vivado.

¿Los relojes de 27 MHz y 54 MHz son asíncronos entre sí, es decir, de fuentes separadas? Si es así, su fase puede/se desviará ya que su relación de frecuencia no será precisa de 2:1 y sus DFF de entrada de 54 MHz (que debería tener) pueden volverse metaestables ya que de hecho cruzará dominios de reloj.
Mencioné en la pregunta que "El reloj de 27 MHz se derivará del asistente de sincronización de 54 Mhz con Vivado".
El asistente de sincronización de Vivado es una GUI familiar para quienes la han usado. Siguiendo con el circuito real, ¿está diciendo que se producen a partir del mismo PLL y, por lo tanto, están bloqueados en fase entre sí?
Lo que digo es que el reloj de 54 MHz proviene de fuera de la placa, y el de 27 MHz se deriva del reloj de 54 MHz usando el asistente de reloj Vivado usando la opción PLL.
Nuevamente, está describiendo las acciones de la GUI de Vivado, no los circuitos que crea, así que olvidémonos de Vivado por ahora. Si desea responder solo mi pregunta de comentario anterior, puedo darle una respuesta clara sobre el cruce de su dominio, sin embargo, no se moleste si no quiere eso.

Respuestas (1)

Esto parece un circuito de 54 MHz, ya que no tiene un control obvio de la fase de los dos relojes. Siempre que los dos relojes estén sincronizados y todas las rutas clk_27 a clk_54 estén cronometradas para 54 MHz, entonces no debería haber problemas con la metaestabilidad o la convergencia.

Si alguna de las señales es generada por diferentes fuentes de reloj (incluso si están bloqueadas en fase), o pasan fuera del chip a través de conexiones externas, también deberá permitir la variación de retraso en el peor de los casos.