2.1 AXI4 Master 连接 AXI3 Slave
核心差异:AXI4 去掉写 ID(WID);AXI3 支持 2bit AxLOCK;AXI4 burst 最大 256 beat,AXI3 最大 16 beat。
-
WID 信号处理(最关键)
AXI4 Master 不存在 WID 信号,禁止直接将 AWID 直连 AXI3 Slave 的 WID。当 AXI4 Master 存在未完成(outstanding)写事务时,AWID 和当前写数据对应的 ID 并不匹配。
标准处理:将 AWID 压入 FIFO,收到 WLAST 信号代表当前写数据传输完毕,再从 FIFO 读出对应的 AWID 给到 AXI3 Slave 的 WID。 -
AxLOCK 信号位宽适配
AXI3 的 AxLOCK 为 2bit,AXI4 AxLOCK 是 1bit。拼接规则:AxLOCK[1:0] = {1'b0, AXI4 Master的AxLOCK}。 -
Burst 长度约束
AXI3 Slave 最大只支持 16 beat 突发,AXI4 Master 不能发出超过 16‑beat 的 burst 传输。 -
响应通道 BVALID 时序
AXI3 Slave 输出 BVALID 要兼容 AXI4 协议时序要求,必要时修改从机逻辑。 -
冗余信号处理
AXI4 新增的 QoS、REGION、USER 类信号,需要做适配处理。 -
总线版本建议
尽可能在系统层面统一总线版本,减少跨版本转换带来的复杂度。
2.2 AXI3 Master 连接 AXI4 Slave
核心差异:AXI4 没有 WID;AXI4 AxLOCK 只有 1bit;AXI4 AxLEN 为 8bit,AXI3 AxLEN 为 4bit;AXI4 不支持写交错(Write interleaving)。
-
WID 信号处理
AXI4 Slave 没有 WID 端口,AXI3 Master 输出的 WID 直接悬空处理。 -
AxLOCK 信号位宽适配
AXI4 Slave 只取最低位:AXI4_Slave.AxLOCK = AXI3_Master.AxLOCK[0]。 -
AxLEN 位宽扩展
AXI3 Master 的 AxLEN 只有 4bit,高位补 0 给到 AXI4 Slave:AXI4_Slave.AxLEN[7:4] = 4'h0,低 4 位直连 AXI3 Master 的 AxLEN。 -
禁止写交错(Write interleaving)
AXI4 协议不支持写交错。如果原有 AXI3 Master 具备写交错能力,必须修改主设备逻辑关闭该特性,否则会协议报错。 -
冗余信号处理
QoS、REGION、USER 等 AXI4 特有信号,做对应适配。 -
总线版本建议
尽量系统总线统一 AXI3 或者 AXI4,降低跨协议转换风险。

