SEm/labore/05 gpio

(Difference between revisions)
Jump to: navigation, search
(AMBA-Buszugriffe)
(2 intermediate revisions by one user not shown)
Line 1: Line 1:
 
{{TOC right}}
 
{{TOC right}}
 
    
 
    
= GPIO-Peripheriebaustein für AMBA-Bus =
+
= GPIO-Peripheriebaustein =
  
== AHB-Lite ==
+
== Einleitung ==
  
Der Advanced High-performance Bus (AHB) ist ein Busprotokoll der [http://www.arm.com/products/system-ip/amba-specifications.php Advanced Microcontroller Bus Architecture (AMBA)], welche von [http://arm.com 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.
+
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.
  
AHB-Lite ist eine vereinfachte Untermenge von AHB welche nur einen Master zulässt ([[Media:AMBA_AHB-Lite_spec.pdf|Specification]]).
+
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.
 +
 
 +
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.
 
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.
  
 
{{TaskBox|content=Führen Sie eine Simualtion der Testbank <code>ahbGpio_tb</code> mit der Simulationskonfiguration <code>abhGpio.do</code> durch.}}
 
{{TaskBox|content=Führen Sie eine Simualtion der Testbank <code>ahbGpio_tb</code> mit der Simulationskonfiguration <code>abhGpio.do</code> durch.}}
Line 21: Line 29:
 
* <code>hrdata</code>}}
 
* <code>hrdata</code>}}
  
== Erstellung des AHB-Lite Komponenten ==
+
== Spezifikation ==
  
 
[[File:AhbLiteComponents_ahbGpio_symbol.PNG|thumb|AhbLiteComponents ahbGpio]]
 
[[File:AhbLiteComponents_ahbGpio_symbol.PNG|thumb|AhbLiteComponents ahbGpio]]
Line 38: Line 46:
 
=== Design ===
 
=== Design ===
  
{{TaskBox|content=Zeichnen Sie das Blockdiagram des AHB-Lite Komponenten <code>ahbGpio</code>.}}
+
{{TaskBox|content=
 +
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>.
 +
}}
  
Versuchen Sie dabei, die verschiedenen Funktionen in eigenen Prozessen zu implementieren, um die Wartungsfreundlichekeit des Codes zu erhöhen.
+
=== Verifikation ===
  
{{TaskBox|content=Führen Sie eine Simulation des Systems durch, um die korrekte 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=SEm/labore/06_uart|right_name=UART-Peripheriebaustein}}
 
{{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:Bachelor]][[Category:SEm]][[Category:Deutsch]]

Revision as of 12:32, 26 March 2018

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