AXI 全称 Advanced eXtensible Interface,是 Xilinx 从 6 系列的 FPGA 开始引入的一个接口协 议,主要描述了主设备和从设备之间的数据传输方式。在 ZYNQ 中继续使用,版本是 AXI4,所 以我们经常会看到 AXI4.0,ZYNQ 内部设备都有 AXI 接口。其实 AXI 就是 ARM 公司提出的 AMBA(Advanced Microcontroller Bus Architecture)的一个部分,是一种高性能、高带宽、低延 迟的片内总线,也用来替代以前的 AHB 和 APB 总线。第一个版本的 AXI(AXI3)包含在 2003 年发布的 AMBA3.0 中,AXI 的第二个版本 AXI(AXI4)包含在 2010 年发布的 AMBA 4.0 之中。 AXI 协议主要描述了主设备和从设备之间的数据传输方式,主设备和从设备之间通过握手 信号建立连接。当从设备准备好接收数据时,会发出 READY 信号。当主设备的数据准备好 时,会发出和维持 VALID 信号,表示数据有效。数据只有在 VALID 和 READY 信号都有效的时候 才开始传输。当这两个信号持续保持有效,主设备会继续传输下一个数据。主设备可以撤销 VALID 信号,或者从设备撤销 READY 信号终止传输。
接口协议 | 特性 | 应用场合 |
AXI4-Lite | 地址/单数据传输 | 低速外设或控制 |
AXI4 | 地址/突发数据传输 | 地址的批量传输 |
AXI4-Stream | 仅传输数据,突发传输 | 数据流和媒体流传输 |
AXI4 和 AXI4-Lite 接口包含 5 个不同的通道:
Read Address Channel
Write Address Channel
Read Data Channel
Write Data Channel
Write Response Channel
几个常用的 AXI 接口 IP 的功能介绍:
AXI-DMA:实现从 PS 内存到 PL 高速传输高速通道 AXI-HPAXI-Stream 的转换
AXI-FIFO-MM2S:实现从 PS 内存到 PL 通用传输通道 AXI-HPMAXI-Stream 的转换
AXI-Datamover:实现从 PS 内存到 PL 高速传输高速通道 AXI-HPAXI-Stream 的转换,只 不过这次是完全由 PL 控制的,PS 是完全被动的。
AXI-VDMA:实现从 PS 内存到 PL 高速传输高速通道 AXI-HPAXI-Stream 的转换,只不 过是专门针对视频、图像等二维数据的。
AXI-CDMA:这个是由 PL 完成的将数据从内存的一个位置搬移到另一个位置,无需 CPU 来 插手。
AXI 协议严格的讲是一个点对点的主从接口协议,当多个外设需要互相交互数据时,我们 需要加入一个 AXI Interconnect 模块,也就是 AXI 互联矩阵,作用是提供将一个或多个 AXI 主设 备连接到一个或多个 AXI 从设备的一种交换机制(有点类似于交换机里面的交换矩阵)。 这个 AXI Interconnect IP 核最多可以支持 16 个主设备、16 个从设备,如果需要更多的接 口,可以多加入几个 IP 核。
AXI Interconnect 基本连接模式有以下几种:
N-to-1 Interconnect
to-N Interconnect
N-to-M Interconnect (Crossbar Mode)
N-to-M Interconnect (Shared Access Mode)