www.mikrocontroller.net

Xilinx ISE Linux

Inhaltsverzeichnis

[bearbeiten] Installation

Hier sind zwei komplette Beschreibungen (auf englisch) was zu tun ist, um das ISE von Xilinx unter Linux zu installieren. Das ISE ist recht unproblematisch zu installieren, aber der CableDriver ist recht zickig.

[bearbeiten] Nutzung des CableDrivers

Da es speziell mit ubuntu edgy eft (Linux-Kernel 2.6.17) doch nicht ganz nach den Fahrplänen von oben funktioniert, hier ein paar Tipps:

  • Ggf. muss im ./configure-script #!/bin/sh zu #!/bin/bash geändert werden. Außerdem sollte man Symlinks anlegen, wenn eine Datei fehlt
  • Da 'insmod windrvr6.ko' nach einem Update irgendwann die Fehlermeldung 'Invalid module format' brachte, habe ich erfolgreich den usb-driver von http://www.rmdir.de/~michael/xilinx/ installiert.

[bearbeiten] Impact und 64Bit Linux mit CableServer

Mit der derzeitige Version von Impact (ISE8.2i) ist es nicht möglich unter einem 64Bit Linux direkt einen Parallel-Port-Programmer zu verwenden, da Impact ein Kernelmodul verwendet, welches nicht für 64Bit verfügbar ist.

Stattdessen gibt es aber die Möglichkeit einen Remote-Programmer zu verwenden. Notwendig ist hierzu ein Server, der die Anfragen von Impact an den Parallel-Port-Programmer weiterleitet. Das erfreuliche ist, dass es diesen Server als OpenSource gibt, und er unter jedem Linux kompilierbar ist.

Der Vorteil der Cable-Server-Lösung ist, dass man den Win Driver nicht mehr benötigt und Impact von hausaus alle Xilinx-ICs unterstützt.

Eine inoffizielle Version des cblsrv (Version enthält einen Bugfix für das Parallel-Cable-III) gibt es hier: http://www.oxed.de/fpga/cblsrv-0.2-src.tar.bz2

[bearbeiten] ISE9.1 Impact und Cableserver

Für die Verwendung des CableServers mit der ISE9.1 Version ist es unbedingt erforderlich mindestens auf SP3 upzudaten, da sich in Impact ein Fehler im Kommunikationsprotokol mit dem CableServer eingeschlichen hat!

[bearbeiten] Impact und 64Bit Linux mit WinDriver-Emulation

Es ist auch möglich den in Impact integrierten (lokalen) Cableserver, ohne das WinDriver Kernelmodul, unter einem 64Bit Linux zu nutzen. Dazu benötigt man eine Library, die das Kernelmodul im Userspace emuliert. Die Library ist hier erhältlich: http://www.rmdir.de/~michael/xilinx/

Da Impact als 32Bit Programm keine 64Bit Libraries laden kann, muss die Library als 32Bit Library kompiliert werden. Dazu muss im Makefile bei den CFLAGS zusätzlich -m32 angegeben werden (Beispiel: CFLAGS=-Wall -O2 -fPIC -m32). Alternativ kann eine 32Bit-chroot-Umgebung benutzt werden.

Zum Kompilieren benötigt man außerdem eine 32Bit Version der libusb.a [1]. Das Paket muss/kann nicht installiert werden, aber es reicht, wenn man es entpackt und aus der enthaltenen Datei data.tar.gz die libusb.a extrahiert und nach /usr/lib32/libusb.a kopiert. Danach sollte die Library erfolgreich kompilieren.

Wenn man USB-JTAG-Kabel von Xilinx verwenden möchte, muss man sich auch noch eine 32Bit Version der libusb.so erzeugen, worauf man aber verzichten kann, wenn man nur ein Parallel-Cable-III verwendet.

Beim Parallel-Cable-III benötigt man Schreibrechte auf /dev/parport0 (Benutzer zur Gruppe lp hinzufügen; Unter Ubuntu zusätzlich in der /etc/modules "lp" auskommentieren, damit man überhaupt ein /dev/parport0 hat).

Zum Starten von impact empfiehlt es sich die Impact-Binärdatei in "impact_bin" umzubenennen und ein "impact" Script zu schreiben, welches so aussehen könnte: "export LD_PRELOAD=/path/to/libusb-driver.so && /path/to/impact_bin".

Wenn man das ISE nutzt, empfielt es sich auch die ISE Binärdatei in "ise_bin" umzubenennen und ein Script "ise" analog zum Script "impact" anzulegen, da das ISE Impact nicht über das Script "impact" startet.

[1]: http://de.archive.ubuntu.com/ubuntu/pool/main/libu/libusb/libusb-dev_0.1.12-2_i386.deb (Ubuntu oder Debian)

[bearbeiten] Alternative für Impact

Wer mit Spartan3-Bausteinen arbeitet, könnte xc3sprog als Alternative für Impact verwenden. Finden kann man das Programm hier: http://www.rogerstech.force9.co.uk/xc3sprog/

[bearbeiten] PDF Viewer (Could not find PDF Viewer)

Irgendwie hat Xilinx die Konfigurationsmöglichkeit für den PDF-Viewer vergessen. Durch folgenden Eintrag in die .qt/xilinxrc verschwindet die Fehlermeldung "Could not find PDF Viewer":

8.2i/Gq/PDFViewer=/usr/bin/xpdf %1

[bearbeiten] Anwendung

[bearbeiten] ERROR:Simulator:222

Wer bei der Simulation die Fehlermeldung "ERROR:Simulator:222 - Generated C++ compilation was unsuccessful" erhält, sollte die Dateien

./gnu/gcc/3.2.3/lin/i686-pc-linux-gnu/bin/ld
./gnu/gcc/3.2.3/lin/bin/ld

im Xilinx-Installationspfad umbenennen. Siehe auch: http://groups.google.de/group/comp.arch.fpga/msg/3f6c44c16d3a3f85

[bearbeiten] ERROR:Simulator:170

Falls die Simulation mit der Fehlermeldung

ERROR:Simulator:170 - work/counter/Behavioral is not compiled properly.
Please recompile work/counter/Behavioral in file
"C:/projects/Xilinx/tutorial2/counter.vhd" without -incremental option.
ERROR:Simulator:199 - Failed when handling dependencies for entity
counter_tbw, architecture testbench_arch 

abbricht, kann dies ggf. daran liegen, dass der Pfad zu dem Projektverzeichnis ein Leerzeichen enthaelt. Zumindest kann das manchmal Abhilfe schaffen.

[bearbeiten] ERROR:Simulator:607

ERROR:Simulator:607 - ISE Simulator is unable to elaborate this design due to
specific coding constructs used in the design. Xilinx is actively working on
reducing the number of conditions where this error occurs. For more
information on this error, please consult Answer Record 24067 in Answers
Database at http://www.xilinx.com/support. 

Nicht ganz klar was das verursacht... Bei mir liess er sich uebrreden es dennoch zu simulieren indem ich wahllos synthetisiert / place n route / ... gemacht hab Danach ging es aufeinmal... Wobei ich auch noch die ld files gelöscht hab:

./gnu/gcc/3.2.3/lin/i686-pc-linux-gnu/bin/ld
./gnu/gcc/3.2.3/lin/bin/ld

--Sssssss

webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net