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:39] beckmanf [LEDG5..0 ECC] |
dtlab_t4 [2025/03/14 20:38] (current) beckmanf switch code server |
||
---|---|---|---|
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 193: | Line 195: | ||
</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 220: | ||
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 243: | ||
Auf Seite 3 "ECC Code Generation Example" wird das Verfahren für die Berechnung von sechs Prüfbits (P4´, P2´, P1´, 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´, P1´, P4, P2 , P1) für ein Datenwort mit acht Bit beschrieben. | ||
- | Verwenden Sie analog dieses Vorgehen für die Berechnung der Prüfbits (P2´, P1´, P2 , P1) für ein 4 Bit Datenwort. Geben Sie die Prüfbits (P2´, P1´, 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´, P1´, P2 , P1) = "0111" 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´, P1´, P2 , P1) für ein 4 Bit Datenwort. Geben Sie die Prüfbits (P2´, P1´, 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´, P1´, P2 , P1) = "0110" ergeben. Mit P2´=D1 xor D0, P1´= 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´, P1´, 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´, P1´, 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 243: | Line 255: | ||
^ Situation ^ Erkennung ^ | ^ Situation ^ Erkennung ^ | ||
| Kein Fehler | Die neu berechneten Prüfbits sind gleich den gelesenen an SW[7..4] | | | Kein Fehler | Die neu berechneten Prüfbits sind gleich den gelesenen an SW[7..4] | | ||
- | | Korrigierbarer Fehler | Es unterscheiden sich genau zwei Prüfbits es ändert sich nicht gleichzeitg P1 und P1´ oder P2 und P2´. | | + | | Korrigierbarer Fehler | Es unterscheiden sich genau zwei Prüfbits und es ändern sich nicht gleichzeitig P1 und P1´ 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]. |