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