Xilinx ISE 12.x

32 vs. 64 Bit

Nach meinem Kenntnisstand ist auch mit Beginn der Generation 12 der ISE Design Suite nur die 32-bit Version ohne Schwierigkeiten für den produktiven Einsatz nutzbar. Da man auf modernen Rechnern aber zunehmend mehr als 4 GB Speicher verbaut, ist man zwangsläufig auf den Einsatz von 64-bit Betriebssystemen angewiesen. Für die Installation und den Betrieb der Xilinx Werkzeuge wird hierfür die Umgebung des Betriebssystems künstlich auf 32-bit umgestellt.

Xilinx Antwort #35400

Mit Einführung einer neuen Hardware-Abstraktionsschicht im EDK 12.1 wurden viele API Funktionsnamen der Treiber umbenannt. Das geschah im Wesentlichen durch das Löschen aller Instanzen mit _m im Namen, die Parameterliste blieb jedoch gleich. Zum Beispiel die UART16550 Funktion XUartNs550_mEnableIntr wurde zu XUartNs550_EnableIntr umbenannt und die übergebenen Parameter blieben unverändert.

Für Xilinx ISE 12.1 gilt: Um die herkömmlichen Funktionsnamen dennoch zugänglich machen zu können, muss die durch von Xilinx bereitgestellte Headerdatei xil_macroback.h nachträglich unter ${XILINX_EDK}/sw/lib/bsp/standalone_v3_00_a/src/common abgelegt werden.

Ab Xilinx ISE 12.2 gilt: Es gibt nichts zu tun. Die entsprechende Headerdatei wird bereits mit ausgeliefert.

Xilinx Readme

Xilinx Answer
xil_macroback.h

Xilinx Antwort #39017

Der ab Xilinx EDK 12.3 enthaltene IP Core XPS Serial Peripheral Interface (SPI) v2.02.a wird mit einer defekten Beschreibungsdatei (MPD) ausgeliefert. Diese führt dazu, dass der IP Core die Richtung der Signal MISO und MOSI vertauscht. Der Fehler wurde erst mit dem IP Core der gleichen Version im Xilinx EDK 13.1 behoben und kann im Xilinx EDK 12.3 und 12.4 nur durch manuelle Korrektur des alten IP Cores behoben werden.

Xilinx Readme:

Xilinx Answer
xps_spi_v2_02_a.zip (fixed)

Xilinx Antwort #35623

Mit Xilinx EDK 12.1 sind zahlreiche Bord-Beschreibungen älterer Xilinx Boards entfallen, genauer gesagt alle Boards mit dem Sattus „Legacy“. Ohne Anspruch auf Funktion lassen sich mit Hilfe dieser Antwort folgende Xilinx Boards noch einmal nutzbar machen. Diese wurden letztmalig unter Xilinx EDK 11.5 unterstützt:

Xilinx Readme

Xilinx Answer
Xilinx Hotfix

Xilinx Antwort #35648

Obwohl es von Xilinx selbst keine generelle Aussage zu Unzulänglichkeiten bei der Lokalisierung der ISE Design Suite im Allgemeinen gibt, deutet der hier dokumentierte Fehler sehr stark auf Probleme hin. Mit der Xilinx EDK 12.x gibt es gehäuft Schwierigkeiten beim logischen Ablauf der Entwicklungswerkzeuge. Das stellt sich mit falsch berechneten Adressen im Base System Builder als auch mit ernsten Fehlermeldungen bei der Bitfile-Generierung dar. Abhilfe schafft hier immer wieder das setzen der LANG Umgebungsvariable auf Englisch, LANG=en_US.UTF-8 (so wie in dieser Antwort beschrieben), oder gleich ganz das Löschen oder Null-Setzen dieser Variable (so wie ich es bevorzuge).

Xilinx Readme

Xilinx Answer

Xilinx Antwort #25249

Seit Xilinx ISE 9.2 werden die USB Platform Cable unter Linux mit Hilfe der LibUSB unterstützt. Um diesen Weg nutzen zu können, muss die XIL_IMPACT_USE_LIBUSB Umgebungsvariable entsprechend gesetzt werden, XIL_IMPACT_USE_LIBUSB=1.

Xilinx Readme

Xilinx Answer

Die notwendigen Installationspakete werden von der Xilinx Support Seite heruntergeladen. Benötigt werden:

Xilinx ISE 12.4

  1. ISE Design Suite - 12.4 Full Product Installation, All Platforms (Full DVD) → Xilinx_ISE_DS_Lin_12.4_M.81d.2.0.tar
  2. Speedfile Patch - 12.4 Product Update, All Platforms (Spartan-6) → ISE_12.4_S6_SpeedFilesUpdate_v_1_feb_11.zip

Xilinx ISE 12.3

  1. ISE Design Suite - 12.3 Full Product Installation, All Platforms (Full DVD) → Xilinx_ISE_DS_Lin_12.3_M.70d.1.0.tar
  2. Speedfile Patch - 12.3 Product Update, All Platforms (Virtex-6 und Spartan-6) → ISE_12.3_SpeedFilesPatch_v_15_sep_10.zip

Xilinx ISE 12.2

  1. ISE Design Suite - 12.2 Full Product Installation, All Platforms (Full DVD) → Xilinx_ISE_DS_Lin_12.2_M.63c.1.1.tar
  2. Speedfile Patch - 12.2 Product Update, All Platforms (Virtex-6 und Spartan-6) → ISE_12.2_SpeedFilesPatch_v_25_jul_10dot2.zip

Xilinx ISE 12.1

  1. ISE Design Suite - 12.1 Full Product Installation, All Platforms (Full DVD) → Xilinx_ISE_DS_Lin_12.1_M.53d.0.4.tar

Der hier beschriebene Ablauf installiert die Xilinx ISE 12.4 im Standardverzeichnis /opt/Xilinx/12.4 ohne der im Einzelfall notwendigen Patches. Die Installation erfolgt iterative, da Teile der Version 12.4 nur als Produk-Update von Xilinx bereitgestellt werden. Die Installation wurde unter Ubuntu 10.04 LTS durchgeführt, sollte aber auf jeder anderen Desktop-Distribution mit funktionsfähiger Java-Umgebung nachgestellt werden können.

Pakete aktualisieren und nachinstallieren

Ubuntu Linux

System auf 32-bit mit Root-Rechten umschalten

user@host: sudo linux32

Alle folgenden Kommandos werden in der so voreingestellten 32-bit Laufzeitumgebung ausgeführt. Am Ende wird diese Umgebung mit einem einfachen exit verlassen.

Xilinx ISE 12.4

ISE Design Suite installieren

12.4 Full Product Installation

root@host: tar ­xf Xilinx_ISE_DS_Lin_12.4_M.81d.2.0.tar
root@host: Xilinx_ISE_DS_Lin_12.4_M.81d.2.0/xsetup
root@host: rm -rf Xilinx_ISE_DS_Lin_12.4_M.81d.2.0
  • Lizenzvereinbarungen akzeptieren
  • Edition List → Embedded Edition oder System Edition auswählen (voreingestellt)
  • Install Cable Drivers nicht auswählen (voreingestellt für Linux)
  • Installationsverzeichnis wird /opt/Xilinx/12.4 (ggf. korrigieren)
  • Import alter Einstellungen vorheriger Installationen deaktivieren

Ebedded oder System Edition auswählen (voreingestellt) Install Cable Drivers __nicht__ auswählen (voreingestellt für Linux) Zielverzeichnis /opt/Xilinx/12.4 eingeben Installationsoptionen

12.4 Product Update

root@host: pushd /opt/Xilinx/12.4/ISE_DS
root@host: unzip -o ISE_12.4_S6_SpeedFilesUpdate_v_1_feb_11.zip
root@host: popd

ISE Design Suite einrichten

Benutzung der libusb einschalten

root@host: echo 'export XIL_IMPACT_USE_LIBUSB=1' >>/opt/Xilinx/12.4/ISE_DS/settings32.sh
root@host: echo 'set XIL_IMPACT_USE_LIBUSB=1' >>/opt/Xilinx/12.4/ISE_DS/settings32.csh

Umgebungsvariable LANG leeren

root@host: echo 'export LANG=""' >>/opt/Xilinx/12.4/ISE_DS/settings32.sh
root@host: echo 'set LANG=""' >>/opt/Xilinx/12.4/ISE_DS/settings32.csh

32-Bit Laufzeitumgebung voreinstellen

root@host: echo 'test -z "$BATCHMODE" && exec linux32' >>/opt/Xilinx/12.4/ISE_DS/settings32.sh
root@host: echo 'exec linux32' >>/opt/Xilinx/12.4/ISE_DS/settings32.csh

Firmware-Lader für Xilinx Platform Cabel über udev aktivieren
FIXME: diesen Teil der Anleitung verschieben, wenn es eine zentrale Seite über die Xilinx Platform Cable gibt.

root@host: sed /opt/Xilinx/12.4/ISE_DS/ISE/bin/lin/xusbdfwu.rules \
           -e 's:TEMPNODE:tempnode:g' \
           -e 's/BUS/SUBSYSTEMS/' \
           -e 's/SYSFS/ATTRS/g' >/etc/udev/rules.d/xusbdfwu.rules
root@host: cp /opt/Xilinx/12.4/ISE_DS/ISE/bin/lin/xusb*.hex /usr/share/
root@host: /etc/init.d/udev restart

Xilinx ISE 12.3

ISE Design Suite installieren

12.3 Full Product Installation

root@host: tar ­xf Xilinx_ISE_DS_Lin_12.3_M.70d.1.0.tar
root@host: Xilinx_ISE_DS_Lin_12.3_M.70d.1.0/xsetup
root@host: rm -rf Xilinx_ISE_DS_Lin_12.3_M.70d.1.0
  • Lizenzvereinbarungen akzeptieren
  • Edition List → Embedded Edition oder System Edition auswählen (voreingestellt)
  • Install Cable Drivers nicht auswählen (voreingestellt für Linux)
  • Installationsverzeichnis wird /opt/Xilinx/12.3 (ggf. korrigieren)
  • Import alter Einstellungen vorheriger Installationen deaktivieren

Ebedded oder System Edition auswählen (voreingestellt) Install Cable Drivers __nicht__ auswählen (voreingestellt für Linux) Zielverzeichnis /opt/Xilinx/12.3 eingeben Installationsoptionen

12.3 Product Update

root@host: pushd /opt/Xilinx/12.3/ISE_DS
root@host: unzip -o ISE_12.3_SpeedFilesPatch_v_15_sep_10.zip
root@host: popd

ISE Design Suite einrichten

Benutzung der libusb einschalten

root@host: echo 'export XIL_IMPACT_USE_LIBUSB=1' >>/opt/Xilinx/12.3/ISE_DS/settings32.sh
root@host: echo 'set XIL_IMPACT_USE_LIBUSB=1' >>/opt/Xilinx/12.3/ISE_DS/settings32.csh

Umgebungsvariable LANG leeren

root@host: echo 'export LANG=""' >>/opt/Xilinx/12.3/ISE_DS/settings32.sh
root@host: echo 'set LANG=""' >>/opt/Xilinx/12.3/ISE_DS/settings32.csh

32-Bit Laufzeitumgebung voreinstellen

root@host: echo 'test -z "$BATCHMODE" && exec linux32' >>/opt/Xilinx/12.3/ISE_DS/settings32.sh
root@host: echo 'exec linux32' >>/opt/Xilinx/12.3/ISE_DS/settings32.csh

Firmware-Lader für Xilinx Platform Cabel über udev aktivieren
FIXME: diesen Teil der Anleitung verschieben, wenn es eine zentrale Seite über die Xilinx Platform Cable gibt.

root@host: sed /opt/Xilinx/12.3/ISE_DS/ISE/bin/lin/xusbdfwu.rules \
           -e 's:TEMPNODE:tempnode:g' \
           -e 's/BUS/SUBSYSTEMS/' \
           -e 's/SYSFS/ATTRS/g' >/etc/udev/rules.d/xusbdfwu.rules
root@host: cp /opt/Xilinx/12.3/ISE_DS/ISE/bin/lin/xusb*.hex /usr/share/
root@host: /etc/init.d/udev restart

Xilinx ISE 12.2

ISE Design Suite installieren

12.2 Full Product Installation

root@host: tar ­xf Xilinx_ISE_DS_Lin_12.2_M.63c.1.1.tar
root@host: Xilinx_ISE_DS_Lin_12.2_M.63c.1.1/xsetup
root@host: rm -rf Xilinx_ISE_DS_Lin_12.2_M.63c.1.1
  • Lizenzvereinbarungen akzeptieren
  • Edition List → Embedded Edition oder System Edition auswählen (voreingestellt)
  • Install Cable Drivers nicht auswählen (voreingestellt für Linux)
  • Installationsverzeichnis wird /opt/Xilinx/12.2 (ggf. korrigieren)
  • Import alter Einstellungen vorheriger Installationen deaktivieren

Ebedded oder System Edition auswählen (voreingestellt) Install Cable Drivers __nicht__ auswählen (voreingestellt für Linux) Zielverzeichnis /opt/Xilinx/12.2 eingeben Installationsoptionen

12.2 Product Update

root@host: pushd /opt/Xilinx/12.2/ISE_DS
root@host: unzip -o ISE_12.2_SpeedFilesPatch_v_25_jul_10dot2.zip
root@host: popd

ISE Design Suite einrichten

Benutzung der libusb einschalten

root@host: echo 'export XIL_IMPACT_USE_LIBUSB=1' >>/opt/Xilinx/12.2/ISE_DS/settings32.sh
root@host: echo 'set XIL_IMPACT_USE_LIBUSB=1' >>/opt/Xilinx/12.2/ISE_DS/settings32.csh

Umgebungsvariable LANG leeren

root@host: echo 'export LANG=""' >>/opt/Xilinx/12.2/ISE_DS/settings32.sh
root@host: echo 'set LANG=""' >>/opt/Xilinx/12.2/ISE_DS/settings32.csh

32-Bit Laufzeitumgebung voreinstellen

root@host: echo 'test -z "$BATCHMODE" && exec linux32' >>/opt/Xilinx/12.2/ISE_DS/settings32.sh
root@host: echo 'exec linux32' >>/opt/Xilinx/12.2/ISE_DS/settings32.csh

Firmware-Lader für Xilinx Platform Cabel über udev aktivieren
FIXME: diesen Teil der Anleitung verschieben, wenn es eine zentrale Seite über die Xilinx Platform Cable gibt.

root@host: sed /opt/Xilinx/12.2/ISE_DS/ISE/bin/lin/xusbdfwu.rules \
           -e 's:TEMPNODE:tempnode:g' \
           -e 's/BUS/SUBSYSTEMS/' \
           -e 's/SYSFS/ATTRS/g' >/etc/udev/rules.d/xusbdfwu.rules
root@host: cp /opt/Xilinx/12.2/ISE_DS/ISE/bin/lin/xusb*.hex /usr/share/
root@host: /etc/init.d/udev restart

Xilinx ISE 12.1

ISE Design Suite installieren

12.1 Full Product Installation

root@host: tar ­xf Xilinx_ISE_DS_Lin_12.1_M.53d.0.4.tar
root@host: Xilinx_ISE_DS_Lin_12.1_M.53d.0.4/xsetup
root@host: rm -rf Xilinx_ISE_DS_Lin_12.1_M.53d.0.4
  • Lizenzvereinbarungen akzeptieren
  • Edition List → Embedded Edition oder System Edition auswählen (voreingestellt)
  • Install Cable Drivers nicht auswählen (voreingestellt für Linux)
  • Installationsverzeichnis wird /opt/Xilinx/12.1 (ggf. korrigieren)
  • Import alter Einstellungen vorheriger Installationen deaktivieren

Ebedded oder System Edition auswählen (voreingestellt) Install Cable Drivers __nicht__ auswählen (voreingestellt für Linux) Zielverzeichnis /opt/Xilinx/12.1 eingeben Installationsoptionen

12.1 Product Update

Um mit dem SDK portierbare Software entwickeln zu können, muss die Datei xil_macroback.h installiert werden. Siehe Antwort 35400.

ISE Design Suite einrichten

Benutzung der libusb einschalten

root@host: echo 'export XIL_IMPACT_USE_LIBUSB=1' >>/opt/Xilinx/12.1/ISE_DS/settings32.sh
root@host: echo 'set XIL_IMPACT_USE_LIBUSB=1' >>/opt/Xilinx/12.1/ISE_DS/settings32.csh

Umgebungsvariable LANG leeren

root@host: echo 'export LANG=""' >>/opt/Xilinx/12.1/ISE_DS/settings32.sh
root@host: echo 'set LANG=""' >>/opt/Xilinx/12.1/ISE_DS/settings32.csh

32-Bit Laufzeitumgebung voreinstellen

root@host: echo 'test -z "$BATCHMODE" && exec linux32' >>/opt/Xilinx/12.1/ISE_DS/settings32.sh
root@host: echo 'exec linux32' >>/opt/Xilinx/12.1/ISE_DS/settings32.csh

Firmware-Lader für Xilinx Platform Cabel über udev aktivieren
FIXME: diesen Teil der Anleitung verschieben, wenn es eine zentrale Seite über die Xilinx Platform Cable gibt.

root@host: sed /opt/Xilinx/12.1/ISE_DS/ISE/bin/lin/xusbdfwu.rules \
           -e 's:TEMPNODE:tempnode:g' \
           -e 's/BUS/SUBSYSTEMS/' \
           -e 's/SYSFS/ATTRS/g' >/etc/udev/rules.d/xusbdfwu.rules
root@host: cp /opt/Xilinx/12.1/ISE_DS/ISE/bin/lin/xusb*.hex /usr/share/
root@host: /etc/init.d/udev restart