OpenSuse 12.3 64bit: Xilinx ISE & Vivado WebPACK (free) installation

Xilinx is a complete development suite for Xilinx FPGAs and CPLDs. Not all FPGAs are supported by the free WebPACK, but the supported ones are more than powerful enough for hobbyists and eduction. This post shortly describes the steps to install ISE 14.4 and Vivado on a fresh 64-bit OpenSuse 12.3 setup.

Steps to follow:

  1. Download and unzip theXilinx package (Xilinx_ISE_DS_Lin_14.4_P.49d.3.0.tar)
  2. Execute the installer and follow instructions. Select ISE WebPACK + Vivado WebPACK, for all other items use default settings. You may chose another path, make sure you have the right permissions. Note: Avoid installing software as root.
  3. Once installation is finished, exit the installer without starting Quartus.
  4. Start the Quartus software in a terminal. To do so, go to the installation path and source the corresponding shell file as indicated by the installer.
    For JTAG cable support only: You need to create an appropriate udev rule to recognize the Xilinx (or compatible) cable. Place following on a file (i.e 51-xusbdfwu.rules) in /lib/udev/rules.d:# version 0003
    ATTRS{idVendor}==”03fd”, ATTRS{idProduct}==”0008″, MODE=”666″
    SUBSYSTEMS==”usb”, ACTION==”add”, ATTRS{idVendor}==”03fd”, ATTRS{idProduct}==”0007″, RUN+=”/sbin/fxload -v -t fx2 -I /opt/development/Xilinx/14.4/ISE_DS/ISE/bin/lin64/xusbdfwu.hex
    -D $tempnode”
    SUBSYSTEMS==”usb”, ACTION==”add”, ATTRS{idVendor}==”03fd”, ATTRS{idProduct}==”0009″, RUN+=”/sbin/fxload -v -t fx2 -I /opt/development/Xilinx/14.4/ISE_DS/ISE/bin/lin64/xusb_xup.hex
    -D $tempnode”
    SUBSYSTEMS==”usb”, ACTION==”add”, ATTRS{idVendor}==”03fd”, ATTRS{idProduct}==”000d”, RUN+=”/sbin/fxload -v -t fx2 -I /opt/development/Xilinx/14.4/ISE_DS/ISE/bin/lin64/xusb_emb.hex
    -D $tempnode”
    SUBSYSTEMS==”usb”, ACTION==”add”, ATTRS{idVendor}==”03fd”, ATTRS{idProduct}==”000f”, RUN+=”/sbin/fxload -v -t fx2 -I /opt/development/Xilinx/14.4/ISE_DS/ISE/bin/lin64/xusb_xlp.hex
    -D $tempnode”
    SUBSYSTEMS==”usb”, ACTION==”add”, ATTRS{idVendor}==”03fd”, ATTRS{idProduct}==”0013″, RUN+=”/sbin/fxload -v -t fx2 -I /opt/development/Xilinx/14.4/ISE_DS/ISE/bin/lin64/xusb_xp2.hex
    -D $tempnode”
    SUBSYSTEMS==”usb”, ACTION==”add”, ATTRS{idVendor}==”03fd”, ATTRS{idProduct}==”0015″, RUN+=”/sbin/fxload -v -t fx2 -I /opt/development/Xilinx/14.4/ISE_DS/ISE/bin/lin64/xusb_xse.hex
    -D $tempnode”
    “Note: Ensure correct double quotes (” “) when copying code from your browser, sometimes they are replaced by two single quotes!
  5. Install following packages:
    sudo zypper in libusb-1_0-devel libusb-1_0-devel-32bit libusb-compat-devel fxload
  6. Copy JTAG Cable firmware files to /usr/share:
    sudo cp /opt/development/Xilinx/14.4/ISE_DS/common/bin/lin64/*.hex .
    Otherwise ISE believes that the cable is not installed.
  7. Plug you cable and start the ISE, chose iMPACT in the tools menu, you should now be able to detect your device chain.

OpenSuse 12.3 64bit: Altera Quartus Web Edition (free) installation

Altera Quartus Web Edition is a complete development suite for Altera FPGAs and CPLDs. Not all FPGAs are supported in the free Web Edition, but the supported ones are more than powerful enough for hobbyists and eduction. This post shortly describes the steps to install Quartus 12.1 SP1 on a fresh 64-bit OpenSuse 12.1 setup. Note that the free Quartus Web Edition is only 32-bit.

Steps to follow:

  1. Download and unzip the Quartus package (12.1sp1_243_quartus_free_linux.tar.gz)
  2. Execute the installer and follow instructions, use default settings. You may chose another path, make sure you have the right permissions. Note: Avoid installing software as root.
    (If installer does not run, some 32 bit lib may miss, check installer log file)
    On my fresh install, following packages where required:
    sudo zypper install libXext6-32bit libfreetype6-32bit fontconfig-32bit
  3. Once installation is finished, exit the installer without starting Quartus.
  4. Start the Quartus software in a terminal. To do so, go to the installation path:
    altera/12.1sp1/quartus/bin> ./quartus
  5. You may get an error message like:
    quartus: error while loading shared libraries: libSM.so.6: cannot open shared object file: No such file or directory
    quartus: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory
    quartus: error while loading shared libraries: libXrender.so.1: cannot open shared object file: No such file or directory
  6. If so, install the 32 bit version of the library libSM, libpng, libXrender etc. according to your needs:
    > sudo zypper install libSM6-32bit libpng12-0-32bit libXrender1-32bit
  7. Try to run quartus again. You may need to install further 32but libraries, but this was not the case on my fresh OpenSuse installation. Quartus should start and you should get the IDE with the Quartus welcome screen.
  8. For USB-Blaster cable support only: You need to create an appropriate udev rule to recognize the USB-Blaster (or compatible) cable. Place following on a file (i.e 51-usbblaster.rules) in /lib/udev/rules.d:SUBSYSTEM==”usb”, ATTRS{idVendor}==”09fb”, ATTRS{idProduct}==”6001|6002|6003″, OWNER=”arti”, GROUP=”users”, MODE=”0666″, SYMLINK+=”usbblaster”Note: Ensure correct double quotes (” “) when copying code from your browser, sometimes they are replaced by two single quotes!
  9. Plug you cable and start the quartus programmer, you should now be able to detect your device chain.

Debian testing (wheezy) 64bit: Xilinx ISE 14.2 installation

Tested with Xilinx ISE 14.2 on Debian testing (wheezy, updated 29. Sept. 2012)

Download Xilinx ISE Free Edition from Xilinx website. Unzip the package. Avoid installing software beeing root whenever possible. To make ISE to all users available, you may opt to install it to a path like “/opt/devtools/” with the appropriate access rights. Uncheck driver installion, it will not work. To use the pogrammer/JTAG capabilities, a symbolic links are needed for the programmer firmware needs to be created.

Change to the install directory you have chosen and create the required symbolic links:

cd /opt/devtools/Xilinx/14.2/ISE_DS/common/bin/lin64/
ln -s xusb_xlp.hex /usr/share/xusb_xlp.hex
ln -s xusb_emb.hex /usr/share/xusb_emb.hex
ln -s xusb_xpr.hex /usr/share/xusb_xpr.hex
ln -s xusb_xup.hex /usr/share/xusb_xup.hex
ln -s xusb_xp2.hex /usr/share/xusb_xp2.hex
ln -s xusb_xse.hex /usr/share/xusb_xse.hex

To make the programmer work, add /etc/udev/rules.d/51-xusbdfwu.rules with following content:

ATTR{idVendor}==”03fd”, ATTR{idProduct}==”0008″, MODE=”666″, OWNER=”root”, GROUP=”plugdev”
SUBSYSTEM==”usb”, ACTION==”add”, ATTR{idVendor}==”03fd”, ATTR{idProduct}==”0007″, RUN+=”/sbin/fxload -v -t fx2 -I /usr/share/xusbdfwu.hex -D $tempnode”
SUBSYSTEM==”usb”, ACTION==”add”, ATTR{idVendor}==”03fd”, ATTR{idProduct}==”0009″, RUN+=”/sbin/fxload -v -t fx2 -I /usr/share/xusb_xup.hex -D $tempnode”
SUBSYSTEM==”usb”, ACTION==”add”, ATTR{idVendor}==”03fd”, ATTR{idProduct}==”000d”, RUN+=”/sbin/fxload -v -t fx2 -I /usr/share/xusb_emb.hex -D $tempnode”
SUBSYSTEM==”usb”, ACTION==”add”, ATTR{idVendor}==”03fd”, ATTR{idProduct}==”000f”, RUN+=”/sbin/fxload -v -t fx2 -I /usr/share/xusb_xlp.hex -D $tempnode”
SUBSYSTEM==”usb”, ACTION==”add”, ATTR{idVendor}==”03fd”, ATTR{idProduct}==”0013″, RUN+=”/sbin/fxload -v -t fx2 -I /usr/share/xusb_xp2.hex -D $tempnode”
SUBSYSTEM==”usb”, ACTION==”add”, ATTR{idVendor}==”03fd”, ATTR{idProduct}==”0015″, RUN+=”/sbin/fxload -v -t fx2 -I /usr/share/xusb_xse.hex -D $tempnode”

Note: Take care about the double quotes!

Add “plugdev” group to the users that shall have access to the programmer. Installl packages fxload and libusb-dev. Restart udev daemon.

That’s all!

Debian testing (wheezy) 64bit: Altera Quartus installation

Tested with Altera Quartus 12.0 Sp2 on Debian testing (wheezy, updated 29. Sept. 2012)

Download Altera Quartus Free Edition from Altera website. Unzip the package. Before executing the installer, install ithe debian package ia32-libs as the free edition of quartus only runs on 32 bit. Avoid installing software beeing root whenever possible. To make Quartus to all users available, you may opt to install it to a path like “/opt/devtools/” with the appropriate access rights. To use the pogrammer/JTAG capabilities, a symbolic links needs to be created: in “/opt/devtools/altera/12.0sp2/quartus” create a symlink linux64->linux as Quartus is looking for the linux64 path which is not installed in the free edition. To make the programmer work, add /etc/udev/rules.d/51-usbblaster.rules with following content:

SUBSYSTEM==”usb”, ATTRS{idVendor}==”09fb”, ATTRS{idProduct}==”6001|6002|6003″, OWNER=”root”, GROUP=”plugdev”, MODE=”0666″, SYMLINK+=”usbblaster”

Note: Take care about the double quotes!

Restart udev daemon.

That’s all!