将数据存储到 zynq 设备上的 ram
Store data into ram on a zynq device
我目前在将 Zynq 的 PS 部分生成的图像存储到板的 DDR3 中,然后将该图像读入板的 PL 侧时遇到一些问题这样在那里创建的 VGA 驱动程序可以
PS 创建一个 640x480 图像,理想情况下我想将其存储在 Dram 中。
到目前为止,我一直使用 DMA 来回传输数据,并以某种方式(不存储所有像素)将其存储到我系统的块 ram 中。但这不是一个理想的解决方案,我也知道..
所以我的问题是如何访问我的 zynq 板的 DDR ram,我知道它位于 PS 一侧,但似乎找不到任何解释它应该如何连接的文档等等..
通常在 zynq 上,您尝试使用 Axi 接口处理数据。
您可以通过互连和地址使用它。
在 Vivado 中,块设计图右侧有一个名为 "Address Editor" 的选项卡。
在我的例子中,使用了一个简单的测试应用程序(带 fifo 的 axi dma)。
我将 axi dma 配置为基地址“0x4040_0000”,范围为 64K,因此高地址为“0x4040_FFFF”。
在 SDK 中,您可以通过 C/C++ 程序访问此内存。
这是一个简短的 AXI DMA 示例:
axi dma example
这个例子是为 zedboard 编写的,但我用 z-turn 7020 板试过了,它在 Vivado 2014.4 和 2016.1 中工作。
希望对您有所帮助。
我目前在将 Zynq 的 PS 部分生成的图像存储到板的 DDR3 中,然后将该图像读入板的 PL 侧时遇到一些问题这样在那里创建的 VGA 驱动程序可以
PS 创建一个 640x480 图像,理想情况下我想将其存储在 Dram 中。 到目前为止,我一直使用 DMA 来回传输数据,并以某种方式(不存储所有像素)将其存储到我系统的块 ram 中。但这不是一个理想的解决方案,我也知道..
所以我的问题是如何访问我的 zynq 板的 DDR ram,我知道它位于 PS 一侧,但似乎找不到任何解释它应该如何连接的文档等等..
通常在 zynq 上,您尝试使用 Axi 接口处理数据。 您可以通过互连和地址使用它。
在 Vivado 中,块设计图右侧有一个名为 "Address Editor" 的选项卡。 在我的例子中,使用了一个简单的测试应用程序(带 fifo 的 axi dma)。 我将 axi dma 配置为基地址“0x4040_0000”,范围为 64K,因此高地址为“0x4040_FFFF”。
在 SDK 中,您可以通过 C/C++ 程序访问此内存。
这是一个简短的 AXI DMA 示例: axi dma example
这个例子是为 zedboard 编写的,但我用 z-turn 7020 板试过了,它在 Vivado 2014.4 和 2016.1 中工作。
希望对您有所帮助。