[[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 [2019/04/10 09:13]
soeren Tippfehler
dtpr_versuch_4 [2020/09/28 15:52] (current)
beckmanf checkout changed
Line 6: Line 6:
   * with select Beschreibung   * with select Beschreibung
  
-sowie die hierarchische Beschreibung von Schaltungen. +sowie die hierarchische Beschreibung von Schaltungen ​in VHDL. Als praktisches Beispiel ​werden Sie eine Schaltung ​entwerfen, die jeweils ​vier SW Schalter binär interpretiert als Ziffer an einer Siebensegmentanzeige ​anzeigt. Die Eingänge der Schaltung werden mit den Schaltern verbunden und die Ausgänge werden mit der Siebensegmentanzeige ​und den roten LED'​s ​verbunden. Wenn beispielsweise die Schalter SW3..SW0 auf "​0101"​ stehen, dann soll die Ziffer "​5"​ an der Siebensegmentanzeige angezeigt werden.
- +
-Als praktisches Beispiel ​soll eine Schaltung ​entworfen werden, die aus vier Eingangssignalen die Steuersignale für eine Siebensegmentanzeige ​erzeugt. Die Eingänge der Schaltung werden mit den Schaltern verbunden und die Ausgänge werden mit der Siebensegmentanzeige verbunden.+
  
 ==== Projekt aktualisieren ==== ==== Projekt aktualisieren ====
Line 22: Line 20:
 <​code>​ <​code>​
 cd cd
-cd digitaltechnikpraktikum/​src+cd digitaltechnikpraktikum/​src 
-rm t_ledcomb.vhd +git checkout .
-git checkout ​t_ledcomb.vhd+
 cd .. cd ..
 </​code>​ </​code>​
Line 45: Line 42:
   - 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://git.etech.fh-augsburg.de/​friedrich.beckmann/​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!+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.
Line 52: Line 49:
   - Welche Tests fehlen für welche Schaltungsteile noch?   - Welche Tests fehlen für welche Schaltungsteile noch?
   - Prüfen Sie die fehlenden Tests auf dem Board nach.   - Prüfen Sie die fehlenden Tests auf dem Board nach.
-  - Wie und Warum unterscheiden sich die Dateien [[https://git.etech.fh-augsburg.de/​friedrich.beckmann/​digitaltechnikpraktikum/​blob/​master/​pnr/​ledcomb/​ledcomb_pins.tcl|ledcomb_pins.tcl]] und [[https://git.etech.fh-augsburg.de/​friedrich.beckmann/​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]]?​
  
 === Analyse des Syntheseergebnisses === === Analyse des Syntheseergebnisses ===
Line 69: Line 66:
 Starten Sie mit "Tools → Netlist Viewers → RTL Viewer"​ die graphische Darstellung Ihres VHDL Codes. Starten Sie mit "Tools → Netlist Viewers → RTL Viewer"​ die graphische Darstellung Ihres VHDL Codes.
  
-{{  :​ledcomb01.jpg?800  | Quartus RTL Viewer}}+{{  :​ledcomb01.jpg ​ | Quartus RTL Viewer}}
  
 Sie können für die Ausgänge LEDG(0), LEDG(1), LEDG(2) und LEDG(3) die graphische Darstellung der booleschen Gleichung sehen. Sie können die zusammengefassten Ports wie SW(9..0) auch als einzelne Ports darstellen. Wählen Sie dazu den Port aus, klicken Sie dann auf die rechte Maustaste und wählen Sie "​Ungroup Selected Nodes"​. Der Code aus den "with … select"​ Anweisungen wird als Multiplexer mit konstanten Dateneingängen dargestellt. Sie können für die Ausgänge LEDG(0), LEDG(1), LEDG(2) und LEDG(3) die graphische Darstellung der booleschen Gleichung sehen. Sie können die zusammengefassten Ports wie SW(9..0) auch als einzelne Ports darstellen. Wählen Sie dazu den Port aus, klicken Sie dann auf die rechte Maustaste und wählen Sie "​Ungroup Selected Nodes"​. Der Code aus den "with … select"​ Anweisungen wird als Multiplexer mit konstanten Dateneingängen dargestellt.
Line 75: Line 72:
 Starten Sie mit "Tools → Chip Planner"​ die Gesamtansicht des FPGA Chips. Starten Sie mit "Tools → Chip Planner"​ die Gesamtansicht des FPGA Chips.
  
-{{  :​ledcomb02.jpg?800  | Quartus Chip Planner}}+{{  :​ledcomb02.jpg ​ | Quartus Chip Planner}}
  
 Die hellblauen Felder sind die Felder mit leeren Logikelementen. Zoomen Sie in den Bereich mit den dunkelblauen Feldern. Die belegten Logikelemente sind blau markiert. Die hellblauen Felder sind die Felder mit leeren Logikelementen. Zoomen Sie in den Bereich mit den dunkelblauen Feldern. Die belegten Logikelemente sind blau markiert.
  
-{{  :​ledcomb03.jpg?800  | Quartus Chip Planner Detail}}+{{  :​ledcomb03.jpg ​ | Quartus Chip Planner Detail}}
  
 Mit einem Doppelklick auf ein Logikelement können Sie den Inhalt und die Belegung des Logikelementes darstellen. Mit einem Doppelklick auf ein Logikelement können Sie den Inhalt und die Belegung des Logikelementes darstellen.
  
-{{  :​ledcomb04.jpg?800  | Quartus Chip Planner Logicelement}}+{{  :​ledcomb04.jpg ​ | Quartus Chip Planner Logicelement}}
  
 Starten Sie mit "Tools → Netlist Viewers → Technology Map Viewer (Post Fitting)"​ eine Schaltplananzeige mit der Verschaltung der einzelnen Logikelemente nach der Synthese. Starten Sie mit "Tools → Netlist Viewers → Technology Map Viewer (Post Fitting)"​ eine Schaltplananzeige mit der Verschaltung der einzelnen Logikelemente nach der Synthese.
  
-{{  :​ledcomb05.jpg?​800  ​| Quartus Technology Map Viewer}}+{{  :​ledcomb05.jpg | Quartus Technology Map Viewer}}
  
 Mit einem Doppelklick auf die Logikelemente wird die Konfiguration der Lookuptabelle als Schaltplan mit Logikgattern dargestellt. Mit einem Doppelklick auf die Logikelemente wird die Konfiguration der Lookuptabelle als Schaltplan mit Logikgattern dargestellt.
Line 98: Line 95:
 ==== Beispiel hierarchisches Design ==== ==== Beispiel hierarchisches Design ====
  
-In der Datei [[https://git.etech.fh-augsburg.de/​friedrich.beckmann/​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://git.etech.fh-augsburg.de/​friedrich.beckmann/​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. 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.
  
   - Funktioniert die Schaltung für die vorhandenen Testmuster in der Simulation?   - Funktioniert die Schaltung für die vorhandenen Testmuster in der Simulation?
Line 104: Line 101:
 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://git.etech.fh-augsburg.de/​friedrich.beckmann/​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/​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"​.
  
   - Überprüfen Sie die Funktion im Simulator   - Überprüfen Sie die Funktion im Simulator
  • dtpr_versuch_4.1554880406.txt.gz
  • Last modified: 2019/04/10 09:13
  • by soeren