[[dtpr_versuch_4]]

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
dtpr_versuch_4 [2021/03/20 06:59]
beckmanf Multiplexer eingefügt.
dtpr_versuch_4 [2023/04/02 17:03] (current)
beckmanf [Aufgabe Siebensegmentanzeige] How to setup a new module
Line 17: Line 17:
 </​code>​ </​code>​
  
-eingeben. Dann werden neue oder geänderte Daten vom git server geladen. Wenn auf dem Server Änderungen an Dateien vorgenommen wurden für die Sie auch Änderungen vorgenommen haben, z.B. für die Datei t_ledcomb.vhd, dann wird die pull Aktion abgebrochen. In diesem Fall müssen die Dateien zusammengeführt werden, allerdings können Sie auch ihre Änderungen verwerfen. Sie können ihre Änderungen verwerfen und den letzten Stand wiederherstellen mit+eingeben. Dann werden neue oder geänderte Daten vom git server geladen. Wenn auf dem Server Änderungen an Dateien vorgenommen wurden für die Sie auch Änderungen vorgenommen haben, dann wird die pull Aktion abgebrochen. In diesem Fall müssen die Dateien zusammengeführt werden, allerdings können Sie auch ihre Änderungen verwerfen. Sie können ihre Änderungen verwerfen und den letzten Stand wiederherstellen mit
  
 <​code>​ <​code>​
Line 30: Line 30:
 ==== Beispiel ledcomb_rtl.vhd ==== ==== Beispiel ledcomb_rtl.vhd ====
  
-Im Projektverzeichnis finden Sie als Beispiel für die Darstellung von kombinatorischen Schaltungen die Datei [[https://​gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​src/​ledcomb_rtl.vhd|ledcomb_rtl.vhd]]. Dazu passend gibt es das Simulationsverzeichnis "​sim/​ledcomb"​ und das Syntheseverzeichnis "​pnr/​ledcomb"​.+Im Projektverzeichnis finden Sie als Beispiel für die Darstellung von kombinatorischen Schaltungen die Datei [[https://​gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​src/​ledcomb_rtl.vhd|ledcomb_rtl.vhd]]. Dazu passend gibt es das Syntheseverzeichnis "​pnr/​ledcomb"​.
  
-Die Schaltung ledcomb hat als Eingänge die Schalter "​SW"​. Die Ausgänge sind die roten LEDs "​LEDR"​ und die grünen LEDs "​LEDG"​. Die roten LEDs zeigen den Zustand der Schalter an. An den grünen LEDs werden verschiedene boolesche Funktionen dargestellt. In der Schaltung ledcomb gibt es weiterhin ​zwei Signale s0 und s1. Die Signale können wie Netze in einem Schaltplan verstanden werden.+Die Schaltung ledcomb hat als Eingänge die Schalter "​SW"​. Die Ausgänge sind die roten LEDs "​LEDR"​ und die grünen LEDs "​LEDG"​. Die roten LEDs zeigen den Zustand der Schalter an. An den grünen LEDs werden verschiedene boolesche Funktionen dargestellt. In der Schaltung ledcomb gibt es weiterhin ​drei Signale s0s1 und s2. Die Signale können wie Netze in einem Schaltplan verstanden werden.
  
   - Skizzieren Sie die Schaltungen für die Ausgänge LEDG(0), LEDG(1), LEDG(2), LEDG(3)   - Skizzieren Sie die Schaltungen für die Ausgänge LEDG(0), LEDG(1), LEDG(2), LEDG(3)
Line 42: Line 42:
   - Skizzieren Sie die Schaltung für den Ausgang LEDG(4)   - Skizzieren Sie die Schaltung für den Ausgang LEDG(4)
   - Erläutern Sie wie die Ausgänge LEDG(7..5) von den Eingängen SW(9..6) abhängen.   - Erläutern Sie wie die Ausgänge LEDG(7..5) von den Eingängen SW(9..6) abhängen.
- 
-In der Datei [[https://​gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​src/​t_ledcomb.vhd|t_ledcomb.vhd]] befindet sich die Testbench für das Design in ledcomb.vhd. Starten Sie im Verzeichnis "​sim/​ledcomb"​ die Simulation der Schaltung. Erläutern Sie das Verhalten der Ausgänge LEDG und LEDR im Simulator! 
  
 Wechseln Sie jetzt in das Verzeichnis "​pnr/​ledcomb",​ starten Sie die Schaltungssynthese und laden Sie das Design auf das FPGA Board. Wechseln Sie jetzt in das Verzeichnis "​pnr/​ledcomb",​ starten Sie die Schaltungssynthese und laden Sie das Design auf das FPGA Board.
  
-  - Prüfen ​Sie ob das Ergebnis im Simulator mit dem Verhalten auf dem Board übereinstimmt. +  - Zeigen ​Sie, dass die grünen LEDs LEDG(7..5) die Anzahl der eingeschalteten Schalter SW(9..6) als Binärzahl anzeigt.
-  - Welche Tests fehlen für welche Schaltungsteile noch? +
-  - Prüfen Sie die fehlenden Tests auf dem Board nach.+
   - Wie und Warum unterscheiden sich die Dateien [[https://​gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​pnr/​ledcomb/​ledcomb_pins.tcl|ledcomb_pins.tcl]] und [[https://​gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​pnr/​ledsw-make/​ledsw_pins.tcl|ledsw_pins.tcl]]?​   - Wie und Warum unterscheiden sich die Dateien [[https://​gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​pnr/​ledcomb/​ledcomb_pins.tcl|ledcomb_pins.tcl]] und [[https://​gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​pnr/​ledsw-make/​ledsw_pins.tcl|ledsw_pins.tcl]]?​
  
Line 96: Line 92:
 ==== Beispiel hierarchisches Design ==== ==== Beispiel hierarchisches Design ====
  
-In der Datei [[https://​gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​src/​cntones_rtl.vhd|cntones_rtl.vhd]] finden Sie eine Schaltungsbeschreibung für eine Schaltung, die die Anzahl der Einsen an den vier Eingängen zählt. ​Zu der Schaltung gibt es eine Testbench [[https://​gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​src/​t_cntones.vhd|t_cntones.vhd]]. Wechseln Sie in das Verzeichnis "​sim/​cntones"​ und starten Sie die Simulation. +In der Datei [[https://​gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​src/​cntones_rtl.vhd|cntones_rtl.vhd]] finden Sie eine Schaltungsbeschreibung für eine Schaltung, die die Anzahl der Einsen an den vier Eingängen zählt. ​
- +
-  - Funktioniert die Schaltung für die vorhandenen Testmuster in der Simulation?+
  
 Diese Einserzählschaltung soll jetzt genutzt werden um die Anzahl der Einsen an den SW(3..0) und SW(9..6) zu zählen. Das Ergebnis für SW(3..0) soll an LEDG(2..0) und für SW(9..6) an LEDG(7..5) dargestellt werden. Diese Einserzählschaltung soll jetzt genutzt werden um die Anzahl der Einsen an den SW(3..0) und SW(9..6) zu zählen. Das Ergebnis für SW(3..0) soll an LEDG(2..0) und für SW(9..6) an LEDG(7..5) dargestellt werden.
  
-In der Datei [[https://​gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​src/​ledcntsw_rtl.vhd|ledcntsw_rtl.vhd]] finden Sie die Schaltungsbeschreibung,​ die die Schaltung cntones zweimal instantiiert und mit den entsprechenden Eingängen und Ausgängen verbindet. Dazu gibt es das Simulationsverzeichnis "​sim/​ledcntsw"​ und das Syntheseverzeichnis "pnr/ledcntsw".+In der Datei [[https://​gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​src/​de1_ledcntsw_rtl.vhd|de1_ledcntsw_rtl.vhd]] finden Sie die Schaltungsbeschreibung,​ die die Schaltung cntones zweimal instantiiert und mit den entsprechenden Eingängen und Ausgängen verbindet. Dazu gibt es das Syntheseverzeichnis "pnr/de1_ledcntsw".
  
-  ​- Überprüfen Sie die Funktion im Simulator +  - An welcher Stelle ist festgelegt, dass jetzt die zwei VHDL Dateien ​de1_ledcntsw_rtl.vhd und cntones_rtl.vhd ​notwendig sind?
-  ​- An welcher Stelle ist festgelegt, dass jetzt zwei VHDL Dateien ​für die Simulation ​notwendig sind?+
   - Synthetisieren Sie die Schaltung.   - Synthetisieren Sie die Schaltung.
   - Stellen Sie mit dem RTL Viewer die Struktur der Schaltung dar.   - Stellen Sie mit dem RTL Viewer die Struktur der Schaltung dar.
Line 115: Line 108:
 Sie sollen eine Schaltung mit einer hierarchischen Schaltungsbeschreibung entwerfen, mit der die Schalter SW(3..0) als Binärdarstellung interpretiert als Hexadezimalzahl an HEX0 angezeigt wird. Weiterhin sollen die Schalter SW(9..6) als Hexdezimalzahl an HEX1 angezeigt werden. Sie sollen eine Schaltung mit einer hierarchischen Schaltungsbeschreibung entwerfen, mit der die Schalter SW(3..0) als Binärdarstellung interpretiert als Hexadezimalzahl an HEX0 angezeigt wird. Weiterhin sollen die Schalter SW(9..6) als Hexdezimalzahl an HEX1 angezeigt werden.
  
-  * Erstellen Sie hierzu zunächst eine neue Datei bin2seg_rtl.vhd. Diese Schaltung bin2seg soll 4 Eingänge bin_i(3..0) und sieben Ausgänge seg_o(6..0) haben. Diese Schaltung ​macht die Übersetzung von Binärdarstellung in die Siebensegmentansteuerung. +  * Erstellen Sie hierzu zunächst eine neue Datei bin2seg_rtl.vhd. Diese Schaltung bin2seg soll 4 Eingänge bin_i(3..0) und sieben Ausgänge seg_o(6..0) haben. Diese Schaltung ​berechnet ​die Übersetzung von Binärdarstellung in die Siebensegmentansteuerung.
-  * Erstellen Sie eine Testbench in der neuen Datei t_bin2seg.vhd um den Entwurf im Simulator zu überprüfen. +
-  * Erstellen Sie das Simulationsverzeichnis "​sim/​bin2seg"​ mit den dazugehörigen Dateien um die Simulation durchzuführen. +
-  * Überprüfen Sie Ihr Design im Simulator+
  
-In der Datei de1_bin2seg_rtl.vhd soll das Design de1_bin2seg auf Basis der bin2seg Schaltung enthalten sein. Dort werden die Schalter und HEX0 und HEX1 Anschlüsse vom FPGA Board mit der bin2seg Schaltung verbunden.+In der Datei de1_bin2seg_rtl.vhd soll das Design de1_bin2seg auf Basis der bin2seg Schaltung enthalten sein. Dort werden die Schalter und HEX0 und HEX1 Anschlüsse vom FPGA Board mit der bin2seg Schaltung verbunden. Sie müssen dazu die Schaltung bin2seg mehrfach instantiieren - analog wie bei der cntsw Schaltung.
  
   * Erstellen Sie die Datei de1_bin2seg_rtl.vhd   * Erstellen Sie die Datei de1_bin2seg_rtl.vhd
-  * Erstellen Sie eine Testbench t_de1_bin2seg.vhd 
-  * Erstellen Sie ein Simulationsverzeichnis "​sim/​de1_bin2seg"​ mit den notwendigen Dateien 
-  * Überprüfen Sie das Design im Simulator 
   * Erstellen Sie ein Syntheseverzeichnis "​pnr/​de1_bin2seg"​ mit den zugehörigen Synthesedateien   * Erstellen Sie ein Syntheseverzeichnis "​pnr/​de1_bin2seg"​ mit den zugehörigen Synthesedateien
   * Synthetisieren Sie die Schaltung und laden Sie das Design auf das Board.   * Synthetisieren Sie die Schaltung und laden Sie das Design auf das Board.
   * Überprüfen Sie die gewünschte Funktion auf dem Board   * Überprüfen Sie die gewünschte Funktion auf dem Board
  
 +Sie müssen hierfür einige VHDL Dateien und das Syntheseprojekt neu anlegen. In [[dtpr_new_module_howto|How to setup a new Module]] wird das Anlegen eines neuen Moduls Schritt für Schritt beschrieben.
 +
 +==== Abgabe Versuchsbericht ====
 +
 +Geben Sie einen Untersuchungsbericht zur "​Siebensegmentanzeige"​ mit den Ergebnissen Ihrer Analysen als Bericht im Moodlekurs Digitaltechnik ab. 
 +
 +[[https://​moodle.hs-augsburg.de/​mod/​assign/​view.php?​id=185914|Abgabe Bericht zum Versuch "​Kombinatorische Schaltungen"​]]
 +
 +Orientieren Sie sich inhaltlich an folgenden Punkten:
 +
 +  * Skizzieren Sie die Designhierarchie
 +  * Kopieren Sie den von Ihnen geschriebenen VHDL Code in den Bericht und erläutern Sie die Funktion
 +  * Zeigen Sie die Schaltung im RTL Viewer
 +  * Dokumentieren Sie die Anzahl der benötigten Logikelemente für die Schaltung
 +  * Dokumentieren Sie die Funktion der Schaltung auf dem Board
 +
 +Bitte belegen Sie alle Aussagen im Bericht mit Nachweisen. Belegen Sie beispielsweise die Anzahl der benötigten Logikelemente für eine Schaltung mit einem geeigneten Screenshot von der Synthesesoftware.
 +
 +=== Form ===
 +
 +Alle Abbildungen im Bericht müssen fortlaufend numeriert und untertitelt sein. Tabellen müssen auch numeriert und mit einer Überschrift versehen sein. Für jede Abbildung und jede Tabelle muss im Text eine Erläuterung zu finden sein was in der Abbildung dargestellt ist. Ein Beispiel für die Form mit Titel, Abstract, Abbildung, Tabelle und Literaturverzeichnis ist die [[https://​gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​maschine/​-/​blob/​master/​maschine.pdf|Maschine]].
  
  • dtpr_versuch_4.1616219975.txt.gz
  • Last modified: 2021/03/20 06:59
  • by beckmanf