Altera Design Software

From ArchWiki
Jump to navigation Jump to search

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: Altera was acquired by Intel. (Discuss in Talk:Altera Design Software#)

From the Intel Quartus Prime overview:

The revolutionary Intel® Quartus® Prime Design Software includes everything you need to design for Intel® FPGAs, SoCs, and complex programmable logic device (CPLD) from design entry and synthesis to optimization, verification, and simulation.

This tutorial shows how to download, install, and configure the following software from Altera:

  • Quartus Prime Standard Edition
    • USB-Blaster (I and II) Download Cable Driver
  • ModelSim-Altera Edition (Included with Quartus Prime Standard Edition)

Quartus Prime Standard Edition

Installation

Install the quartus-freeAUR meta-package to install the latest version of Quartus Prime Lite and ModelSim, also available in the chaotic-aur repository [1]. This meta-package will install all the devices supported by Quartus Prime. A minimal installation can be achieved by installing only the necessary components. For example:

quartus-free-quartus requires the quartus-free-devinfo package, which is provided by any one of the packages with a quartus-free-devinfo- prefix. For example, install quartus-free-devinfo-cyclonevAUR as a dependency if you have a Cyclone V FGPA.

Tip: Install the packages from the chaotic-aur repository to avoid downloading excessively large source files and to avoid the relatively long package-building process.

Executing quartus is another way to start Quartus Prime Lite (instead of selecting its desktop entry). quartus-free-quartus and quartus-free-modelsim use files in /etc/profile.d/ to extend the PATH environment variable, so log into a new session to make commands like quartus and vsim available.

You need to be in the plugdev group to program an FPGA (via the USB-Blaster).

Standard Edition license validation

Configuring the path to your Quartus Prime Standard Edition license file from the Quartus Prime settings interface is not enough for successful license validation. The license validation routine looks for your MAC address on device eth0. This was the legacy name for your ethernet controller; now systemd dynamically allocates a name to your device on boot - this can be different from machine to machine. We need to rename that device back to the expected eth0.

Create a new udev rule:

/etc/udev/rules.d/10-network.rules
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="xx:xx:xx:xx:xx:xx", NAME="eth0"

where xx:xx:xx:xx:xx:xx is your networking device's MAC address. Then, reload that file using udevadm:

# udevadm control --reload

Alternatively a dummy eth0 network interface can be created by systemd-networkd daemon dynamically at boot. Create the file 25-dummy.netdev in the /etc/systemd/network/ directory

/etc/systemd/network/25-dummy.netdev
[Match]
Host=hostname

[NetDev]
Name=eth0
Kind=dummy
MACAddress=xx:xx:xx:xx:xx:xx

where xx:xx:xx:xx:xx:xx is the licensed networking device's MAC address and hostname is your machine's hostname. Finally ensure systemd-networkd service is enabled and started.

The Quartus Prime Standard Edition license validation routine also uses the deprecated networking tool ifconfig to validate your networking devices MAC address as per your Quartus Prime license. The deprecated networking package net-tools contains the ifconfig tool. Thus one must also install the net-tools package for Quartus Prime Standard Edition licensing validation success.

Troubleshooting

Empty (greyish) windows inside quartus (XMonad)

Some of the built-in editors in quartus such as ip editors and qsys only show a blank window. To workaround this issue change the name that is reported by your window manager to for example LG3D. To change the name reported by XMonad see the documentation.

USB-Blaster not working

Run:

$ jtagconfig

Then depending on the output:

No JTAG hardware available

Check if the device shows up with lsusb. If so, try to restart jtagd as root [2]:

# killall -9 jtagd
# jtagd
JTAG chain broken
1) USB-Blaster [3-2]
  Unable to read device chain - JTAG chain broken

First navigate to the directory of your Quartus installation, then perform the following steps to copy the pgm_parts.txt file [3]:

killall jtagd
mkdir /etc/jtagd
cd /{path to quartus install}/{version number}/quartus/linux64/
cp pgm_parts.txt /etc/jtagd/jtagd.pgm_parts
cd ../bin
./jtagd --user-start

In the bin/ directory, you should be able to run jtagconfig and get an output resembling the following:

./jtagconfig
#1) USB-Blaster [3-2] 
 031050DD   10M50DA(.ES)/10M50DC

If you do now, plug and unplug your device, and you should be able to run it.

Another possible cause may be a missing 32 bit version of libudev, install lib32-libudev0-shim (source).

Error when scanning hardware - Server error
Connecting to server(s) [........          ]
Error when scanning hardware - Server error

A workaround is to edit /etc/jtagd.conf or $HOME/.jtagd.conf (depending on whether you want to run jtagd as root or unprivileged user) to include the following line:

Password = "changeme";

The second step is to add the server:

$ jtagconfig --addserver 127.0.0.1 changeme

If you still have problems, try restarting jtagd:

# killall -9 jtagd
$ jtagd

Eclipse IDE for NIOSII is slow or unresponsive

Try disabling GTK3 in eclipse.ini in your altera folder Eclipse#Disable GTK 3

ModelSim-Altera Edition

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: Versions 16.1 and newer of ModelSim are known as "ModelSim-Intel FPGA Edition" instead of "ModelSim-Altera Edition" [4]. (Discuss in Talk:Altera Design Software#)

Installation

Install the quartus-free-modelsimAUR package, also available in the chaotic-aur repository.

Compatibility with Arch Linux

With the kernel 4.x and upwards

Note: ModelSim Starter Edition installation uses the path /opt/altera/15.1/modelsim_ase/ where ModelSim Subscription Edition installation uses the path /opt/altera/15.1/modelsim_ae/; the following assumes the ModelSim Subcription Edition installation.

Modelsim has a problem with version 4 of the linux kernel. You need to edit the vsim script to make it compatible. This file may be be read only, so temporarily give yourself write permissions and:

change

/opt/altera/15.1/modelsim_ae/vco line 206
*)                vco="linux_rh60" ;;

to

/opt/altera/15.1/modelsim_ae/vco line 206
*)                vco="linux" ;;

lib32-glibc 2.23-1

Originally discussed at https://bbs.archlinux.org/viewtopic.php?id=212531.

The upgrade from lib32-glibc version 2.23-1 to later versions of lib32-glibc breaks FlexLM and prevents ModelSim from checking out a license. One workaround is to download the archived lib32-glibc-2.23-1 and extract it to a directory such as ${HOME}/altera/xx.x/lib32/glibc223-1. Then create or modify the LD_LIBRARY_PATH environment variable at the top of the /opt/altera/xx.x/modelsim_ae/vco script to include the new glibc223-1/usr/lib32 directory in the search path:

export LD_LIBRARY_PATH=${HOME}/altera/xx.x/lib32;${HOME}/altera/xx.x/lib32/glibc223-1/usr/lib32

Troubleshooting

Failure to access library 'work'

The following error may be encountered when running a simulation in a new directory:

Error: (vcom-19) Failed to access library 'work' at "work". 

This can be resolved by creating the work directory from the ModelSim console [5]:

ModelSim> vlib work

Unreachable host

ModelSim may crash with the following error when trying to start a simulation:

Error: couldn't open socket: host is unreachable
Trouble making server.

This can be resolved by adding hosts(5) entries for localhost as specified in Network configuration#Local hostname resolution.