AXI-Stream Protocol

AXI-Stream: continuous data streaming without address management.

What is AXI-Stream?

AXI-Stream is a very lightweight variant of the AXI protocol, specialized for continuous data streaming. Developed within the AMBA architecture, it is simple and efficient.

Unlike AXI4 and AXI-Lite, AXI-Stream drops address management entirely. It focuses solely on transferring a data stream from a Master to a Slave. The result: far fewer signals.


Read and Write

AXI-Stream is unidirectional (Master → Slave), so a single set of signals describes a complete transaction. To read from an AXI-Stream Slave, simply sample the data on a rising clock edge when TVALID is asserted.

AXI-Stream diagram

Transaction sequence:

  1. Master asserts TVALID and waits for TREADY from the Slave.
  2. Slave asserts TREADY (it is ready to receive).
  3. Master sends data on TDATA, with TLAST set to '1' on the last beat.
  4. Master deasserts TVALID.

Handshake

There are three methods for handling the handshake between TREADY and TVALID:

Handshake methods

Handshake example

  • Method 1: Slave keeps TREADY permanently high (always accepts data).
  • Method 2: Slave only asserts TREADY when TVALID is high.
  • Method 3: Slave manages TREADY independently of TVALID.

If you implement a Slave: correctly manage TREADY. If you implement a Master: correctly manage TVALID and TLAST.


Signal Summary

SignalDirectionDescription
TVALIDMaster → SlaveData on the bus is valid
TREADYSlave → MasterSlave is ready to receive
TDATAMaster → SlaveData to transfer
TLASTMaster → SlaveMarks the last beat of a packet
TKEEP (optional)Master → SlaveValid byte mask
TUSER (optional)Master → SlaveSide-channel user data

AXI-Stream is ideal for video, audio, DSP and any sequential data transfer that does not require addressing.