DE10-Nano

Nachdem ich vor einiger Zeit die Quartus Prime Lite Version 18.1 installiert und meine Installation beschrieben habe, bekam ich eine Rückmeldung von einem Leser, das bestimmte Funktionen nicht gehen.

Dazu gehört u.a. der direkte Aufruf von ModelSim aus Quartus heraus. Zur Fehlersuche habe ich erst die im Moment aktuelle Version 19.1 installiert, um zu prüfen, ob der Fehler auch dort auftritt. Da dies der Fall war, habe ich Anpassungen an den Startskripten vorgenommen, damit die von ModelSim benötigten 32-Bit Bibliotheken gefunden werden.

Außerdem gibt es ein neues Problem beim generieren des GHRD für das DE10-Nano Board, was in der alten Version (18.1) noch funktioniert hat.

Aus diesen Gründen habe ich mich dazu entschlossen, die Installationsdokumentation für die 19.1 Version als neuen Eintrage zu erstellen.

Für die Ubuntu Standardinstallation verwende ich das Ubuntu Desktop 18.04.3 DVD Image. Die gewählten Einstellungen und Zusatzsoftware bei der Installation sind meine persönliche Präferenz.

  • Minimale Installation
  • Während Ubuntu installiert werden Aktualisierungen heruntergeladen
  • Install third-party software for graphics and Wi-Fi hardware and additional media formats

VMWare Tools / SSH Server

# System aktualisieren
sudo apt update
sudo apt upgrade

# VMWare Tools installieren
sudo apt install open-vm-tools open-vm-tools-desktop

# SSH Server, curl und ifconfig installieren
sudo apt install net-tools ssh curl

# Serial Terminal und git installieren
sudo apt install minicom git

# Verwaiste Pakete löschen
sudo apt --purge autoremove

# Neustart nach der Installation
sudo reboot

Zusätzliche Tools mit dem Ubuntu-Software Tool installieren

Da ich gerne noch einen grafischen Terminalemulator installiere, habe ich noch Tools aus dem Ubuntu Software Store installiert. Es gibt diese sicher auch per apt, aber ich wollte das Software Tool ausprobieren...

  • Desktop Terminal Emulator "Serial port terminal"
  • Gnome Tweak Tool "GNOME-Optimierung"

Chrome Browser

Mein favorisierter Browser, den ich anstelle des Firefox installiere.

cd ~/Downloads
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb

Firefox entfernen

sudo apt --purge remove firefox firefox-locale-de firefox-locale-en
sudo apt --purge autoremove

Verzeichnisnamen im Homeverzeichnis auf English

Da Quartus Prime 19.1 Lite für die Anlage des Desktop Icons einen fixen Pfad verwendet, werden die Benutzerverzeichnisse auf englische Bezeichnungen umgestellt. Dieser Schritt ist Optional, wenn im Homeverzeichnis bereits ein Ordner "Desktop" existiert.

  • Einstellungen -> Region und Sprache -> English (United States)
  • Update standard folders to current language? Update Names
  • Settings -> Region & Language -> German (Germany)
  • Standardordner auf die aktuelle Sprache aktualisieren? Nicht erneut fragen / Alte Namen beibehalten

Quartus Prime Lite 19.1 installieren

Ursprüngliche Quelle: siehe Thema "Ubuntu Virtual CAE System"

Download Quartus: http://fpgasoftware.intel.com/19.1/?edition=lite&platform=linux&download_manager=direct

Zielverzeichnis anlegen

sudo mkdir /opt/altera
sudo chown $(whoami):$(whoami) /opt/altera

mkdir -p /tmp/qi
cd /tmp/qi
-> Quartus-lite-19.1.0.670-linux.tar nach /tmp/qi kopieren
tar xvf Quartus-lite-19.1.0.670-linux.tar
./setup.sh
  • Installation directory: /opt/altera/19.1
  • Deselect all FPGA device families, except Cyclone V.

PATH Variable aktualisieren

  • ~/.bashrc & /etc/skel/.bashrc
# Set ALTERA Base Directory
export ALTERA_BASEDIR="/opt/altera/19.1"
export QSYS_ROOTDIR="${ALTERA_BASEDIR}/quartus/sopc_builder/bin"

# Include the ALTERA fpga software
PATH="$PATH:${ALTERA_BASEDIR}/quartus/bin"

# Include the ALTERA Modelsim VHDL simulator
PATH="$PATH:${ALTERA_BASEDIR}/modelsim_ase/bin"

# Include the Platform Designer software
PATH="$PATH:${ALTERA_BASEDIR}/quartus/sopc_builder/bin"

export PATH

Die Umgebungsvariablen laden, indem man eine neue Shell öffnet oder die Variablen mittels

. ~/.bashrc

nachlädt.

USB Blaster UDEV Rules erstellen

  • /etc/udev/rules.d/51-usbblaster.rules erstellen:
# Intel FPGA Download Cable
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"   

# Intel FPGA Download Cable II
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6010", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6810", MODE="0666"

Quartus starten und Probleme beheben

  • Fehlendes GTK Modul "canberra-gtk-module"
$ quartus
Gtk-Message: 12:22:39.024: Failed to load module "canberra-gtk-module"

sudo apt install libcanberra-gtk-module
  • Fehlermeldung "/opt/altera/19.1/quartus/linux64/libstdc++.so.6: version `CXXABI_1.3.9' not found"
cd ${ALTERA_BASEDIR}/quartus/linux64
mv libstdc++.so.6 libstdc++.so.6.quartus_distrib
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6
  • Fehlermeldung "Can't connect to the Intel FPGA website to check for updates" in dem Quartus Messages Fenster

Bei dieser vermeintlichen Fehlermeldung handelt es sich um den automatischen Update-Check. Diesen kann man unter Tools -> Options -> Internet Connectivity abschalten. Dazu den Haken unter "Check the Intel web site for new Quartus Prime information" entfernen.

  • Fehlermeldung "Can't locate Getopt/Long.pm" im Platform Designer beim generieren der HDL Datei
Info: button_pio: Can't locate Getopt/Long.pm in @INC (you may need to install the Getopt::Long module) (@INC contains: /opt/altera/19.1/quartus/sopc_builder/bin/europa /opt/alt
era/19.1/quartus/sopc_builder/bin /opt/altera/19.1/quartus/../ip/altera/sopc_builder_ip/common /opt/altera/19.1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio /tools/per
l/5.28.1/linux64/lib/site_perl/5.28.1/x86_64-linux /tools/perl/5.28.1/linux64/lib/site_perl/5.28.1 /tools/perl/5.28.1/linux64/lib/5.28.1/x86_64-linux /tools/perl/5.28.1/linux64/
lib/5.28.1) at /opt/altera/19.1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl line 18.
Info: button_pio: BEGIN failed--compilation aborted at /opt/altera/19.1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_pio/generate_rtl.pl line 18.
Info: button_pio: Done RTL generation for module 'soc_system_button_pio'
Error: button_pio: Failed to find module soc_system_button_pio
Info: button_pio: "soc_system" instantiated altera_avalon_pio "button_pio"
Error: Generation stopped, 18 or more modules remaining
Info: soc_system: Done "soc_system" with 18 modules, 4 files

Es fehlt der Suchpfad zu den Quartus Perl Bibliotheken. Dazu kann man die Umgebungsvariable PERL5LIB am Ende der ~/.bashrc und /etc/skel/.bashrc setzen:

export PERL5LIB=${ALTERA_BASEDIR}/quartus/linux64/perl/lib/5.28.1

Nios II Eclipse installieren

Die Readme unter /opt/altera/19.1/nios2eds enthält die einzelnen Schritte, um die Nios II Entwicklungsumgebung zu installieren:

  1. Download CDT 8.8.1 which is Eclipse C/C++ IDE for Mars.2 https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/mars/2/eclipse-cpp-mars-2-linux-gtk-x86_64.tar.gz
  2. Extract the downloaded file into /opt/altera/19.1/nios2eds/bin. You should see /opt/altera/19.1/nios2eds/bin/eclipse folder after extraction is done.
  3. Rename /opt/altera/19.1/nios2eds/bin/eclipse folder to /opt/altera/19.1/nios2eds/bin/eclipse_nios2
  4. Extract /opt/altera/19.1/nios2eds/bin/eclipse_nios2_plugins.tar.gz to /opt/altera/19.1/nios2eds/bin. The extraction will override files in /opt/altera/19.1/nios2eds/bin/eclipse_nios2.
  5. Verify the extraction is done correctly by making sure you see /opt/altera/19.1/nios2eds/bin/eclipse_nios2/plugin_customization.ini file
  6. You can now launch Nios2 II SBT for Eclipse via eclipse-nios2

Einzelne Schritte:

cd ~/Downloads
wget https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/mars/2/eclipse-cpp-mars-2-linux-gtk-x86_64.tar.gz -O eclipse-cpp-mars-2-linux-gtk-x86_64.tar.gz
tar xzvf eclipse-cpp-mars-2-linux-gtk-x86_64.tar.gz -C /opt/altera/19.1/nios2eds/bin/
mv /opt/altera/19.1/nios2eds/bin/eclipse /opt/altera/19.1/nios2eds/bin/eclipse_nios2
tar xzvf /opt/altera/19.1/nios2eds/bin/eclipse_nios2_plugins.tar.gz -C /opt/altera/19.1/nios2eds/bin

ModelSim starten und Probleme beheben

Auch ModelSim ist nicht direkt kompatibel mit der Ubuntu 18 Version, daher müssen dort auch ein paar Dinge angepasst werden um die Software zum laufen zu bekommen.

  • Der Pfad muss im Startskript anpassen
$ vsim
Error: cannot find "/opt/altera/19.1/modelsim_ase/bin/../linux_rh60/vsim"

cd ${ALTERA_BASEDIR}/modelsim_ase
chmod u+w vco

Die Datei /opt/altera/19.1/modelsim_ase/vco an der unten stehenden Stelle anpassen.

      else
        case $utype in
          2.4.[7-9]*)       vco="linux" ;;
          2.4.[1-9][0-9]*)  vco="linux" ;;
          2.[5-9]*)         vco="linux" ;;
          2.[1-9][0-9]*)    vco="linux" ;;
          3.[0-9]*)             vco="linux" ;;
          *)                vco="linux_rh60" ;;

=> linux_rh60 muss hier durch linux ersetzt werden.

  • Es müssen noch fehlende 32 Bit Bibliotheken installiert werden
sudo apt install libc6:i386 libncurses5:i386 libxtst6:i386 libxft2:i386 libstdc++6:i386
  • libfreetype Problem beheben, indem man Freetype neu baut
$ vsim
Error in startup script:
Initialization problem, exiting.

Initialization problem, exiting.

    while executing
"InitializeINIFile quietly"
    invoked from within
"ncFyP12 -+"
    (file "/mtitcl/vsim/vsim" line 1)
** Fatal: Read failure in vlm process (0,0)

-> /etc/apt/sources.list anpassen und source urls (bionic und bionic-updates) hinzufügen

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://de.archive.ubuntu.com/ubuntu/ bionic main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ bionic main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://de.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ bionic-updates main restricted

Danach kann die Freetype Bibliothek gebaut werden:

sudo apt update
sudo apt install libc6-dev-i386
sudo apt build-dep -a i386 libfreetype6
sudo apt install libharfbuzz-dev:i386 libicu-dev:i386
cd ~/Downloads
wget https://download.savannah.gnu.org/releases/freetype/freetype-2.8.1.tar.gz
tar xvzf freetype-2.8.1.tar.gz
cd freetype-2.8.1
./configure --build=i686-pc-linux-gnu --without-png "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
make -j8

mkdir ${ALTERA_BASEDIR}/modelsim_ase/lib32
cp objs/.libs/libfreetype.so* ${ALTERA_BASEDIR}/modelsim_ase/lib32/

-> In der Datei /opt/altera/19.1/modelsim_ase/vco hinter der folgenden Zeile den LD_LIBRARY_PATH einfügen:
dir=`dirname "$arg0"`

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${ALTERA_BASEDIR}/modelsim_ase/lib32
  • Wenn man ModelSim öffnet wird man feststellen, das die Font Größe der Sourcedateien extrem klein ist. Daher passt man die ModelSim Konfigurationsdatei an.
  1. Die Konfigrurationsdatei ~/.modelsim öffnen ("nano ~/.modelsim" im Terminal)
  2. Danach nach "PrefDefault = ... nach "textFontV2 {{Courier 10 Pitch} 12" suchen. Der Fontname kann ein anderer sein, wobei sich Courier als Fixed-Width Font anbietet.
  3. Die Größe von 12 in -12 ändern. Beispiel: textFontV2 {{Courier 10 Pitch} -12
  4. Konfiguration speichern und ModelSim erneut öffnen.
  • Aufräumen
rm -rf /tmp/qi

ModelSim aus Quartus Prime starten und Probleme beheben

Um ModelSim aus Quartus Prime heraus starten (Tools -> Run Simulation Tool -> RTL Simulation) zu können, muss der Suchpfad zu den ModelSim 32-Bit Bibliotheken in den quartus Startscripts hinterlegt werden.

Fehlermeldung im Log:

    Info: Elapsed time: 00:00:05
    Info: Total CPU time (on all processors): 00:00:05
Error in startup script: 
Initialization problem, exiting.

Initialization problem, exiting.

Initialization problem, exiting.

    while executing
"Transcript::action_log "PROPREAD \"$key\" \"$value\"""
    (procedure "VsimProperties::Init" line 59)
    invoked from within
"VsimProperties::Init $MTIKeypath"
    (procedure "PropertiesInit" line 18)
    invoked from within
"PropertiesInit"
    invoked from within
"ncFyP12 -+"
    (file "/mtitcl/vsim/vsim" line 1)
** Fatal: Read failure in vlm process (0,0)

In dem Environment Skript "/opt/altera/19.1/quartus/adm/qenv.sh" die Zeile

export LD_LIBRARY_PATH=$QUARTUS_BINDIR:$LD_LIBRARY_PATH

durch

export LD_LIBRARY_PATH=$QUARTUS_BINDIR:${ALTERA_BASEDIR}/modelsim_ase/lib32:$LD_LIBRARY_PATH

ersetzen.

Intel SoC FPGA Embedded Development Suite

Download SoCEDS: http://fpgasoftware.intel.com/soceds/19.1/?edition=standard&download_manager=direct&platform=linux

mkdir -p /tmp/soceds
cd /tmp/soceds
-> SoCEDSSetup-19.1.0.670-linux.run nach /tmp/soceds kopieren
chmod +x SoCEDSSetup-19.1.0.670-linux.run

Vorraussetzungen installieren und Installation starten

sudo apt install libwebkitgtk-3.0
sudo apt install libc6:i386 libstdc++6:i386 zlib1g:i386
sudo apt --purge autoremove

./SoCEDSSetup-19.1.0.670-linux.run
  • Installation directory: /opt/altera/19.1

Post-Installation Steps

# um die installation manuell zu starten:
cd /opt/altera/19.1/embedded/ds-5_installer
./install.sh
  • Installer for Arm DS-5 v5.29.2

    • (B) Continue with the installation
  • Installation Directory: /opt/altera/DS-5_v5.29.2

/opt/altera/DS-5_v5.29.2/bin/suite_exec select_default_toolchain

cd /opt/altera/DS-5_v5.29.2
./run_post_install_for_Arm_DS-5_v5.29.2.sh

cd /opt/altera/19.1/embedded/host_tools/altera/ds5_link
./ds5_link /opt/altera/DS-5_v5.29.2
  • ~/.bashrc & /etc/skel/.bashrc anpassen und den Pfad zur embedded_command_shell.sh hinzufügen
# Include Intel SoC FPGA Embedded Development Suite
PATH="$PATH:/opt/altera/19.1/embedded"

export PATH
rm -rf /tmp/soceds

Virtuelle Maschine aufräumen und shrinken

  • Filesystem defragmentieren
# Reboot um leere temp-Verzeichnisse zu erhalten
sudo reboot

# APT Dateien löschen
sudo apt clean

# Partition defragmentieren
sudo e4defrag /
  • Den ungenutzten Platz im Filesystem mit 0en füllen.
dd if=/dev/zero of=wipefile bs=1M; sync; rm wipefile
  • Den Shrink Prozess starten (open-vm-tools müssen installiert sein)
sudo vmware-toolbox-cmd disk shrinkonly

Previous Post