Sobre el uso de "BLOQUEO INTERCLOCKDOMAIN CAMINOS"

3

Basé un diseño FPGA en el código de referencia de Lattice que, en el archivo de restricciones de tiempo .lpf , especifica:

BLOCK INTERCLOCKDOMAIN PATHS

Los dos dominios principales de diseño del reloj son 100Mhz y 125Mhz, por lo que espero que se desvíen a través de las relaciones de fase que violan la configuración de dominios cruzados y los tiempos de espera periódicamente. Cada dominio de reloj tiene frecuencias adecuadamente restringidas y la transferencia de datos entre dominios parece sólida.

Los mismos

Lattice publican consejos que parecen desalentar el uso de BLOCK INTERCLOCKDOMAIN PATHS en sus preguntas frecuentes:

  

Pregunta ¿Cómo puedo bloquear las transferencias de dominio de reloj donde tengo sincronizador? ¿circuitos?

     

Respuesta ... trace analiza todo el reloj   Transferencias de dominio en las que puede relacionar el origen y el destino.   Dominios del reloj. Esto no siempre puede ser deseado. Usted puede utilizar su   propio sincronizador para manejar la transferencia entre los dominios de reloj. En   este caso trace no debe analizar la transferencia del dominio del reloj. Esto puede   se hará de tres maneras:

     

BLOCK INTERCLOCKDOMAIN PATHS Esta preferencia bloqueará todo el reloj   Transferencias de dominio en el diseño. Si todos los dominios de reloj se transfieren   en el diseño son manejados por la lógica dentro del diseño entonces esto puede   ser usado. Tenga cuidado con esta preferencia ya que detendrá trace desde   Analizando todas las transferencias de dominio de reloj.

     

BLOCK PATH FROM CLKNET "src_clk" TO CLKNET "dst_clk"   Esta preferencia bloqueará todos los dominios de reloj   transferencias desde src_clk a dst_clk. Esto cubre todas las transferencias   entre estos dos dominios. Todas las demás transferencias de dominio de reloj serán   reportado y cronometrado por trace .

     

BLOCK FROM CELL "myff1*" TO CELL "myff2*"   Esta preferencia bloqueará la transferencia del dominio de reloj de myff1 * a   myff2 *. Esta es una ruta muy específica y es útil si tiene varias   Diferentes tipos de transferencias de dominio de reloj entre dos dominios. por   Por ejemplo, un diseño puede contener un FIFO asíncrono y un FF a FF   Transferencia de dominio entre los mismos dominios. El FIFO asíncrono.   la transferencia se puede bloquear de forma segura, pero la transferencia FF a FF debe ser   cronometrado.

Y:

  

Pregunta Para qué se utiliza la preferencia "BLOCK INTERCLOCKDOMAIN PATH" ?

     

Respuesta Esta restricción se usa para bloquear rutas que involucran la transferencia de datos entre registros cronometrados por diferentes redes de reloj.   Si se usa sin comprender, bloqueará todos los dominios de los relojes   entre sí, incluso si se supone que están relacionados. Esto puede causar   sus herramientas para no calcular el retardo de enrutamiento necesario entre   relacionados con el reloj y las rutas de datos y puede llevar a una configuración intermitente y   mantener errores en su diseño.

     

Es mejor usar un BLOCK CLKNET para cada ruta que no esté relacionada en   caso tienes relojes relacionados.

Me siento obligado a eliminar la restricción general, dado este consejo y determinar explícitamente las celdas relevantes en mi sincronizador (y su ruta en la jerarquía) que cruzan los dominios, luego bloquea el análisis de cada cruce conocido explícitamente en el nivel de la célula . Después de todo, sé dónde deberían estar: las diseñé, pero los nombres de jerarquía exactos tomarán un tiempo para encontrar las infracciones del informe de tiempo que espero cuando elimine esta restricción. Esto probablemente tomará un día y algunos ciclos P & R para obtenerlos todos.

El efecto neto probablemente terminará siendo el diseño exactamente igual que tengo en este momento, con un archivo de restricción más largo y las mismas rutas casi críticas.

Entonces, ¿mordería la bala y eliminaría las restricciones BLOCK INTERCLOCKDOMAIN PATHS , y las restricciones en BLOCK .. CELL para cada cruce? ¿O no vale la pena el esfuerzo y se queda con todo?

    
pregunta shuckc

1 respuesta

0

Lo que estás haciendo es correcto. La parte clave es el sincronizador. Si las únicas redes de dominio intertemporal se procesan allí, puede ignorar la advertencia.

Su plan para restricciones remotas en otras redes no es el plan correcto. Si recibe advertencias aparte de su sincronizador, eso significa que tiene un cruce de reloj en otra parte. Necesitas arreglarlos.

    
respondido por el Brian Carlton

Lea otras preguntas en las etiquetas