SEm/laboratoires/05 gpio
|
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.
Conception
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.
Accès au bus AMBA
Les access se font par principe en deux cycles, le premier pour l'adressage et le deuxième pour le transfer des données.
Registres
- Registres en écriture
- 00, Registre des données, contient les valeurs qui sont appliquées sur les sorties
- 01, Registre de direction, definit la direction des entrées/sorties: '1' = sortie.
- Registres en lecture
- 00, Registre des données, met à disposition les valeurs des entrées
Code VHDL