SEm/laboratoires/05 gpio
(→Registres) |
(→Réalisation) |
||
(19 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
= Périphérique GPIO = | = Périphérique GPIO = | ||
== Introduction == | == 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. | + | 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. |
− | Dans un périphérique, les | + | 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. | ||
+ | |||
+ | 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. | 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'''. | ||
+ | |||
+ | {{TaskBox|content= | ||
+ | Simuler le banc de test <code>ahbGpio_tb</code> avec la configuration <code>ahbGpio.do</code>. | ||
+ | }} | ||
+ | |||
+ | {{TaskBox|content=Observez les signaux: | ||
+ | * <code>haddr</code> | ||
+ | * <code>htrans</code> | ||
+ | * <code>hsel</code> | ||
+ | * <code>hwrite</code> | ||
+ | * <code>hwdata</code> | ||
+ | * <code>hrdata</code>}} | ||
+ | |||
+ | == Specification == | ||
+ | |||
+ | [[File:AhbLiteComponents_ahbGpio_symbol.PNG|thumb|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 <code>ioNb</code>. | ||
+ | Chaque ligne peut être configurée dynamiquement en entrée ou en sortie. | ||
+ | |||
=== Registres === | === Registres === | ||
− | + | Les registres accédés en écriture par le microprocesseur sont: | |
− | : 00 | + | : adresse 00: registre des données, contient les valeurs qui sont appliquées sur les sorties |
− | : 01 | + | : 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 == | ||
+ | |||
+ | {{TaskBox|content= | ||
+ | Dessinez le schéma-bloc du périphérique AHB-Lite <code>ahbGpio</code>. | ||
+ | }} | ||
+ | |||
+ | == Réalisation == | ||
+ | |||
+ | {{TaskBox|content= | ||
+ | En se basant sur ce schéma-bloc, écrivez le code VHDL du périphérique <code>ahbGpio</code>. | ||
+ | }} | ||
+ | |||
+ | == Vérification == | ||
+ | |||
+ | {{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>. | ||
+ | }} | ||
+ | |||
− | + | {{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:Bachelor]] [[Category:SEm]] [[Category:Français]] | |
− | + |
Latest revision as of 08:08, 8 April 2022
|
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.
Specification
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
Réalisation
Vérification
Navigation
04 Synthèse automatique
Travaux de laboratoire
06 Périphérique UART pour bus AMBA