AXI with FPGA and SoC

AXI with FPGA and SoC Thumbnail

AXI stands for Advanced eXtensible Interface. It is a part of the AMBA (Advanced Microcontroller Bus Architecture) protocol family, developed by ARM. AXI is designed for high-performance, high-frequency system designs and is widely adopted in FPGAs and SoCs.

  • Zynq SoC connects between Processing System (PS) and Programmable Logic (PL)
  • Interconnection between Xilinx IP cores (e.g., Block RAM, DMA, TEMAC)
  • Communication with MicroBlaze processor
  • AXI Interconnect to connect multiple master/slave devices

Types of AXI Interfaces

TypeDescriptionUse Case
AXI4Full-featured, supports burst transfersMemory-mapped interfaces (e.g., DDR)
AXI4-LiteLightweight, no burst supportControl and configuration registers
AXI4-StreamNo address phase, continuous data flowHigh-speed streaming (video,
audio)

When working with Xilinx IP cores, you’ll often use one or more of these AXI interfaces, depending on your system needs.


The AXI Channels

AXI4 and AXI4-Lite interfaces are composed of the following independent channels:

  • Write Address Channel (AW*)
  • Write Data Channel (W*)
  • Write Response Channel (B*)
  • Read Address Channel (AR*)
  • Read Data Channel (R*)
  • Read Response Channel (RRESP)

Each channel uses VALID/READY handshake signals to transfer data reliably. This enables pipelining and parallelism, essential for high-performance designs.


AXI4 (Memory Mapped)

AXI4 Memory-Mapped (AXI4-MM) is designed for high-performance memory-mapped communication between a master (e.g., CPU, DMA) and a slave (e.g., memory, custom IP).

SignalDirectionDescription
awaddrMaster → SlaveWrite address
awvalidMaster → SlaveWrite address valid
awreadySlave → MasterWrite address accepted
wdataMaster → SlaveWrite data
wvalidMaster → SlaveWrite data valid
wreadySlave → MasterWrite data accepted
brespSlave → MasterWrite response (OKAY, SLVERR, etc)
bvalidSlave → MasterWrite response valid
breadyMaster → SlaveMaster ready to receive response
araddrMaster → SlaveRead address
arvalidMaster → SlaveRead address valid
arreadySlave → MasterRead address accepted
rdataSlave → MasterRead data
rvalidSlave → MasterRead data valid
rreadyMaster → SlaveMaster ready to accept read data
rrespSlave → MasterRead response (OKAY, SLVERR, etc)

Write Transaction

  1. Master sends write address over AW channel
  2. Master sends write data over W channel
  3. Slave send write response over B channel

Read Transaction

  1. Master sends read address over AR channel
  2. Slave send read data the response over R channel

Key Features

FeatureDescription
Address-basedAll data transactions use memory addresses
Supports burstsUp to 256 data beats per burst
Separate channelsIndependent channels for address, data, and responses
Out-of-order supportResponses can come back out-of-order
AXI4-MM Simulation Write Transaction
Simulation Waveform of AXI4-MM Write Transaction
AXI4-MM Write Channel
AXI4-MM Write Response
Simulation Waveform of AXI4-MM Read Transaction
AXI4-MM Read Address Channel
AXI4-MM Read Response

AXI4-Lite

AXI4-Lite is a lightweight version of the AXI4 protocol, used for low-throughput control interfaces. It is typically used for accessing control and status registers in IP cores.

Key Features

  • No burst, only single data transfers
  • Lower logic and routing resource usage
  • Ideal for control/status register access
  • Master (e.g., CPU) configures slave IP core
FeatureAXI4-MMAXI4-Lite
Burst Transfers✅ Supported❌ Not supported
Max Transfer SizeUp to 256 beats1 beat
ComplexityHigherLower
Use CaseHigh data transferControl registers
Simulation waveform of AXI4-Lite Write Transaction
Simulation waveform of AXI4-Lite Read Transcation

AXI Stream

AXI4-Stream is a simplified AXI protocol designed to transmit raw data without addressing. It is optimized for high-throughput, continuous data transfer, such as video, audio, or network packets.

Features

  • No address channel-simple interface
  • Handshake using TVALID and TREADY
  • Pipelined structure for high speed
  • Supports TKEEP, TLAST, TUSER for flexibility
SignalDescription
TVALIDSender indicates valid data
TREADYReceiver is ready to accept data
TDATAActual data being transmitted
TLASTMarks the end of a frame or packet
TKEEPByte qualifier for which bytes in TDATA are valid
TUSEROptional user-defined signal
AXI4-Stream Key Signals

When TVALID is high and TREADY is high, a data transfer occurs on the TDATA bus. This handshake ensures safe and synchronized data transmission.

The TVALID and TDATA wait until TREADY is high.
TLAST Marks the end of a frame packet

AXI is the de facto standard interface in modern FPGA and SoC designs. A good understanding of AXI is essential for efficient and scalable hardware design.

Below is the link to the AXI website: https://www.arm.com/architecture/system-architectures/amba/amba-specifications

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다