Wie kann ich eine importierte Netzliste in Vivado einschränken?

Ich habe eine vorkompilierte Netzliste (erstellt von Xilinx ISE 14.7), die in Vivado 2015.4 importiert und in der Synthese verwendet wird, um mein vollständiges Design zusammenzustellen. Vivado meldet unbeschränkte Pfade für die importierte Netzliste.

  • Gemäß dem Vivado Constraint Guide wendet Vivado keine xdc-Einschränkungen ( X ilinx design constraints ) auf Netzlisten an. Diese Funktion wird in Zukunft implementiert.

  • Das Festlegen einer xcf-Beschränkungsdatei ( XST - Beschränkungsdatei ), während die Netzliste mit XST synthetisiert wird , hilft nicht. Die xcf wird gelesen und verarbeitet, aber es scheint, dass Vivado keine annotierten/eingebetteten Einschränkungen aus ngc-Dateien anwendet.

  • Das Speichern einer ncf-Datei ( netlist constraint file ) neben der ngc-Datei hilft nicht, da Vivado keine ucf-Style-Constraint-Dateien parst . (ISE liest ncf-Dateien und wendet sie auf Netzlisten an, wenn sie den gleichen Namen und Speicherort wie die ngc-Dateien haben.)

  • Ich kann die Netzliste nicht mit Vivido synthetisieren, weil es Fehler in Vivado gibt, die mich daran hindern, die Toolchain zu ändern.

Wie kann ich die erforderlichen zeitlichen Beschränkungen anwenden?


Anmerkungen:

  • Ich kann die innere Netzliste in Vivado öffnen und ihre Hierarchie sehen.
  • Ich kann die XST-Synthese erneut ausführen, um die ngc-Netzliste neu zu erstellen.
Nur aus Neugier, wenn Sie Zugriff auf den HDL-Code haben und das XST erneut ausführen können, warum fügen Sie die Dateien nicht einfach Ihrem Vivado-Projekt hinzu?
Das Problem ist, dass Vivado den Quellcode aufgrund fehlender VHDL-93-Unterstützung und eines internen Speicherlecks beim Kompilieren dieses Codes nicht kompiliert ...
Ich bin überrascht, weil ich dachte, dass Vivado 2015.x VHDL-2008 unterstützt, also sollte VHDL-93 kein Problem sein.
Es unterstützt nur wenige Funktionen von VHDL-2008, während bereits implementierte Funktionen von ISE fehlen. Außerdem werden diese Funktionen von xSim (dem „neuen“ Vivado-Simulator) nicht vollständig unterstützt. Selbst wenn wir den Code umschreiben, um die Verwendung physischer Typen zu umgehen, gibt es immer noch das Speicherleck ...
Haben Sie versucht, diese Frage in den Xilin-Foren zu stellen, scheint dies ein Problem zu sein, das in der Version 2014 von Vivado hervorgehoben wurde und behoben werden sollte.

Antworten (1)

Eine Lösung besteht darin, eine XDC-Datei mit den erforderlichen Einschränkungen zu schreiben und sie mithilfe der XDC-Dateieigenschaft an den Entitätsnamen der importierten Netzliste anzuhängen SCOPED_TO_REF. (Das Anhängen an eine bestimmte Instanz mit SCOPED_TO_CELLSsollte ebenfalls funktionieren.)

Wenn Sie die SCOPED_TO_REFEigenschaft verwenden, muss sie auf die ursprüngliche (oberste Ebene) benannte Entität festgelegt werden, die in der Netzliste gespeichert ist. Das Anhängen an den Entitätsnamen der Blackbox funktioniert nicht (*). Außerdem muss die XDC-Datei als „nur für die Implementierung“ zu verwenden gekennzeichnet sein, sonst klagt der Syntheseschritt eine kritische Warnung. Die Einstellung „nur für die Implementierung“ beinhaltet bereits die Post-Synthese-Timing-Analyse.

(*) Wenn es an den Entitätsnamen der Blackbox angehängt wird, ist der Syntheseschritt erfüllt. Aber es kann die Zeitbeschränkungen sowieso nicht an die Netzliste anhängen.