1

我正在 Zedboard Zynq 评估板上使用构建在其上的 FPGA 进行图像处理项目。我已经使用 HLS 编写了图像处理块,并将输入和输出的 IP 创建为宽度为 8 的 AXI4 流。

如何在我的 PC 上读取 JPEG 图像并将其作为 AXI4 流发送到此 IP 块,然后将其输出回来以显示在我的 PC 屏幕上?

是否有任何现有的 IP 可以做到这一点?

PS FPGA 板通过 JTAG 电缆连接到我的 PC,以防万一。

4

1 回答 1

2

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 板之间交换图像数据的正确方式。

于 2017-11-30T18:31:24.520 回答