Forum: FPGA, VHDL & Co. Xilinx Netzlisten / NGC, UCF, XCF


von Marc S. (nightguardian)


Lesenswert?

Hi allesamt,

ich hab mal ein paar Fragen zum Thema Netzlisten in ISE.

Wenn ich eine Synthese mit XST durchführe erhalte ich ja ein NGC-file - 
laut Xilinx enthält diese Datei die logische Netzliste wie auch die 
dazugehörigen Constraints.

Nur, WELCHE constraints sind darin enthalten? Kann ich dem Synthesetool 
mit einer XCF-Datei (btw. was ist eigentlich der Unterschid zwischen 
einer XCF und einer UCF Datei?) die notwendigen Timing-Constraints 
mitteilen, so dass diese innerhalb der NGC-Datei eingebunden werden?

Hintergrund ist dass ich gern einige Teilprojekte als Netzliste in unser 
Hauptprojekt einbinden möchte. Es wäre natürlich sehr praktisch wenn ich 
die dazugehörigen Timing constraints nicht mehr im globalen UCF-File des 
Hauptprojektes einbinden müsste, sondern diese quasi Bestandteil der 
Netzliste wären.

Danke für die Antwort

Gruß

von Duke Scarring (Gast)


Lesenswert?

Marc Schmitt schrieb:
> Nur, WELCHE constraints sind darin enthalten? Kann ich dem Synthesetool
> mit einer XCF-Datei (btw. was ist eigentlich der Unterschid zwischen
> einer XCF und einer UCF Datei?) die notwendigen Timing-Constraints
> mitteilen, so dass diese innerhalb der NGC-Datei eingebunden werden?

Die XCF constraints werden schon bei der Synthese (xst) beachtet. Das 
UCF-File kommt erst bei translate (ngdbuild) ins Spiel.

Näheres zu XCF findest Du z.B. im XST User Guide (xst.pdf) Chapter 6.

Ob die XCF-Constraints nur für die Synthese beachtet werden oder ob sie 
auch ins ngc-File wandern, weiß ich nicht.

Duke

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> nicht mehr im globalen UCF-File des Hauptprojektes einbinden müsste
Seit der Version 10 werden auch mehrere UCF im Projekt unterstützt (es 
gibt also nicht mehr nur das eine "globale" UCF), so dass sich so eine 
Aufteilung in Funktionsgruppen bewerkstelligen liesse...
http://www.xilinx.com/itp/xilinx10/isehelp/ise_c_constraints_entry_methods.htm

Und dann gibt es da ja noch die PCF und die NCF  :-o
Mehr dazu im Constraints Guide:
http://www.xilinx.com/support/documentation/sw_manuals/xilinx11/cgd.pdf

von Anguel S. (anguel)


Lesenswert?

Duke Scarring schrieb:
> Die XCF constraints werden schon bei der Synthese (xst) beachtet.

Verwendet ihr die auch regelmäßig?

von hans (Gast)


Lesenswert?

Anguel S. schrieb:
> Verwendet ihr die auch regelmäßig?

Ja, weil z.B. ein KEEP constraint im UCF auf ein in der Synthese 
wegoptimierten oder umbenannten NET-Namen danach fürchterliche 
Fehlermeldungen verursacht.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Anguel S. schrieb:
> Verwendet ihr die auch regelmäßig?
Ich hatte bisher nicht die Not... ;-)
Das angesprochene KEEP kommt bei mir als Attribut direkt in den 
VHDL-Code.

von hans (Gast)


Lesenswert?

Lothar Miller schrieb:
> Das angesprochene KEEP kommt bei mir als Attribut direkt in den
> VHDL-Code.
Ist Geschmackssache. Ich bin der Meinung, daß solche Parameter nichts im 
Code zu suchen haben. Da gehört meiner Meinung nach nichts technologie- 
oder toolspezifisches rein. Deswegen verlagere ich sowas zentral in eine 
XCF-Datei.
Außerdem können so auch Timing-Constraints an die Synthese mit übergeben 
werden (hab ich aber noch nie richtig ausprobiert).

Muß aber auch zugeben, daß ein gemeinsames Constraint-File mit 
einheitlicher Syntax für Synthese und Place and Route schöner wäre.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

hans schrieb:
> Ich bin der Meinung, daß solche Parameter nichts im Code zu suchen haben.
> Da gehört meiner Meinung nach nichts technologie oder toolspezifisches
> rein.
Ja, das ist der Traum von der reinen Lehre. Das hört aber schon bei der 
Instantiierung von simplen und tagtäglich nötigen Hardwarekomponenten 
(wie z.B. Taktmanager) auf.

Und mir ist ehrlich gesagt lieber, ich habe sowas im Code stehen, denn 
dann weiß ich, dass es da mal Probleme gab. Denn ohne Grund braucht man 
keinen KEEP...

von Georg A. (Gast)


Lesenswert?

> Verwendet ihr die auch regelmäßig?

Man kann damit auch pro Modul die Optimierungen einstellen. Gerade bei 
speed vs. area für den opt_mode finde ich das praktisch. Ich habe auch 
den Eindruck, dass Timingconstraints beim xst auch schon Auswirkungen 
auf die synthetisierte Logik haben. Kann aber auch Einbildung sein ;)

von Marc S. (nightguardian)


Lesenswert?

Hi allesamt,

erstmal vielen Dank für die vielen Antworten.

Lothar Miller schrieb:
>> nicht mehr im globalen UCF-File des Hauptprojektes einbinden müsste
> Seit der Version 10 werden auch mehrere UCF im Projekt unterstützt (es
> gibt also nicht mehr nur das eine "globale" UCF), so dass sich so eine
> Aufteilung in Funktionsgruppen bewerkstelligen liesse...
> http://www.xilinx.com/itp/xilinx10/isehelp/ise_c_c...

Danke für diesen Tipp - das wusste ich nicht. Ist nun auch die Lösung 
meiner Wahl da ich einige der Constraints die ich benutze leider nicht 
in das XCF einbinden kann - bzw. nicht in dem Maße in welchem ich es 
möchte.

Hab dann aber gleich mal die nächste Frage ;).
Zur Zeit füge ich meinem Main-Projekt jeweils das komplette 
Work-Verzeichnis meiner Unterprojekte hinzu - das NGC alleine reicht ja 
nicht aus.

a) Gibt es irgendein Xilinx-Dokument das den ISE Design-Flow unter dem 
Gesichtspunkte der Implementierung zuvor synthetisierter Netzlisten 
erläutert?
b) Welche der vielen Dateien die ISE da erzeugt benötige ich eigentlich 
um eine synthetisierte Netzliste einzubinden?

Danke + Gruß

von Duke Scarring (Gast)


Lesenswert?

Marc Schmitt schrieb:
> a) Gibt es irgendein Xilinx-Dokument das den ISE Design-Flow unter dem
> Gesichtspunkte der Implementierung zuvor synthetisierter Netzlisten
> erläutert?
Nicht das ich wüßte. Aber vielleicht kommst Du mit dem Stichwort 
partitions weiter [1].

> b) Welche der vielen Dateien die ISE da erzeugt benötige ich eigentlich
> um eine synthetisierte Netzliste einzubinden?
Eigentlich sollte das ngc ausreichen. Für die Instanziierung gibt es 
dann meistens noch ein Template mit dem Namen vhf.
Öffne doch mal alle generierten Dateien mit einem etwas besseren Editor, 
der auch Binärdaten sinnvoll darstellen kann.

Duke

[1] 
http://www.xilinx.com/support/documentation/application_notes/xapp918.pdf

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.