Difference between revisions of "Xilinx ISE WebPACK"
m |
Alyssa0620 (talk | contribs) m (The original is not clear enough for those who don't know what's "USB Vendor/Product ID" , I figure it out with a command) |
||
(30 intermediate revisions by 15 users not shown) | |||
Line 1: | Line 1: | ||
− | Xilinx ISE WebPACK is a complete FPGA/CPLD programmable logic design suite providing: | + | [[Category:Development]] |
− | * | + | [[Category:Mathematics and science]] |
− | * | + | The Xilinx ISE WebPACK is a complete FPGA/CPLD programmable logic design suite providing: |
− | * | + | * Specification of programmable logic via schematic capture or Verilog/VHDL |
− | * | + | * Synthesis and Place & Route of specified logic for various Xilinx FPGAs and CPLDs |
− | + | * Functional (Behavioral) and Timing (post-Place & Route) simulation | |
+ | * Download of configuration data into target device via communications cable | ||
− | + | While Arch Linux is not one of the officially supported distributions, many features are known to work on Arch Linux. | |
− | + | == Prerequisites == | |
− | + | === Dependencies === | |
− | + | If you plan to develop software for an embedded ARM core (e.g. for Xilinx Zynq SoC devices), you will want to install the GCC cross-compiler bundled included with the Xilinx Embedded Development Kit (EDK). This compiler requires the {{Pkg|glibc}} and {{Pkg|ncurses}} packages. For i686 installations, these will most likely be already present. | |
− | + | If you are on a 64-bit Arch installation, you need to install them from the [[multilib]] repository ({{Pkg|lib32-glibc}} and {{Pkg|lib32-ncurses}}). | |
− | + | === Default Shell === | |
+ | During the installation, the Mentor CodeSourcery toolchains for embedded processors can be installed along with the Xilinx tools. This installation silently fails when the default shell is set to "dash". Make sure {{ic|/usr/bin/sh}} points to {{ic|/usr/bin/bash}}. | ||
− | + | This can be checked by running this command: | |
+ | $ ls -l /usr/bin/sh | ||
− | + | If the output looks like this: | |
+ | {{ic|lrwxrwxrwx 1 root root 15 13 Mar 06:47 /usr/bin/sh -> bash}} | ||
+ | then {{ic|/usr/bin/sh}} already points to {{ic|/usr/bin/bash}} (the default in Arch Linux). | ||
− | + | If not, run the following commands as root: | |
+ | $ rm /usr/bin/sh | ||
+ | $ ln -s bash /usr/bin/sh | ||
− | + | == Installation == | |
+ | {{Note|The installation is last known to work with Xilinx ISE 14.6, requiring the dynamic library fix described below.}} | ||
− | + | The ISE Design Tools can be downloaded from [http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/design-tools.html the official download page]. It requires registration and licensing agreement, but there is no charge, i.e. it's free as in "free beer", but not free as in "free speech". | |
− | tar | + | Once the tarballs has been downloaded, unpack it: |
− | + | $ tar -xvf Xilinx_ISE_DS_14.6_P.68d_3.tar | |
− | |||
− | + | The ISE design tools installer is a Qt application. If you are running the KDE desktop environment, the installer may try to load the "Oxygen" widget theme, which will fail due to the older Qt framework bundled with the Xilinx ISE design tools. You need to remove the {{ic|QT_PLUGIN_PATH}} environment variable before executing the installer: | |
+ | $ unset QT_PLUGIN_PATH | ||
− | + | Then, install the ISE Design Tools: | |
+ | $ cd Xilinx_ISE_DS_14.6_P.68d_3 | ||
+ | $ ./xsetup | ||
− | + | Follow the instructions to install the ISE. By default, the whole application is installed to {{ic|/opt/Xilinx/}}, so make sure the user running the installer has permissions to write to this directory. | |
− | + | During installation, uncheck the "Install Cable Drivers" option. Leaving it checked will cause errors during the installation. | |
− | + | === Launching the ISE design tools === | |
+ | The ISE design tools include a shell script that modifies the environment variables (mostly PATH and LD_LIBRARY_PATH). This script must be sourced before starting the ISE tools: | ||
+ | $ source /opt/Xilinx/14.6/ISE_DS/settings64.sh | ||
+ | or, for a 32-bit installation: | ||
+ | $ source /opt/Xilinx/14.6/ISE_DS/settings32.sh | ||
− | + | Then, the ISE design tools will be found in your PATH and can be started by typing their name in the terminal (e.g. {{ic|ise}}, {{ic|planAhead}}, {{ic|xsdk}}, ...) | |
− | + | === License Installation === | |
+ | After requesting a WebPACK license from Xilinx using their [http://www.xilinx.com/getlicense/ Licensing Site], you will be e-mailed a license file. This file can be imported with the Xilinx License Manager (run {{ic|xlcm -manage}} from the terminal). | ||
− | + | Another way to import the license is to simply copy it to the {{ic|~/.Xilinx}} directory. | |
− | ' | + | === Node-Locked Licenses === |
+ | Arch Linux by default uses systemd's [[Network_Configuration#Device_names|Predictable Network Interface Names]]. This means that your system will most likely not have its network interfaces named "eth0", "eth1" and so forth. | ||
− | + | However, the Xilinx License Manager looks for these names to find out the system's MAC addresses, which are used for node-locked licenses. If you require node-locked licenses, you might have to disable this feature to re-gain the kernel naming scheme for network interfaces. The [http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames systemd wiki] describes how to do this. | |
− | + | == Post-Installation Fixes and Tweaks == | |
+ | After installation, a few manual fixes are required to work around problems caused by running the Xilinx tools on a Linux distribution that is not officially supported by Xilinx. Some of these fixes are taken from [http://zedboard.org/content/ise-142-bug-reports this forum post.] | ||
− | + | === Dynamic Library Fix (libstdc++.so) === | |
+ | The ISE tools supply an outdated version of the libstdc++.so library, which may cause segfaults when using the Xilinx Microprocessor Debugger and prevents the usage of the oxygen-gtk theme. This outdated version is located in two directories within the installation tree: {{ic|/opt/Xilinx/14.6/ISE_DS/ISE/lib/lin64/}} and {{ic|/opt/Xilinx/14.6/ISE_DS/common/lib/lin64}}. To use Arch's newer version of libstdc++, rename or delete the original files and replace them with symlinks: | ||
+ | # cd /opt/Xilinx/14.6/ISE_DS/ISE/lib/lin64/ | ||
+ | # mv libstdc++.so libstdc++.so-orig | ||
+ | # mv libstdc++.so.6 libstdc++.so.6-orig | ||
+ | # mv libstdc++.so.6.0.8 libstdc++.so.6.0.8-orig | ||
+ | # ln -s /usr/lib/libstdc++.so | ||
+ | # ln -s libstdc++.so libstdc++.so.6 | ||
+ | # ln -s libstdc++.so libstdc++.so.6.0.8 | ||
− | + | Then, repeat this process in the {{ic|/opt/Xilinx/14.6/ISE_DS/common/lib/lin64}} directory. | |
− | + | === Digilent USB-JTAG Drivers === | |
+ | To use Digilent Adept USB-JTAG adapters (e.g. the onboard JTAG adapter on the [http://www.zedboard.org ZedBoard]) from within the Xilinx design tools, you need to install the Digilent [http://www.digilentinc.com/Products/Detail.cfm?Prod=ADEPT2 Adept Runtime] and [http://www.digilentinc.com/Products/Detail.cfm?Prod=DIGILENT-PLUGIN Plugin]. | ||
− | + | To install the Digilent Adept Runtime, it is recommended to build and install {{AUR|adept-runtime-xilinx}} and its dependencies {{AUR|libftd2xx-digilent}} and {{AUR|usbdrv}} from the [[Arch User Repository]]. | |
− | + | To install the Digilent plugin, you have to copy two files to the ISE plugin directory. Run the following commands as root: | |
− | + | $ mkdir -p /opt/Xilinx/14.6/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilent | |
− | + | $ cd /opt/Xilinx/14.6/ISE_DS/ISE/bin/lin64/digilent/libCseDigilent_2.4.4-x86_64/lin64/14.1/libCseDigilent | |
− | + | $ cp libCseDigilent.{so,xml} /opt/Xilinx/14.6/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilent | |
+ | $ chmod -x /opt/Xilinx/14.6/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilent/libCseDigilent.xml | ||
− | + | Finally, add every user that should have access to the Digilent USB-JTAG adapter to the "uucp" group. | |
− | + | You may have to add the USB Vendor/Product IDs of your JTAG adapter which can be found with | |
− | + | $ lsusb | grep Xilinx | |
− | + | to the udev rules in {{ic|/etc/udev/rules.d/20-digilent.rules}}. | |
− | |||
− | |||
− | |||
− | + | === Locale Issues === | |
+ | PlanAhead doesn't like locales using other literals than '.' as the decimal point (e.g. German, which uses ','). Run the following command before launching PlanAhead: | ||
+ | $ unset LANG | ||
− | + | === Segmentation Fault on PlanAhead === | |
+ | When launching PlanAhead to generate a .ucf file, a segmentation fault may occur. The issue seems unrelated to the previous topic. The ISE console will show | ||
+ | "/opt/Xilinx/13.1/ISE_DS/PlanAhead/bin/rdiArgs.sh: line 64: 14275 Segmentation fault $RDI_PROG $*" | ||
+ | The problem seems to come from the bundled JRE as described [http://forums.xilinx.com/t5/Installation-and-Licensing/RHEL5-64-bit-ISE-13-1-PlanAhead-launch-from-w-in-ISE-fails/td-p/148624/page/2 here]. To fix the issue, symlink the OpenJDK libjvm.so into the Xilinx's installation directory. | ||
+ | # cd /opt/Xilinx/14.6/ISE_DS/PlanAhead/tps/lnx64/jre/lib/amd64/server | ||
+ | # mv libjvm.so{,-orig} | ||
+ | # ln -s /usr/lib/jvm/java-7-openjdk/jre/lib/amd64/server/libjvm.so | ||
− | + | === GNU make === | |
+ | XSDK looks for the {{ic|gmake}} executable, which is not present in Arch Linux by default. Create a symlink somewhere in your path, e.g. | ||
+ | $ ln -s /usr/bin/make /home/<user>/bin/gmake | ||
− | + | Make sure this directory is in your PATH variable. | |
− | + | === Running Xilinx tools from within KDE === | |
+ | KDE by default defines the QT_PLUGIN_PATH shell variable. Some of the Xilinx ISE tools (ISE, Impact, XPS) are Qt applications, which means that they will search for Qt plugins in the locations defined by this shell variable. | ||
− | + | Because the Xilinx tools are compiled against and ship with an older version of the Qt framework which cannot use these plugins, they will crash when launched with this environment variable present. | |
− | + | To fix this issue, run the following command before launching the tools: | |
− | + | $ unset QT_PLUGIN_PATH | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Revision as of 04:49, 18 October 2013
The Xilinx ISE WebPACK is a complete FPGA/CPLD programmable logic design suite providing:
- Specification of programmable logic via schematic capture or Verilog/VHDL
- Synthesis and Place & Route of specified logic for various Xilinx FPGAs and CPLDs
- Functional (Behavioral) and Timing (post-Place & Route) simulation
- Download of configuration data into target device via communications cable
While Arch Linux is not one of the officially supported distributions, many features are known to work on Arch Linux.
Prerequisites
Dependencies
If you plan to develop software for an embedded ARM core (e.g. for Xilinx Zynq SoC devices), you will want to install the GCC cross-compiler bundled included with the Xilinx Embedded Development Kit (EDK). This compiler requires the glibc and ncurses packages. For i686 installations, these will most likely be already present.
If you are on a 64-bit Arch installation, you need to install them from the multilib repository (lib32-glibc and lib32-ncurses).
Default Shell
During the installation, the Mentor CodeSourcery toolchains for embedded processors can be installed along with the Xilinx tools. This installation silently fails when the default shell is set to "dash". Make sure /usr/bin/sh
points to /usr/bin/bash
.
This can be checked by running this command:
$ ls -l /usr/bin/sh
If the output looks like this:
lrwxrwxrwx 1 root root 15 13 Mar 06:47 /usr/bin/sh -> bash
then /usr/bin/sh
already points to /usr/bin/bash
(the default in Arch Linux).
If not, run the following commands as root:
$ rm /usr/bin/sh $ ln -s bash /usr/bin/sh
Installation
The ISE Design Tools can be downloaded from the official download page. It requires registration and licensing agreement, but there is no charge, i.e. it's free as in "free beer", but not free as in "free speech".
Once the tarballs has been downloaded, unpack it:
$ tar -xvf Xilinx_ISE_DS_14.6_P.68d_3.tar
The ISE design tools installer is a Qt application. If you are running the KDE desktop environment, the installer may try to load the "Oxygen" widget theme, which will fail due to the older Qt framework bundled with the Xilinx ISE design tools. You need to remove the QT_PLUGIN_PATH
environment variable before executing the installer:
$ unset QT_PLUGIN_PATH
Then, install the ISE Design Tools:
$ cd Xilinx_ISE_DS_14.6_P.68d_3 $ ./xsetup
Follow the instructions to install the ISE. By default, the whole application is installed to /opt/Xilinx/
, so make sure the user running the installer has permissions to write to this directory.
During installation, uncheck the "Install Cable Drivers" option. Leaving it checked will cause errors during the installation.
Launching the ISE design tools
The ISE design tools include a shell script that modifies the environment variables (mostly PATH and LD_LIBRARY_PATH). This script must be sourced before starting the ISE tools:
$ source /opt/Xilinx/14.6/ISE_DS/settings64.sh
or, for a 32-bit installation:
$ source /opt/Xilinx/14.6/ISE_DS/settings32.sh
Then, the ISE design tools will be found in your PATH and can be started by typing their name in the terminal (e.g. ise
, planAhead
, xsdk
, ...)
License Installation
After requesting a WebPACK license from Xilinx using their Licensing Site, you will be e-mailed a license file. This file can be imported with the Xilinx License Manager (run xlcm -manage
from the terminal).
Another way to import the license is to simply copy it to the ~/.Xilinx
directory.
Node-Locked Licenses
Arch Linux by default uses systemd's Predictable Network Interface Names. This means that your system will most likely not have its network interfaces named "eth0", "eth1" and so forth.
However, the Xilinx License Manager looks for these names to find out the system's MAC addresses, which are used for node-locked licenses. If you require node-locked licenses, you might have to disable this feature to re-gain the kernel naming scheme for network interfaces. The systemd wiki describes how to do this.
Post-Installation Fixes and Tweaks
After installation, a few manual fixes are required to work around problems caused by running the Xilinx tools on a Linux distribution that is not officially supported by Xilinx. Some of these fixes are taken from this forum post.
Dynamic Library Fix (libstdc++.so)
The ISE tools supply an outdated version of the libstdc++.so library, which may cause segfaults when using the Xilinx Microprocessor Debugger and prevents the usage of the oxygen-gtk theme. This outdated version is located in two directories within the installation tree: /opt/Xilinx/14.6/ISE_DS/ISE/lib/lin64/
and /opt/Xilinx/14.6/ISE_DS/common/lib/lin64
. To use Arch's newer version of libstdc++, rename or delete the original files and replace them with symlinks:
# cd /opt/Xilinx/14.6/ISE_DS/ISE/lib/lin64/ # mv libstdc++.so libstdc++.so-orig # mv libstdc++.so.6 libstdc++.so.6-orig # mv libstdc++.so.6.0.8 libstdc++.so.6.0.8-orig # ln -s /usr/lib/libstdc++.so # ln -s libstdc++.so libstdc++.so.6 # ln -s libstdc++.so libstdc++.so.6.0.8
Then, repeat this process in the /opt/Xilinx/14.6/ISE_DS/common/lib/lin64
directory.
Digilent USB-JTAG Drivers
To use Digilent Adept USB-JTAG adapters (e.g. the onboard JTAG adapter on the ZedBoard) from within the Xilinx design tools, you need to install the Digilent Adept Runtime and Plugin.
To install the Digilent Adept Runtime, it is recommended to build and install adept-runtime-xilinxAUR and its dependencies libftd2xx-digilentAUR and usbdrvAUR from the Arch User Repository.
To install the Digilent plugin, you have to copy two files to the ISE plugin directory. Run the following commands as root:
$ mkdir -p /opt/Xilinx/14.6/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilent $ cd /opt/Xilinx/14.6/ISE_DS/ISE/bin/lin64/digilent/libCseDigilent_2.4.4-x86_64/lin64/14.1/libCseDigilent $ cp libCseDigilent.{so,xml} /opt/Xilinx/14.6/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilent $ chmod -x /opt/Xilinx/14.6/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilent/libCseDigilent.xml
Finally, add every user that should have access to the Digilent USB-JTAG adapter to the "uucp" group.
You may have to add the USB Vendor/Product IDs of your JTAG adapter which can be found with
$ lsusb | grep Xilinx
to the udev rules in /etc/udev/rules.d/20-digilent.rules
.
Locale Issues
PlanAhead doesn't like locales using other literals than '.' as the decimal point (e.g. German, which uses ','). Run the following command before launching PlanAhead:
$ unset LANG
Segmentation Fault on PlanAhead
When launching PlanAhead to generate a .ucf file, a segmentation fault may occur. The issue seems unrelated to the previous topic. The ISE console will show
"/opt/Xilinx/13.1/ISE_DS/PlanAhead/bin/rdiArgs.sh: line 64: 14275 Segmentation fault $RDI_PROG $*"
The problem seems to come from the bundled JRE as described here. To fix the issue, symlink the OpenJDK libjvm.so into the Xilinx's installation directory.
# cd /opt/Xilinx/14.6/ISE_DS/PlanAhead/tps/lnx64/jre/lib/amd64/server # mv libjvm.so{,-orig} # ln -s /usr/lib/jvm/java-7-openjdk/jre/lib/amd64/server/libjvm.so
GNU make
XSDK looks for the gmake
executable, which is not present in Arch Linux by default. Create a symlink somewhere in your path, e.g.
$ ln -s /usr/bin/make /home/<user>/bin/gmake
Make sure this directory is in your PATH variable.
Running Xilinx tools from within KDE
KDE by default defines the QT_PLUGIN_PATH shell variable. Some of the Xilinx ISE tools (ISE, Impact, XPS) are Qt applications, which means that they will search for Qt plugins in the locations defined by this shell variable.
Because the Xilinx tools are compiled against and ship with an older version of the Qt framework which cannot use these plugins, they will crash when launched with this environment variable present.
To fix this issue, run the following command before launching the tools:
$ unset QT_PLUGIN_PATH