SEm/laboratoires/05 gpio
(→Conception) |
(→Introduction) |
||
Line 6: | Line 6: | ||
Dans un périphérique, les données écrites par le microprocesseur dans les registres doivent être mémorisées. | Dans un périphérique, les données é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. | ||
+ | |||
+ | Le Advanced High-performance Bus (AHB) est un protocol de l'[http://www.arm.com/products/system-ip/amba-specifications.php Advanced Microcontroller Bus Architecture (AMBA)], qui est publié par [http://arm.com ARM]. AHB est un bus multimaster multiplexé, qui permet aussi des bus des données à grande largeur (jusq'a 1024 bit). Il est utilisé dans des systèmes SoC pour connecter differents composants, p.ex. un processeur ARM avec ses peripheriques. | ||
+ | |||
+ | AHB-Lite est un sous-ensemble simplifié avec un seul master ([[Media:AMBA_AHB-Lite_spec.pdf|Specification]]). | ||
+ | |||
+ | Les access se font par principe en deux cycles, le premier pour l'adressage et le deuxième pour le transfer des données. | ||
+ | |||
+ | {{TaskBox|content=Simuler la banque de test <code>ahbGpio_tb</code> avec la configuration <code>abhGpio.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>}} | ||
+ | |||
== Conception == | == Conception == | ||
Revision as of 16:35, 31 March 2015
|
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.
Dans un périphérique, les données é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.
Le Advanced High-performance Bus (AHB) est un protocol de l'Advanced Microcontroller Bus Architecture (AMBA), qui est publié par ARM. AHB est un bus multimaster multiplexé, qui permet aussi des bus des données à grande largeur (jusq'a 1024 bit). Il est utilisé dans des systèmes SoC pour connecter differents composants, p.ex. un processeur ARM avec ses peripheriques.
AHB-Lite est un sous-ensemble simplifié avec un seul master (Specification).
Les access se font par principe en deux cycles, le premier pour l'adressage et le deuxième pour le transfer des données.
Conception
Le composant sert à lire des boutons et controller des LEDs. Le nombre des entrées et sorties et configuré par le generic ioNb
. L'acces se fait par 3 registres.
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