SEm/labore/05 gpio

From FSI
Jump to: navigation, search

Contents

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.


View-pim-tasks.png

Führen Sie eine Simualtion der Testbank ahbGpio_tb mit der Simulationskonfiguration abhGpio.do durch.


View-pim-tasks.png

Beobachten Sie die Signale

  • haddr
  • htrans
  • hsel
  • hwrite
  • hwdata
  • hrdata

Spezifikation

AhbLiteComponents ahbGpio

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

View-pim-tasks.png

Zeichnen Sie das Blockdiagram des AHB-Lite Komponenten ahbGpio.

Realisierung

View-pim-tasks.png

Schreiben Sie den VHDL-Code des AHB-Lite Komponenten ahbGpio.

Verifikation

View-pim-tasks.png

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.


Navigation
Arrow left.gif 04 Automatische Synthese Arrow up.gif Anleitung auf Deutsch UART-Peripheriebaustein Arrow right.gif

Personal tools
Namespaces
Variants
Actions
Navigation
Modules / Projects
Browse
Toolbox