SEm/laboratoires/05 gpio
(→Vérification) |
|||
Line 1: | Line 1: | ||
{{TOC right}} | {{TOC right}} | ||
− | = | + | |
− | + | = GPIO-Peripheriebaustein = | |
− | + | ||
− | + | == Einleitung == | |
− | + | ||
− | + | In diesem Labor werden wir einen einfachen Peripheriebaustein für den [[Media:AMBA_AHB-Lite_spec.pdf|AMBA-Lite]]-Bus realisieren: einen bidirektionellen Allzweckeingabe/-ausgabe-Kanal. | |
− | + | ||
− | + | AHB-Lite ist eine simple Variante in der Familie der [http://www.arm.com/products/system-ip/amba-specifications.php Advanced Microcontroller Bus Architecture (AMBA)]. Seine Spezialität ist es, dass er nur einen Master zulässt. | |
− | + | === Zugriff auf den AMBA-Bus === | |
− | + | ||
− | + | Zugriffe auf dem AMBA-Bus erfolgen jeweils in zwei Taktzyklen, wobei der erste für die Adressierung und der zweite zum den Datentranfser dienen. | |
− | + | ||
− | = | + | {{TaskBox|content=Führen Sie eine Simualtion der Testbank <code>ahbGpio_tb</code> mit der Simulationskonfiguration <code>abhGpio.do</code> durch.}} |
− | + | {{TaskBox|content=Beobachten Sie die Signale | |
− | + | ||
− | {{TaskBox|content= | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
* <code>haddr</code> | * <code>haddr</code> | ||
* <code>htrans</code> | * <code>htrans</code> | ||
Line 34: | Line 23: | ||
* <code>hrdata</code>}} | * <code>hrdata</code>}} | ||
− | === | + | == Spezifikation == |
+ | |||
+ | Dieser Peripheriebaustein stellt dem Prozessor bidirektionelle Ein-/Ausgabelinien zur Verfügung. Diese Ein-/Ausgänge können zum Beispiel dazu benutzt werden, um Taster zu lesen oder LEDs zu steuern. | ||
+ | |||
+ | In diesem Peripheriebaustein müssen die Werte, welche der Mikroprocessor schreibt, gespeichert werden. Im Gegensatz dazu, werden die Werte, welche der Mikroporzessor liest, direkt kombinatorisch abgegriffen und die Linien sollen nicht durch Flipflops verspätet werden. | ||
+ | |||
+ | Die Anzahl an Ein-/Ausgängen ist durch den generischen Parameter <code>ioNb</code> definiert. | ||
+ | Jede Linie kann dynamisch als Eingang oder Ausgang konfiguriert werden. | ||
+ | |||
+ | === 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 == | |
− | + | ||
− | + | ||
− | + | [[File:AhbLiteComponents_ahbGpio_symbol.PNG|thumb|AhbLiteComponents ahbGpio]] | |
− | + | ||
− | = | + | {{TaskBox|content=Zeichnen Sie das Blockdiagram des AHB-Lite Komponenten <code>ahbGpio</code>.}} |
− | + | == Realisierung == | |
− | + | ||
− | + | ||
− | {{TaskBox|content= | + | {{TaskBox|content=Schreiben Sie den VHDL-Code basierend auf dem Blockdiagram.}} |
− | + | ||
− | }} | + | |
− | == | + | == Verifikation == |
− | {{TaskBox|content= | + | {{TaskBox|content=Führen Sie eine Simulation des Systems durch, um die korrekte Funktionalität des neuen Komponenten sicherzustellen.}} |
− | + | ||
− | }} | + | |
− | {{navNamed | + | {{navNamed|left=SEm/labore/04_synthese|left_name=04 Automatische Synthese|up=SEm/labore|up_name=Anleitung auf Deutsch|right=TBC|right_name=TBC}} |
− | |left=SEm/ | + | |
− | |up=SEm/ | + | |
− | |right= | + | |
− | }} | + | |
[[Category:SEm]] | [[Category:SEm]] |
Revision as of 09:43, 16 April 2015
|
GPIO-Peripheriebaustein
Einleitung
In diesem Labor werden wir einen einfachen Peripheriebaustein für den AMBA-Lite-Bus realisieren: einen bidirektionellen Allzweckeingabe/-ausgabe-Kanal.
AHB-Lite ist eine simple Variante in der Familie der Advanced Microcontroller Bus Architecture (AMBA). Seine Spezialität ist es, dass er nur einen Master zulässt.
Zugriff auf den AMBA-Bus
Zugriffe auf dem AMBA-Bus erfolgen jeweils in zwei Taktzyklen, wobei der erste für die Adressierung und der zweite zum den Datentranfser dienen.
Spezifikation
Dieser Peripheriebaustein stellt dem Prozessor bidirektionelle Ein-/Ausgabelinien zur Verfügung. Diese Ein-/Ausgänge können zum Beispiel dazu benutzt werden, um Taster zu lesen oder LEDs zu steuern.
In diesem Peripheriebaustein müssen die Werte, welche der Mikroprocessor schreibt, gespeichert werden. Im Gegensatz dazu, werden die Werte, welche der Mikroporzessor liest, direkt kombinatorisch abgegriffen und die Linien sollen nicht durch Flipflops verspätet werden.
Die Anzahl an Ein-/Ausgängen ist durch den generischen Parameter ioNb
definiert.
Jede Linie kann dynamisch als Eingang oder Ausgang konfiguriert werden.
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
04 Automatische Synthese
Anleitung auf Deutsch
TBC