首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AXI4 (Lite)窄突发与非对齐突发澄清/兼容性

AXI4 (Lite)窄突发与非对齐突发澄清/兼容性
EN

Stack Overflow用户
提问于 2015-05-21 15:06:48
回答 1查看 5.2K关注 0票数 1

我目前正在编写一个AXI4母版,它应该也支持AXI4 Lite (AXI4L)。

我的AXI4主机正在接收来自16位接口的数据.这是在XilinxSpartan6FPGA上,我计划使用EDK AXI4互连IP,它的最小WDATA宽度为32位。

起初,我想使用窄突发,即AWSIZE = x"01“(传输中的两个字节)。但是,我发现Xilinx的AXI参考指南UG761状态“支持窄脉冲串,但.不推荐。”未对齐的事务应该被支持。

这让我想到。假设我开始了一个未对齐的爆发:

  • AWLEN = x"01“(2拍)
  • AWSIZE = x"02“(传输中的4个字节)

并采取以下行动:

代码语言:javascript
复制
AX (32-bit word #0: send hi16)
XB (32-bit word #1: send lo16)

其中A,B是我的16位字,从一个未对齐(2字节对齐)地址开始.X意味着对于指定的16位,WSTRB被取消声明。

  • 这是支持的,还是通过AWSIZE = x"02“(传输中的4个字节)而不是AWSIZE = x"01”(传输中的2个字节)的类别“窄突发”?

现在,如果这只是针对AXI4,我可能不会那么关心这个用例,因为AXI4外围设备需要使用WSTRB信号。但是,AXI参考指南UG761声明"AXI4L从接口可以选择忽略WSTRB (假设所有字节都是有效的)“。

我读过这里那么多(但不是全部;而且没有列表?)Xilinx AXI4L外围设备确实选择忽略WSTRB。

  • 这意味着我基本上被禁止做窄突发(“不推荐”)和非对齐突发("WSTRB可以被忽略“),还是有一种简单的方法可以将一些实现工作从我的主机卸载到互连中,以保证在访问AXI4L外围设备时有适当的系统行为?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-21 16:14:20

你的例子不是一个狭窄的爆发,应该是有效的。

不推荐窄脉冲串的原因是它提供了次优性能。无论是窄突发和数据调整成本在地区和不推荐IMHO.然而,DRE具有最小的带宽开销,而窄突发具有最小的带宽开销。如果您的AXI端口是100 the 32位,则您有3.2GB的最大吞吐量,如果您使用16位窄突发的50%的时间,则最大吞吐量将降低到2.4GB(32位X 50 the+16位X 50 the)。此外,我也不确定AXI-Lite支持窄突发或数据调整。

你的例子有两个主要的缺陷。首先,它需要3次数据拍来传输32位,这比窄脉冲串更糟糕(我认为AXI不够聪明,无法取消WSTRB到0的最后一次突发)。其次,一次不能超过2 16位,这将挂起您的AXI基础设施的性能,如果您有大量的数据要传输。

处理此问题的最佳方法是将16位连接在一起,形成块中的32位。然后,你缓冲这32位,当你有足够的数据时,你就把它们破解。这是AXI高性能的方式来做到这一点。

但是,如果以16位的形式接收数据,那么使用AXI似乎会更好,AXI支持16位,但没有地址的概念。您可以使用Xilinx的IP核将映射到AXI-4 .或AXI都可以做到这一点。两者都这样做(事实上,AXI-DMA包括一个数据传输),但是AXI-DMA是通过AXI-Lite接口控制的,而Datamover是通过附加的AXI-流来控制的。

最后一点,Xilinx核从来不需要窄脉冲或DRE。如果您需要AXI中的DRE,这是由AXI核心完成的,而不是AXI互连。此外,这些核心是明确的来源,所以你可以检查他们如何操作容易。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30377615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档