我正在使用基于它的FPGA在Zedboard Zynq评估板上进行图像处理项目。我使用HLS编写了图像处理块,并使用输入和输出创建了具有宽度为8的AXI4流的IP。
如何在PC上读取JPEG图像并将其作为AXI4流发送到此IP块,然后将其输出以在PC屏幕上显示?
是否有任何现有的IP可以实现这一目标?
P.S。如果相关,FPGA板通过JTAG电缆连接到我的PC。
答案 0 :(得分:2)
可以使用直接存储器访问(DMA)/视频直接存储器访问(VDMA)来建立可编程逻辑(PL)和Zynq的处理系统(PS)之间的图像数据的交换。
此功能由Xilinx作为IP内核提供。该IP核实现了作为AXI流的PL侧的图像数据的接收和发送。 在PS端,可以使用linux UIO访问DMA。为此,您必须在ARM内核的设备树中修改DMA IP内核的设备树节点。如果这样做,DMA可以在linux系统的/ dev /下使用。 现在可以使用mmap()将其映射到用户空间。通过配置DMA,必须为PS分配PS的RAM中的存储区域。该存储区用于实现所谓的流缓冲区。 DMA内核使用此流缓冲区来读取或写入图像数据。同时,linux应用程序可以访问此内存区域。这允许在PS和PL之间交换数据。 有关各寄存器和配置步骤的详细说明,请参见Xilinx的AXI DMA / VDMA产品指南。 只要图像数据在用户空间中可用,就可以使用以太网连接将图像发送到主机PC。 JTAG连接不是在主机PC和Zed板之间交换图像数据的正确方法。