Content Cleanup Required
Tweaks for getting Xilinx ISE (FPGA design software) working on Ubuntu. I've used ISE 18.104.22.168i and 9.1i; 9.1i is a lot slicker and currently use it on (pre-)Feisty.
The basic Xilinx installation worked for me; so this page just describes fixes for some of the issues.
Some tools don't start up
Some of the tools (e.g. the FPGA floorplanner & editor) don't start up. The fix for this (that I found on a Gentoo site) was to add:
DISPLAY=:0 export DISPLAY
to the top of the settings.sh file at the top level of the ISE installation.
You also need the Motif libXm.so.3 file that can be found in the libmotif3 package.
On Edgy make sure that you fix the font paths in your xorg.conf file - mine were broken after a dapper->edgy upgrade (e.g. if xfontsel won't start then you know you need to fix it - see bug 63408 https://launchpad.net/distros/ubuntu/+source/xorg/+bug/63408 ); without this fix I found the FPGA editor would quit soon after startup.
If you receive the error:
Wind/U Error (122): Function GetTextMetrics, could not create font information structure.
Try installing xfonts-100dpi, xfonts-75dpi. They come installed by default, but you might have uninstalled them.
Behavioral simulator fails to compile
(Not seen on 9.1i on Feisty)
When trying to build a model on the behavioral simulator you get the error: 'Generated C++ compilation was unsuccessful' This is because Xilinx ISE contains its own copy of gcc and ld that are rather old and don't like the AS_NEEDED clause in /usr/lib/libc.so to fix this:
* Go to the top of your Xilinx tree and go into gnu/gcc/3.2.3/lin/lib/gcc-lib/i686-pc-linux-gnu/3.2.3 and edit the file 'specs'; search for the line that contains '-lc' and replace all the '-lc' by '-lcxil'
* Save a copy of /usr/lib/libc.so as gnu/gcc/3.2.3/lin/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/libcxil.so under your Xilinx tree and edit the last line to remove the AS_NEEDED clause and the corresponding set of brackets leaving the last line as:
GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a /lib/ld-linux.so.2 )
Programming a device
Programming a device through USB might work out of the box, or, you may use the following site to install the userspace USB: http://www.rmdir.de/~michael/xilinx/.
On 64 bit Ubuntu
Most things work OK if you start them in a 32 bit shell using 'linux32 bash' at the start. There doesn't appear to be an ia32-libmotif3 package yet though so I've not got the floorplanner etc to work on my 64 bit machine.
ISE 10.1 SP2 notes NEED TO BE CLEANED UP
Notes to clean up.
Create Startup Scripts
spenser@vodka:~/bin$ for i in $(ls start_xilinx*); do echo "--------------- $i ----------------"; cat $i; done --------------- start_xilinx_edk ---------------- #!/bin/bash # Simple start up script for Xlinx EDK # # to-do: # generalize and submit to help.ubuntu.com/XilinxISE source /opt/Xilinx/10.1/ISE/settings*.sh && \ source /opt/Xilinx/10.1/EDK/settings*.sh && \ /opt/Xilinx/10.1/EDK/bin/lin/xps & --------------- start_xilinx_ise ---------------- #!/bin/bash # Simple start up script for Xlinx ISE # # to-do: # generalize and submit to help.ubuntu.com/XilinxISE source /opt/Xilinx/10.1/ISE/settings*.sh && /opt/Xilinx/10.1/ISE/bin/lin/ise &
== USB programmer ==
install fxload in order to load firmware into the usb programmer.
sudo apt-get install fxload
set the environmental variable for the libusb driver in settings32.sh add