SEm/labore/05 amba

From FSI
(Difference between revisions)
Jump to: navigation, search
 
(8 intermediate revisions by one user not shown)
Line 3: Line 3:
 
= AMBA-Bus basiertes System =
 
= AMBA-Bus basiertes System =
  
== AHB-Lite ==
+
== Einleitung ==
  
[[Media:AMBA_AHB-Lite_spec.pdf|Specification]]
+
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.
  
== Erstellung des AHB-Lite Komponenten ==
+
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.
  
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 <code>ioNb</code> gesetzt.
+
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.
 +
 
 +
{{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
 +
* <code>haddr</code>
 +
* <code>htrans</code>
 +
* <code>hsel</code>
 +
* <code>hwrite</code>
 +
* <code>hwdata</code>
 +
* <code>hrdata</code>}}
 +
 
 +
== Spezifikation ==
 +
 
 +
[[File:AhbLiteComponents_ahbGpio_symbol.PNG|thumb|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 <code>ioNb</code> gesetzt. Der Zugriff erfolgt über 3 Register.
  
 
=== Registerplan ===
 
=== Registerplan ===
  
Der Komponent hat 3 Register:
+
;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.
  
==== Write registers ====
+
;Leseregister
 +
: 00, Datenregister, stellt die Werte der Eingänge zur Verfügung
  
* 00, data register receives the values to drive the output lines.
+
=== Design ===
* 01, output enable register defines the signal direction: when '1', the direction is "out".
+
  
==== Read registers ====
+
{{TaskBox|content=
* 00, data register provides the values detected on the lines.
+
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, um die Funktionalität des neuen Komponenten sicherzustellen.}}
+
{{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/04_synthese|left_name=04 Automatische Synthese|up=SEm/labore|up_name=Anleitung auf Deutsch|right=TBC|right_name=TBC}}
+
{{navNamed|left=SEm/labore/04_synthese|left_name=04 Automatische Synthese|up=SEm/labore|up_name=Anleitung auf Deutsch|right=SEm/labore/06_uart|right_name=UART-Peripheriebaustein}}
  
 
[[Category:SEm]]
 
[[Category:SEm]]

Latest revision as of 14:55, 17 April 2015

Contents

AMBA-Bus basiertes System

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.


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