SEm/laboratoires/05 gpio

From FSI
(Difference between revisions)
Jump to: navigation, search
(Accès au bus AMBA)
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{{TOC right}}
 
{{TOC right}}
 
+
= Périphérique GPIO =
= GPIO-Peripheriebaustein =
+
== Introduction ==
 +
Dans ce laboratoire, nous allons réaliser un périphérique très simple pour le bus [[Media:AMBA_AHB-Lite_spec.pdf|AMBA-Lite]]: un port d'entrée-sortie bidirectionnel.
  
== Einleitung ==
+
Le bus AMBA-Lite est une variante simple de la famille [http://www.arm.com/products/system-ip/amba-specifications.php Advanced Microcontroller Bus Architecture (AMBA)].
 +
Il est caractérisé par le fait qu'il ne comporte qu'un seul maître.
  
In diesem Labor werden wir einen einfachen Peripheriebaustein für den [[Media:AMBA_AHB-Lite_spec.pdf|AMBA-Lite]]-Bus realisieren: einen bidirektionellen Allzweckeingabe/-ausgabe-Kanal.
+
Dans un périphérique, les valeurs écrites par le microprocesseur dans les registres doivent être mémorisées.
 +
Par contre, les registres lus par le microprocesseur sont accèdés de manière purement combinatoire et le chemin ne doit pas être retardé par des bascules.
  
AHB-Lite ist eine simple Variante in der Familie der [http://www.arm.com/products/system-ip/amba-specifications.php Advanced Microcontroller Bus Architecture (AMBA)]. Seine Spezialität ist es, dass er nur einen Master zulässt.
+
=== Accès au bus AMBA ===
  
=== Zugriff auf den AMBA-Bus ===
+
Les accès se font en deux cycles, le premier pour l'adressage et le deuxième pour le transfert des données.
  
Zugriffe auf dem AMBA-Bus erfolgen jeweils in zwei Taktzyklen, wobei der erste für die Adressierung und der zweite zum den Datentranfser dienen.
+
Le circuit à développer se trouve dans la librairie '''AhbLiteComponents''', le banc de test dans la librairie '''AhbLiteComponents_test'''.
 +
Le programme de dessin de circuit est lancé à l'aide du fichier de commande '''systemOnChip.bat'''.
  
{{TaskBox|content=Führen Sie eine Simualtion der Testbank <code>ahbGpio_tb</code> mit der Simulationskonfiguration <code>abhGpio.do</code> durch.}}
+
{{TaskBox|content=
 +
Simuler le banc de test <code>ahbGpio_tb</code> avec la configuration <code>abhGpio.do</code>.
 +
}}
  
{{TaskBox|content=Beobachten Sie die Signale
+
{{TaskBox|content=Observez les signaux:
 
* <code>haddr</code>
 
* <code>haddr</code>
 
* <code>htrans</code>
 
* <code>htrans</code>
Line 23: Line 29:
 
* <code>hrdata</code>}}
 
* <code>hrdata</code>}}
  
== Spezifikation ==
+
== Specification ==
  
Dieser Peripheriebaustein stellt dem Prozessor bidirektionelle Ein-/Ausgabelinien zur Verfügung. Diese Ein-/Ausgänge können zum Beispiel dazu benutzt werden, um Taster zu lesen oder LEDs zu steuern.
+
[[File:AhbLiteComponents_ahbGpio_symbol.PNG|thumb|AhbLiteComponents ahbGpio]]
  
In diesem Peripheriebaustein müssen die Werte, welche der Mikroprocessor schreibt, gespeichert werden. Im Gegensatz dazu, werden die Werte, welche der Mikroporzessor liest, direkt kombinatorisch abgegriffen und die Linien sollen nicht durch Flipflops verspätet werden.
+
Le périphérique met à disposition du processeur des entrées-sorties bidirectionnelles.
 +
Ces entrées-sorties peuvent par exemple servir à lire des boutons et controller des LEDs.
  
Die Anzahl an Ein-/Ausgängen ist durch den generischen Parameter <code>ioNb</code> definiert.  
+
Le nombre d'entrées/sorties et spécifié par le paramètre générique <code>ioNb</code>.
Jede Linie kann dynamisch als Eingang oder Ausgang konfiguriert werden.
+
Chaque ligne peut être configurée dynamiquement en entrée ou en sortie.
  
=== Registerplan ===
+
=== Registres ===
  
;Schreiberegister
+
Les registres accédés en écriture par le microprocesseur sont:
: 00, Datenregister, erhält die Werte, welche auf die Ausgänge geschrieben werden
+
: adresse 00: registre des données, contient les valeurs qui sont appliquées sur les sorties
: 01, Ausgabefreigaberegister, bestimmt die Richtung der Ein-/Ausgänge: '1' = Ausgang.
+
: adresse 01: registre de direction, définit la direction des entrées/sorties: le '1' indique une ligne en sortie
  
;Leseregister
+
Le registre accédé en lecture est:
: 00, Datenregister, stellt die Werte der Eingänge zur Verfügung
+
: adresse 00:  registre des données, met à disposition les valeurs des entrées
  
== Design ==
+
== Conception ==
  
[[File:AhbLiteComponents_ahbGpio_symbol.PNG|thumb|AhbLiteComponents ahbGpio]]
+
{{TaskBox|content=
 +
Dessinez le diagramme-bloc du périphérique AHB-Lite <code>ahbGpio</code>.
 +
}}
  
{{TaskBox|content=Zeichnen Sie das Blockdiagram des AHB-Lite Komponenten <code>ahbGpio</code>.}}
+
== Réalisation ==
  
== Realisierung ==
+
{{TaskBox|content=
 +
En se basant sur ce diagramme-bloc, écrivez le code VHDL du périphérique <code>ahbGpio</code>.
 +
}}
  
{{TaskBox|content=Schreiben Sie den VHDL-Code basierend auf dem Blockdiagram.}}
+
== Vérification ==
  
== Verifikation ==
+
{{TaskBox|content=
 +
A l'aide du banc de test à disposition, simulez le système et vérifiez le bon fonctionnement du périphérique <code>ahbGpio</code>.
 +
}}
  
{{TaskBox|content=Führen Sie eine Simulation des Systems durch, um die korrekte Funktionalität des neuen Komponenten sicherzustellen.}}
 
  
{{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/laboratoires/04_synthese|left_name=04 Synthèse automatique
 +
|up=SEm/laboratoires|up_name=Travaux de laboratoire
 +
|right=SEm/laboratoires/06_uart|right_name=06 Périphérique UART pour bus AMBA
 +
}}
  
[[Category:SEm]]
+
[[Category:Bachelor]] [[Category:SEm]] [[Category:Français]]

Latest revision as of 09:47, 2 April 2020

Contents

Périphérique GPIO

Introduction

Dans ce laboratoire, nous allons réaliser un périphérique très simple pour le bus AMBA-Lite: un port d'entrée-sortie bidirectionnel.

Le bus AMBA-Lite est une variante simple de la famille Advanced Microcontroller Bus Architecture (AMBA). Il est caractérisé par le fait qu'il ne comporte qu'un seul maître.

Dans un périphérique, les valeurs écrites par le microprocesseur dans les registres doivent être mémorisées. Par contre, les registres lus par le microprocesseur sont accèdés de manière purement combinatoire et le chemin ne doit pas être retardé par des bascules.

Accès au bus AMBA

Les accès se font en deux cycles, le premier pour l'adressage et le deuxième pour le transfert des données.

Le circuit à développer se trouve dans la librairie AhbLiteComponents, le banc de test dans la librairie AhbLiteComponents_test. Le programme de dessin de circuit est lancé à l'aide du fichier de commande systemOnChip.bat.


View-pim-tasks.png

Simuler le banc de test ahbGpio_tb avec la configuration abhGpio.do.


View-pim-tasks.png

Observez les signaux:

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

Specification

AhbLiteComponents ahbGpio

Le périphérique met à disposition du processeur des entrées-sorties bidirectionnelles. Ces entrées-sorties peuvent par exemple servir à lire des boutons et controller des LEDs.

Le nombre d'entrées/sorties et spécifié par le paramètre générique ioNb. Chaque ligne peut être configurée dynamiquement en entrée ou en sortie.

Registres

Les registres accédés en écriture par le microprocesseur sont:

adresse 00: registre des données, contient les valeurs qui sont appliquées sur les sorties
adresse 01: registre de direction, définit la direction des entrées/sorties: le '1' indique une ligne en sortie

Le registre accédé en lecture est:

adresse 00: registre des données, met à disposition les valeurs des entrées

Conception

View-pim-tasks.png

Dessinez le diagramme-bloc du périphérique AHB-Lite ahbGpio.

Réalisation

View-pim-tasks.png

En se basant sur ce diagramme-bloc, écrivez le code VHDL du périphérique ahbGpio.

Vérification

View-pim-tasks.png

A l'aide du banc de test à disposition, simulez le système et vérifiez le bon fonctionnement du périphérique ahbGpio.


Navigation
Arrow left.gif 04 Synthèse automatique Arrow up.gif Travaux de laboratoire 06 Périphérique UART pour bus AMBA Arrow right.gif

Personal tools
Namespaces
Variants
Actions
Navigation
Modules / Projects
Browse
Toolbox