Protocole AXI

Le protocole AXI (Advanced eXtensible Interface) d'ARM : canaux d'écriture, de lecture, burst et handshake.

Qu'est-ce que AXI ?

Le protocole AXI (Advanced eXtensible Interface) est un protocole d'interconnexion développé par ARM pour ses architectures AMBA. Il standardise les communications à haute performance entre les composants matériels d'un SoC (System on Chip).

Ses deux forces principales :

  • Rapidité : conçu pour les échanges à haute fréquence
  • Handshake : synchronisation fiable via des signaux VALID/READY indépendants

AXI est décomposé en deux parties : les adresses et les données. Ce qui implique un nombre important de signaux.


Écriture (Write)

Signaux AXI Write

L'écriture nécessite 13 signaux répartis sur trois canaux : adresse d'écriture (AW), données d'écriture (W) et réponse (B).

L'écriture peut se faire avec ou sans burst. Le burst consiste à envoyer une seule adresse de début, puis les données successivement — ce qui économise du temps si les adresses sont contiguës.

Diagramme AXI Write

Séquence d'une transaction en écriture :

  1. Fixer une adresse sur AWADDR, indiquer la largeur des données (AWSIZE) et la longueur de la transaction (AWLEN).
  2. Fixer AWVALID en parallèle et attendre AWREADY du slave.
  3. Attendre WREADY et envoyer les données en burst en fixant WVALID.
  4. À la dernière donnée, fixer WLAST.
  5. Vérifier la réponse sur BRESP (valeur attendue : OKAY).

Lecture (Read)

Signaux AXI Read

La lecture nécessite 11 signaux répartis sur deux canaux : adresse de lecture (AR) et données de lecture (R).

Diagramme AXI Read

Séquence d'une transaction en lecture :

  1. Fixer une adresse sur ARADDR, indiquer ARSIZE et ARLEN.
  2. Fixer ARVALID en parallèle et attendre ARREADY du slave.
  3. Attendre RVALID et lire les données en burst.
  4. Surveiller RLAST pour détecter la dernière donnée.
  5. Vérifier la réponse sur RRESP (valeur attendue : OKAY).

Récapitulatif des signaux

CanalSignaux principauxDirection
AW (Write Address)AWADDR, AWLEN, AWSIZE, AWVALID, AWREADYMaster → Slave
W (Write Data)WDATA, WSTRB, WLAST, WVALID, WREADYMaster → Slave
B (Write Response)BRESP, BVALID, BREADYSlave → Master
AR (Read Address)ARADDR, ARLEN, ARSIZE, ARVALID, ARREADYMaster → Slave
R (Read Data)RDATA, RLAST, RRESP, RVALID, RREADYSlave → Master

Pour une version simplifiée (sans burst, sans gestion d'adresses complexes), consultez le cours Protocole AXI-Lite.