如何解决Zed板上的C APP通过轴DMA流接口从PLFPGA读回数据
我为在 Zed 板上的 FPGA 中运行的 FFT/IFFT 函数创建了一个比特流。我使用以下 python 脚本在 Pynq 板上验证它并且运行良好。现在我想在 Zed 板上使用相同的比特流,但使用 C 应用程序从 PL 读回结果数据。我的 C APP 能够通过 axislite 界面从 PL 读回单个值。但是,对于 FFT/IFFT 的结果数据,它是一个大数组数据。因此,在没有 DMA 支持的情况下,我似乎无法读取它。我不熟悉在 Zed board env 上的 C 应用程序中使用 DMA。你能给我一个关于使用DMA从PL读取大数组数据的参考示例代码(C APP)吗?非常感谢。
...
dma = ol.streamMul.smul_dma
sadd_ip = MMIO(0x43c00000,0x10000)
...
in_buffer = xlnk.cma_array(shape=(length,),dtype=np.int32) # input buffer
out_buffer = xlnk.cma_array(shape=(length,dtype=np.int32) # output buffer
...
sadd_ip.write(0x10,length)
dma.sendchannel.transfer(in_buffer)
dma.recvchannel.transfer(out_buffer)
dma.sendchannel.wait() # wait for send channel
dma.recvchannel.wait() # wait for recv channel
...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。