Intel Quartus Prime

From ArchWiki

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 article focuses on the following Intel FPGA software components:

  • Quartus Prime Lite
    • Intel FPGA Download Cable (II)
  • Questa-Intel FPGA Edition — included with Quartus Prime Lite Edition
Note:

Installation

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: makepkg(8) does not support building split packages in a PKGBUILD [1]. Since quartus-freeAUR is a split package, installing even a single dependency will result in all other components being built as well. The process of building some components is very resource-intensive, so saying "minimal installation" here is misleading. (Discuss in Talk:Intel Quartus Prime#Minimal installation)

Quartus Prime Lite and Questa can be installed with the quartus-freeAUR meta-package. This meta-package will also install device support for every supported device family. A minimal installation can be achieved by installing only the necessary components. For example:

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

Quartus II 13.0 Web Edition is "the last version to support Cyclone II and earlier FPGAs", so install quartus-free-130AUR instead of quartus-free if support for such devices is needed. See also quartus-130AUR for the SP1 Subscription Edition.

As mentioned, Questa replaces ModelSim. However, obtaining a valid license file is required for Questa. Those who do not wish to do so can install the last version of ModelSim (modelsim-intel-starterAUR) instead.

quartus-free-quartus uses files in /etc/profile.d/ to extend the PATH environment variable, so log into a new session to make commands like quartus_sh available.

Being in the plugdev group to program an FPGA (via the USB-Blaster) is optional; logged in users are always allowed access.

Usage

Run Quartus Prime Lite by running quartus or selecting its desktop entry. Use the quartus_sh utility to run Quartus Prime Shell. See quartus_sh --help for more information.

Run ModelSim by running vsim or selecting its desktop entry. See vsim -help for more information.

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 interface eth0, the traditional name for your Ethernet controller. However, network interfaces use predictable names by default—these can vary from machine to machine. Thus, the expected eth0 name must be retained by following Network configuration#Revert to traditional interface names.

Alternatively, a dummy eth0 network interface can be dynamically created by systemd-networkd at boot. This may be desirable for systems without a wired Ethernet adapter. Create the following file (where hostname is your machine's hostname):

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

[NetDev]
Name=eth0
Kind=dummy
MACAddress=MAC_address

Ensure systemd-networkd.service is started/enabled afterwards.

See also related articles on the Intel Knowledge Base:

Troubleshooting

Empty greyish windows (XMonad)

Some of the built-in editors in Quartus Prime such as IP editors and Tools > Platform Designer (aka Qsys) only show a blank window with Xmonad. A workaround is to change the window manager's name. See also XMonad.Hooks.SetWMName documentation and Xmonad#Problems with Java applications.

USB-Blaster not working

Run jtagconfig and depending on the output:

No JTAG hardware available

If the device is listed by lsusb, 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

Perform the steps under the "Linux" section in https://ecen3350.rocks/static/usb-blaster.pdf. Note that the Arch Linux path to quartus/bin in step 3 should be as follows:

/opt/intelFPGA/PKGBUILD_mainver/quartus/bin

Steps 3 and 5 should also be performed with root privileges.

Another possible cause may be a missing 32-bit version of libudev.so [3]. lib32-systemd provides this shared object, so make sure it is installed. (This should already be the case since it is a transitive dependency of quartus-free-quartusAUR.)

If the error still persists, try installing lib32-libudev0-shim.

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 ~/.jtagd.conf (depending on whether you want to run jtagd as root or as an unprivileged user) to include the following line:

Password = "changeme";

Add the server afterwards:

$ jtagconfig --addserver 127.0.0.1 changeme

If problems still persist, try restarting jtagd:

# killall -9 jtagd
$ jtagd

Eclipse IDE for Nios II is slow or unresponsive

Try disabling GTK 3 in eclipse.ini. The eclipse.ini file path for Nios II may vary; one possibility on Arch Linux is as follows [4]:

/opt/intelFPGA/PKGBUILD_mainver/nios2eds/bin/eclipse_nios2/eclipse.ini

ModelSim

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.

See also