www.mikrocontroller.net

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


Autor: Marc Schmitt (nightguardian)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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_c...

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_man...

Autor: Anguel S. (anguel)
Datum:

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

Verwendet ihr die auch regelmäßig?

Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Georg A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;)

Autor: Marc Schmitt (nightguardian)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/applic...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.