Xilinx ISE: Hinweise zu Versionen

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Hinweise zu den aktuellen Versionen der Xilinx-Entwicklungsumgebung ISE und deren Probleme:

Allgemein

  • Der Webinstaller hat oftmals Probleme mit Firewalls und läuft generell nicht sonderlich gut, am Besten gleich den Komplettdownload starten.
  • Leerzeichen in Dateipfaden vermeiden

ISE 11.2

Vorteile

  • Projektdateien als XML File (.xise) ermöglichen das manuelle Bearbeiten und bessere Versionskontrolle
  • Kürzere Laufzeiten der Synthese und Implementierung
  • Wesentlich weniger RAM-Verbrauch
  • ChipScope Pro jetzt immer im Paket enthalten, Debugging über JTAG möglich

Nachteile

  • Teurer als die Vorgänger durch neue Paket-Ordnung
  • Noch größer als Vorversionen
  • "Export Project" ist weggefallen und wurde durch "Copy Project" ersetzt, Versionierung hier wieder erschwert

Bugs

  • Im Schematic Editor werden Leitungen beim verschieben fast nie angezeigt
  • Bugs im ImPact, das "Programming Properties" Menü ist selten verfügbar (Workaround: Auf SVF Ausgabe stellen, dann ist es da. Alles einstellen und wieder zurück stellen, dann gilt das auch für Boundary Scan)

ISE 9.2

Probleme

  • Bei der Verwendung von mem-Dateien im Projekt bekommt man bei der Bitstream-Erzeugung eine Fehlermeldung, wenn im Pfad der Datei Leerzeichen enthalten sind.
  • Manchmal versucht ISE nach dem Ersetzen einer Design Unit durch eine andere mit gleichem Namen noch die alte Architecture zu synthetisieren, auch wenn sie nicht mehr vorhanden ist, und bricht mit einer Fehlermeldung ab. Lösung: alle temporären Dateien löschen und nochmal versuchen.

ISE 9.0

Probleme

Die vorhandenen Projekte der Versionen 8,x werden meist reibungslos importiert (5 Testversionen) - sie funktionieren jedoch nicht vollständig. Abhilfe schafft teilweise das vollständige Löschen alter Projektdateiein und das Anwerfen einer neuen vollständigen Synthese. Vereinzelt war es nötig, Schematics updates durchzuführen, bzw nicht erkannte HDL-Files einmalig zu laden und wieder zu speichern.

Verbesserungen

Vereinzelt kleinere Design / bessere FPGA-Ausnuntzung im Falle von Virtex 4. Kaum Verbesserungen bei Spartan3 beobachtet.

Nachteile

Geringfügig längere Syntheselaufzeiten bei großen Projekten.

Xilinx ISE 8.2

Kurz und Knapp

Falls es nicht unbedingt nötig ist, sollte man bei der Vorgängerversion 8.1SP3 bleiben:

  • Das Synthesetool XST verändert heftigst Instanzennamen, sodass viele Constraints (UCF-file) angepasst werden müssen
  • Die Probleme mit Records sind zahlreicher; Code, der in der 8.1. problemlos durchlief, führt bei der Version 8.2. zu Abbrüchen
  • Die Größe von nun 1 GByte führt zu vermehrten Problemen beim Xilinx-Server - die 8.1. hatte nur ca. 740 MByte.
  • Das Design wird u.U marginal kleiner, kaum Vorteile

Probleme

Das Problemkind heisst in der 8.2. XST, also das erste Glied der Kette:

Es fängt mit angeblichen doppelten Bibliotheken an, work (klein) und WORK (gross) erscheinen, wo es nur eine Bibliothek gibt. Glücklicherweise hat die Fehlermeldung auch einen workaround parat: in skripten den Schalter -work_lib verwenden.

Weiter gehts mit heftigen Umbennen der Instanzennamen. dann steigt ngdbuild aus, da die Netznamen dort nicht mehr zu Netzliste aus dem XST passen. Da hilft nur Editieren des ucf files (was aber dann nicht mehr abwärtskompatibel ist).

Der XST hatte schon immer Problem mit Records. jetzt habe ich eines aus einem std_logic und einem Integer-array. das benutzt ich in einem generic. bei 8.1. alles in Ordnung, die 8.2 meckert irgenwas wie "Kann Feldindex nicht auflösen". Also behält man den record, benutzt aber als generic die Elemente einzeln. Hier ein generic für den std_logic und ein anderes für das Feld. In der generic map weisst man diesen beiden jeweils das element aus dem record zu.

Auch Felder werden zum Problem. Hat man eins definiert in dessen Indexbereich eine Konstante benutzt wird (type mein_feld is array C_obere_grenze Downto 0 of integer) raucht XST mit Fatal Error ab, obwohl die Konstante deklariert und i.O. ist. Schreibt man statt der Konstanten die Zahl (z. B. 4 downto 0) ist alles i.O.. An irregulärem VHDL kann es nicht liegen, modelsim vetarbeitet es anstandslos.

Vorteile

  • Der Projektnavigator soll seltener Projekte "zerschiessen".
  • Der Router liefert "brauchbare" Ergebnisse.
  • designs werden u.U. ca. 3 Promill kleiner.

Xilinx ISE 8.1

Seit Januar 2006 ist eine neue Versionen der Tools für die FPGA Programmierung der Xilinx Tools verfügbar. Ebenfalls im Januar wurde der erste Patch auf www.xilinx.com veröffentlicht. Im folgenden eine Liste der Vor- und Nachteile. Diese Erfahrungen wurden mit der WebPack- und Voll-Variante auf Linux und Microsoft Windows gemacht. Zum Teil entstammen sie dem Forum "Programmierbare Logik" von www.mikrocontroller.net. Manche der genannten Punkte sind bereits in der Version 7.1 neu hinzugekommen.

Das ServicePack2 liegt seit 14.02.06 bei xilinx auf der website. Das Download-Tool (Impact) scheint nach dem Update unzuverlässiger (aber vielleicht liegts auch an Hardware). Ansonsten kaum Änderungen zum SP1.

Die folgende Version Version (8.2) kame Ende März 2006, das zur 8.* passende EDK Ende Februar 2006 heraus.

Laut Xilinxdistributor für Österreich, Silica wien, kommt anfang 2007 eine völlig neue und komplett überarbeitete Version 9.0 heraus.

Bugs

Zerstörung von VHDL-Files in Projekten von Vorgängerversionen

  • tritt meist auf, wenn das Projekt mehrere "Snapshots" erhält
  • die Projekteinstellungen werden aus dem *.npl File (ISE 6.3) in das File *.ise (ab ISE 7.1) konvertiert.

Sonderzeichen deutsche Tastatur

  • im Editor keine Eingabe von '|' möglich (Problem mit der "AltGr"-Taste)

Tastatur HotKeys

Die "alten" HotKeys und Cut/Paste geht gelegentlich nur wenn das Editorfenster im "float" modus ist.

Impact (FPGA Download)

  • Impact hat Probleme mit Bitfiles etc. aus älteren versionen, als workaround sollte man ältere Versionen benutzen.
  • Impact bleibt gelegentlich bei solchen Files stehen, ohne das Programmieren zu beenden
  • es wird ein neues Format der Konfigurationsdatei verwendet (jetzt (*.ipf), -konvertiert aus der aus Vorgängerversionen (war *.cdf)
  • Impact findet die JTAG-Kette nicht und sucht unendlich nach devices

Linux map Absturz

  • mit Servicepack2 Absturz vor Schreiben Netzliste (*_map.ngd)
  • Meldung ("error loading shared object file" oder "Illegal OPCode")
  • unbekannt ob Fehler auch ohne oder mit älteren ServicePack auftritt
  • workaround: ISE7.1 nutzen, Mischung Flow (Synthese,ngbuilt mit 8.1, ab Mapper mit 7.1) funktioniert

Änderungen

  • neues Format der Projektdatei *.ise (bis 6.3 *.npl)

Das *.ise ist nich lesbar, zumindest nicht für Menschen. Damit sind Pfade nicht per Edit der Projektdatei bequen anpassbar. Verschiebung der Quelltexte erfordert Neuaufsetzen des Projektnavigators.

  • Aufruf der Binaries aus dem EDK 6.3 (mit "_" als erstes Zeichen des Namens des Executables, workaround möglich?, zwingend update EDK nötig ?

Pathseperator

ngdbuild wollte erst nicht, im ucf gabs Instanznamen die er nicht gefunden hat. Problem war wohl eine Änderung in der Defaulteinstellung wegen Preserve Hierarchie. Nachdem im ucf die Instanznamen mit / getrennt worden, liefs auch wieder. Version 6.3: INST toplevel_instanzname -> Version 8.1: INST toplevel/instanzname

Error statt Warning: Taktnetzwerk aus nicht GlobalClock Pin gespeist

Wird ein Taktnetzerk (DCM Eingang oder VHDL: clk_signal'event) nicht über ein GlobalClockPin in den FPGA geführt brechen die Tools (map oder PAR?) mit einem Fehler ab. Durch Setzen einer Variable (XIL_PLACE_ALLOW_LOCAL_BUFG_ROUTING) wird ein solches Design wie in den vorigen Versionen nur mit einer Warning angemeckert und die tools laufen bis zur Erstellung des Downloadfiles durch.

Syntax VHDL-Konstrukte

  • Error bei ungenutzen FSM-Zuständen
  • Probleme in der unsigned Bibliothek (explizite Typumwandlung nach unsigned)

Verbesserungen

  • bessere Darstellung der Infos über Taktnetzwerke und Timing Constraints in Logfiles des PAR
  • Angabe Logiklevel im PAR-Report scheint jetzt stimmig zu sein
  • buntere Darstellung der Logfiles in der ISE
  • mehr automatische Optimierung der Tools (kleinere Designs (bis zu 5%)), höhere Taktfrequenzen möglich, längere Laufzeiten tools)
  • anderes Layout für Projectnavigator und impact
  • Linux: Vorteile von ISE 8.1 gegebenüber 7.1: deutlich schnelleres und hübscheres Fenster-Layout; die Console funktioniert jetzt