SEm/labore/05 amba

From FSI
Revision as of 09:46, 12 March 2015 by Oliver.gubler (Talk | contribs)
Jump to: navigation, search

Contents

AMBA-Bus basiertes System

AHB-Lite

Der Advanced High-performance Bus (AHB) ist ein Busprotokoll der Advanced Microcontroller Bus Architecture (AMBA), welche von ARM veröffentlicht wird. AHB ist ein multiplexiertes Multimasterbussystem, welches auch breite Datenbusse (bis 1024 bit) zulässt. Es wird in SoC-Systemen verwendet um verschiedene Komponenten zu verbinden, z.B. ARM-Prozessoren mit Peripheriegeräten.

AHB-Lite ist eine vereinfachte Untermenge von AHB welche nur einen Master zulässt (Specification).

Zugriffe erfolgen jeweils in zwei Taktzyklen, wobei der erste für die Adressierung und der zweiter zum den Datentranfser dienen.


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

Erstellung des AHB-Lite Komponenten

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

Realisierung

View-pim-tasks.png

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

Versuchen Sie dabei, die verschiedenen Funktionen in eigenen Prozessen zu implementieren, um die Wartungsfreundlichekeit des Codes zu erhöhen.


View-pim-tasks.png

Führen Sie eine Simulation des Systems durch, um die Funktionalität des neuen Komponenten sicherzustellen.


Navigation
Arrow left.gif 04 Automatische Synthese Arrow up.gif Anleitung auf Deutsch TBC Arrow right.gif

Personal tools
Namespaces
Variants
Actions
Navigation
Modules / Projects
Browse
Toolbox