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 [2014/03/28 11:04] beckmanf [Synthese mit Altera Quartus - Make basiert] - first |
dtpr_versuch_2 [2021/03/29 09:57] (current) gmo |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== !!!!!!!!!!!BAUSTELLE!!!!!!!!!!!!!! ===== | ||
+ | ===== Digitaltechnik Praktikum - Einf眉hrung Quartus ===== | ||
- | ===== Digitaltechnik Praktikum Versuch 2 - Einf眉hrung Quartus ===== | + | In diesem Tutorial 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. Sie lernen drei Varianten zum Aufsetzen eines Quartusprojektes kennen |
- | 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. | + | * 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 "Quartus" auch um beispielsweise einen Schaltplan anzuzeigen. | ||
+ | |||
==== Vorbereitung ==== | ==== Vorbereitung ==== | ||
- | Im [[https://www.hs-augsburg.de/~beckmanf/restricted/DE1_V.1.0.1_CDROM/DE1_user_manual/DE1_UserManual_v1.2.1.pdf|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 [[https://www2.hs-augsburg.de/~beckmanf/restricted/DE1_V.1.0.1_CDROM/DE1_schematics/de1_v11a.pdf|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 [[https://www2.hs-augsburg.de/~beckmanf/restricted/DE1_V.1.0.1_CDROM/DE1_lab_exercises/DE1_pin_assignments.csv|DE1_pin_assignments.csv]], in denen diese Zuordnung von Signalnamen wie LEDR0 zu den Pins des FPGA aufgef眉hrt ist. | + | Im [[https://www.hs-augsburg.de/~beckmanf/restricted/DE1_V.1.0.1_CDROM/DE1_user_manual/DE1_UserManual_v1.2.1.pdf|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 [[https://www.hs-augsburg.de/~beckmanf/restricted/DE1_V.1.0.1_CDROM/DE1_schematics/de1_v11a.pdf|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://www.hs-augsburg.de/~beckmanf/restricted/DE1_V.1.0.1_CDROM|CDROM]], die zu dem Altera DE1 Board geh枚rt, befindet sich eine Tabelle [[https://www.hs-augsburg.de/~beckmanf/restricted/DE1_V.1.0.1_CDROM/DE1_lab_exercises/DE1_pin_assignments.csv|DE1_pin_assignments.csv]], in denen diese Zuordnung von Signalnamen wie LEDR0 zu den Pins des FPGA aufgef眉hrt ist. |
==== Starten einer Shell unter Ubuntu ==== | ==== Starten einer Shell unter Ubuntu ==== | ||
- | {{ ::ubuntu01.jpg?800 | Ubuntu Startbildschirm}}听 | + | {{ ::dtpr-start-terminal.jpg | Start des Terminal}} |
- | 听 | + | |
- | Starten Sie die Dash Applikation zur Suche von Programmen und geben Sie dort "terminal" ein. 听 | + | |
- | 听 | + | |
- | {{ ::ubuntu02.jpg?800 | Ubuntu Dash}}听 | + | |
- | 听 | + | |
- | Ziehen Sie das Programm "terminal" nach links in die Startleiste.听 | + | |
- | 听 | + | |
- | {{ ::ubuntu03.jpg?800 | Ubuntu Startleiste mit Terminal}} | + | |
- | Starten Sie dann das Terminal (oder die Shell) durch klicken auf das Terminalsymbol. | + | Starten Sie das Terminal 眉产别谤 das Menu "System Tools -> LX Terminal". |
- | {{ ::ubuntu04.jpg?800 | Ubuntu mit Terminal}} | + | {{ ::dtpr-terminal.jpg | Fenster mit Terminal}} |
Jetzt haben Sie ein ge枚ffnetes Terminalprogramm. | Jetzt haben Sie ein ge枚ffnetes Terminalprogramm. | ||
Line 39: | Line 35: | ||
|man| man ls | Aufruf des Handbuchs f眉r den Befehl "ls" | | |man| man ls | Aufruf des Handbuchs f眉r den Befehl "ls" | | ||
|rm| rm hallo.txt| L枚schen der Datei "hallo.txt" | | |rm| rm hallo.txt| L枚schen der Datei "hallo.txt" | | ||
+ | |less| less hallo.txt| Anschauen der Datei "hallo.txt". Beenden mit "q"| | ||
+ | |[[http://heather.cs.ucdavis.edu/~matloff/UnixAndC/Editors/ViIntro.html|vi]]| vi hallo.txt| Editor starten f眉r die Datei hallo.txt| | ||
==== 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. | + | 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/beckmanf/digitaltechnikpraktikum|Projekt Digitaltechnikpraktikum]] mit den Dateien f眉r das Praktikum. |
- | {{ ::ubuntu05.jpg?800 | Einrichten des Projektverzeichnisses}} | + | {{ ::dtpr-mkdir-projects.jpg | Anlegen 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. | + | Richten Sie ein Verzeichnis "projects" in Ihrem home directory ein. Das Homedirectory ist "/home/caeuser". Wechseln Sie in das Verzeichnis "projects" und laden Sie mit "git" die Designdaten vom git Server. |
<code> | <code> | ||
mkdir projects | mkdir projects | ||
cd projects | cd projects | ||
- | git clone https://git.etech.fh-augsburg.de/friedrich.beckmann/digitaltechnikpraktikum.git | + | git clone https://gitlab.elektrotechnik.hs-augsburg.de/beckmanf/digitaltechnikpraktikum.git |
ls -la | ls -la | ||
</code> | </code> | ||
Line 57: | Line 55: | ||
Das sollte dann so aussehen: | Das sollte dann so aussehen: | ||
- | {{ ::ubuntu06.jpg?800 | Projektverzeichnis nach Download}} | + | {{ ::dtpr-git-clone.jpg | 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. | 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. | ||
Line 65: | Line 63: | ||
cd src | cd src | ||
ls -la | ls -la | ||
- | gedit ledsw_rtl.vhd | + | emacs ledsw_rtl.vhd |
</code> | </code> | ||
- | {{ ::ubuntu07.jpg?800 | gedit mit leds_rtl.vhd}} | + | {{ ::dtpr-emacs.jpg | emacs mit ledsw_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. | + | Im Emacs Editor werden nach dem Start zwei "Buffer" angezeigt. Tippen Sie <code>ctrl-x 1</code> um nur den Buffer mit der VHDL Datei anzuzeigen. |
+ | {{::dtpr-emacs-onebuf.jpg| emacs nach dem Umschalten auf einen Buffer mit ctrl-x 1}} | ||
+ | |||
+ | 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. | ||
==== 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 "pnr". Dieser 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". | Im ersten Anlauf wird das Projekt manuell mit Hilfe des Assistenten aufgesetzt. Im Projekt gibt es ein Verzeichnis "pnr". Dieser 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". | ||
Line 104: | Line 99: | ||
Es erscheint folgendes Fenster. | Es erscheint folgendes Fenster. | ||
- | {{ ::quartus01.jpg?800 | Startbildschirm Quartus}} | + | {{ ::dtpr-quartus-start.jpg | Startbildschirm Quartus}} |
Dr眉cken Sie "Create a new project". | Dr眉cken Sie "Create a new project". | ||
- | {{ ::quartus02.jpg?800 | Quartus Projektname}} | + | {{ ::dtpr-quartus-projectname.jpg | 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. | 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. | ||
- | {{ ::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 "ledsw_rtl.vhd". W盲hlen Sie die Datei aus und klicken Sie auf "ADD". | 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". | ||
- | 听 | + | {{ ::dtpr-quartus-add-file-2.jpg | Quartus VHDL Datei hinzuf眉gen}} |
- | {{ ::quartus04.jpg?800 | 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". | 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". | ||
- | {{ ::quartus05.jpg?800 | Quartus Device}} | + | {{ ::dtpr-quartus-select-fpga.jpg | Quartus Select FPGA Device}} |
Danach k枚nnen Sie beim Assistenten immer auf "Weiter" klicken und dann den Assistenten beenden. Das Projekt sollte dann so aussehen: | Danach k枚nnen Sie beim Assistenten immer auf "Weiter" klicken und dann den Assistenten beenden. Das Projekt sollte dann so aussehen: | ||
- | {{ ::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 "Processing -> Start Compilation". | Starten Sie jetzt die 脺bersetzung der VHDL Datei mit "Processing -> Start Compilation". | ||
- | {{ ::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 Fehlermeldungen bei Synthese}} | + | {{ ::dtpr-quartus-warnings.jpg | Quartus Warnungen 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. | 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. 听 | + | Man kann die nicht angeschlossenen Pins auch im "Pin Planner" anschauen. |
- | {{ ::quartus09.jpg?800 | 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. 听 | + | {{ ::dtpr-quartus-start-pinplanner.jpg | Quartus Pin Planner starten}}听 |
- | {{ ::quartus10.jpg?800 | Quartus Pin Planner ohne Zuordnung der Pins}} | + | 听 |
+ | Dort sieht man, dass f眉r die Anschl眉sse "LEDR" und "SW" noch keine Pinfestlegung erfolgt ist. Das "Location" Feld ist noch leer.听 | ||
+ | 听 | ||
+ | {{ ::dtpr-quartus-pinplanner-nolocation.jpg | Quartus Pin Planner ohne Zuordnung der Pins}} | ||
Um die Pins festzulegen wird jetzt mit "Assignments -> Import Assignments" die Datei "ledsw_pin_assignments.csv" eingelesen. | Um die Pins festzulegen wird jetzt mit "Assignments -> Import Assignments" die Datei "ledsw_pin_assignments.csv" eingelesen. | ||
- | {{ ::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" nochmal 枚ffnet, sieht man die Zuordnung der Ein- und Ausg盲nge zu den Pins auf dem FPGA. | ||
- | Wenn man dann den "Pin Planner" nochmal 枚ffnet, sieht man die Zuordnung der Ein- und Ausg盲nge zu den Pins auf dem FPGA. 听 | + | {{ ::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 "Assignments -> Device". | Jetzt muss noch festgelegt werden, dass unbenutzte Pins als Eing盲nge geschaltet werden. W盲hlen Sie dazu "Assignments -> Device". | ||
- | {{ ::quartus14.jpg?800 | Quartus Device Options}} | + | {{ ::dtpr-quartus-device-options-1.jpg | Quartus Device Options}} |
und dann "Device and Pin Options" | und dann "Device and Pin Options" | ||
- | {{ ::quartus15.jpg?800 | Quartus Device and Pin Options}} | + | {{ ::dtpr-quartus-device-options-2.jpg | Quartus Device and Pin Options}} |
W盲hlen Sie dann bei "Unused Pins" die Option "As input tri-stated". | W盲hlen Sie dann bei "Unused Pins" die Option "As input tri-stated". | ||
- | {{ ::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 "Processing -> Start Compilation".** Nach erfolgreicher Synthese k枚nnen Sie den "Programmer" starten mit "Tools -> Programmer". | ** 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". | ||
- | {{ ::quartus17.jpg?800 | Quartus Programmer starten}} | + | {{ ::dtpr-quartus-programmer-start.jpg | Quartus Programmer starten}} |
- | Wenn Sie kein Board angeschlossen haben, dann sieht das Fenster so aus: | + | 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 angeschlossen ist. Falls Sie mit einer virtuellen Maschine arbeiten, muss der USB Port der virtuellen Maschine zugeordnet werden. |
- | {{ ::quartus18.jpg?800 | Quartus Programmer ohne Platine}} | + | {{ ::dtpr-quartus-hardware-setup.jpg | Quartus Programmer}} |
- | ==== Synthese mit Altera Quartus - Projekt aufsetzen mit Skript ==== | + | 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. | + | {{::dtpr-quartus-hardware-select.jpg| Quartus USB Blaster}} |
- | 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 "ledsw.sof" zur Verf眉gung. Diese Datei muss man mit "Add File" 补耻蝉飞盲丑濒别苍. Danach kann man den Download der Konfigurationsdatei mit "Start" beginnen.听 |
+ | 听 | ||
+ | {{::dtpr-quartus-programmer-file.jpg| Quartus Programmer mit USB Blaster}}听 | ||
+ | 听 | ||
+ | Wenn der Download erfolgreich war, dann sieht man das am gr眉nen "Progress" Balken.听 | ||
+ | 听 | ||
+ | {{::dtpr-quartus-programmer-success.jpg| Quartus Programmer nach erfolgreichem Download}}听 | ||
+ | 听 | ||
+ | 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. 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. | ||
<code> | <code> | ||
cd | cd | ||
+ | cd projects | ||
cd digitaltechnikpraktikum | cd digitaltechnikpraktikum | ||
cd pnr | cd pnr | ||
Line 187: | Line 198: | ||
=== Erzeugen und Konfigurieren des Projektes === | === Erzeugen und Konfigurieren des Projektes === | ||
- | Das Skript [[https://git.etech.fh-augsburg.de/friedrich.beckmann/digitaltechnikpraktikum/blob/master/pnr/ledsw-scripted/create_quartus_project_settings.tcl|create_quartus_project_settings.tcl]] sorgt f眉r die folgenden Schritte beim Aufsetzen des Quartusprojektes. | + | Das Skript [[https://gitlab.elektrotechnik.hs-augsburg.de/beckmanf/digitaltechnikpraktikum/-/blob/master/pnr/ledsw-scripted/create_quartus_project_settings.tcl|create_quartus_project_settings.tcl]] sorgt f眉r die folgenden Schritte beim Aufsetzen des Quartusprojektes. |
* Konfigurieren des Projektnamens | * Konfigurieren des Projektnamens | ||
+ | * Festlegen des FPGA Typen | ||
* Hinzuf眉gen der VHDL Dateien | * Hinzuf眉gen der VHDL Dateien | ||
* Konfigurieren der Pins | * Konfigurieren der Pins | ||
Line 208: | Line 220: | ||
=== Starten der Synthese === | === Starten der Synthese === | ||
- | Das Skript [[https://git.etech.fh-augsburg.de/friedrich.beckmann/digitaltechnikpraktikum/blob/master/pnr/ledsw-scripted/quartus_project_flow.tcl|quartus_project_flow.tcl]] sorgt f眉r die Schritte | + | Das Skript [[https://gitlab.elektrotechnik.hs-augsburg.de/beckmanf/digitaltechnikpraktikum/-/blob/master/pnr/ledsw-scripted/quartus_project_flow.tcl|quartus_project_flow.tcl]] sorgt f眉r die Schritte |
* Analyse und Elaborieren des VHDL Codes | * Analyse und Elaborieren des VHDL Codes | ||
Line 230: | Line 242: | ||
</code> | </code> | ||
- | Jetzt k枚nnen mit den Schaltern "SW" die roten Leuchtdioden auf dem Board an- und ausgeschaltet werden. | + | Jetzt k枚nnen mit den Schaltern "SW" die roten Leuchtdioden auf dem Board an- und ausgeschaltet werden. Die Variante mit dem Skript kommt ohne GUI aus. Allerdings ist es nicht notwendig jedesmal wenn sich beispielsweise der Code in der VHDL Datei ge盲ndert hat auch das Projekt komplett neu aufzusetzen. Das gezielte Ausf眉hren der jeweils notwendigen Skripten wird mit dem im folgenden beschriebenen Make basierten Verfahren gew盲hrleistet.听 |
+ | |||
==== Synthese mit Altera Quartus - Make basiert ==== | ==== Synthese mit Altera Quartus - Make basiert ==== | ||
Line 247: | Line 260: | ||
</code> | </code> | ||
- | In diesem Verzeichnis [[https://git.etech.fh-augsburg.de/friedrich.beckmann/digitaltechnikpraktikum/tree/master/pnr/ledsw-make|ledsw-make]] befinden sich zwei Dateien. Die Datei [[https://git.etech.fh-augsburg.de/friedrich.beckmann/digitaltechnikpraktikum/blob/master/pnr/ledsw-make/makefile|makefile]] enth盲lt die Informationen f眉r das Tool "make". Die Liste der VHDL Dateien f眉r die Synthese wird aus der Datei [[https://git.etech.fh-augsburg.de/friedrich.beckmann/digitaltechnikpraktikum/blob/master/sim/ledsw/makefile.sources|../../sim/ledsw/makefile.sources]] aus dem Simulationsverzeichnis geladen. Danach wird das allgemeine makefile f眉r alle Syntheseprojekte [[https://git.etech.fh-augsburg.de/friedrich.beckmann/digitaltechnikpraktikum/blob/master/pnr/makefile|pnr/makefile]] mit "include ../makefile" geladen. | + | In diesem Verzeichnis [[https://gitlab.elektrotechnik.hs-augsburg.de/beckmanf/digitaltechnikpraktikum/tree/master/pnr/ledsw-make|ledsw-make]] befinden sich zwei Dateien. Die Datei [[https://gitlab.elektrotechnik.hs-augsburg.de/beckmanf/digitaltechnikpraktikum/-/blob/master/pnr/ledsw-make/makefile|makefile]] enth盲lt die Informationen f眉r das Tool "make". Die Liste der VHDL Dateien f眉r die Synthese wird aus der Datei [[https://gitlab.elektrotechnik.hs-augsburg.de/beckmanf/digitaltechnikpraktikum/-/blob/master/sim/ledsw/makefile.sources|../../sim/ledsw/makefile.sources]] aus dem Simulationsverzeichnis geladen. Danach wird das allgemeine makefile f眉r alle Syntheseprojekte [[https://gitlab.elektrotechnik.hs-augsburg.de/beckmanf/digitaltechnikpraktikum/-/blob/master/pnr/makefile|pnr/makefile]] mit "include ../makefile" geladen. |
- | In diesem [[https://git.etech.fh-augsburg.de/friedrich.beckmann/digitaltechnikpraktikum/blob/master/pnr/makefile|pnr/makefile]] sind verschiedene "Targets" angegeben. Targets k枚nnen Dateien oder Namen sein. Ein Target ist beispielsweise die Datei "flowsummary.log". In Zeile 40 steht, dass das Target "flowsummary.log" abh盲ngt von der Quartusprojektdatei ledsw.qpf und dem Skript ../../scripts/quartus_project_flow.tcl. Die Datei ledsw.qpf ist wieder ein eigenes Target. In Zeile 28 steht das "ledsw.qpf" von den VHDL Dateien, von dem Skript [[https://git.etech.fh-augsburg.de/friedrich.beckmann/digitaltechnikpraktikum/blob/master/scripts/create_quartus_project_settings.tcl|create_quartus_project_settings.tcl]] und der Pinkonfigurationsdatei [[https://git.etech.fh-augsburg.de/friedrich.beckmann/digitaltechnikpraktikum/blob/master/pnr/ledsw-make/ledsw_pins.tcl|ledsw_pins.tcl]] abh盲ngt. In den folgenden Zeilen 29 bis 35 steht, wie die Projektdatei ledsw.qpf erzeugt wird. Daneben gibt es noch "PHONY Targets" wie z.B. qproject. Dieses Target h盲ngt von ledsw.qpf ab. | + | In diesem [[https://gitlab.elektrotechnik.hs-augsburg.de/beckmanf/digitaltechnikpraktikum/-/blob/master/pnr/makefile|pnr/makefile]] sind verschiedene "Targets" angegeben. Targets k枚nnen Dateien oder Namen sein. Ein Target ist beispielsweise die Datei "flowsummary.log". In Zeile 40 steht, dass das Target "flowsummary.log" abh盲ngt von der Quartusprojektdatei ledsw.qpf und dem Skript ../../scripts/quartus_project_flow.tcl. Die Datei ledsw.qpf ist wieder ein eigenes Target. In Zeile 28 steht das "ledsw.qpf" von den VHDL Dateien, von dem Skript [[https://gitlab.elektrotechnik.hs-augsburg.de/beckmanf/digitaltechnikpraktikum/-/blob/master/scripts/create_quartus_project_settings.tcl|create_quartus_project_settings.tcl]] und der Pinkonfigurationsdatei [[https://gitlab.elektrotechnik.hs-augsburg.de/beckmanf/digitaltechnikpraktikum/-/blob/master/pnr/ledsw-make/ledsw_pins.tcl|ledsw_pins.tcl]] abh盲ngt. In den folgenden Zeilen 29 bis 35 steht, wie die Projektdatei ledsw.qpf erzeugt wird. Daneben gibt es noch "PHONY Targets" wie z.B. qproject. Dieses Target h盲ngt von ledsw.qpf ab. |
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 "help" und zeigt die m枚glichen Targets an. | 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 "help" und zeigt die m枚glichen Targets an. | ||
Line 266: | Line 279: | ||
<code> | <code> | ||
- | fritz@ubuntu:~/projects/digitaltechnikpraktikum/pnr/ledsw-make$ make qproject | + | caeuser@vcae:~/projects/digitaltechnikpraktikum/pnr/ledsw-make$ make qproject |
make: Nothing to be done for `qproject'. | make: Nothing to be done for `qproject'. | ||
</code> | </code> | ||
Line 284: | Line 297: | ||
wird das Projekt erzeugt und Quartus mit der graphischen Benutzeroberfl盲che gestartet. | wird das Projekt erzeugt und Quartus mit der graphischen Benutzeroberfl盲che gestartet. | ||
+ | |||
+ | |||