[[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/27 13:46]
beckmanf [Die UART] svg jetzt im dokuwiki
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 41: Line 41:
 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. 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 [[https://gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​dtlab/​-/​blob/​master/​src/​baudcnt.vhd|"​baudcnt"​]] und [[https://gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​dtlab/​-/​blob/​master/​src/​uart_tx_shift.vhd|"​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 [[https://gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​dtlab/​-/​blob/​master/​src/​edge.vhd|"​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 [[https://gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​dtlab/​-/​blob/​master/​src/​t_top_uart.vhd|"​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 52: 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 62: 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 78: 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 88: 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.1716810411.txt.gz
  • Last modified: 2024/05/27 13:46
  • by beckmanf