The Xilinx Integrated Software Environment (ISE) 13.3 is the first version that is supported by Xilinx to run under RHEL/CentOS 6.x. We’ll now step through how-to configure the Xilinx FPGA design suite.
If you have purchased a Xilinx development kit like the SP605, the software should be on a DVD in the kit. However, it’s usually not the “latest & greatest”. To get the most recent version, go-to the Xilinx homepage and navigate to support=>downloads at:
in your browser. Download the “Full Installer for Linux”; It’s 5GB; you’ll need at least 20GB more free-space to complete the install.
At this point, you’ll need to either sign-in to download the file, or create an account if you don’t already have one.
Once the tar file has been downloaded, don’t forget to verify it using:
The sum should match the one displayed on the Xilinx download page (370cda774748d959aec21b2732c919ee in this case).
Extract the contents from the .tar file:
tar xvf Xilinx_ISE_DS_Lin_13.3_O.76xd.1.0.tar
You’ll need another 5GB of disk space for this step.
At this point you might read the install and licensing guide located at:
if this is the first install for you. Xilinx has lots of great on-line documentation.
To perform the initial Install; you’ll need to either be root, or have write-access to the install directory. In my case, I simply created the directory /opt/Xilinx as owned by myself (the default install location). You’ll need yet another 15GB of free space for this step:
Then read/agree to the terms, and select the edition to install. The System Edition contains the everything but the SDK, which we’ll have to install separately later. Once the hardware is defined, the SDK may be the only package needed for other developers (compiling “C/C++” code for MicroBlaze soft-core processors
At this point, if you have no existing licenses, you can either get an evaluation license, or, as in my case, redeem a voucher that came with the development system by navigating to:
and redeeming the voucher for the EDK license, then download the Xilinx.lic file to your local computer and install it (in ~/.Xilinx/Xilinx.lic). See:
as referenced above.
Here’s where there are a few twists. If you purchased an evaluation board, the above two steps (install, licensing) should also be covered in the included documentation. In the /opt/Xilinx/13.3/ISE_DS directory are the settings files that need to be “sourced” before running the Xilinx design tools. The $DISPLAY environment variable needs to be set first:
See http://lug.wsu.edu/node/383. I put this into my settings64.sh file and “source it” (set env variables) by:
Then start the Xilinx tool suite by running:
If you’re new to the Xilinx tools, navigate over to the tutorials at:
and start with the ISE In-Depth tutorial. To get the fpga editor to work, as root:
yum install openmotif compat-libstdc++-33
On Fedora 15 ONLY, also execute the following commands:
ln -s openmotif/libXm.so.4.0.3 libXm.so.3 (Warning: hack)
Now, to get iMPACT working (the tool that downloads .bit files into your FPGA), a few things need to be worked out. First make sure the program /sbin/fxload is installed; as root, run:
yum install fxload
For RHEL 6.x users, you will need to get this package from the CentOS distribution:
With this and recent versions of ISE, the proprietry windrv kernel module isn’t necessary. However, the README file from:
points out that buried wayyyy down in the file heirarchy:
lies a script named setup_pcusb. See the video at:
Running the script as root:
will create the file /etc/udev/rules.d/xusbdfwu.rules That must be modified (as root) with the stream-edit command (or your favourite variant):
sed -i -e ‘s/TEMPNODE/tempnode/’ -e ‘s/SYSFS/ATTRS/g’ -e ‘s/BUS/SUBSYSTEMS/’ /etc/udev/rules.d/xusbdfwu.rules
to allow access the JTAG programming interface on your FPGAs. This is all you need to do for RHEL 6.x, but on Fedora 15, you WILL need the usb-driver from:
(my guess is that the usb interfaces where moved from “/proc/bus/usb” to “/dev/bus/usb” in Fedora 15, causing some grief). This needs to be built and installed. Be sure to install the libusb development libraries before trying to build the usb-driver by running:
yum install libusb
Then untar the usbdriver and “make” it (compiler tools assumed); copy libusb-driver.so to the director /opt/Xilinx/13.3/ISE_DS, and add the line:
to your settings64.sh file. Be sure to re-source it (. settings64.sh) before running ise or impact. This should be all you need.
An easy way to test all this (assuming you have an evaluation board of some sort) is to fire up ise, then from the File menu, open an Example project (Pong game, Arbitrary Waveform Generator, etc). Then double-click on Synthesize – XST. When the systhesis process finishes, you can open view the RTL schematic, etc. After that, double-click on Implement Design which will map then place & route the design. Different reports can be created then viewed. Then double-click on Generate Programming File, which will create the FPGA bit-stream (.bit file). Then finally, double-click on Configure Target Device, which will bring up the iMPACT GUI. Double-click on the iMPACT Boundary Scan line in the iMPACT Flows dialog box to see detected devices (PROMs, FPGAs, etc). Then right-click and select Initialize Chain and walk through the dialogs selecting the .bit file. After all this, under iMPACT processes, the FPGA can be probed and/or programmed. This flow is covered in the tutorial Xilinx videos mentioned below.
The Xilinx SDK (http://www.xilinx.com/tools/sdk.htm) is an Eclipse platform targeting software development for FPGA soft and hard-core processors (MicroBlaze & PPC). Since the basic FPGA fabric isn’t modified, no “expensive” operations are required; just a quick compile and load. Once the basic system architecture is pinned-down, developers with more common C/C++ experience can be deployed for application development. The program data2mem combines the hardware & software bitstreams for download to the FPGA.
Even though the ISE Design Suite installer says that the SDK is installed when performing and EDK install, it isn’t. So, after installing either the “System Edition” or “Embedded Edition” (both produce identical set-ups), install the “Standalone Installation” by running:
This will create an SDK directory in /opt/Xilinx/13.3. To keep from having to source multiple scripts, I simply moved the directory /opt/Xilinx/13.3/SDK/SDK to the /opt/Xilinx/13.3/ISE_DS directory since the rest of the SDK installation is duplicated.
Re-source the settings64.sh script, and from there, and start an embedded project by running:
Which will bring up the SDK GUI.
Xilinx Product support & Documentation: http://www.xilinx.com/support/
Xilinx Free Online FPGA Design Training Videos: http://www.xilinx.com/training/free-video-courses.htm
Xcell Journel: http://www.xilinx.com/publications/xcellonline/
Write a software application with SDK: http://www.fpgadeveloper.com/2011/06/write-a-software-application-with-sdk.html
Linux in a MicroBlaze soft-core: http://xillybus.com/microblaze