Sincronización Flip-flops

3

Tengo una duda sobre los dominios de reloj y la sincronización FF. Estoy trabajando en un FPGA y tengo dos dominios de reloj. En el dominio del primer reloj hay una frecuencia de reloj de 125 MHz, en el segundo la frecuencia es generada por un PLL que tiene una entrada de 125 MHz y genera un 12.5 MHz.

¿Son necesarios los FF de sincronización, entre los dominios de reloj, para las señales que van de un dominio a otro? Sé que cuando las señales son asíncronas o no relacionadas, debo poner FF de sincronización, pero en este caso las frecuencias están relacionadas. ¿Es seguro eliminar las FFs?

Gracias

    
pregunta haster8558

2 respuestas

3

Ya que utiliza un PLL para generar su reloj de 12.5MHz, la herramienta de síntesis conservará la relación de fase, sea la que sea. Esto significa que el análisis de tiempo informará correctamente cualquier ruta entre los dos relojes y le dirá si no puede satisfacer la relación de configuración / retención. Es probable que los relojes también estén alineados al borde, pero esto depende de la configuración del PLL.

Es fácil realizar una transferencia de dominio de reloj entre un 12.5MHz alineado a borde y 125MHz. Si la fuente se configura dentro de 8ns, el 125MHz encajará el valor sin problemas. La otra dirección también es fácil, excepto que debe mantener cualquier valor durante 10 ciclos de reloj de 125 MHz para asegurarse de que el reloj más lento trabaje con el nuevo valor (la herramienta no lo verificará).

A veces es preferible considerar los dos relojes asíncronos. Un caso de ejemplo sería si la relación de reloj es 11/13, puede ser imposible satisfacer los tiempos entre los relojes. En ese caso, considérelos asíncronos, coloque restricciones de ruta falsas y utilice FIFO, registros de sincronización o cualquier otra técnica para transferir datos.

En su caso, considérelos síncronos, no debería ser difícil cumplir con los tiempos si están alineados al borde o si su relación de fase no es del todo mala. También asegúrese de verificar el informe de tiempos, si las rutas de dominio cruzado no están allí, entonces sabrá que hay algo mal.

    
respondido por el Jonathan Drolet
0

Esto dependerá de la demora que produzca el PLL. Si el PLL produce demora cero, es decir, un borde de reloj de 12,5 MHz está perfectamente alineado con un borde de reloj de 125 MHz, entonces no debería haber ningún problema. Si está transfiriendo datos desde el dominio de 12.5 MHz al dominio de 125 MHz (por ejemplo), y el reloj de 125 MHz se retrasa al reloj de 12.5 MHz solo en la cantidad correcta (aproximadamente el retardo de propagación de los FF internos), de hecho podría tener Problemas de metastabilidad. Además, si el retraso relativo de los dos relojes es fijo y está en una zona problemática, es posible que los FF de sincronización no funcionen bien, ya que todas las transferencias serán problemáticas.

En este caso, puede evitarlo al sincronizar con un FF impulsado por la polaridad del reloj opuesto, ya que si se garantiza un problema al flanco ascendente, se garantiza que el borde descendente es bueno, siempre que la región de metastabilidad sea menor que 1/2 período de reloj de ancho, 4 nseg en este caso.

En cualquier caso, necesita hacer un análisis cuidadoso de su generador de reloj.

    
respondido por el WhatRoughBeast

Lea otras preguntas en las etiquetas