首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从AXI4总线读取大量数据?

如何从AXI4总线读取大量数据?
EN

Stack Overflow用户
提问于 2016-04-16 12:46:03
回答 3查看 3.5K关注 0票数 0

我在一个合子板上建了东西,所以用Zynq设备。

我想从CPU写入主内存,然后用FPGA从它读取,以便将CPU结果写入另一个设备。

我很确定我需要使用AXI总线来完成这个任务,但是我无法找到解决这个问题的最佳方法。我是否:

  • 我自己做一个完整的AXI外围?想必是将请求读入主内存,然后完成请求的主程序。我发现很难找到关于如何实际制作AXI外围设备的资源,我将从哪里开始寻找简单的解释。
  • 使用一个Xilinx核为我处理AXI总线,但其中有相当多的,我不确定哪一个最好使用。

无论它是什么,它需要是快速的,它需要能够从我的板上的DDR内存进行大的读取。该内存也需要由CPU写入。

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2016-04-21 17:14:29

一个简单的选择是在方框图中使用组件。然后,可以对AXI流从站进行编码以接收数据。因此ARM将通过AXI写入FIFO,而您的组件将从FIFO中流出数据。不需要做任何AXI的工作。

有关详细信息,请查看Xilinx的PG080

票数 3
EN

Stack Overflow用户

发布于 2016-04-19 10:30:57

如果您可以访问vivado-hls工具。然后,在突发方案下将数据从主存储器传输到FPGA存储器(例如,BRAM)将是一种解决方案。只需在代码中使用memcpy,然后合成工具就会自动生成主IP,这是非常快速和可靠的。

票数 1
EN

Stack Overflow用户

发布于 2016-04-22 19:29:48

选项1:创建您自己的AXI主程序。您可能还需要为配置目的创建一个AXI从服务器。我发现这篇文章对于开始使用AXI:rev1.pdf?MOD=AJPERES&CVID=kW6xDPd非常有帮助,当然,完整的AXI参考规范在这里:specification.pdf

选项2:使用Xilinx组件在DDR内存和AXI流之间设置DMA传输。您需要将您的逻辑与Xilinx组件的"AXI流“进行接口。与创建新的高性能AXI主程序相比,AXI流通常更容易实现。这种方法支持非常高的带宽,并且可以进行连续流和基于数据包的传输。它还支持每个包的元数据。Xilinx组件在这里:dma.html Xilinx还为此提供了软件驱动程序。

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

https://stackoverflow.com/questions/36664352

复制
相关文章

相似问题

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