SEm/labore/05 gpio
|
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