Setting up the Xilinx Platform Cable under GNU/Linux (Debian Wheezy 7.4)

Update 2015.03.12 those instructions also work for Ubuntu 14.10.

Of course, there is also an official way to program a Xilinx FPGA: the Xilinx Plateform cable!

This interface has official Xilinx drivers for GNU/Linux, but they are out-dated. Better use the open-source one from Michael Gernoth, at [1].

After a make in the source folder, run the install script as root:

./setup_pcusb /opt/Xilinx/14.7/ISE_DS/ISE/

It will copy the library in ISE folder, move the cable firmware to /usr/share/, and create the udev rules in /etc/udev/rules.d/xusbdfwu.rules. The udev script uses fxload for firmware loading, and there is already a Debian package for it:

apt-get install fxload

After restarting udev with:

/etc/init.d/udev restart

...the USB adapter should be recognized, and the corresponding firmware loaded into it over USB.

[ 9466.632176] usb 8-3: new high-speed USB device number 13 using ehci_hcd
[ 9466.764855] usb 8-3: New USB device found, idVendor=03fd, idProduct=000d
[ 9466.764862] usb 8-3: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 9466.795802] usb 8-3: USB disconnect, device number 13
[ 9468.748159] usb 5-1: new full-speed USB device number 4 using uhci_hcd
[ 9468.891201] usb 5-1: not running at top speed; connect to a high speed hub
[ 9468.909197] usb 5-1: New USB device found, idVendor=03fd, idProduct=0008
[ 9468.909204] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 9468.909208] usb 5-1: Product: XILINX
[ 9468.909212] usb 5-1: Manufacturer: XILINX

iMPACT will need libusb to connect to the platform cable:

PROGRESS_START - Starting Operation.
If you are using the Platform Cable USB, please refer to the USB Cable Installation Guide (UG344) to install the libusb package.
Connecting to cable (Usb Port - USB21).
Checking cable driver.
 Linux release = 3.16.0-31-generic.

Install it with:

sudo apt-get install libusb-dev

Using iMPACT, the IDCODE can be requested:


[UG344]Xilinx, USB Cable Installation Guide,
[1]Michael Gernoth, XILINX JTAG tools on Linux without proprietary kernel modules,