AXI总线协议
(一)、概述
AXI (高性能扩展总线接口,Advanced eXtensible Interface)是ARM AMBA 单片机总线系列中的一个协议,是计划用于高性能、高主频的系统设计的。AXI协议是被优化用于通过使用Xilinx进行的相应的开发来做FPGA实现,它被用作FPGA 设计的IP 核之间的一种通信方式。
关键特性
1、地址/控制阶段和数据阶段是分开的,即master(主机)和slave(从机)之间有专门的地址/控制通道,还有专门的数据通道。
2、有字节闸来实现对非对齐数据的传输。
3、只需发布起始地址就能做批量数据传输
4、数据的读写通道是分离的,可以用来实现低成本的DMA(直接存储访问,Direct Memory Access)。除了地址和数据通道是分离的之外,读写数据的通道还是分开的,由此可以看出AXI总线的高速性。
5、可以指定多个需要处理的地址。
6、通信会话可以乱序完成,主要是指的数据的乱序,乱序发送需要有主机的ID进行支撑。
7、为了实现时序收敛,可以方便的加入寄存器,即在用户logic和user interface处加入想要观察和处理的用户逻辑与端口。
(二)、AXI总线类型
自从2003年AXI1.0版本发布以后,目前的AXI版本是4.0,AXI接口类型有三种,即AXI4类型、AXI4-Lite类型,AXI4-Stream类型。
AXI4类型:最高性能的接口,适合存储器映射的通信,支持每个地址阶段256个数据传输周期的批量传输,存在于PS-PL之间。
AXI4_Lite类型:AXI4接口类型中轻量级版本,用于存储器映射的单次数据通信会话,简化了的接口占用较少的逻辑部分面积,不支持批量数据,只支持每次传输单个数据,存在于PS-PL之间。
AXI4-Stream类型:没有地址阶段,不是存储地址映射,仅仅存在与PL侧,可以实现无限制的数据批量大小,为流式数据传输定义单个专用通道,连接只能是从主机到从机。为了实现双向传输,两个外围设备都必须是主机/从机兼容类型。
(三)、AXI架构
AXI协议规定一个AXI主机可以用写数据通道通过AXI总线互联将数据传送给一个AXI从机(或者通过读取数据通道从从机传送到主机),写数据传输会话会有一个额外的响应通道,但是读取时并没有,这时考虑到数据的流向。在进行数据读取时,数据流向:Slave to Master,从机可以直接通过读数据通道向主机返回信息。在进行数据写入时,数据流向:Master to Slave,数据流向是单向的,需要有一个专门的响应通道。
无论是
读还是写,地址和控制数据都是在数据的发送/接收之前:
特别注意AXI互联(AXI Interconnect):
(1)、主机AXI从处理器系统和处理器时钟各自流向从机输出S00_AXI和S00_AXLK。
(2)、AXI互联的输出都是主机通道,每个通道驱动对应的设备。