Protocole Avalon
Signaux Avalon-MM/Avalon-ST, handshakes et intégration dans Platform Designer.
Qu'est-ce que Avalon ?
Avalon est une famille de protocoles d'interface développée par Intel (anciennement Altera) pour leurs FPGA Cyclone, Arria et Stratix. Il est utilisé dans Platform Designer (anciennement Qsys) pour connecter des IP dans un SoC FPGA.
La famille Avalon comprend plusieurs variantes :
- Avalon-MM (Memory Mapped) : accès registres et mémoires
- Avalon-ST (Streaming) : flux de données continu
- Avalon-Interrupt : signaux d'interruption
- Avalon-Clock : distribution d'horloge
- Avalon-Conduit : signaux personnalisés hors-protocole
Avalon-MM (Memory Mapped)
Signaux principaux
| Signal | Direction (Maître) | Description |
|---|---|---|
| address | Sortie | Adresse mot |
| read | Sortie | Demande de lecture |
| write | Sortie | Demande d'écriture |
| readdata | Entrée | Données lues (esclave → maître) |
| writedata | Sortie | Données écrites (maître → esclave) |
| byteenable | Sortie | Masque d'octets actifs |
| waitrequest | Entrée | L'esclave demande d'attendre |
| readdatavalid | Entrée | (pipeline) Les données lues sont valides |
Cycles de lecture et d'écriture Avalon-MM

Le maître doit maintenir read et address stables tant que waitrequest est haut.
Implémentation VHDL
Un esclave Avalon-MM zéro-latence est l'implémentation la plus simple : waitrequest est toujours bas, et les lectures/écritures s'exécutent en un seul cycle. L'esclave décode l'adresse pour accéder à un tableau de registres interne.