Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
dtlab_t4 [2024/03/11 17:45] beckmanf [LEDG5..0 ECC] |
dtlab_t4 [2025/04/10 16:19] (current) beckmanf quartus images in dokuwiki |
||
---|---|---|---|
Line 4: | Line 4: | ||
===== Aufgabenstellung ===== | ===== Aufgabenstellung ===== | ||
- | Mit dem [[altera_boards|Altera DE 1 Board]], der [[ubuntu_virtual_cae_system|CAD Software]] und dem [[https://gitlab.elektrotechnik.hs-augsburg.de/beckmanf/dtlab|VHDL Projektverzeichnis]] starten Sie mit VHDL und steuern die roten und grünen LEDs auf dem Board abhängig von den Schaltern. | + | Mit dem [[altera_boards|Altera DE 1 Board]], der [[ubuntu_virtual_cae_system|CAD Software]] und dem [[https://caeis.etech.fh-augsburg.de/beckmanf/dtlab.git/tree/|VHDL Projektverzeichnis]] starten Sie mit VHDL und steuern die roten und grünen LEDs auf dem Board abhängig von den Schaltern. |
In der Vorbereitung installieren Sie die virtuelle Maschine und das Projektverzeichnis und nehmen eine Änderung am Code vor. | In der Vorbereitung installieren Sie die virtuelle Maschine und das Projektverzeichnis und nehmen eine Änderung am Code vor. | ||
Line 61: | Line 61: | ||
==== Download des VHDL Projektverzeichnisses ==== | ==== Download des VHDL Projektverzeichnisses ==== | ||
- | Die [[https://gitlab.elektrotechnik.hs-augsburg.de/beckmanf/dtlab|VHDL Projektdateien]] sind auf dem gitlab Server der Fakultät Elektrotechnik. Laden Sie die Projektdateien über git in das Verzeichnis "projects". | + | Die [[https://caeis.etech.fh-augsburg.de/beckmanf/dtlab.git/tree/|VHDL Projektdateien]] sind auf dem git server des Labors. Laden Sie die Projektdateien über git in das Verzeichnis "projects". |
<code> | <code> | ||
cd /home/caeuser/projects | cd /home/caeuser/projects | ||
- | git clone https://gitlab.elektrotechnik.hs-augsburg.de/beckmanf/dtlab | + | git clone https://caeis.etech.fh-augsburg.de/beckmanf/dtlab.git |
</code> | </code> | ||
Line 111: | Line 111: | ||
==== VHDL Entity und Architecture ==== | ==== VHDL Entity und Architecture ==== | ||
+ | |||
+ | Nach einer [[dt-code|Einführung zu dem Konzept von Entity und Architecture]] dann die Entity und Architecture für "top_simple". | ||
=== VHDL Entity === | === VHDL Entity === | ||
- | Die VHDL Datei [[https://gitlab.elektrotechnik.hs-augsburg.de/beckmanf/dtlab/-/blob/master/src/top_simple.vhd|"top_simple.vhd"]] enthält eine "entity". | + | Die VHDL Datei [[https://caeis.etech.fh-augsburg.de/beckmanf/dtlab.git/tree/src/top_simple.vhd|"top_simple.vhd"]] enthält eine "entity". |
<code vhdl> | <code vhdl> | ||
Line 133: | Line 135: | ||
Die beiden Ausgangsports LEDG und LEDR haben 8 und 10 Leitungen. Man kann die Entity als Schaltungsmodul mit Ein- und Ausgängen auffassen. So eine grafische Darstellung ist in Abbildung 1 dargestellt. | Die beiden Ausgangsports LEDG und LEDR haben 8 und 10 Leitungen. Man kann die Entity als Schaltungsmodul mit Ein- und Ausgängen auffassen. So eine grafische Darstellung ist in Abbildung 1 dargestellt. | ||
- | &±ô³Ù;³ó³Ù³¾±ô&²µ³Ù;Ìý | + | {{ :public:praktikum_digitaltechnik:top_simple.svg?width="400" |top_simple}} |
- | <img src="http://breakout.hs-augsburg.de/dwimg/top_simple.svg" width="400" &²µ³Ù;Ìý | + | |
- | </html> | + | |
Abb. 1: Entity top_simple mit dem Eingang SW und den Ausgängen LEDG und LEDR | Abb. 1: Entity top_simple mit dem Eingang SW und den Ausgängen LEDG und LEDR | ||
Line 166: | Line 166: | ||
Sie sollten dann die Quartus Software sehen | Sie sollten dann die Quartus Software sehen | ||
- | {{ http://breakout.hs-augsburg.de/dwimg/quartus-start.jpg | Quartus Start }} | + | {{ :public:praktikum_digitaltechnik:quartus-start.jpg | Quartus Start}} |
Öffnen Sie dann den "RTL Viewer" mit "Tools => Netlist Viewers => RTL Viewer". | Öffnen Sie dann den "RTL Viewer" mit "Tools => Netlist Viewers => RTL Viewer". | ||
- | {{ http://breakout.hs-augsburg.de/dwimg/quartus-rtl-view.jpg | Quartus RTL viewer }} | + | {{ :public:praktikum_digitaltechnik:quartus-rtl-view.jpg | Quartus RTL viewer}} |
Sie sehen eine grafische Darstellung des VHDL Codes von "top_simple". U.a. ist das UND Gatter zu sehen. | Sie sehen eine grafische Darstellung des VHDL Codes von "top_simple". U.a. ist das UND Gatter zu sehen. | ||
Line 193: | Line 193: | ||
</code> | </code> | ||
- | Die Quartus Synthesesoftware stellt den Zusammenhang zwischen den Portnamen in der Entity "top_simple" und den Pins am FPGA über die [[https://gitlab.elektrotechnik.hs-augsburg.de/beckmanf/dtlab/-/blob/master/pnr/top_simple/top_simple_pins.tcl|Pinkonfigurationsdatei top_simple_pins.tcl]] her. Dort sehen Sie, dass dem Pin L22 der Portname SW(0) zugeordnet ist. | + | Die Quartus Synthesesoftware stellt den Zusammenhang zwischen den Portnamen in der Entity "top_simple" und den Pins am FPGA über die [[https://caeis.etech.fh-augsburg.de/beckmanf/dtlab.git/tree/pnr/top_simple/top_simple_pins.tcl|Pinkonfigurationsdatei top_simple_pins.tcl]] her. Dort sehen Sie, dass dem Pin L22 der Portname SW(0) zugeordnet ist. |
==== VHDL Code ändern ==== | ==== VHDL Code ändern ==== | ||
Line 218: | Line 218: | ||
Im RTL Viewer sollte dann ein XOR Gatter zu sehen sein und auf dem Board hat sich die Funktion an LEDG1 geändert. | Im RTL Viewer sollte dann ein XOR Gatter zu sehen sein und auf dem Board hat sich die Funktion an LEDG1 geändert. | ||
+ | |||
+ | ==== Schaltplan zeichnen ==== | ||
+ | |||
+ | Zeichnen Sie auf Papier (oder elektronischem Papier) einen Schaltplan, der das FPGA mit der Schaltung von top_simple darstellt. Bringen Sie den Schaltplan mit in das Labor. | ||
===== Aufgaben ===== | ===== Aufgaben ===== | ||
Line 237: | Line 241: | ||
Auf Seite 3 "ECC Code Generation Example" wird das Verfahren für die Berechnung von sechs Prüfbits (P4´, P2´, ±Ê1´, P4, P2 , P1) für ein Datenwort mit acht Bit beschrieben. | Auf Seite 3 "ECC Code Generation Example" wird das Verfahren für die Berechnung von sechs Prüfbits (P4´, P2´, ±Ê1´, P4, P2 , P1) für ein Datenwort mit acht Bit beschrieben. | ||
- | Verwenden Sie dieses Vorgehen analog für die Berechnung der Prüfbits (P2´, ±Ê1´, P2 , P1) für ein 4 Bit Datenwort. Geben Sie die Prüfbits (P2´, ±Ê1´, P2 , P1) für die Berechnung der Daten auf den grünen LEDs LEDG[3..0] aus. Das Datenwort D[3..0] = "1011" sollte dann (P2´, ±Ê1´, P2 , P1) = "0110" ergeben. Mit P2´=D1 xor D0, P1`= D2 xor D0, P2=D3 xor D2 und P1 = D3 xor D1. | + | Verwenden Sie dieses Vorgehen analog für die Berechnung der Prüfbits (P2´, ±Ê1´, P2 , P1) für ein 4 Bit Datenwort. Geben Sie die Prüfbits (P2´, ±Ê1´, P2 , P1) für die Berechnung der Daten auf den grünen LEDs LEDG[3..0] aus. Das Datenwort D[3..0] = "1011" sollte dann (P2´, ±Ê1´, P2 , P1) = "0110" ergeben. Mit P2´=D1 xor D0, ±Ê1´= D2 xor D0, P2=D3 xor D2 und P1 = D3 xor D1.Ìý |
+ | Ìý | ||
+ | ^ ^D3 ^D2 ^ D1 ^ D0 ^Ìý | ||
+ | |P2 |x |x | | |Ìý | ||
+ | |P2' | | |x |x |Ìý | ||
+ | |P1 |x | |x | |Ìý | ||
+ | |P1' | |x | |x | | ||
Simulieren Sie jetzt einen Lesezugriff auf ein 4 Bit Datenwort mit den zugehörigen 4 Prüfbits mit den Schaltern. Die Datenbits sollen auf SW[3..0] und die gelesenen Prüfbits (P2´, ±Ê1´, P2 , P1) auf SW[7..4] sein. Durch Vergleich der aus den Daten SW[3..0] berechneten neuen Prüfbits mit den gelesenen Prüfbits an SW[7..4] kann man verschiedene Fehlersituationen bei der Annahme von einem Bitfehler unterscheiden. | Simulieren Sie jetzt einen Lesezugriff auf ein 4 Bit Datenwort mit den zugehörigen 4 Prüfbits mit den Schaltern. Die Datenbits sollen auf SW[3..0] und die gelesenen Prüfbits (P2´, ±Ê1´, P2 , P1) auf SW[7..4] sein. Durch Vergleich der aus den Daten SW[3..0] berechneten neuen Prüfbits mit den gelesenen Prüfbits an SW[7..4] kann man verschiedene Fehlersituationen bei der Annahme von einem Bitfehler unterscheiden. | ||
Line 245: | Line 255: | ||
| Korrigierbarer Fehler | Es unterscheiden sich genau zwei Prüfbits und es ändern sich nicht gleichzeitig P1 und ±Ê1´ oder P2 und P2´. | | | Korrigierbarer Fehler | Es unterscheiden sich genau zwei Prüfbits und es ändern sich nicht gleichzeitig P1 und ±Ê1´ oder P2 und P2´. | | ||
| ECC Fehler (Ein Bit) | Genau ein Prüfbit unterscheidet sich | | | ECC Fehler (Ein Bit) | Genau ein Prüfbit unterscheidet sich | | ||
- | | Nicht korrigierbar | Mehr als ein Prüfbit unterscheidet sich | | + | | Nicht korrigierbar | Alles andere | |
Signalisieren Sie das an LEDG[5..4]. | Signalisieren Sie das an LEDG[5..4]. |