我需要在Linux环境中通过PCI将视频数据传输到和来自 FPGA设备。我在FPGA上使用第三方PCI主核。到目前为止,我已经在FPGA上实现了一个简单的DMA控制器,使用连续的PCI写突发将数据从 FPGA传输到CPU。
接下来,我需要将视频数据从CPU传输到FPGA。最好的方法是什么?
我应该在FPGA上实现一个模块,它通过PCI执行一大堆突发读取。或者有没有办法让CPU使用PCI写突发有效地将数据写入FPGA的内存?
我的带宽要求在两个方向都约为30 MB / s。
感谢。
答案 0 :(得分:2)
你可以像CPU一样发布来自CPU的写入,但是你需要有一些驱动程序魔法,例如设置MTRR(这意味着你可能有一些架构依赖性)。如果您想要安全,从FPGA读取DMA是一种更好的方法。 30MB / s并不多。
答案 1 :(得分:1)
听起来我应该掌握FPGA的读写操作。否则你会占用主机CPU。这是DMA的经典任务(并且您无法保证每个主机上都存在DMA)。