AXI总线协议

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互联的输出都是主机通道,每个通道驱动对应的设备。

AXI-Lite代码分析

(一)、RTL视图

模块输入信号:

(1)、从机时钟

(2)、从机复位

(3)、从机地址读取有效

AXI4-Stream协议

一、协议介绍

1、AXI4_Stream适用于高速数据流,去掉了地址项,允许无限制的数据突发传输。除了总线时钟和总线复位,其他的接口信号都是以字母T开头。

2、信号接口描述:

(1)、ACLK---------时钟源-----全局时钟信号,所有信号在主时钟信号的上升沿采样。

(2)、ARESETN------复位------低电平有效。

(3)、Tvalid-------主机数据有效信号,(区别AXI4、AXI4-Lite,AXI4_Stream去掉了地址项),由主机发出,高速从机发出的数据有效。源为master。

(4)、Tdata[31:0]--主机发出的数据,数据宽度可选,32/64/1278/256 bit。源位master。

(5)、Tkeep[3:0]---字节修饰符,用于表明Tdata相关字节的内容是否为有效数据,未被Tkeep位确认的字节为孔子杰,视为无关字节,可以从字节流中去除。源为master。

(6)、Tlast--------主机通知从机这时最后一个数据,即为数据包的边界。源为master。

(7)、Tid---------由主机发出,Identity标识符,在存在多个stream数据传输时起作用,用于识别不同的数据流。源为master。

(8)、Tready------从机发出的接收准备好信号。

二、通信机制

  最重要的就是牢记只有 Tvalid & Tready == 1 时才能开始数据传输,Valid信号由数据传输源产生,Ready信号由目的源产生(来自米联客book,这句话总结的太经典了,因为在其他的AXI4总线进行数据读取时,主机也会产生Rready信号)。

   因为AXI4-stream去掉了地址线(依靠Tid进行数据流识别),不涉及数据的读写通信,仅涉及简单的发送与接收,减少了传输延时。

原文地址:https://www.cnblogs.com/luxinshuo/p/11962877.html