简介
AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA3.0协议中的一部分。AXI总线目前已经发展到AXI5,在FPGA平台上常用的是AXI4。
AXI4接口有三种类型:
- AXI4(AXI4-Full):满足高性能内存映射需求。支持256长度突发(burst)传输。
- AXI4-Lite:对于简单的、低吞吐量的内存映射通信。突发长度只能为1,数据位宽只支持32位或者64位。
- AXI4-Stream:用于高速流数据。不需要地址,允许无限的数据突发大小。
读写通道
AXI-Full和AXI-Lite都包含五个不同的通道:
- 写地址通道(Write Address Channel)
- 写数据通道(Write Data Channel)
- 写响应通道(Write Response Channel)
- 读地址通道(Read Address Channel)
- 读数据通道(Read Data Channel)
注意:没有读响应通道,因为写地址和写数据方向都是主->从,那么需要额外建立一个从->主的通道来响应写入成功。而读地址方向是主->从,读数据方向是从->主,所以不需要额外的通道。所以没有读响应通道,但是有读响应信号。
AXI4读地址和读数据通道示意:
AXI4写地址,写数据和写响应通道示意:
握手信号
AXI每个通道都有两个握手信号:VALID和READY。为了防止死锁,在任何事务中VALID信号不能依赖于另一个组件的READY信号,READY信号可以等待VALID信号。实际上,在比如Xilinx BRAM等IP中,都是先给VALID,对应的READY才会拉高,所以等READY再使能VALID是不对的工作时序。