Skip to content

手撕 AXI 总线

AXI 总线

AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线

AMBA 总线包括三个部分

  1. APB
  2. AHB
  3. AXI: 向后兼容 AHB 和 APB

AXI 的特点:

  1. 突发传输,可以一直传输,效率高

时序顺序,参考 IHI022E 文档

读数据过程

写数据过程

AXI 总线包含 5个通道,五个通道可以使读写数据过程分离。

  1. 写地址通道,信号前缀(aw_)
  2. 写数据通道,信号前缀(w_)
  3. 写响应通道,信号前缀(b_)
  4. 读地址通道,信号前缀(ar_)
  5. 读数据通道,信号前缀(r_)

前三个通道完成写数据的过程,后两个通道完成读数据的过程。

AXI 的时序,参考 XILINX 的代码,可以 使用 VIVADO自动生成的IP 进行仿真后查看时序

波形时序:

  1. VALID 和 READY 同时为高代表数据有效,其中VALID来自主机,READY 来自从机
  2. 先写地址,紧接着写数据,最后一个数据跟随LAST
  3. 先读地址,紧接着读数据,最后一个数据跟随LAST信号
  4. 写完数据,有一个响应信号。

==LAST信号仅仅存在于数据读写数据通道中,在读写地址通道中是不包含的==

AXI 实现步骤

突发传输的数据长度为 1 - 256 (2的n 次方)

写步骤

  1. 写首地址 (写地址通道)
  2. 写完首地址,突发传输数据(写数据通道)
  3. 控制LAST 信号(写数据通道)
  4. 等待响应信号 (写响应通道)

读步骤

  1. 写首地址
  2. 等待从机传输的数据,当VALID和READY都为高时读取数据
  3. 接受LAST信号

实现的功能:

  1. 向从机的 0 地址写 1 - 10;
  2. 读从机的 0 地址

最新更新: