Protocole AXI-Stream
AXI-Stream : transfert de données en flux continu, sans gestion d'adresses.
Qu'est-ce que AXI-Stream ?
AXI-Stream est une variante très simplifiée du protocole AXI, spécialisée dans le transfert de données en flux continu (streaming). Développé dans le cadre des architectures AMBA, il est léger et efficace.
Contrairement à AXI4 et AXI-Lite, AXI-Stream abandonne complètement la gestion des adresses. Il se concentre uniquement sur l'envoi d'un flux de données d'un Master vers un Slave. Résultat : beaucoup moins de signaux.
Lecture et écriture
AXI-Stream étant unidirectionnel (Master → Slave), un seul ensemble de signaux suffit pour décrire une transaction. Pour lire depuis un Slave AXI-Stream, il suffit de lire la donnée sur un front d'horloge où TVALID est actif.

Séquence d'une transaction :
- Le Master fixe TVALID et attend TREADY du Slave.
- Le Slave fixe TREADY (il est prêt à recevoir).
- Le Master envoie les données sur TDATA, avec TLAST à '1' sur la dernière donnée.
- Le Master remet TVALID à zéro.
Handshake
Il y a trois méthodes pour gérer le handshake entre TREADY et TVALID :


- Méthode 1 : Le Slave met
TREADYà '1' en permanence (il accepte toujours). - Méthode 2 : Le Slave met
TREADYà '1' uniquement quandTVALIDest actif. - Méthode 3 : Le Slave gère
TREADYindépendamment deTVALID.
Si vous implémentez un Slave : gérez correctement
TREADY. Si vous implémentez un Master : gérez correctementTVALIDetTLAST.
Récapitulatif des signaux
| Signal | Direction | Description |
|---|---|---|
| TVALID | Master → Slave | Données valides sur le bus |
| TREADY | Slave → Master | Slave prêt à recevoir |
| TDATA | Master → Slave | Données à transférer |
| TLAST | Master → Slave | Indique la dernière donnée du paquet |
| TKEEP (optionnel) | Master → Slave | Masque d'octets valides |
| TUSER (optionnel) | Master → Slave | Données utilisateur (side-channel) |
AXI-Stream est idéal pour les flux vidéo, audio, DSP et tout transfert de données séquentiel sans adressage.