[[dtpr_v7]]

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_v7 [2014/06/11 19:43]
beckmanf [Digitaltechnik Praktikum Versuch 7 - Automaten]
dtpr_v7 [2021/05/09 21:09] (current)
beckmanf [LED Blinkschaltung] add play_rtl.vhd link
Line 1: Line 1:
-===== Digitaltechnik Praktikum Versuch ​- Automaten =====+===== Digitaltechnik Praktikum Versuch ​- Automaten =====
  
 Im letzten Versuch haben Sie Flipflops, einen kleinen Automaten und einen Zähler entworfen. In diesem Versuch kombinieren Sie die Elemente und bauen ein System bestehend aus Zähler und Automat. ​ Im letzten Versuch haben Sie Flipflops, einen kleinen Automaten und einen Zähler entworfen. In diesem Versuch kombinieren Sie die Elemente und bauen ein System bestehend aus Zähler und Automat. ​
Line 10: Line 10:
 ===== LED Blinkschaltung ===== ===== LED Blinkschaltung =====
  
-Bei der LED Blinkschaltung soll ein Blinkmuster auf den roten LEDS erzeugt werden. Die Blinkmuster haben eine unterschiedliche zeitliche Länge. Die Schaltung soll die Blinksequenz starten, wenn der Schalter SW(0) auf '​1'​ geschaltet wird. Wenn die Blinksequenz beendet ist, muss der Schalter erst auf '​0'​ zurückgeschaltet werden, bevor die Blinkfolge neu gestartet werden kann. Der Takt für die Schaltung kommt aus dem 50 MHz Oszillation, der sich auf dem DE1 Board befindet. Der asynchrone Reset soll vom Taster KEY(0) kommen. Die Blinksequenz soll so aussehen: ​+Bei der LED Blinkschaltung soll ein Blinkmuster auf den roten LEDS erzeugt werden. Die Blinkmuster haben eine unterschiedliche zeitliche Länge. Die Schaltung soll die Blinksequenz starten, wenn der Schalter SW(0) auf '​1'​ geschaltet wird. Wenn die Blinksequenz beendet ist, muss der Schalter erst auf '​0'​ zurückgeschaltet werden, bevor die Blinkfolge neu gestartet werden kann. Der Takt für die Schaltung kommt aus dem 50 MHz Oszillator, der sich auf dem DE1 Board befindet. Der asynchrone Reset soll vom Taster KEY(0) kommen. Die Blinksequenz soll so aussehen: ​
  
 <​code>​ <​code>​
Line 26: Line 26:
 Im git Projekt sind schon einige Dateien vorbereitet. ​ Im git Projekt sind schon einige Dateien vorbereitet. ​
  
-  * [[https://git.etech.fh-augsburg.de/​friedrich.beckmann/​digitaltechnikpraktikum/​blob/​master/​src/​cntblnk_rtl.vhd|cntblnk_rtl.vhd]] enthält ein Gerüst für den Zähler +  * [[https://gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​src/​cntblnk_rtl.vhd|cntblnk_rtl.vhd]] enthält ein Gerüst für den Zähler 
-  * [[https://git.etech.fh-augsburg.de/​friedrich.beckmann/​digitaltechnikpraktikum/​blob/​master/​src/​blnkctr_rtl.vhd|blnkctr_rtl.vhd]] enthält ein Gerüst für den Automaten +  * [[https://gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​src/​blnkctr_rtl.vhd|blnkctr_rtl.vhd]] enthält ein Gerüst für den Automaten 
-  * [[https://git.etech.fh-augsburg.de/​friedrich.beckmann/​digitaltechnikpraktikum/​blob/​master/​src/​de1_blnkauto_rtl.vhd|de1_blnkauto_rtl.vhd]] enthält die Zusammenschaltung von Automat und Zähler +  * [[https://gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​src/​de1_blnkauto_rtl.vhd|de1_blnkauto_rtl.vhd]] enthält die Zusammenschaltung von Automat und Zähler 
-  * [[https://git.etech.fh-augsburg.de/​friedrich.beckmann/​digitaltechnikpraktikum/​blob/​master/​src/​t_de1_blnkauto.vhd|t_de1_blnkauto.vhd]] enthält die Testbench+  * [[https://gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​src/​t_de1_blnkauto.vhd|t_de1_blnkauto.vhd]] enthält die Testbench
   * Es gibt ein Simulationverzeichen "​sim/​de1_blnkauto" ​   * Es gibt ein Simulationverzeichen "​sim/​de1_blnkauto" ​
   * Es gibt ein Syntheseverzeichnis "​pnr/​de1_blnkauto"​   * Es gibt ein Syntheseverzeichnis "​pnr/​de1_blnkauto"​
  
-Bauen Sie jetzt den LED Blinkautomaten! ​ +Im Kapitel [[https://​www-degruyter-com.ezproxy.hs-augsburg.de/​document/​doi/​10.1515/​9783110706970-014/​pdf|Reichardt,​ Digitaltechnik und digitale Systeme, Entwurf von Zustandsautomaten]] wird die Beschreibung von Zustandsautomaten in VHDL beschrieben. Die Datei [[https://​gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​-/​blob/​master/​src/​play_rtl.vhd|play_rlt.vhd]] enthält die Beschreibung eines Mooreautomaten mit einem VHDL Designpattern für Automaten. ​Bauen Sie jetzt den LED Blinkautomaten! 
- + 
- +
  
 ===== Suchmaschine ===== ===== Suchmaschine =====
Line 42: Line 40:
 Die Suchmaschine sucht in einem Datenstrom eine bestimmte Bitsequenz. Zu dem Projekt gehören die folgenden Dateien. Die Suchmaschine sucht in einem Datenstrom eine bestimmte Bitsequenz. Zu dem Projekt gehören die folgenden Dateien.
  
-  * [[https://git.etech.fh-augsburg.de/​friedrich.beckmann/​digitaltechnikpraktikum/​blob/​master/​src/​seqgen_rtl.vhd|seqgen_rtl.vhd]] erzeugt einen Bitstrom mit einer ladbaren Länge. Die Anzahl der erzeugten Bits hängt vom Eingang "​ctrl_i"​ ab.  +  * [[https://gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​src/​seqgen_rtl.vhd|seqgen_rtl.vhd]] erzeugt einen Bitstrom mit einer ladbaren Länge. Die Anzahl der erzeugten Bits hängt vom Eingang "​ctrl_i"​ ab.  
-  * [[https://git.etech.fh-augsburg.de/​friedrich.beckmann/​digitaltechnikpraktikum/​blob/​master/​src/​seqdet_rtl.vhd|seqdet_rtl.vhd]] enthält dann die Suchmaschine +  * [[https://gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​src/​seqdet_rtl.vhd|seqdet_rtl.vhd]] enthält dann die Suchmaschine 
-  * [[https://git.etech.fh-augsburg.de/​friedrich.beckmann/​digitaltechnikpraktikum/​blob/​master/​src/​de1_seq_rtl.vhd|de1_seq_rtl.vhd]] enthält die Zusammenschaltung von Generator und Detektor +  * [[https://gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​src/​de1_seq_rtl.vhd|de1_seq_rtl.vhd]] enthält die Zusammenschaltung von Generator und Detektor 
-  * [[https://git.etech.fh-augsburg.de/​friedrich.beckmann/​digitaltechnikpraktikum/​blob/​master/​src/​t_de1_seq.vhd|t_de1_seq.vhd]] enthält die Testbench. ​+  * [[https://gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​src/​t_de1_seq.vhd|t_de1_seq.vhd]] enthält die Testbench. ​
  
 Weiterhin gibt es die Verzeichnisse "​pnr/​de1_seq"​ und "​sim/​de1_seq"​ für die Synthese und die Simulation. Der Bitgenerator basiert auf einem linearen rückgekoppelten Schieberegister. ​ Weiterhin gibt es die Verzeichnisse "​pnr/​de1_seq"​ und "​sim/​de1_seq"​ für die Synthese und die Simulation. Der Bitgenerator basiert auf einem linearen rückgekoppelten Schieberegister. ​
  
-  - Analysieren Sie die Verschaltung auf dem toplevel "​de1_seq_rtl.vhd"​  +  - Analysieren Sie die Verschaltung auf dem toplevel "​de1_seq_rtl.vhd"​ 
-  - Simulieren Sie die vorhandene Schaltung mit dem Bitgenerator. ​Ändern ​Sie das Signal "​ctrl_i"​ in der Testbench ​und beobachten ​Sie die Auswirkung+  - Simulieren Sie die vorhandene Schaltung mit dem Bitgenerator. ​Stellen ​Sie das Signal "​ctrl_i"​ in der Schaltung [[https://​gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​src/​seqgen_rtl.vhd|seqgen_rtl.vhd]] im Waveformfenster dar 
 +  -  In der Testbench ​werden dem Signal "​schalter"​ keine Werte zugewiesen. Deshalb ist das Signal "​ctrl_i"​ undefined. Ergänzen ​Sie die Testbench und weisen Sie dem Signal "​schalter"​ verschiedene Werte zu. Stellen Sie das Verhalten der Schaltung im Waveformfenster dar.
  
 Jetzt können Sie die Schaltung mit dem Bitgenerator synthetisieren und auf das FPGA laden. Das Taktsignal und der Bitstrom werden auf dem Expansionport ausgegeben Jetzt können Sie die Schaltung mit dem Bitgenerator synthetisieren und auf das FPGA laden. Das Taktsignal und der Bitstrom werden auf dem Expansionport ausgegeben
Line 67: Line 66:
   - Stellen Sie den Takt, die Bitfolge und das Ausgangssignal des Detektors auf dem Oszilloskop dar. Verwenden Sie die Eingänge des Logikanalysators vom Oszilloskop dazu.    - Stellen Sie den Takt, die Bitfolge und das Ausgangssignal des Detektors auf dem Oszilloskop dar. Verwenden Sie die Eingänge des Logikanalysators vom Oszilloskop dazu. 
   - Stellen Sie auf dem Oszilloskop dar, dass die Erkennung richtig funktioniert. ​   - Stellen Sie auf dem Oszilloskop dar, dass die Erkennung richtig funktioniert. ​
 +
 +===== Suchmaschine lange Sequenz =====
  
 Jetzt soll der Erkennungsautomat erweitert werden um eine lange Sequenz zu erkennen. Entwerfen Sie einen Automaten, der eine Sequenz "​111"​ dann 21 Nullen und dann "​101"​ erkennt! ​ Jetzt soll der Erkennungsautomat erweitert werden um eine lange Sequenz zu erkennen. Entwerfen Sie einen Automaten, der eine Sequenz "​111"​ dann 21 Nullen und dann "​101"​ erkennt! ​
 +
 +===== Häufigkeitszähler =====
 +
 +Erweitern Sie die Schaltung um eine Zählschaltung,​ die zählt wie häufig die Bitfolge "​0110100"​ von oben gefunden wird. Die Anzahl der gefundenen Sequenzen soll als Hexadezimalzahl auf den vier Siebensegmentanzeigen des Boards dargestellt werden.
 +
  
  
  • dtpr_v7.1402508623.txt.gz
  • Last modified: 2014/06/11 19:43
  • by beckmanf