¿Cómo puedo restringir una netlist importada en Vivado?

Tengo una netlist precompilada (creada por Xilinx ISE 14.7), que se importa a Vivado 2015.4 y se usa en síntesis para ensamblar mi diseño completo. Vivado informa rutas sin restricciones para la netlist importada.

  • De acuerdo con la Guía de restricciones de Vivado, Vivado no aplica restricciones xdc ( restricciones de diseño de Xilinx ) a las netlists. Esta función se implementará en el futuro.

  • Establecer un archivo de restricción xcf ( archivo de restricción XST ) , mientras que sintetizar la lista de conexiones con XST no ayuda . El xcf se lee y procesa, pero parece que Vivado no aplica restricciones anotadas/incrustadas de archivos ngc.

  • Almacenar archivos ncf ( archivo de restricción netlist ) además del archivo ngc no ayuda, porque Vivado no analiza los archivos de restricción de estilo ucf . (ISE lee archivos ncf y los aplica a netlists, si tienen el mismo nombre y ubicación que los archivos ngc).

  • No puedo sintetizar la netlist con Vivido porque hay errores en Vivado que me impiden cambiar la cadena de herramientas.

¿Cómo puedo aplicar las restricciones de tiempo requeridas?


Notas:

  • Puedo abrir la netlist interna en Vivado y ver su jerarquía.
  • Puedo volver a ejecutar la síntesis XST para recrear la lista de conexiones ngc.
Solo por curiosidad, si tiene acceso al código HDL y puede volver a ejecutar el XST, ¿por qué no simplemente agrega los archivos a su proyecto Vivado?
El problema es que Vivado no compila el código fuente debido a la falta de soporte de VHDL-93 y un puerro de memoria interna al compilar este código...
Estoy sorprendido, porque pensé que Vivado 2015.x es compatible con VHDL-2008, por lo que VHDL-93 no debería ser un problema.
Solo es compatible con algunas funciones de VHDL-2008, mientras que faltan las funciones ya implementadas de ISE. Además, xSim (el 'nuevo' simulador de Vivado) no admite totalmente estas funciones. Incluso si reescribimos el código para evitar el uso de tipos físicos, aún existe la fuga de memoria...
¿Ha intentado hacer esta pregunta en los foros de Xilin? Parece ser un problema destacado en la versión 2014 de Vivado y se suponía que debía solucionarse.

Respuestas (1)

Una solución es escribir un archivo XDC que incluya las restricciones requeridas y adjuntarlo al nombre de la entidad de la lista de conexiones importada usando la propiedad del archivo XDC SCOPED_TO_REF. (Adjuntarlo a una instancia específica SCOPED_TO_CELLStambién debería funcionar).

Al usar la SCOPED_TO_REFpropiedad, debe establecerse en la entidad original (de nivel superior) nombrada almacenada en la lista de conexiones. Adjuntarlo al nombre de entidad de la caja negra no funciona (*). Además, el archivo XDC debe marcarse para usar "solo para implementación", de lo contrario, el paso de síntesis se queja de una advertencia crítica. La configuración "solo para implementación" ya incluye el análisis de tiempo posterior a la síntesis.

(*) Al adjuntarlo al nombre de entidad de la caja negra se cumplirá el paso de síntesis. Pero, de todos modos, no puede adjuntar las restricciones de tiempo a la lista de conexiones.