AXI 总线详解与 FPGA 实现指南
AXI(Advanced eXtensible Interface)作为 ARM AMBA 协议簇的核心成员,是当前芯片内及异构芯片间数据交互的事实标准。无论是 FPGA 内部模块互联,还是 SoC 中的 CPU 与外设通信,掌握 AXI 都是开发高性能系统的必修课。
一、AXI 核心架构与特性
1.1 设计目标与定位
AXI 专为解决多模块(CPU、DDR、DMA、IP 核)间的高速数据交互而生,追求高性能、高带宽和低延迟。主流版本为 AXI3 和 AXI4,其中 AXI4 在 FPGA/SoC 中应用最为广泛。
1.2 五大独立通道
AXI 的高性能源于其完全分离的单向通道设计。所有交互基于以下五个通道完成,互不干扰:
- 写地址通道 (AW):主机向从机发送目标地址和控制信息。
- 写数据通道 (W):主机传输实际写入的数据。
- 写响应通道 (B):从机反馈写操作结果(成功/失败)。
- 读地址通道 (AR):主机发送读取请求的地址和控制信息。
- 读数据通道 (R):从机返回读取的数据及状态。
核心原则:所有通道均为单向,没有双向信号线。写事务占用 AW/W/B 三个通道,读事务占用 AR/R 两个通道。
1.3 READY-VALID 握手机制
这是 AXI 协议的基石,也是异步传输的关键。无需时钟同步,规则极简:
- 发送方拉高
VALID表示数据有效。 - 接收方拉高
READY表示已准备好接收。 - 只有当
VALID & READY = 1时,传输才算完成。
这种机制完美解决了总线拥塞、跨时钟域和速率不匹配的问题。
1.4 AXI4 三大子集实战选型
完整 AXI4 协议复杂,实际工程中主要使用三个裁剪后的子集,优先级建议:AXI4-Lite ≈ AXI4-Stream > AXI4。
1. AXI4-Lite(轻量级)
- 定位:低速寄存器读写,配置控制。
- 特点:仅支持单拍传输,无突发,位宽固定(32/64 位)。
- 场景:GPIO、SPI、UART 等外设 IP 的配置接口。
2. AXI4(标准版)
- 定位:高速大数据块传输。
- 特点:支持 1~256 拍突发,地址对齐要求严格。
- 场景:DDR 读写、DMA 数据传输、PCIe 高速接口。
3. AXI4-Stream(流式)
- 定位:无地址纯数据流传输,FPGA 第一高频接口。
- 特点:无地址线,无控制信息,核心信号为
TVALID/TREADY,可选TLAST标记帧结束。 - 场景:视频流(HDMI)、ADC/DAC 采集、以太网包转发。
二、FPGA 实现 AXI 总线的两种路径
在 FPGA 中,AXI 扮演片内互联桥梁的角色。实现方式主要分为调用官方 IP 和手动编写适配层两类。
2.1 方案一:调用官方 IP 核(推荐)
90% 的工程场景下,直接复用厂商提供的成熟 IP 核是最高效的选择。Xilinx Vivado 或 Intel Quartus 均内置了完整的 AXI 互联逻辑。


