Standalone programming tool for both FPGAs and some other devices like flash

Vivado debug session

Although there is an impact option in vivado you shouldn't use it. In fact, impact isn't even installed with vivado so you'll need ISE installed if you want to use it anyway

Theres no longer a standalone programming tool in vivado. You'll probably have to run a tcl script through the vivado command line.



Xilinx's traditional driver for Linux systems. Its a kernel binary blob that has lots of compatibility issues as its only built for very specific systems. Its also rumored to have security issues. However, if you are on a RHEL (or SUSE?) system it should work right out of the box and is well supported.


Related to windrv, not exactly sure what it is.

Digilent library

Should come bundled with modern ISE versions. I don't remember if I had to do anything to get it working other than to run the setup script (at something like /opt/Xilinx/14.5/ISE_DS/common/bin/lin64/digilent/ In case its useful I've put various notes below when I was having some problems. Biggest thing to watch out for is make sure you don't interchange the 32 and 64 versions. I haven't looked into using 32 on 64.

Official site:

Background: Digilent, Inc ( makes a lot of nice dev boards for Xilinx FPGAs. I'm unclear what their exactly relationship to Xilinx is, but they seem to be the official dev boards linked on Xilinx's website these days. Traditionally you needed to buy a separate JTAG adapter to program xilinx dev boards. Digilent took a different route by placing a USB-serial converter directly on the dev boards to make them a lot easier to use at a slight cost increase. Overall this saves most people money as the cost of the standalone programmers often exceeds the entire dev board cost.

USB device ID on various boards:

  • KC705 1.1: 0403:6010 Future Technology Devices International, Ltd FT2232C Dual USB-UART/FIFO IC

If you run without this library you'll get impact message boxes about can't find windrv6. When you run with LD_PRELOAD to the library you will instead just get a single “can't find” message box (if the cable still can't be found).


I think I had to do this due to ISE-Vivado conflict but didn't really look into it. Something like this (x64):

rm -rf /usr/local/lib64/digilent
rm -rf /usr/local/lib/digilent
rm -f /usr/local/sbin/dftdrvdtch
rm -rf /usr/local/share/digilent
rm -f /etc/digilent-adept.conf
rm -f /etc/udev/rules.d/52-digilent-usb.rules
rm -f /usr/local/lib/libftd2xx*
rm -rf ~/.cse



I believe this is now bundled to some extent into the Xilinx software per the “setup_pcbusb” script at like /opt/Xilinx/14.5/ISE_DS/common/bin/lin/install_script/install_drivers/linux_drivers/pcusb/setup_pcusb

Unclear what the relationship between these are as I'm not sure where is…maybe statically linked into impact?

xilinx/programming.txt · Last modified: 2014/03/02 20:06 by mcmaster
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution 4.0 International
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki