First, I must say that Quartus is brilliant. A complete hardware noob like myself can get up and running and creating complex hardware designs in hours.
This is my new setup, as of 2019-01.
13.0sp1 is the latest version of Quartus to support Cyclone II devices, so I can't use anything later.
Quartus is still a 32 bit program, so :-
# dnf -y install \ libX11.i686 \ libXau.i686 \ libXdmcp.i686 \ libXext.i686 \ libXft-devel.i686 \ libXrender.i686 \ libXt.i686 \ libXtst.i686 \ libpng12.i686 \ libnsl.i686 \ compat-openssl.i686 # cd /opt/altera/13.0sp1/quartus/linux # ln -s /usr/lib/libcrypto.so.1.0.2o libcrypto.so # ln -s /usr/lib/libgcrypt.so.20 libgcrypt.so # ln -s /usr/lib/libssl.so.1.0.2o libssl.so
The JTAG still needs rules allowing a normal user access to USB Blaster,
so create /etc/udev/rules.d/51-altera-usb-blaster.rules
containing :-
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", MODE="0666" SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6002", MODE="0666" SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6003", MODE="0666" SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6010", MODE="0666" SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6810", MODE="0666"
I found running udevadm control -reload
as root
doesn't make the system notice the new rules, I had to reboot.
As yourself :-
$ touch ~/.jtagd.conf
To import DE1.qsf
from Altera website,
use Assignments > Import Assignments...
Top level port names should reflect PIN names in this file.
I choose to do Active Serial Programming, which means the board will not
lose the FPGA configuration at power off
(the JTAG alternative isn't persistent).
So under
Assignments > Device > Device and Pin Options... > Configuration
I select EPCS4.
Under Tools > Programmer I select device as EPCS4 and
select .pof
file to program.
Flip switch to PROG, click Start, when done, flip switch to RUN.
Beware SignalTap logic analyser errors.
I find I need to shutdown Quartus, kill jtagd
,
then restart Quartus and start SignalTap.
Otherwise when I press "Run Analysis", I get "Invalid data received".
If I use "Read Data", I get what looks like reasonable data,
but the start-stop point is somewhere mid data.