Quartus
Useful Links
TBW
How to run Quartus
Prerequisites
You will want to sit in front of a large monitor, and you will want to run the quartus application on a fast computer with large memory. To download compiled fpga firmware into vme modules using jtag or Active Serial interfaces, you will need a USB-Blaster dongle.
Recommended computers for running Quartus:
- ladd21: quad-core 3.6GHz, 64GB RAM, (use Quartus installed on ladd19 SSD: /ladd/data19)
- ladd19: quad-core 3.6GHz, 32GB RAM, Quartus installed on local SSD (/ladd/data19)
- (decomissioned) ladd11: quad-core 3.2GHz, 24GB RAM, Quartus installed on local SSD
- (decomissioned) ladd12: quad-core 2.8GHz, 16GB RAM
Caveats
If Quartus 13.1 crashes on startup, see this: http://www.altera.com/support/kdb/solutions/rd12102013_780.html
Available versions of Quartus
- ladd19 SSD (fast): ls -l /ladd/data19/altera
- (decomissioned) trshare (medium slow): ls -l /triumfcs/trshare/olchansk/altera
- daqshare: ls -l /daq/daqshare/olchansk/altera (mount -o ro daqshare:/public /daq/daqshare)
- standalone programmer and standalone signal tap:
- /ladd/data19/altera/13.1.0.162-ProgrammerAndSignalTap/qprogrammer/bin/quartus_pgmw
- /ladd/data19/altera/13.1.0.162-ProgrammerAndSignalTap/qprogrammer/bin/quartus_stpw
Select a quartus license
- (temp not available) ladd05 nodelocked license: run quartus on ladd05, use license file /home/olchansk/daq/altera/license-ladd05.dat
- (temp not available) ladd01 nodelocked license: run quartus on ladd01, use license file /home/olchansk/daq/altera/license-ladd01.dat
- daqshare floating license: start license server: "ssh daqshare /daq/daqshare/olchansk/altera/13.1.3.178/quartus/linux/lmgrd -c /home/olchansk/daq/altera/license-daqshare.dat", run quartus anywhere, use license file /home/olchansk/daq/altera/license-daqshare.dat
- ladd09 floating license: start license server: "ssh ladd09 /triumfcs/trshare/olchansk/altera/12.0/quartus/linux/lmgrd -c /home/olchansk/daq/altera/license-ladd09.dat", run quartus anywhere, use license file /home/olchansk/daq/altera/license-ladd09.dat
- (temp not available) ladd12 floating license: start license server: "ssh ladd12 /triumfcs/trshare/olchansk/altera/12.0/quartus/linux/lmgrd -c /home/olchansk/daq/altera/license-ladd12.dat", run quartus anywhere, use license file /home/olchansk/daq/altera/license-ladd12.dat
- ladd19 floating license: start license server: "ssh ladd19 /triumfcs/trshare/olchansk/altera/12.0/quartus/linux/lmgrd -c /home/olchansk/daq/altera/license-ladd19.dat", run quartus anywhere, use license file /home/olchansk/daq/altera/license-ladd19.dat
Start Quartus
- Quartus 12.0 on ladd19: run "/ladd/data19/altera/12.0/quartus/bin/quartus"
- Quartus 11.1 on ladd19: run "/ladd/data19/altera/11.1/quartus/bin/quartus --64bit"
- Quartus 11.1 on ladd11: run "/ladd/data11/altera/11.1/quartus/bin/quartus --64bit"
- Quartus other versions on trshare:
- ssh to ladd19 or ladd11 or ladd12
- run "ls /triumfcs/trshare/olchansk/altera" to list available versions
- run the selected version directly, i.e. "/triumfcs/trshare/olchansk/altera/altera9.1/quartus/bin/quartus"
- specify license file at startup or from the "Tools -> License setup..." menu.
Use Quartus
refer to quartus documentation and gurus
Interfacing with hardware
- To download pof files into VME modules with Active Serial EPROMs (i.e. VF48 modules): see /home/olchansk/daq/vf48/firmware/load.perl
- To download pof files into VME modules with VME-accessible Flash Programmer (VF48, etc) use the "srunner_vme" program, see /home/olchansk/packages/vme/srunner*
- To download sof files into VME modules using JTAG interface, see /home/olchansk/daq/vf48/firmware/load_jtag_fe.perl
Accessing USB-Blaster attached to remote computer
Using JTAGD
- install jtagd system files per SLinstall#Configure_Altera_jtagd
- this sets the jtagd password to "123"
- ssh to the machine where the USB-Blaster is connected
- start local jtagd: /triumfcs/trshare/olchansk/altera/11.0/quartus/bin/jtagd
- test local connection: /triumfcs/trshare/olchansk/altera/11.0/quartus/bin/jtagconfig
- add this machine to $HOME/.jtag.conf: (replace "laddvme05" with the name of the machine where the USB blaster is attached)
# /home/olchansk/.jtag.conf Remote2 { Host = "laddvme05"; Password = "123"; }
- test remote connection: run jtagconfig, now your device should show up two times - first for the local USB connection and second for the remote jtagd connection
- go to your quartus machine, start quartus, open your project file
- open tools->programmer
- open hardware setup, you should see an entry for your jtag connection
- use the remote jtag connection the same way as a local jtag connection.
Using SSH tunnel
To access USB-Blaster Jtag interface attached to a remote computer: (from https://ladd00.triumf.ca/elog/DAS/437)
Assume we have the USB blaster connected to laddvme05 (target) and we will run quartus on ladd00 (quartus host)
- login to ladd00
- get rid of possibly running local jtagd processes: killall -KILL jtagd
- start the ssh tunnel: ssh laddvme05 -L1309:127.0.0.1:1309
- inside the ssh tunnel (on the target machine) start the jtagd daemon: jtagd --user-start (assuming quartus tools are in your $PATH, otherwise use full pathnames, i.e. /triumfcs/trshare/olchansk/altera/altera9.1/quartus/bin/jtagd --user-start)
- inside the ssh tunnel (on the target machine) check that jtag local connection works: jtagconfig
- if jtagconfig does not work, check permissions on the /proc/bus/usb/*/* devices, they should be "rw-rw-rw". If they are not, fix them by hand: login as root and run "chmod a+wr /proc/bus/usb/*/*" or follow the instructions for changing default usb permissions at https://www.triumf.info/wiki/DAQwiki/index.php/SLinstall
- leave the ssh tunnel window alone (iconize it)
- login to ladd00
- again get rid of possibly running local jtagd processes: killall -KILL jtagd
- go to the quartus project directory, start quartus, open the quartus project
- start the jtag progammer from "quartus -> tools -> programmer"
- start the jtag signal tap tool from "quartus -> tools -> signal tap II logic analyzer"
- in either place, you should see the USB blaster is if it were locally connected.
Troubleshooting:
if remote jtag connection does not work, try this, report the results:
- jtagconfig on the machine where the USB blaster is locally connected should see the jtag devices. Typical malfunctions are wrong permissions on the USB files (fix as described above) and stale/bad jtagd running (kill it, restart it)
- local jtagd should talk to us: "telnet localhost 1309" should report "JTAG Server"
- ssh tunnel should be running (ssh -L)
- the tunnel should work (on the other end of the tunnel, i.e. on ladd00), "telnet localhost 1309" should report "JTAG Server"
jtagconfig should see the same devices
Notes
Enable 64-bit by default
- edit .../quartus/adm/qenv.sh to read: - add one line as indicated:
##### Check if should use 64-bit executables unset USE_64BIT # If we are on a 64-bit system, use 64-bit if QUARTUS_64BIT is set and != 0 # Also use it if we are running jtagd, since it interacts with hardware it must\ always match the OS if test $QUARTUS_BIT_TYPE = "64" ; then USE_64BIT=1 ### <---------------------------------------------- add this line if test "$CMD_NAME" = "jtagd" ; then USE_64BIT=1 elif test "${QUARTUS_64BIT-UNSET}" != UNSET ; then if test $QUARTUS_64BIT != "0" ; then USE_64BIT=1 fi fi fi