AXI是ARM AMBA的一部分。AMBA(Advanced Microcontroller Bus Architecture)片上总线协议与1996年第一次提出。AXI的首发版于AMBA3.0中第一次引入,并在2003年发行。之后AMBA4.0引入了AXI的第二个版本AXI4,于2010年发行。
AXI4包括三中类型的接口:
AXI4全面改进和增强了Xilinx产品,提高了 生产力(Productivity)、灵活性(Flexibility) 和 可用性(Availability):
AXI规范描述了单个AXI主设备和单个AXI从设备之间的接口,代表了相互交换信息的IP核。 内存映射AXI主设备和从设备可以使用称为 AXI Interconnect (AXI互连IP)的结构连接在一起。 Xilinx的AXI互连IP包含符合AXI标准的主从接口,可用于在一个或多个AXI主设备和从设备之间路由事务。
AXI4和AXI4- lite接口都包含五个不同的通道:
数据可以同时在主设备和从设备之间双向移动,数据传输大小可以变化。 AXI4的限制是最多256次数据传输的突发事件。 AXI4-Lite每次事件仅允许1次数据传输。
下图展示了AXI4 读事务 是如何使用 读地址通道 和 读数据通道 的。
下图展示了AXI4 写事务 是如何使用 写地址通道 、写数据通道 和 写响应通道 的。
如上图所示,AXI4为读写提供单独的数据和地址连接,允许同时进行双向数据传输。 AXI4需要一个地址,然后突发(Burst)最多256个字的数据。 AXI4协议描述了多种选项,允许符合AXI4标准的系统实现非常高的数据吞吐量。 除了突发之外,这些功能中的一些还包括:数据升迁和缩小规模,多个未完成的地址以及无序事务处理。
在硬件层次,AXI4允许每个AXI主从对使用不同的时钟。 此外,AXI协议允许插入寄存器片(通常称为流水线级)以帮助实现时序收敛
AXI4-Lite类似于AXI4,但有一些例外,其中最值得注意的是突发(burst)不受支持。
AXI4-Stream协议定义了用于传输流数据的单个信道, AXI4-Stream通道建模在AXI4的写数据通道之后。 与AXI4不同,AXI4-Stream接口可以突发无限量的数据。 AMBA4 AXI4-Stream Protocol v1.0 specification[2]中描述了其他可选功能。 该规范描述了如何分割,合并,交错,扩展和缩小AXI4-Stream兼容接口。 与AXI4不同,AXI4-Stream传输无法重新排序。
在内存映射的AXI(AXI3、AXI4和AXI4-Lite)中,所有事务都涉及系统存储空间中的目标地址和要传输的数据的概念。
内存映射系统通常提供更加均匀的方式来查看系统,因为IP围绕定义的内存映射运行。
AXI4-Stream协议用于通常专注于以数据为中心和数据流范例的应用程序,其不存在或不需要地址的概念。 每个AXI4-Stream充当握手数据流的单个单向通道。
在这种较低的操作级别(与存储器映射的AXI协议类型相比),在IP之间移动数据的机制是定义且有效的,但IP之间没有统一的地址内容。 AXI4-Stream IP可以针对数据流应用中的性能进行更好的优化,同时在针对给定的应用空间中也表现得更专业化。
Infrastructure IP是用于构建系统的另一种IP形式。 Infrastructure IP往往是使用通用AXI4接口在系统周围移动或转换数据的通用IP,而不会解释数据。
Infrastructure IP的例子如下:
这些IP对于将多个IP连接到一个系统很有用,但通常不是数据的端点。
另一种方法是构建将AXI4-Stream和AXI内存映射IP组合在一起的系统。 通常,DMA引擎可用于将流移入和移出内存。 例如,处理器可以与DMA引擎一起工作以解码分组或在流数据之上实现协议栈以构建更复杂的系统,其中数据在不同的应用空间或不同的IP之间移动。
AXI规范提供了一个框架,该框架定义了使用定义的信令标准在IP之间移动数据的协议。 该标准确保IP可以相互交换数据,并且数据可以在系统中移动。
AXI IP互操作性影响:
AXI协议定义了数据的交换,传输和转换方式。 AXI协议还确保了传输数据的高效,灵活和可预测。
数据解释:AXI协议没有规定或强制执行数据解释; 因此,必须理解数据内容,并且不同的IP必须对数据有兼容的解释。对于IP,例如具有AXI4存储器映射接口的通用处理器,如何对处理器进行编程以根据端点IP的要求对数据进行格式化和解释具有很大的灵活性。
数据兼容性:对于更多专用IP,如以太网MAC(EMAC)或使用AXI4-Stream的视频显示IP,IP的兼容性更受限于各自的应用空间。 例如,将以太网MAC直接连接到视频显示IP是不可行的。
未完待续…
[1]: AXI Reference Guide
[2]: AMBA4 AXI4-Stream Protocol v1.0
原创性声明:本文属于作者原创性文章,小弟码字辛苦,转载还请注明出处。谢谢~
如果有哪些地方表述的不够得体和清晰,有存在的任何问题,亦或者程序存在任何考虑不周和漏洞,欢迎评论和指正,谢谢各路大佬。
需要代码和有需要相关技术支持的可咨询QQ:297461921