Difference between revisions of "Altera Design Software"

From ArchWiki
Jump to navigation Jump to search
Line 108: Line 108:
We can add a simple {{Codeline|udev}} rule.
We can add a simple {{Codeline|udev}} rule.
ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", RUN+="/bin/chmod 0666 /dev/bus/usb/$env{BUSNUM}/$env{DEVNUM}"

Revision as of 09:47, 21 February 2011


This tutorial shows how to install the following softwares form the Altera Design Software

  • Quartus II (Web edition and Subscription Edition)
  • USB-Blaster Driver

Quartus II

The following procedure shows how to install the 10.1 sp1 version of Quartus II


Quartus II is downloadable at: https://www.altera.com/download/software/quartus-ii-se Downloading Altera softwares requires registration. Once this is done, proceed with the download. There are three files to get

  • Quartus II 10.1 base software
  • Quartus II devices
  • Quartus II 10.1 service pack 1

Make sure you get the GNU/Linux version!

Once you have downloaded the files, you can proceed with the installation

$ cd <Download-folder>
$ sudo sh ./10.1_quartus_linux.sh

Executing this script should open a setup GUI. Just follow the instructions. For the purpose of this tutorial, I assume that you are installing Quartus II in the Template:Filename folder.

After the base software is installed, you should install devices related files and upgrade to the service pack 1.

$ sudo sh ./10.1_quartus_devices.sh
$ sudo sh ./10.1_quartus_linux.sh


Quartus II requires libpng12 to work, which can be found in AUR.

$ wget http://aur.archlinux.org/packages/libpng12/libpng12.tar.gz
$ tar -xaf libpng12.tar.gz
$ cd libpng12
$ makepkg -i PKGBUILD

Trying to launch the software right now on a 64 bits system won't work. Quartus will complain that libpng12 does not have the right ELF class. This is because Quartus is launched in 32 bits mode by default. We need to add an environment variable to switch to 64 bits mode. Please, refer to the next section regarding this matter.

Integrating Quartus II with the system

Let's now add the Quartus bin folder to the Template:Codeline variable as well as select if we want to run it in 64 bits mode. Create a Template:Filename file in the Template:Filename directory


Other environment variables related to Quartus can be found in the official installation manual http://www.altera.com/literature/manual/quartus_install.pdf

And now you can try launching launching Quartus II

$ source /etc/profile.d/quartus.sh
$ quartus

If this works, don't forget to logout/login for the change to have effect.

USB-Blaster Driver

The USB-Blaster is a cable that allows you to download configuration data from you computer to you FPGA, CPLD or EEPROM configuration device. However Altera only provides support for RedHat Entreprise, SUSE Entreprise and Cent OS and we are required to do a little bit of work to make it work with Archlinux. If you want some more detail about this cable, please refer to http://www.altera.com/literature/ug/ug_usb_blstr.pdf

The JTAG server of Quartus II is responsible for communications using the USB-Blaster cable. The JTAG server (Template:Filename and Template:Filename) is searching for devices in Template:Filename and in the file Template:Filename. Using Archlinux, the former is located in Template:Filename and not Template:Filename and the latter does not exist unless Template:Codeline is mounted.

Since the search paths are hardcoded in the JTAG server, we need to patch it to make him search for devices in Template:Filename instead of Template:Filename.

For 32 bits systems:

$ sudo sed -i.bak 's/\/proc\/bus\/usb\/%03u\/%03u/\/dev\/bus\/usb\/%03u\/%03u\d0/g' /opt/altera/10.1/quartus/linux/jtagd 

For 64 bits systems:

$ sudo sed -i.bak 's/\/proc\/bus\/usb\/%03u\/%03u/\/dev\/bus\/usb\/%03u\/%03u\d0/g' /opt/altera/10.1/quartus/linux64/jtagd #For 64 bits systems

Side by the patched JTAG server, a backup of the original one is created in Template:Filename.

Now we need to add one rule in the Template:Filename file: Template:File Then 'reload' that file using

$ sudo mount -a

and now you should have a Template:Filename file

$ ls -l /proc/bus/usb/devices
i-r--r--r-- 1 root root 0 Feb 10 19:05 /proc/bus/usb/devices

Now to check that the JTAG server has been properly patched and that everything is working, plug your FPGA or CPLD board using your USB-Blaster cable and run

$ sudo /opt/altera/10.1/quartus/bin/jtagconfig

You should have an output similar to this one

1) USB-Blaster [USB 1-1.1]
  020B30DD   EP2C15/20

In this example I have a board using a serial EEPROM to retain the FPGA configuration.

There is still one last thing to do: give write access to casual users, not only the root. We can add a simple Template:Codeline rule. Template:File

Let's now make a final check by relaunching Template:Filename after having reloaded the udev rules.

$ sudo udevadm control --reload-rules
$ sudo jtagconfig