Отправляете изображение JPEG в поток AXI4 и читаете его обратно?

Я делаю проект обработки изображений на оценочной плате Zedboard Zynq, используя встроенную FPGA. Я написал блок обработки изображений с использованием HLS и создал IP с входом и выходом в виде потоков AXI4 с шириной 8.

Как мне прочитать изображение JPEG на моем ПК и отправить его в виде потока AXI4 на этот IP-блок, и вывести его обратно, чтобы показать на экране моего ПК?

Существуют ли какие-либо IP-адреса, которые выполняют это?

PS Плата FPGA подключается к моему ПК через кабель JTAG, если это актуально.

1 ответ

Обмен данными изображения между программируемой логикой (PL) и системой обработки (PS) Zynq может быть установлен с использованием прямого доступа к памяти (DMA)/ прямого доступа к памяти видео (VDMA).

Это функционально предоставляется Xilinx в качестве IP-ядра. Это IP-ядро реализует прием и передачу данных изображения на стороне PL в виде потока AXI. На стороне PS доступ к DMA может быть сделан с помощью linux UIO. Для этого необходимо изменить узел дерева устройств IP-ядра DMA в дереве устройств ядра ARM. Если это сделано, DMA доступен в /dev/ в системе Linux. Теперь его можно сопоставить с пользовательским пространством с помощью mmap(). При настройке прямого доступа к памяти область памяти в оперативной памяти PS должна быть назначена ему. Эта область памяти используется для реализации так называемого потокового буфера. Ядро DMA использует этот буфер потока для чтения или записи данных изображения. В то же время приложение Linux может получить доступ к этой области памяти. Это позволяет обмениваться данными между PS и PL. Подробное описание отдельных регистров и процедуры конфигурации можно найти в руководстве по продукту Xilinx AXI DMA/VDMA. Поскольку данные изображения доступны в пространстве пользователя, соединение Ethernet может использоваться для отправки изображения на хост-компьютер. Соединение JTAG не является надлежащим способом обмена данными изображения между главным компьютером и платой Zed.

Другие вопросы по тегам