第 11 章:AXI 总线
- 深入掌握 AXI 五通道握手与时序独立性
- 理解 ID、突发、乱序返回对微架构的影响
- 建立 AXI 主从接口的可验证实现框架
11.1 AXI 的本质
AXI 不是一条总线信号,而是 5 条相互解耦的握手通道:
- 写地址
AW - 写数据
W - 写响应
B - 读地址
AR - 读数据
R
每条通道都遵循同一握手规则:valid && ready 才完成一次传输。
11.2 握手稳定性规则
主机拉高 valid 后,在握手完成前必须保持 payload 稳定。
always @(posedge aclk) begin
if (!aresetn) begin
awvalid <= 1'b0;
end else if (awvalid && !awready) begin
awvalid <= 1'b1; // 继续保持
awaddr <= awaddr; // payload 保持稳定(示意)
end
end
11.3 通道解耦意味着什么
AW与W可乱先后到达。B必须对应一笔已接受的写事务。AR与R独立于写通道并行工作。
实现上不能假设“地址和数据同拍到达”。
11.4 ID 与乱序返回
在多笔并发读写下:
- 主机用
ID区分事务。 - 从机可按规则返回(系统可支持同 ID 顺序约束)。
- 核心侧需用 scoreboard/队列重组或追踪。
11.5 突发传输要点
LEN/SIZE/BURST定义突发长度与步进。WLAST/RLAST标记突发末 beat。- 地址边界与对齐必须合法。
11.6 与 CPU 流水线的耦合
- IF/MEM 发请求后,
ready_go往往与返回通道有效绑定。 - 后端阻塞时,AXI 请求发起节奏要受 backpressure 控制。
- flush 后需处理在途事务返回的过滤。
11.7 最小验证清单
valid高且未握手时 payload 不变。- 并发读写时无通道互相阻塞死锁。
- 突发末拍
LAST位置正确。 - 读写响应 ID 匹配且计数守恒。