Contact Sales & After-Sales Service

Contact & Quotation

  • Inquire: Call 0086-755-23203480, or reach out via the form below/your sales contact to discuss our design, manufacturing, and assembly capabilities.
  • Quote: Email your PCB files to Sales@pcbsync.com (Preferred for large files) or submit online. We will contact you promptly. Please ensure your email is correct.
Drag & Drop Files, Choose Files to Upload You can upload up to 3 files.

Notes:
For PCB fabrication, we require PCB design file in Gerber RS-274X format (most preferred), *.PCB/DDB (Protel, inform your program version) format or *.BRD (Eagle) format. For PCB assembly, we require PCB design file in above mentioned format, drilling file and BOM. Click to download BOM template To avoid file missing, please include all files into one folder and compress it into .zip or .rar format.

Installing Xilinx ISE on Linux: Complete Ubuntu & CentOS Guide

If you’re working with older FPGA families like the Spartan-6 or Virtex-6, getting Xilinx ISE running on Linux is pretty much a necessity. I’ve spent countless hours fighting with cable drivers and library conflicts on various distros, and I’m going to save you that headache. This guide covers everything you need to know about installing Xilinx ISE on Linux systems, specifically Ubuntu and CentOS.

Why Run Xilinx ISE on Linux?

Before we dive into the installation process, let’s talk about why Linux is often the better choice for Xilinx ISE. The Windows version of ISE officially supports only Windows 7, and while Xilinx offers a “Windows 10 version,” it’s actually just a pre-configured virtual machine running Linux anyway.

Running Xilinx ISE on Linux natively offers several advantages:

  • Better stability during long synthesis runs (I’ve seen fewer crashes compared to Windows 7)
  • Faster synthesis times (approximately 10% improvement in my testing)
  • Native integration with command-line tools like GHDL and GtkWave
  • No virtualization overhead if you’re already on Linux

The trade-off is that Xilinx only officially supports Red Hat Enterprise Linux and SUSE Enterprise. However, with the workarounds covered in this guide, Ubuntu and CentOS work reliably.

System Requirements for Xilinx ISE Linux Installation

Before downloading that 7+ GB installer, make sure your system meets these specifications:

RequirementMinimumRecommended
RAM4 GB8 GB or more
Disk Space20 GB40 GB (for full installation)
Processor64-bit x86Intel i5/i7 or AMD equivalent
Display1024×7681920×1080
OS (Tested)Ubuntu 18.04 / CentOS 6.5Ubuntu 20.04 / CentOS 7.6

Important Note: Xilinx ISE is an x86-only application. It will not run on ARM-based systems like Raspberry Pi, even though you might find guides suggesting otherwise.

Downloading Xilinx ISE Design Suite

The first step is obtaining the ISE 14.7 installer from AMD (formerly Xilinx). Here’s how to get it:

  1. Visit the official AMD/Xilinx download page
  2. Create a free Xilinx account if you don’t have one
  3. Navigate to the ISE Design Suite archives
  4. Download the “Full Installer for Linux” (approximately 7.78 GB)

The file you need is named Xilinx_ISE_DS_Lin_14.7_1015_1.tar. If your connection is unstable, Xilinx also offers split installers in four parts that you can download separately and combine.

Installing Xilinx ISE on Ubuntu

Ubuntu isn’t officially supported, but with a few tweaks, it works great. Here’s my battle-tested installation process.

Step 1: Install Required Dependencies

Open a terminal and install the necessary packages:

sudo apt-get update

sudo apt-get install libncurses5 libstdc++6 libmotif-dev \

    libusb-dev libftdi-dev build-essential fxload git

For Ubuntu 20.04 and later, you may also need:

sudo apt-get install libc6-dev libxext6 libxrender1 libxtst6 libxi6

Step 2: Extract and Prepare the Installer

Navigate to your download location and extract the tarball:

mkdir ~/xilinx_installer

tar -xvf Xilinx_ISE_DS_Lin_14.7_1015_1.tar -C ~/xilinx_installer

Step 3: Handle the Qt Plugin Path Issue

If you’re running KDE, the installer will crash because of Qt version conflicts. Before running the installer, unset the QT_PLUGIN_PATH:

unset QT_PLUGIN_PATH

Also, if you’re using Noto fonts (common in GNOME), you might encounter a segmentation fault. Temporarily switch to Ubuntu fonts before running the installer.

Step 4: Run the Xilinx ISE Linux Installer

Execute the setup script:

cd ~/xilinx_installer/Xilinx_ISE_DS_Lin_14.7_1015_1

sudo ./xsetup

During installation:

  • Accept the license agreements
  • Select “ISE WebPACK” for free license use, or choose full edition if you have a license
  • Uncheck “Install Cable Drivers” (these fail on modern systems; we’ll install them manually)
  • Keep the default installation path /opt/Xilinx/14.7

Step 5: Fix Ownership and Permissions

After installation, set proper ownership:

sudo chown -R $USER:$USER /opt/Xilinx

sudo chown -R $USER:$USER ~/.Xilinx

Installing Xilinx ISE on CentOS

CentOS is closer to Red Hat, so installation is slightly smoother. However, CentOS 7 and later require additional steps.

CentOS 7/8 Dependencies

Install the required packages:

sudo yum groupinstall “Development Tools”

sudo yum install libusb fxload ncurses-libs libstdc++

Handle SELinux on CentOS

SELinux can cause the installer to fail silently. Temporarily disable it:

sudo setenforce 0

After installation completes, re-enable SELinux:

sudo setenforce 1

Run the Installation

The installation process is the same as Ubuntu:

cd ~/xilinx_installer/Xilinx_ISE_DS_Lin_14.7_1015_1

sudo ./xsetup

Read more Xilinx FPGA Series:

Post-Installation Configuration for Xilinx ISE Linux

After installation, several fixes are required to make everything work properly.

Fix the libstdc++ Library Conflict

This is the most common issue. Xilinx bundles an outdated libstdc++ that causes segmentation faults on modern systems. Replace it with symlinks to your system library:

cd /opt/Xilinx/14.7/ISE_DS/ISE/lib/lin64/

mv libstdc++.so libstdc++.so.bak

mv libstdc++.so.6 libstdc++.so.6.bak

mv libstdc++.so.6.0.8 libstdc++.so.6.0.8.bak

ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so

ln -s libstdc++.so libstdc++.so.6

ln -s libstdc++.so libstdc++.so.6.0.8

Repeat this for the common library directory:

cd /opt/Xilinx/14.7/ISE_DS/common/lib/lin64/

mv libstdc++.so libstdc++.so.bak

mv libstdc++.so.6 libstdc++.so.6.bak  

mv libstdc++.so.6.0.8 libstdc++.so.6.0.8.bak

ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so

ln -s libstdc++.so libstdc++.so.6

ln -s libstdc++.so libstdc++.so.6.0.8

Set Up Environment Variables

Create a script to load the ISE environment. Add this to your .bashrc or create a dedicated launcher script:

source /opt/Xilinx/14.7/ISE_DS/settings64.sh

For locale issues (especially with PlanAhead), add:

export LANG=en_US.UTF-8

export LC_NUMERIC=en_US.UTF-8

Installing USB JTAG Cable Drivers on Linux

The built-in cable driver installation fails on most modern Linux distributions. Here’s the workaround that actually works.

Using the Alternative USB Driver

This uses Michael Gernoth’s excellent libusb-based driver:

cd /opt/Xilinx

sudo git clone git://git.zerfleddert.de/usb-driver

cd usb-driver

sudo make

Run the setup script:

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

Configure udev Rules

Create a udev rule for non-root access:

sudo nano /etc/udev/rules.d/99-xilinx.rules

Add this content:

ACTION==”add”, SUBSYSTEMS==”usb”, ATTRS{idVendor}==”03fd”, MODE=”0666″

Reload udev:

sudo udevadm control –reload-rules

sudo udevadm trigger

CentOS 7.6 Specific Driver Installation

For CentOS 7.6, use the built-in drivers with modifications:

cd /opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/install_script/install_drivers/linux_drivers/pcusb/

sudo ./setup_pcusb

sudo cp xusbdfwu.rules /etc/udev/rules.d

sudo sed -i -e ‘s/TEMPNODE/tempnode/’ -e ‘s/SYSFS/ATTRS/g’ -e ‘s/BUS/SUBSYSTEMS/’ /etc/udev/rules.d/xusbdfwu.rules

Licensing Xilinx ISE on Linux

WebPACK License (Free)

The WebPACK license is free and supports most devices except the largest ones. To obtain it:

  1. Run the license manager: /opt/Xilinx/14.7/ISE_DS/common/bin/lin64/xlcm
  2. Select “Get Free Vivado/ISE WebPACK License”
  3. Follow the prompts to generate and download your license

Installing the License File

Place your license file in one of these locations:

  • ~/.Xilinx/Xilinx.lic
  • /opt/Xilinx/14.7/ISE_DS/ISE/coregen/core_licenses/

Or set the environment variable:

export XILINXD_LICENSE_FILE=/path/to/your/license.lic

For network licenses on CentOS:

export LM_LICENSE_FILE=2100@license_server:/opt/licenses/Xilinx.lic

Read more Xilinx Products:

Creating a Desktop Launcher for Xilinx ISE

To add ISE to your applications menu, create a desktop file:

nano ~/.local/share/applications/ise.desktop

Add the following content:

[Desktop Entry]

Version=1.0

Name=Xilinx ISE

Exec=bash -c “source /opt/Xilinx/14.7/ISE_DS/settings64.sh && ise”

Terminal=false

Icon=/opt/Xilinx/14.7/ISE_DS/ISE/data/images/pn-ise.png

Type=Application

Categories=Development;Electronics;

Troubleshooting Common Xilinx ISE Linux Issues

ProblemSymptomSolution
Segmentation fault on startupISE crashes immediatelyReplace bundled libstdc++ with system version
Installer crashesSegfault during xsetupUnset QT_PLUGIN_PATH, switch fonts
Cable not detectediMPACT can’t find programmerInstall alternative USB driver, check udev rules
License manager won’t openxlcm fails to launchCheck Java version, may need to link to Java 6
PlanAhead crashesSegfault when generating UCFSet LANG to en_US, replace bundled JRE
iSim compilation failsFUSE errorsDisable multithreading with -mt off flag

Fixing PlanAhead Java Issues

PlanAhead sometimes crashes due to Java version conflicts. Link to the bundled Java 6:

cd /opt/Xilinx/14.7/ISE_DS/ISE/java/lin64/jre/bin/

mv java java.old

ln -s /opt/Xilinx/14.7/ISE_DS/ISE/java6/lin64/jre/bin/java java

Useful Resources and Download Links

Here are the essential resources for getting Xilinx ISE working on Linux:

ResourceDescriptionURL
ISE 14.7 DownloadOfficial AMD download pagehttps://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vivado-design-tools/archive-ise.html
Alternative USB DriverMichael Gernoth’s libusb driverhttps://rmdir.de/~michael/xilinx/
Arch Wiki GuideComprehensive community documentationhttps://wiki.archlinux.org/title/Xilinx_ISE_WebPACK
Digilent AdeptRequired for Digilent boardshttps://digilent.com/shop/software/digilent-adept/
GitHub USB DriverPre-packaged USB driver sourcehttps://github.com/dennisfen/xilinx-usb-driver

Devices Supported by Xilinx ISE

ISE 14.7 supports these device families (newer devices require Vivado):

Device FamilySupport StatusNotes
Spartan-6Full SupportMost common use case
Virtex-6Full SupportHigh-end legacy projects
Spartan-3/3E/3AFull SupportOlder but still used
Virtex-4/5Full SupportIndustrial applications
CoolRunnerFull SupportCPLD designs
Virtex-7, Artix-7NOT SupportedUse Vivado instead

Frequently Asked Questions About Xilinx ISE Linux

Can I install Xilinx ISE on Ubuntu 22.04 or 24.04?

Yes, but it requires additional work. The main challenges are library dependencies that have been updated or removed. You’ll need to obtain older versions of libpng, libfreetype, and libcairo. Many engineers opt to run ISE in a virtual machine with Ubuntu 18.04 or 20.04 to avoid these compatibility headaches.

Is Xilinx ISE WebPACK completely free?

Yes, the WebPACK edition is free and does not require purchasing a license. It supports all Spartan-6, Virtex-6, and CoolRunner devices with some size limitations on the largest parts. For most hobbyist and many professional applications, WebPACK is sufficient.

Why does Impact crash when I try to program my board?

This is almost always a cable driver issue. The built-in driver installation fails on modern Linux systems. Use the alternative libusb-based driver from Michael Gernoth’s repository as described in this guide. Also verify your udev rules are correctly configured and that your user has permission to access the USB device.

Can I run Xilinx ISE on a Raspberry Pi or other ARM system?

No. Xilinx ISE is compiled exclusively for x86_64 architecture. There is no ARM version available, and attempts to run it through emulation are not practical due to the computational requirements. If you need portable FPGA development, consider using a thin client setup where the heavy lifting happens on an x86 server.

Should I use ISE or Vivado for new projects?

If your target device is Spartan-6, Virtex-6, or older, you must use ISE as Vivado does not support these families. For Artix-7, Kintex-7, Virtex-7, and all newer devices, use Vivado. ISE entered sustaining mode in 2013 and receives no new feature updates.

Final Thoughts

Getting Xilinx ISE running on Linux requires some patience, but once it’s set up, it’s remarkably stable. I’ve been running ISE 14.7 on Ubuntu for years now, and after applying the fixes in this guide, it’s been reliable through multiple projects.

The key points to remember: replace the bundled libstdc++, install the alternative USB driver for cable programming, and make sure your udev rules are in place. With those three things sorted, you’ll have a rock-solid Xilinx ISE Linux development environment.

If you’re just starting out with FPGA development on Linux, I’d also recommend looking into open-source tools like GHDL and GtkWave for simulation. They integrate nicely with ISE and can actually provide a better debugging experience than the built-in iSim for many use cases.

Good luck with your projects, and may your synthesis runs be error-free.

Leave a Reply

Your email address will not be published. Required fields are marked *

Contact Sales & After-Sales Service

Contact & Quotation

  • Inquire: Call 0086-755-23203480, or reach out via the form below/your sales contact to discuss our design, manufacturing, and assembly capabilities.

  • Quote: Email your PCB files to Sales@pcbsync.com (Preferred for large files) or submit online. We will contact you promptly. Please ensure your email is correct.

Drag & Drop Files, Choose Files to Upload You can upload up to 3 files.

Notes:
For PCB fabrication, we require PCB design file in Gerber RS-274X format (most preferred), *.PCB/DDB (Protel, inform your program version) format or *.BRD (Eagle) format. For PCB assembly, we require PCB design file in above mentioned format, drilling file and BOM. Click to download BOM template To avoid file missing, please include all files into one folder and compress it into .zip or .rar format.