[[dtpr_versuch_2]]

This is an old revision of the document!


In diesem Versuch lernen Sie die FPGA Synthesesoftware Quartus von Altera kennen. Das Ziel ist es das FPGA so zu konfigurieren, dass mit Hilfe der Schalter SW die roten Leuchtdioden LEDR ein- und ausgeschaltet werden können.

Im User Manual für das Altera DE1 Board finden Sie auf den Seiten 24 bis 27 eine Beschreibung der LEDs, der Schalter SW und der Taster KEYS. Im Schaltplan des DE1 Boards können Sie nachschauen an welchen Pins die LEDs und die Schalter angeschlossen sind. Diese Anschlüsse sind auch im Handbuch in Tabellen 4.1 bis 4.3 angegeben. Beispielsweise ist LEDR0 an Pin R20 des FPGA angeschlossen. Auf der https://www2.hs-augsburg.de/~beckmanf/restricted/DE1_V.1.0.1_CDROM/CDROM, die zu dem Altera DE1 Board gehört, befindet sich eine Tabelle DE1_pin_assignments.csv, in denen diese Zuordnung von Signalnamen wie LEDR0 zu den Pins des FPGA aufgeführt ist.

 Ubuntu Startbildschirm

Starten Sie die Dash Applikation zur Suche von Programmen und geben Sie dort “terminal” ein.

 Ubuntu Dash

Ziehen Sie das Programm “terminal” nach links in die Startleiste.

 Ubuntu Startleiste mit Terminal

Starten Sie dann das Terminal (oder die Shell) durch klicken auf das Terminalsymbol.

 Ubuntu mit Terminal

Jetzt haben Sie ein geöffnetes Terminalprogramm.

Überblick über einige Unix Shellbefehle

Befehl Beispiel Beschreibung
ls ls -la Anzeige der Dateien im aktuellen Verzeichnis
pwd pwd Anzeige des Pfads vom aktuellen Verzeichnis
mkdir mkdir projects Erzeugen eines neuen Verzeichnisses “projects”
cd cd projects Wechsel in das Verzeichnis “projects”
cd cd .. Wechsel in das höhere Verzeichnis ausgehend vom aktuellen Verzeichnis
man man ls Aufruf des Handbuchs für den Befehl “ls”
rm rm hallo.txt Löschen der Datei “hallo.txt”

Die Designdaten für das Digitaltechnikpraktikum sind auf dem git Server der Fakultät Elektrotechnik. Der Zugriff erfolgt über das git Programm.

 Einrichten des Projektverzeichnisses

Richten Sie ein Verzeichnis “projects” in Ihrem home directory ein. Das Homedirectory ist “/home/caeuser”. In dieser Anleitung ist das Homeverzeichnis “/home/fritz”, da ich die Anleitung auf meinem Rechner entworfen habe. Wechseln Sie in das Verzeichnis “projects” und laden Sie mit “git” die Designdaten vom git Server.

mkdir projects
cd projects
git clone https://git.etech.fh-augsburg.de/friedrich.beckmann/digitaltechnikpraktikum.git
ls -la

Das sollte dann so aussehen:

 Projektverzeichnis nach Download

Wechseln sie dann in das Verzeichnis “digitaltechnikpraktikum” und dann in das Verzeichnis “src”. Starten Sie dort einen Editor und schauen sich die Datei “ledsw_rtl.vhd” an.

cd digitaltechnikpraktikum
cd src
ls -la
gedit ledsw_rtl.vhd

 gedit mit leds_rtl.vhd

Die VHDL Datei beschreibt ein Design mit 10 Eingängen “SW” und 10 Ausgängen “LEDR”. In der Architektur werden die Eingänge “SW” auf die Ausgänge “LEDR” geschaltet. Damit sollen die roten LEDs abhängig von den Schaltern “SW” ein- und ausgeschaltet werden.

In diesem Versuch lernen Sie drei Varianten zum Aufsetzen eines Quartusprojektes kennen

  • Manuelles Aufsetzen eines Quartusprojektes mit Hilfe des Assistenten.
  • Aufsetzen und Synthese mit eine tcl Skript.
  • Synthese auf Basis von Makefiles

Manuelles Aufsetzen eines Quartusprojektes

Im Projekt gibt es ein Verzeichnis “pnr”. Diese Name steht für “Place And Route” und umfasst die Designdaten für die Synthese einer Schaltung für das FPGA. Wechseln Sie in das Verzeichnis “ledsw-manual”.

cd
cd projects
cd digitaltechnikpraktikum
cd pnr
cd ledsw-manual

In diesem Verzeichnis befindet sich eine Datei “ledsw_pin_assignments.csv”. Diese Datei enthält die Pinkonfiguration für die Schalter “SW” und die Leuchtdioden “LEDR” Sie können sich die Datei mit

less ledsw_pin_assignments.csv

anschauen. Zum Verlassen von “less” drücken Sie “q”. Starten Sie jetzt die Altera Quartus Software mit “quartus”

quartus

Es erscheint folgendes Fenster.

 Startbildschirm Quartus

Drücken Sie “Create a new project”.

 Quartus Projektname

Wählen Sie als Projektnamen “ledsw” und als Namen für die Toplevelentity auch “ledsw”. Achten Sie darauf, dass das working directory “digitaltechnikpraktikum/pnr/ledsw-manual” ist. In diesem Verzeichnis werden die (u.a. temporäre) Projektdateien gespeichert.

 Quartus VHDL Datei einfügen

Im nächsten Schritt müssen dem Projekt die VHDL Dateien hinzugefügt werden. In diesem Projekt gibt es nur die eine Datei “ledsw_rtl.vhd”. Wählen Sie die Datei aus und klicken Sie auf “ADD”.

 Quartus Projektname

Danach muss der FPGA Typ auswählt werden, der sich auf der Platine befindet. Wählen Sie als Familie “Cyclone II” und als Baustein “EP2C20F484C7”.

 Quartus Device

Danach können Sie beim Assistenten immer auf “Weiter” klicken und dann den Assistenten beenden. Das Projekt sollte dann so aussehen:

 Quartus Projekt eingerichtet ohne Pins

Starten Sie jetzt die Übersetzung der VHDL Datei mit “Processing → Start Compilation”.

 Quartus Start Compilation

Die Synthese sollte durchlaufen. Allerdings treten zwei wichtige Warnmeldungen auf.

 Quartus Fehlermeldungen bei Synthese

Die eine Meldung sagt aus, dass für Ein- und Ausgänge keine Pins auf dem FPGA festgelegt sind. Die andere Meldung besagt, dass alle ungenutzten Pins vom FPGA als “Output driving Ground” geschaltet sind. Das ist nicht gut, wenn an diesem Pin z.B. ein Schalter angeschlossen ist, der auf VDD geschaltet ist. Dann gibt es einen Kurzschluss.

Man kann die nicht angeschlossenen Pins auch im “Pin Planner” anschauen.  Quartus Pin Planner starten

Dort sieht man, dass für die Anschlüsse “LEDR” und “SW” noch keine Pinfestlegung erfolgt ist. Das “Location” Feld ist noch leer.  Quartus Pin Planner ohne Zuordnung der Pins

Um die Pins festzulegen wird jetzt mit “Assignments → Import Assignments” die Datei “ledsw_pin_assignments.csv” eingelesen.

 Quartus Import Assignments  Quartus Pin Assignment Datei

Wenn man dann den “Pin Planner” nochmal öffnet, sieht man die Zuordnung der Ein- und Ausgänge zu den Pins auf dem FPGA.  Quartus Pin Planner o.k.

Jetzt muss noch festgelegt werden, dass unbenutzte Pins als Eingänge geschaltet werden. Wählen Sie dazu “Assignments → Device”.

 Quartus Device Options

und dann “Device and Pin Options”

 Quartus Device and Pin Options

Wählen Sie dann bei “Unused Pins” die Option “As input tri-stated”.  Quartus Unused pin options

Sie müssen dann die Synthese nochmal neu starten mit “Processing → Start Compilation”. Nach erfolgreicher Synthese können Sie den “Programmer” starten mit “Tools → Programmer”.

 Quartus Programmer starten

Wenn Sie kein Board angeschlossen haben, dann sieht das Fenster so aus:

 Quartus Programmer ohne Platine

  • dtpr_versuch_2.1395939770.txt.gz
  • Last modified: 2014/03/27 18:02
  • by beckmanf