AXI用户指南——学习笔记(1)

什么是AXI?

AXI是ARM AMBA的一部分。AMBA(Advanced Microcontroller Bus Architecture)片上总线协议与1996年第一次提出。AXI的首发版于AMBA3.0中第一次引入,并在2003年发行。之后AMBA4.0引入了AXI的第二个版本AXI4,于2010年发行。

AXI4包括三中类型的接口:

  • AXI4——针对高性能内存映射(high-performance memory-map)的要求
  • AXI4_Lite——用于低吞吐率内存映射(low-throughput memory-map)通信(例如操作控制和状态寄存器)
  • AXI-Stream——用于高速数据流

AXI4的优点总结

AXI4全面改进和增强了Xilinx产品,提高了 生产力(Productivity)灵活性(Flexibility)可用性(Availability)

  • 生产力——通过对AXI接口进行标准化,开发人员只需要学习一种IP协议
  • 灵活性——为应用程序提供正确的协议
    • AXI4用于内存映射接口,只需一个地址周期(address phase)即可触发多达256个数据传输周期
    • AXI4-Lite是一个轻量级的单事务内存映射接口。它具有较小的逻辑占用空间,是设计中一个简单的接口
    • AXI4-Stream完全移除了对地址周期的要求,并允许无限制的突发数据的尺寸。AXI4-Stream接口和传输没有地址周期,因此不具有内存映射的特性
  • 可用性——通过使用行业标准,您不仅可以访问Xilinx IP目录,还可以访问ARM合作伙伴的全球社区
    • 许多IP提供者都支持AXI协议
    • 提供了强大的第三方AXI工具供应商,可提供各种验证,系统开发和性能表征工具。 在开始开发基于AXI的高性能系统时,这些工具的可用性至关重要

AXI是如何工作的?

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协议用于通常专注于以数据为中心和数据流范例的应用程序,其不存在或不需要地址的概念。 每个AXI4-Stream充当握手数据流的单个单向通道。

在这种较低的操作级别(与存储器映射的AXI协议类型相比),在IP之间移动数据的机制是定义且有效的,但IP之间没有统一的地址内容。 AXI4-Stream IP可以针对数据流应用中的性能进行更好的优化,同时在针对给定的应用空间中也表现得更专业化。

Infrastructure IP

Infrastructure IP是用于构建系统的另一种IP形式。 Infrastructure IP往往是使用通用AXI4接口在系统周围移动或转换数据的通用IP,而不会解释数据。

Infrastructure IP的例子如下:

  • 寄存器切片(用于pipeline)
  • AXI FIFOs(用于缓冲/时钟转换)
  • AXI互连IP(将内存映射IP连接在一起)
  • AXI直接内存访问(Direct Memory Access,DMA)引擎(内存映射到流的转换)

这些IP对于将多个IP连接到一个系统很有用,但通常不是数据的端点。

结合AXI4-String和内存映射协议

另一种方法是构建将AXI4-Stream和AXI内存映射IP组合在一起的系统。 通常,DMA引擎可用于将流移入和移出内存。 例如,处理器可以与DMA引擎一起工作以解码分组或在流数据之上实现协议栈以构建更复杂的系统,其中数据在不同的应用空间或不同的IP之间移动。

IP互操作性

AXI规范提供了一个框架,该框架定义了使用定义的信令标准在IP之间移动数据的协议。 该标准确保IP可以相互交换数据,并且数据可以在系统中移动。

AXI IP互操作性影响:

  • IP应用程序空间
  • IP如何解释数据
  • 使用哪种AXI接口协议(AXI4,AXI4-Lite或AXI4-Stream)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值