【问题标题】:How do I read large amounts of data from an AXI4 bus如何从 AXI4 总线读取大量数据
【发布时间】:2016-04-16 12:46:03
【问题描述】:

我正在 zybo 板上构建一些东西,所以使用的是 Zynq 设备。

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

我很确定我需要使用 AXI 总线来执行此操作,但我无法找到解决问题的最佳方法。我:

  • 自己制作完整的 AXI 外设?大概是一个主机,它向主内存发出读取请求,然后完成它们。我发现很难找到有关如何实际制作 AXI 外设的资源,我该从哪里开始寻找简单明了的解释。
  • 使用其中一个 Xilinx IP 内核为我处理 AXI 总线,但其中有很多,我不确定最好使用哪个。

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

谢谢!

【问题讨论】:

  • 考虑使用 AXI stave 外设(使用 Xilinx 外设作为起点)并将内存放入其中。然后 CPU 直接写入外围设备的内存。由于 BlockRams 是双端口的,因此您可以直接从另一个端口访问数据。
  • 我考虑过这个;你是对的,这是最好的方法,但我需要实例化太多的 ram。不过,我会试一试,也许有办法让 CPU 调度工作得恰到好处,这样就没有问题,一切正常。

标签: vhdl fpga xilinx vivado zynq


【解决方案1】:

一个简单的选择是在框图中使用 AXI-Stream FIFO 组件。然后您可以编写一个 AXI-Stream 从机来接收数据。因此 ARM 将通过 AXI 写入 FIFO,而您的组件会将数据从 FIFO 中流出。无需做任何 AXI 工作。

查看 Xilinx 的PG080 了解详情。

【讨论】:

  • 您知道任何可以让 FPGA 以相同方式从内存中读取的组件吗?所以我可以发出一个从 FPGA 读取到主存的内存,然后使用它的结果?否则,我基本上会在 ARM 上将该代码代码作为 memcpy 实现到 FIFO 组件中。
  • 可能是 AXI 流到内存映射 (PG102)。它将 AXI 流与 AXI 事务进行转换。非常简单的界面,但确实需要一些数据打包。
【解决方案2】:

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

【讨论】:

  • 这是我的总体计划,但我想知道是否使用 vivado IP 与 AXI 总线通信,然后我与 IP 通信,或者我是否应该只实现 AXI 外围设备。我的问题基本上是“我是花时间学习与 AXI 总线接口,还是花时间学习如何与特定 IP 核接口”。
【解决方案3】:

选项 1:创建您自己的 AXI 主机。出于配置目的,您可能还需要创建一个 AXI 从站。 我发现这篇文章对开始使用 AXI 很有帮助: http://silica.com/wps/wcm/connect/88aa13e1-4ba4-4ed9-8247-65ad45c59129/SILICA_Xilinx_Designing_a_custom_axi_slave_rev1.pdf?MOD=AJPERES&CVID=kW6xDPd 当然,完整的 AXI 参考规范在这里: http://www.gstitt.ece.ufl.edu/courses/fall15/eel4720_5721/labs/refs/AXI4_specification.pdf

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    相关资源
    最近更新 更多