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 15:16] – Labor beckmanf | dtlab_t4 [2025/04/10 16:19] (current) – quartus images in dokuwiki beckmanf | ||
|---|---|---|---|
| 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/ | + | Mit dem [[altera_boards|Altera DE 1 Board]], der [[ubuntu_virtual_cae_system|CAD Software]] und dem [[https://caeis.etech.fh-augsburg.de/ |
| 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/ | + | Die [[https://caeis.etech.fh-augsburg.de/ |
| < | < | ||
| cd / | cd / | ||
| - | git clone https://gitlab.elektrotechnik.hs-augsburg.de/ | + | git clone https://caeis.etech.fh-augsburg.de/ |
| </ | </ | ||
| 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 " | ||
| === VHDL Entity === | === VHDL Entity === | ||
| - | Die VHDL Datei [[https://gitlab.elektrotechnik.hs-augsburg.de/ | + | Die VHDL Datei [[https://caeis.etech.fh-augsburg.de/ |
| <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. | ||
| - | < | + | {{ : |
| - | <img src=" | + | |
| - | </ | + | |
| 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:// | + | {{ :public: |
| Öffnen Sie dann den "RTL Viewer" | Öffnen Sie dann den "RTL Viewer" | ||
| - | {{ http:// | + | {{ :public: |
| Sie sehen eine grafische Darstellung des VHDL Codes von " | Sie sehen eine grafische Darstellung des VHDL Codes von " | ||
| Line 193: | Line 193: | ||
| </ | </ | ||
| - | Die Quartus Synthesesoftware stellt den Zusammenhang zwischen den Portnamen in der Entity " | + | Die Quartus Synthesesoftware stellt den Zusammenhang zwischen den Portnamen in der Entity " |
| ==== 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" | Auf Seite 3 "ECC Code Generation Example" | ||
| - | Verwenden Sie analog | + | Verwenden Sie dieses Vorgehen |
| - | 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[7..4] und die gelesenen Prüfbits (P2´, ±Ê1´, P2 , P1) auf SW[3..0] sein. Durch Vergleich der aus den Daten SW[7..4] berechneten neuen Prüfbits mit den gelesenen Prüfbits an SW[3..0] kann man verschiedene Fehlersituationen bei der Annahme von einem Bitfehler unterscheiden. | + | ^ ^D3 ^D2 ^ D1 ^ D0 ^Ìý |
| + | |P2 |x |x | | ||
| + | |P2' | | |x |x |Ìý | ||
| + | |P1 |x | |x | |Ìý | ||
| + | |P1' | |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. | ||
| ^ Situation ^ Erkennung ^ | ^ Situation ^ Erkennung ^ | ||
| - | | Kein Fehler | Die neu berechneten Prüfbits sind gleich den gelesenen an SW[3..0] |Ìý | + | | Kein Fehler | Die neu berechneten Prüfbits sind gleich den gelesenen an SW[7..4] |Ìý |
| - | | Korrigierbarer Fehler | Es unterscheiden sich genau zwei Prüfbits | | + | | Korrigierbarer Fehler | Es unterscheiden sich genau zwei Prüfbits |
| | 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]. | ||
| Line 255: | Line 265: | ||
| | 11 | Nicht korrigierbarer Fehler | | | 11 | Nicht korrigierbarer Fehler | | ||
| - | Geben Sie an LEDR[7..5] das ggf. korrigierte Datenwort aus. | + | Geben Sie an LEDR[7..4] das ggf. korrigierte Datenwort aus.Ìý |
| + | Ìý | ||
| + | ==== Hinweise VHDL ====Ìý | ||
| + | Ìý | ||
| + | In top_simple.vhd gibt es nur Ausdrücke, die LEDR oder LEDG direkt aus SW berechnen. Sie können jedoch auch Zwischensignale einführen.Ìý | ||
| + | Ìý | ||
| + | === Signale ===Ìý | ||
| + | <code vhdl>Ìý | ||
| + | architecture rtl_new of top_simple isÌý | ||
| + | signal one_is_on : std_ulogic; | ||
| + | beginÌý | ||
| + | one_is_on <= SW(0) xor SW(1);Ìý | ||
| + | LEDR(0) <= one_is_on; | ||
| + | end architecture; | ||
| + | </ | ||
| + | Ìý | ||
| + | === selected signal assignment ===Ìý | ||
| + | Mit einem " | ||
| + | Ìý | ||
| + | <code vhdl>Ìý | ||
| + | architecture rtl_new of top_simple isÌý | ||
| + | signal one_is_on : std_ulogic; | ||
| + | beginÌý | ||
| + | with SW(2 downto 0) selectÌý | ||
| + | one_is_on <= ' | ||
| + | ' | ||
| + | LEDG(0) <= one_is_on; | ||
| + | end architecture; | ||
| + | </ | ||
| + | Ìý | ||
| + | Ìý | ||
| + | Ìý | ||
| + | Ìý | ||
| + | Ìý | ||
| + | Ìý | ||
| ===== Labor ===== | ===== Labor ===== | ||