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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...