Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| dtpr_versuch_2 [2020/09/28 11:16] – added emacs onebuf beckmanf | dtpr_versuch_2 [2021/03/29 09:57] (current) – gmo | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ===== Digitaltechnik Praktikum | + | ===== Digitaltechnik Praktikum - Einführung Quartus ===== |
| - | In diesem | + | In diesem |
| + | * Manuelles Aufsetzen eines Quartusprojektes mit Hilfe des Assistenten. | ||
| + | * Aufsetzen und Synthese mit eine tcl Skript. | ||
| + | * Synthese auf Basis von Makefiles | ||
| + | |||
| + | Dabei wird in den folgenden Versuchen nur die Synthese mit Hilfe von Makefiles verwendet. Allerdings verwenden Sie die grafische Benutzeroberfläche der Software " | ||
| + | |||
| ==== Vorbereitung ==== | ==== Vorbereitung ==== | ||
| Line 13: | Line 19: | ||
| {{ :: | {{ :: | ||
| - | Starten Sie das Terminal | + | Starten Sie das Terminal |
| {{ :: | {{ :: | ||
| Line 34: | Line 40: | ||
| ==== Laden der Designdaten vom git Server ==== | ==== Laden der Designdaten vom git Server ==== | ||
| - | Die Designdaten für das Digitaltechnikpraktikum sind auf dem [[https://git.etech.fh-augsburg.de|git Server der Fakultät Elektrotechnik]]. Der Zugriff erfolgt über das git Programm. Auf dem git server befindet sich das [[https://git.etech.fh-augsburg.de/ | + | Die Designdaten für das Digitaltechnikpraktikum sind auf dem [[https://gitlab.elektrotechnik.hs-augsburg.de|git Server der Fakultät Elektrotechnik]]. Der Zugriff erfolgt über das git Programm. Auf dem git server befindet sich das [[https://gitlab.elektrotechnik.hs-augsburg.de/ |
| {{ :: | {{ :: | ||
| Line 43: | Line 49: | ||
| mkdir projects | mkdir projects | ||
| cd projects | cd projects | ||
| - | git clone https://git.etech.fh-augsburg.de/ | + | git clone https://gitlab.elektrotechnik.hs-augsburg.de/ |
| ls -la | ls -la | ||
| </ | </ | ||
| Line 68: | Line 74: | ||
| Die VHDL Datei beschreibt ein Design mit 10 Eingängen " | Die VHDL Datei beschreibt ein Design mit 10 Eingängen " | ||
| ==== Synthese mit Altera Quartus - Manuelles Aufsetzen des Projektes ==== | ==== Synthese mit Altera Quartus - Manuelles Aufsetzen des Projektes ==== | ||
| - | |||
| - | 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 | ||
| Im ersten Anlauf wird das Projekt manuell mit Hilfe des Assistenten aufgesetzt. Im Projekt gibt es ein Verzeichnis " | Im ersten Anlauf wird das Projekt manuell mit Hilfe des Assistenten aufgesetzt. Im Projekt gibt es ein Verzeichnis " | ||
| Line 99: | Line 99: | ||
| Es erscheint folgendes Fenster. | Es erscheint folgendes Fenster. | ||
| - | {{ ::quartus01.jpg?800 | Startbildschirm Quartus}} | + | {{ ::dtpr-quartus-start.jpg | Startbildschirm Quartus}} |
| Drücken Sie " | Drücken Sie " | ||
| - | {{ ::quartus02.jpg?800 | Quartus Projektname}} | + | {{ ::dtpr-quartus-projectname.jpg | Quartus Projektname}} |
| Wählen Sie als Projektnamen " | Wählen Sie als Projektnamen " | ||
| - | {{ ::quartus03.jpg?800 | Quartus VHDL Datei ±ð¾±²Ô´Úü²µ±ð²Ô}} | + | {{ ::dtpr-quartus-add-file-1.jpg | Quartus VHDL Datei ²¹³Ü²õ·Éä³ó±ô±ð²Ô}} |
| Im nächsten Schritt müssen dem Projekt die VHDL Dateien hinzugefügt werden. In diesem Projekt gibt es nur die eine Datei " | Im nächsten Schritt müssen dem Projekt die VHDL Dateien hinzugefügt werden. In diesem Projekt gibt es nur die eine Datei " | ||
| - | Ìý | + | {{ ::dtpr-quartus-add-file-2.jpg | Quartus |
| - | {{ ::quartus04.jpg?800 | Quartus | + | |
| Danach muss der FPGA Typ auswählt werden, der sich auf der Platine befindet. Wählen Sie als Familie " | Danach muss der FPGA Typ auswählt werden, der sich auf der Platine befindet. Wählen Sie als Familie " | ||
| - | {{ ::quartus05.jpg?800 | Quartus Device}} | + | {{ ::dtpr-quartus-select-fpga.jpg | Quartus |
| Danach können Sie beim Assistenten immer auf " | Danach können Sie beim Assistenten immer auf " | ||
| - | {{ ::quartus06.jpg?800 | Quartus Projekt eingerichtet ohne Pins}} | + | {{ ::dtpr-quartus-edit-view.jpg | Quartus Projekt eingerichtet ohne Pins}} |
| Starten Sie jetzt die Übersetzung der VHDL Datei mit " | Starten Sie jetzt die Übersetzung der VHDL Datei mit " | ||
| - | {{ ::quartus07.jpg?800 | Quartus Start Compilation}} | + | {{ ::dtpr-quartus-start-compilation.jpg | Quartus Start Compilation}} |
| Die Synthese sollte durchlaufen. Allerdings treten zwei wichtige Warnmeldungen auf. | Die Synthese sollte durchlaufen. Allerdings treten zwei wichtige Warnmeldungen auf. | ||
| - | {{ ::quartus08.jpg?800 | Quartus | + | {{ ::dtpr-quartus-warnings.jpg | Quartus |
| 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 " | 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 " | ||
| - | Man kann die nicht angeschlossenen Pins auch im "Pin Planner" | + | Man kann die nicht angeschlossenen Pins auch im "Pin Planner" |
| - | {{ :: | + | |
| - | Dort sieht man, dass für die Anschlüsse " | + | {{ :: |
| - | {{ ::quartus10.jpg?800 | Quartus Pin Planner ohne Zuordnung der Pins}} | + | Ìý |
| + | Dort sieht man, dass für die Anschlüsse " | ||
| + | Ìý | ||
| + | {{ ::dtpr-quartus-pinplanner-nolocation.jpg | Quartus Pin Planner ohne Zuordnung der Pins}} | ||
| Um die Pins festzulegen wird jetzt mit " | Um die Pins festzulegen wird jetzt mit " | ||
| - | {{ ::quartus11.jpg?800 | Quartus Import Assignments}}Ìý | + | {{ ::dtpr-quartus-import-assignments.jpg | Quartus Import Assignments}}Ìý |
| - | {{ ::quartus12.jpg?800 | Quartus Pin Assignment Datei}} | + | {{ ::dtpr-quartus-select-assignmens.jpg | Quartus Pin Assignment Datei}}Ìý |
| + | Ìý | ||
| + | Wenn man dann den "Pin Planner" | ||
| - | Wenn man dann den "Pin Planner" | + | {{ ::dtpr-quartus-pinplanner-withpins.jpg | Quartus Pin Planner o.k.}} |
| - | {{ ::quartus13.jpg?800 | Quartus Pin Planner o.k.}} | + | |
| Jetzt muss noch festgelegt werden, dass unbenutzte Pins als Eingänge geschaltet werden. Wählen Sie dazu " | Jetzt muss noch festgelegt werden, dass unbenutzte Pins als Eingänge geschaltet werden. Wählen Sie dazu " | ||
| - | {{ ::quartus14.jpg?800 | Quartus Device Options}} | + | {{ ::dtpr-quartus-device-options-1.jpg | Quartus Device Options}} |
| und dann " | und dann " | ||
| - | {{ ::quartus15.jpg?800 | Quartus Device and Pin Options}} | + | {{ ::dtpr-quartus-device-options-2.jpg | Quartus Device and Pin Options}} |
| Wählen Sie dann bei " | Wählen Sie dann bei " | ||
| - | {{ ::quartus16.jpg?800 | Quartus Unused pin options}} | + | Ìý |
| + | {{ ::dtpr-quartus-unused-pins.jpg | Quartus Unused pin options}} | ||
| ** Sie müssen dann die Synthese nochmal neu starten mit " | ** Sie müssen dann die Synthese nochmal neu starten mit " | ||
| - | {{ ::quartus17.jpg?800 | Quartus Programmer starten}} | + | {{ ::dtpr-quartus-programmer-start.jpg | Quartus Programmer starten}} |
| - | Wenn Sie kein Board angeschlossen | + | Im Programmer muss man dann die Programmierschnittstelle zur Programmierung des FPGA ²¹³Ü²õ·Éä³ó±ô±ð²Ô. Das funktioniert nur, wenn auch tatsächlich ein FPGA Board über USB am Rechner |
| - | {{ ::quartus18.jpg?800 | Quartus Programmer | + | {{ ::dtpr-quartus-hardware-setup.jpg | Quartus Programmer}} |
| - | ==== Synthese mit Altera Quartus | + | Wenn das FPGA Board angeschlossen und die virtuelle Maschine richtig konfiguriert ist, dann kann man **USB-Blaster [2-2.2]** ²¹³Ü²õ·Éä³ó±ô±ð²Ô. |
| - | Alternativ zum Aufsetzen mit der interaktiven GUI kann man das Projekt auch mit einem Skript konfigurieren. Der Vorteil dieses Verfahrens ist, dass immer klar ist wie das Projekt konfiguriert wurde. Man kann zu jedem Zeitpunkt auf Basis der VHDL Dateien und der Skripte das Projekt neu aufsetzen. Jede einigermaßen professionelle Entwicklung nutzt deshalb Skripte als Basis. | + | {{:: |
| - | Eine häufig verwendete Skriptsprache für CAE Software ist tcl. Auch Altera verwendet tcl um die Verwendung der GUI zu vermeiden. Wechseln Sie in das Verzeichnis ledsw-scripted. | + | Nach dem Kompilieren steht die FPGA Konfigurationsdatei " |
| + | Ìý | ||
| + | {{:: | ||
| + | Ìý | ||
| + | Wenn der Download erfolgreich war, dann sieht man das am grünen " | ||
| + | Ìý | ||
| + | {{:: | ||
| + | Ìý | ||
| + | Danach kann man auf dem FPGA die roten LED's über die Schalter darunter ein- und ausschalten.Ìý | ||
| + | Ìý | ||
| + | ==== Synthese mit Altera Quartus - Projekt aufsetzen mit Skript ====Ìý | ||
| + | Ìý | ||
| + | Alternativ zum Aufsetzen mit der interaktiven GUI kann man das Projekt auch mit einem Skript konfigurieren. Der Vorteil dieses Verfahrens ist, dass immer klar ist wie das Projekt konfiguriert wurde. Man kann zu jedem Zeitpunkt auf Basis der VHDL Dateien und der Skripte das Projekt neu aufsetzen. Jede einigermaßen professionelle Entwicklung nutzt deshalb Skripte als Basis. | ||
| < | < | ||
| cd | cd | ||
| + | cd projects | ||
| cd digitaltechnikpraktikum | cd digitaltechnikpraktikum | ||
| cd pnr | cd pnr | ||
| Line 182: | Line 198: | ||
| === Erzeugen und Konfigurieren des Projektes === | === Erzeugen und Konfigurieren des Projektes === | ||
| - | Das Skript [[https://git.etech.fh-augsburg.de/ | + | Das Skript [[https://gitlab.elektrotechnik.hs-augsburg.de/ |
| Line 204: | Line 220: | ||
| === Starten der Synthese === | === Starten der Synthese === | ||
| - | Das Skript [[https://git.etech.fh-augsburg.de/ | + | Das Skript [[https://gitlab.elektrotechnik.hs-augsburg.de/ |
| * Analyse und Elaborieren des VHDL Codes | * Analyse und Elaborieren des VHDL Codes | ||
| Line 226: | Line 242: | ||
| </ | </ | ||
| - | Jetzt können mit den Schaltern " | + | Jetzt können mit den Schaltern " |
| + | |||
| ==== Synthese mit Altera Quartus - Make basiert ==== | ==== Synthese mit Altera Quartus - Make basiert ==== | ||
| Line 243: | Line 260: | ||
| </ | </ | ||
| - | In diesem Verzeichnis [[https://git.etech.fh-augsburg.de/ | + | In diesem Verzeichnis [[https://gitlab.elektrotechnik.hs-augsburg.de/ |
| - | In diesem [[https://git.etech.fh-augsburg.de/ | + | In diesem [[https://gitlab.elektrotechnik.hs-augsburg.de/ |
| Um ein Target zu erzeugen muss man make aufrufen. Wenn man kein Target angibt, wird das erste Target genommen, dass gefunden wird. Das ist hier " | Um ein Target zu erzeugen muss man make aufrufen. Wenn man kein Target angibt, wird das erste Target genommen, dass gefunden wird. Das ist hier " | ||
| Line 262: | Line 279: | ||
| < | < | ||
| - | fritz@ubuntu: | + | caeuser@vcae: |
| make: Nothing to be done for `qproject' | make: Nothing to be done for `qproject' | ||
| </ | </ | ||
| Line 281: | Line 298: | ||
| wird das Projekt erzeugt und Quartus mit der graphischen Benutzeroberfläche gestartet. | wird das Projekt erzeugt und Quartus mit der graphischen Benutzeroberfläche gestartet. | ||
| - | ==== Fragen ==== | ||
| - | Folgende Fragen sollte man beantworten können. | ||