[[dtlab_t8]]

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
dtlab_t8 [2024/05/15 06:53]
beckmanf [uart_tx_shift] add gitlab link
dtlab_t8 [2025/03/14 20:49] (current)
beckmanf switch code server
Line 17: Line 17:
  
 ==== VHDL toplevel top_uart ==== ==== VHDL toplevel top_uart ====
-Die Datei [[https://gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​dtlab/​-/​blob/​master/​src/​top_uart.vhd|top_uart.vhd]] beschreibt das Modul "​top_uart"​. "​top_uart"​ stellt den toplevel auf dem FPGA dar.+Die Datei [[https://caeis.etech.fh-augsburg.de/​beckmanf/​dtlab.git/tree/​src/​top_uart.vhd|top_uart.vhd]] beschreibt das Modul "​top_uart"​. "​top_uart"​ stellt den toplevel auf dem FPGA dar.
  
 ==== Die UART ==== ==== Die UART ====
Line 29: Line 29:
 Die Architektur ist in Abbildung 1 dargestellt. Die Architektur ist in Abbildung 1 dargestellt.
  
-<​html>​ +{{ :public:​praktikum_digitaltechnik:​dt-uart-tx-simple.svg ​|UART Transmitter}} 
-<img src="​http://​breakout.hs-augsburg.de/​dwimg/​uart-tx-simple.svg" width=1024 /> + 
-</​html>​ +{{ :​public:​praktikum_digitaltechnik:​dt-uart-tx-simple.svg?​linkonly |Abbildung 1}}: UART Transmitter Architektur auf dem FPGA
-Abbildung 1: UART Transmitter Architektur auf dem FPGA+
  
 Wenn man auf den KEY1 drückt, dann sollen die Daten an den Schaltern SW[7..0] über die UART seriell übertragen werden. Die Übertragungsgeschwindigkeit wird mit dem "​baudcnt"​ Modul gesteuert. Wenn man auf den KEY1 drückt, dann sollen die Daten an den Schaltern SW[7..0] über die UART seriell übertragen werden. Die Übertragungsgeschwindigkeit wird mit dem "​baudcnt"​ Modul gesteuert.
  
-<​html>​ +{{ :public:​praktikum_digitaltechnik:​dt-uart-tx-timing.svg ​|}}
-<img src="​http://​breakout.hs-augsburg.de/​dwimg/​uart-tx-timing.svg" width=1024 /> +
-</​html>​+
  
-Abbildung 2: UART Transmitter Timing+{{ :​public:​praktikum_digitaltechnik:​dt-uart-tx-timing.svg?​linkonly |Abbildung 2}}: UART Transmitter Timing
  
-In Abbildung 2 ist das Timing der Schaltung für ein Bitdauer von drei Systemtakten dargestellt. Das wäre eine Baudrate von 16,6 MBit/s bei einer Systemtaktfrequenz von 50 MHz. Das wäre also viel zu schnell. So kann aber das Zusammenspiel der Komponenten "​baudcnt"​ und "​uart_tx_shift"​ einfacher dargestellt werden.+In Abbildung 2 ist das Timing der Schaltung für eine Bitdauer von drei Systemtakten dargestellt. Das wäre eine Baudrate von 16,6 MBit/s bei einer Systemtaktfrequenz von 50 MHz. Das wäre also viel zu schnell. So kann aber das Zusammenspiel der Komponenten "​baudcnt"​ und "​uart_tx_shift"​ einfacher dargestellt werden.
  
-  * Die Komponenten ​"​edge", ​"​baudcnt"​ und "​uart_tx_shift"​ sind als leere Architectures schon im Projekt vorhanden +  * Die Komponenten ​[[https://​caeis.etech.fh-augsburg.de/​beckmanf/​dtlab.git/​tree/​src/​baudcnt.vhd|"​baudcnt"​]] und [[https://​caeis.etech.fh-augsburg.de/​beckmanf/​dtlab.git/​tree/​src/​uart_tx_shift.vhd|"​uart_tx_shift"​]] sind als leere Architectures schon im Projekt vorhanden 
-  * Die "​edge"​ Komponente enthält den Flankendetektor aus den vorherigen Projekten+  * Die [[https://​caeis.etech.fh-augsburg.de/​beckmanf/​dtlab.git/​tree/​src/​edge.vhd|"​edge"​]] Komponente enthält den Flankendetektor aus den vorherigen Projekten
   * Instantiieren Sie die Komponenten "​baudcnt"​ und "​uart_tx_shift"​ in "​top_uart"​ und verbinden Sie die Komponenten gemäß Abbildung 1   * Instantiieren Sie die Komponenten "​baudcnt"​ und "​uart_tx_shift"​ in "​top_uart"​ und verbinden Sie die Komponenten gemäß Abbildung 1
   * Überprüfen Sie die Struktur mit dem RTL Viewer aus der Synthese   * Überprüfen Sie die Struktur mit dem RTL Viewer aus der Synthese
  
-Die Testbench "​t_top_uart"​ dient zur Simulation von "​top_uart"​. ​+Die Testbench ​[[https://​caeis.etech.fh-augsburg.de/​beckmanf/​dtlab.git/​tree/​src/​t_top_uart.vhd|"​t_top_uart"​]] dient zur Simulation von "​top_uart"​. ​
  
   * Stellen Sie im Simulator sicher, dass das Signal "​start"​ bei einem simulierten Tastendruck an KEY1 korrekt erzeugt wird   * Stellen Sie im Simulator sicher, dass das Signal "​start"​ bei einem simulierten Tastendruck an KEY1 korrekt erzeugt wird
Line 55: Line 52:
 ==== baudcnt ==== ==== baudcnt ====
  
-Das Modul [[https://gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​dtlab/​-/​blob/​master/​src/​baudcnt.vhd|"​baudcnt"​]] steuert die Übertragungsrate wie in Abbildung 2 dargestellt. Das Enablesignal sorgt im "​uart_tx_shift"​ Modul dafür, dass das nächste Bit ausgegeben wird.+Das Modul [[https://caeis.etech.fh-augsburg.de/​beckmanf/​dtlab.git/tree/​src/​baudcnt.vhd|"​baudcnt"​]] steuert die Übertragungsrate wie in Abbildung 2 dargestellt. Das Enablesignal sorgt im "​uart_tx_shift"​ Modul dafür, dass das nächste Bit ausgegeben wird.
  
   * Entwerfen Sie eine Architektur für "​baudcnt",​ die das Enablesignal wie in Abbildung 2 dargestellt erzeugt.   * Entwerfen Sie eine Architektur für "​baudcnt",​ die das Enablesignal wie in Abbildung 2 dargestellt erzeugt.
Line 65: Line 62:
 ==== uart_tx_shift ==== ==== uart_tx_shift ====
  
-Das Modul [[https://gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​dtlab/​-/​blob/​master/​src/​uart_tx_shift.vhd|"​uart_tx_shift"​]] dient zur Serialisierung des 8 Bit Datenwortes,​ das von den Schaltern SW[7..0] kommt. ​+Das Modul [[https://caeis.etech.fh-augsburg.de/​beckmanf/​dtlab.git/tree/​src/​uart_tx_shift.vhd|"​uart_tx_shift"​]] dient zur Serialisierung des 8 Bit Datenwortes,​ das von den Schaltern SW[7..0] kommt. ​
  
   * Entwerfen Sie eine Architektur für das Modul "​uart_tx_shift",​ mit der die Daten serialisiert werden   * Entwerfen Sie eine Architektur für das Modul "​uart_tx_shift",​ mit der die Daten serialisiert werden
Line 81: Line 78:
 ==== Software auf dem Rechner ==== ==== Software auf dem Rechner ====
  
-Auf dem Rechner wird ein Terminalprogramm benötigt, mit dem die Daten von der seriellen Schnittstelle angezeigt werden könnenAuf Linux oder MacOS ist das "​screen"​ und auf Windows [[https://www.putty.org|putty]].+Nach dem Einstecken des Modems erscheint unter /​dev/​ttyXXXXXXX ​ein neues DeviceUnter Linux ist dies /​dev/​ttyUSB0,​ unter MacOS ist dies /dev/tty.usbserial-DM000IKG
  
-  * Unter Linux oder MacOS kann man "​screen"​ als terminal verwenden +Auf dem Rechner wird ein Terminalprogramm benötigtmit dem die Daten von der seriellen Schnittstelle angezeigt werden können 
-  * Nach dem Einstecken des Modems erscheint unter /​dev/​ttyXXXXXXX ​ein neues Device. Unter Linux ist dies /​dev/​ttyUSB0unter MacOS ist dies /dev/tty.usbserial-DM000IKG + 
-  * Unter Linux muss man das terminal als root starten ​und die Baudrate von 57600 Baud angeben.+  * Unter MacOS ist ''​screen''​ vorinstalliert ​und kann so verwendet werden:
  
 <​code>​ <​code>​
Line 91: Line 88:
 </​code>​ </​code>​
  
-  * Unter MacOS ist kein sudo notwendig+  * Unter MS Windows kann [[https://​www.putty.org|putty]] installiert und genutzt werden. 
 + 
 +  * Unter Linux ist bei unseren virtuellen Maschinen ''​gtkterm''​ installiert und kann direkt so gestartet werden: 
 + 
 +<​code>​ 
 +gtkterm --port /​dev/​ttyUSB0 --speed 57600 --echo 
 +</​code>​
  
 Stellen Sie auf dem FPGA Board über die Schalter verschiedende Zeichen ein und übertragen Sie das Zeichen an den Rechner. Stellen Sie auf dem FPGA Board über die Schalter verschiedende Zeichen ein und übertragen Sie das Zeichen an den Rechner.
  
 +Die [[https://​de.wikipedia.org/​wiki/​American_Standard_Code_for_Information_Interchange#​Zusammensetzung|ASCII Tabelle]] zeigt die Codes für die verschiedenen Buchstaben.
  
  
  • dtlab_t8.1715748804.txt.gz
  • Last modified: 2024/05/15 06:53
  • by beckmanf