SEm/labore/05 gpio
(→Verifikation) |
|||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{TOC right}} | {{TOC right}} | ||
− | = GPIO-Peripheriebaustein | + | = GPIO-Peripheriebaustein = |
− | == | + | == Einleitung == |
− | + | In diesem Labor werden wir einen simplen Peripheriebaustein für den [[Media:AMBA_AHB-Lite_spec.pdf|AMBA-Lite-Bus]] erstellen: eine bidirektionellen Ein-/Ausgangskanal. | |
− | AHB-Lite ist eine | + | AHB-Lite ist eine einfache Variante der Busfamilie [http://www.arm.com/products/system-ip/amba-specifications.php Advanced Microcontroller Bus Architecture (AMBA)]. Sein spezielles Merkmal ist, dass er nur einen Master zulässt. |
+ | |||
+ | In einem Peripheriebaustein müssen die Werte, welche der Master (hier Mikroprozessor) in die Register schreibt, gespeichert werden. | ||
+ | Im Gegensatz werden die Werte, welche der Master liest, direkt kombinatorisch weitergegeben, ohne sie durch Flipflops zu verzögern. | ||
+ | |||
+ | === AMBA-Buszugriffe === | ||
Zugriffe erfolgen jeweils in zwei Taktzyklen, wobei der erste für die Adressierung und der zweiter zum den Datentranfser dienen. | Zugriffe erfolgen jeweils in zwei Taktzyklen, wobei der erste für die Adressierung und der zweiter zum den Datentranfser dienen. | ||
+ | |||
+ | Die Schaltung befindet sich in der Bibliothek '''AhbLiteComponents''', die Testbank dazu in der Bibliothek '''AhbLiteComponents_test'''. | ||
+ | Das Zeichnungprogramm wir mit Hilfe des Skripts '''beamer.bat''' gestartet. | ||
{{TaskBox|content=Führen Sie eine Simualtion der Testbank <code>ahbGpio_tb</code> mit der Simulationskonfiguration <code>abhGpio.do</code> durch.}} | {{TaskBox|content=Führen Sie eine Simualtion der Testbank <code>ahbGpio_tb</code> mit der Simulationskonfiguration <code>abhGpio.do</code> durch.}} | ||
Line 21: | Line 29: | ||
* <code>hrdata</code>}} | * <code>hrdata</code>}} | ||
− | == | + | == Spezifikation == |
[[File:AhbLiteComponents_ahbGpio_symbol.PNG|thumb|AhbLiteComponents ahbGpio]] | [[File:AhbLiteComponents_ahbGpio_symbol.PNG|thumb|AhbLiteComponents ahbGpio]] | ||
Line 38: | Line 46: | ||
=== Design === | === Design === | ||
− | {{TaskBox|content=Zeichnen Sie das Blockdiagram des AHB-Lite Komponenten <code>ahbGpio</code>.}} | + | {{TaskBox|content= |
+ | Zeichnen Sie das Blockdiagram des AHB-Lite Komponenten <code>ahbGpio</code>. | ||
+ | }} | ||
=== Realisierung === | === Realisierung === | ||
− | {{TaskBox|content=Schreiben Sie den VHDL-Code des AHB-Lite Komponenten <code>ahbGpio</code>.}} | + | {{TaskBox|content= |
+ | Schreiben Sie den VHDL-Code des AHB-Lite Komponenten <code>ahbGpio</code>. | ||
+ | }} | ||
− | + | === Verifikation === | |
− | {{TaskBox|content=Führen Sie eine Simulation des Systems durch | + | {{TaskBox|content= |
+ | Führen Sie eine Simulation des Systems mit Hilfer der zur verfügung gestellten Testbank durch. Verifizieren Sie die korrekte Funktionalität des neuen Komponenten. | ||
+ | }} | ||
− | {{navNamed|left=SEm/labore/ | + | {{navNamed|left=SEm/labore/10 fsm|left_name=05 Zustandsmaschine|up=SEm/labore|up_name=Anleitung auf Deutsch|right=SEm/labore/06_uart|right_name=UART-Peripheriebaustein}} |
− | [[Category:SEm]] | + | [[Category:Bachelor]][[Category:SEm]][[Category:Deutsch]] |
Latest revision as of 10:44, 9 March 2021
|
GPIO-Peripheriebaustein
Einleitung
In diesem Labor werden wir einen simplen Peripheriebaustein für den AMBA-Lite-Bus erstellen: eine bidirektionellen Ein-/Ausgangskanal.
AHB-Lite ist eine einfache Variante der Busfamilie Advanced Microcontroller Bus Architecture (AMBA). Sein spezielles Merkmal ist, dass er nur einen Master zulässt.
In einem Peripheriebaustein müssen die Werte, welche der Master (hier Mikroprozessor) in die Register schreibt, gespeichert werden. Im Gegensatz werden die Werte, welche der Master liest, direkt kombinatorisch weitergegeben, ohne sie durch Flipflops zu verzögern.
AMBA-Buszugriffe
Zugriffe erfolgen jeweils in zwei Taktzyklen, wobei der erste für die Adressierung und der zweiter zum den Datentranfser dienen.
Die Schaltung befindet sich in der Bibliothek AhbLiteComponents, die Testbank dazu in der Bibliothek AhbLiteComponents_test. Das Zeichnungprogramm wir mit Hilfe des Skripts beamer.bat gestartet.
Spezifikation
Der zu erstellende Komponent wird dazu dienen, auf der Testplatte Schalter zu lesen und LEDs zu steuern. Die Anzahl Ein- und Ausgänge wird über den Generic ioNb
gesetzt. Der Zugriff erfolgt über 3 Register.
Registerplan
- Schreiberegister
- 00, Datenregister, erhält die Werte, welche auf die Ausgänge geschrieben werden
- 01, Ausgabefreigaberegister, bestimmt die Richtung der Ein-/Ausgänge:'1' = Ausgang.
- Leseregister
- 00, Datenregister, stellt die Werte der Eingänge zur Verfügung
Design
Realisierung
Verifikation
Navigation
05 Zustandsmaschine
Anleitung auf Deutsch
UART-Peripheriebaustein