Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| dtlab_t6 [2024/04/28 16:55] – created beckmanf | dtlab_t6 [2025/04/10 16:32] (current) – svg to dokuwiki beckmanf | ||
|---|---|---|---|
| Line 7: | Line 7: | ||
| ===== Vorbereitung ===== | ===== Vorbereitung ===== | ||
| + | |||
| + | ==== Logikanalysator im MSO-X 4034A ==== | ||
| + | |||
| + | Das Oszilloskop MSO-X 4034A hat vier analoge Kanäle. Zusätzlich gibt es noch 16 digitale Kanäle. Wenn man mit digitalen Kanälen arbeitet, dann nennt sich dies Logikanalysator. | ||
| + | |||
| + | {{:: | ||
| + | |||
| + | Abb. 1: 8 Kanal Logicprobe Agilent 54620-61601 | ||
| + | |||
| + | In Abbildung 1 ist eine 8 Kanal Logicprobe für die digitalen Kanäle 0 bis 7 dargestellt. Es gibt noch eine weitere Logicprobe für die Kanäle 8 bis 15. Das besondere an den Logicprobes ist, dass die analoge Spannung direkt am Eingang des Oszilloskops mit einer Vergleichsspannung verglichen wird. Danach wird nur noch gespeichert ob es sich um eine 0 oder 1 handelt. Wenn die Spannung größer als die Vergleichsspannung ist, dann wird eine 1 gespeichert, | ||
| ==== Projekt aktualisieren ==== | ==== Projekt aktualisieren ==== | ||
| Line 17: | Line 27: | ||
| ==== VHDL toplevel top_shift ==== | ==== VHDL toplevel top_shift ==== | ||
| - | Die Datei [[https://gitlab.elektrotechnik.hs-augsburg.de/ | + | Die Datei [[https://caeis.etech.fh-augsburg.de/ |
| - | < | + | {{ : |
| - | <img src=" | + | |
| - | </ | + | |
| - | Abb. 1: Toplevel top_shift | + | Abb. 2: Toplevel top_shift |
| - | Im VHDL Code werden zunächst einige Eingänge vom FPGA auf Signale mit einem passenderen Namen zugewiesen. Das Taktsignal CLOCK_50 kommt vom 50 MHz Taktoszillator auf der FPGA Platine. | + | Im VHDL Code von " |
| <code vhdl> | <code vhdl> | ||
| Line 50: | Line 58: | ||
| **Zeichnen Sie die Schieberegisterschaltung.** | **Zeichnen Sie die Schieberegisterschaltung.** | ||
| - | In Abbildung | + | In Abbildung |
| - | < | + | {{ : |
| - | <img src=" | + | |
| - | </ | + | |
| - | Abb. 2: Timingdiagramm Schieberegister | + | Abb. 3: Timingdiagramm Schieberegister |
| ==== Anschluss an den Expansionport 1 ==== | ==== Anschluss an den Expansionport 1 ==== | ||
| Line 64: | Line 70: | ||
| {{:: | {{:: | ||
| - | Abb. 2: Expansionport auf dem FPGA und aus dem Schaltplan | + | Abb. 4: Expansionport auf dem FPGA und aus dem Schaltplan |
| - | In Abbildung | + | In Abbildung |
| <code vhdl> | <code vhdl> | ||
| Line 86: | Line 92: | ||
| Der Eingang SW wird in der Simulation mit einem konstanten Wert simuliert. | Der Eingang SW wird in der Simulation mit einem konstanten Wert simuliert. | ||
| - | Für die Stimulation der Eingänge wird die Testbench in [[https://gitlab.elektrotechnik.hs-augsburg.de/ | + | Für die Stimulation der Eingänge wird die Testbench in [[https://caeis.etech.fh-augsburg.de/ |
| Dort ist die Schaltung top_shift als Device Under Test (DUT) instantiiert. In der Testbench gibt es VHDL Code für die Simulation des 50 MHz Taktsignals, | Dort ist die Schaltung top_shift als Device Under Test (DUT) instantiiert. In der Testbench gibt es VHDL Code für die Simulation des 50 MHz Taktsignals, | ||
| Line 100: | Line 106: | ||
| {{:: | {{:: | ||
| - | Abb. 3: gtkwave zeigt die Simulationsergebnisse der ghdl Simulation von top_shift | + | Abb. 5: gtkwave zeigt die Simulationsergebnisse der ghdl Simulation von top_shift |
| - | In Abbildung | + | In Abbildung |
| - | gtkwave zeigt nicht alle Signale, sondern einige ausgewählte, | + | Diese Signale |
| - | Diese Signale sollen auf dem Expansionport ausgegeben werden. Das ist mit der aktuellen | + | Wenn Sie die Auswahl |
| - | ==== Instantiierung | + | ==== Umstrukturierung und Instantiierung |
| - | Die Funktion des Flankendetektors ist direkt in top_shift.vhd beschrieben. Der Flankendetektor soll jetzt in eigenes Modul und damit in eine eigene Datei bewegt werden. Die Funktion der Schaltung soll sich nicht ändern, d.h. wir strukturieren den Code nur etwas anders. Dazu ist schon die Datei [[https://gitlab.elektrotechnik.hs-augsburg.de/ | + | Die Funktion des Flankendetektors ist direkt in top_shift.vhd beschrieben. Der Flankendetektor soll jetzt in eigenes Modul und damit in eine eigene Datei bewegt werden. Die Funktion der Schaltung soll sich nicht ändern, d.h. wir strukturieren den Code nur etwas anders. Dazu ist schon die Datei [[https://caeis.etech.fh-augsburg.de/ |
| - | < | + | {{ : |
| - | <img src=" | + | |
| - | </ | + | |
| - | Abb. 4: Das Modul " | + | Abb. 6: Das Modul " |
| - | Wie in Abbildung | + | Wie in Abbildung |
| - | Strukturieren Sie den Code um und bringen Sie die Funktion des Flankendetektors in das Modul " | + | Strukturieren Sie den Code um und bringen Sie die Funktion des Flankendetektors in das Modul " |
| - | ==== Ringzähler | + | ==== Ringzähler |
| - | Die roten LEDs werden derzeit direkt von den Schaltern SW gesteuert. Die roten LEDs sollen mit einem 10 Bit Ringzähler angesteuert werden. Der Ringzähler soll in die Datei [[https://gitlab.elektrotechnik.hs-augsburg.de/ | + | Die roten LEDs werden derzeit direkt von den Schaltern SW gesteuert. Die roten LEDs sollen mit einem 10 Bit Ringzähler angesteuert werden. Der Ringzähler soll in die Datei [[https://caeis.etech.fh-augsburg.de/ |
| - | < | + | {{ : |
| - | <img src=" | + | |
| - | </ | + | |
| - | Abb. 5: Ein- und Ausgänge des Moduls ringcnt | + | Abb. 7: Ein- und Ausgänge des Moduls ringcnt |
| - | Die Ein- und Ausgänge des Moduls " | + | Die Ein- und Ausgänge des Moduls " |
| * Ergänzen Sie die port Definition in der entity von ringcnt | * Ergänzen Sie die port Definition in der entity von ringcnt | ||
| Line 148: | Line 150: | ||
| * Laden Sie die Schaltung auf das FPGA und zeigen Sie die Funktion der Schaltung | * Laden Sie die Schaltung auf das FPGA und zeigen Sie die Funktion der Schaltung | ||
| - | ===== Aufgaben ===== | + | ==== Flankendetektor über sechs Takte ==== |
| + | |||
| + | Der derzeitige Flankendetektor zeigt eine Flanke bei einem Übergang von 0 nach 1 oder 1 nach 0 an x_i an. Um die Stabilität zu erhöhen und ganz kurze Pulse am Eingang x nicht als Flanke zu werten, sollen Sie den Flankendetektor verändern. Der neue Flankendetektor soll | ||
| + | |||
| + | * die Folge 000111 und die Folge 111000 als Flanke erkennen | ||
| + | |||
| + | Erweitern Sie den Flankendetektor, | ||
| + | |||
| + | * kurze Pulse wie in der Folge an x_i 0000011000 oder 111110011111 nicht als Flanke erkannt werden | ||
| + | * längere Folgen wie 0000000111111 oder 1111111000000 als Flanke erkannt werden | ||
| + | |||
| + | Dokumentieren Sie den Nachweis der Funktion mit Screenshots des Simulators. | ||
| + | |||
| + | ===== Aufgaben | ||
| * Zeichnung der Schaltung aus " | * Zeichnung der Schaltung aus " | ||
| Line 158: | Line 173: | ||
| * Simulation Ringzähler mit en_i = ' | * Simulation Ringzähler mit en_i = ' | ||
| * Simulation Ringzähler mit en_i am Flankendetektor (Screenshot) | * Simulation Ringzähler mit en_i am Flankendetektor (Screenshot) | ||
| + | * Nachweis am FPGA ohne Logikanalysator | ||
| + | * Anpassung des Flankendetektors und der Testbench an Flankendetektor mit 6 Takten | ||
| + | * Nachweis des neuen Flankendetektors im Simulator (Screenshot) | ||
| ===== Labor ===== | ===== Labor ===== | ||
| Line 163: | Line 181: | ||
| Stellen Sie im Labor Ihre Ergebnisse vor. Bringen Sie die Zeichnungen und die Screenshots der Simulationen mit. | Stellen Sie im Labor Ihre Ergebnisse vor. Bringen Sie die Zeichnungen und die Screenshots der Simulationen mit. | ||
| - | ==== Nachweis | + | ==== Nachweis |
| Schliessen Sie zunächst eine Analogprobe des Oszilloskops an den Expansionport an und zeigen Sie das Taktsignal. | Schliessen Sie zunächst eine Analogprobe des Oszilloskops an den Expansionport an und zeigen Sie das Taktsignal. | ||
| - | Schliessen Sie dann vier Probes vom Logikanalysator an den Expansionport an um die Signale clk, rst_n, x und en zu zeigen. Stellen Sie das Oszilloskop auf " | + | Schliessen Sie die Probes |
| - | ==== Nachweis | + | ==== Nachweis |
| - | Schliessen | + | Stellen |
| ==== Nachweis Ringzähler + Flankenerkennung auf dem FPGA am Expansionport ==== | ==== Nachweis Ringzähler + Flankenerkennung auf dem FPGA am Expansionport ==== | ||
| Schalten Sie die Schaltung jetzt so um, dass der en_i Eingang des Ringzählers mit dem Ausgang des Flankendetektors verbunden ist. Zeigen Sie die Funktion der Schaltung und dokumentieren Sie die Funktion mit einem Screenshot. | Schalten Sie die Schaltung jetzt so um, dass der en_i Eingang des Ringzählers mit dem Ausgang des Flankendetektors verbunden ist. Zeigen Sie die Funktion der Schaltung und dokumentieren Sie die Funktion mit einem Screenshot. | ||
| + | |||
| + | ==== Abgabe Untersuchungsbericht ==== | ||
| + | |||
| + | Laden Sie den Untersuchungsbericht mit den Zeichnungen, | ||