我在一个合子板上建了东西,所以用Zynq设备。
我想从CPU写入主内存,然后用FPGA从它读取,以便将CPU结果写入另一个设备。
我很确定我需要使用AXI总线来完成这个任务,但是我无法找到解决这个问题的最佳方法。我是否:
无论它是什么,它需要是快速的,它需要能够从我的板上的DDR内存进行大的读取。该内存也需要由CPU写入。
谢谢!
发布于 2016-04-21 17:14:29
一个简单的选择是在方框图中使用组件。然后,可以对AXI流从站进行编码以接收数据。因此ARM将通过AXI写入FIFO,而您的组件将从FIFO中流出数据。不需要做任何AXI的工作。
有关详细信息,请查看Xilinx的PG080。
发布于 2016-04-19 10:30:57
如果您可以访问vivado-hls工具。然后,在突发方案下将数据从主存储器传输到FPGA存储器(例如,BRAM)将是一种解决方案。只需在代码中使用memcpy,然后合成工具就会自动生成主IP,这是非常快速和可靠的。
发布于 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还为此提供了软件驱动程序。
https://stackoverflow.com/questions/36664352
复制相似问题