Transfer image through DMA

Hi All,

I am using PYNQ Z2 v2.6 for accelerating some image processing algorithm.

I have created the IP using Vitis HLS and I also simulated the C++ code and it was working as expected. Now after I moved the complete design into PYNQ, I am trying to pass the image input from the PL to PS.

I am passing the input through a DMA ip from the PS to my custom IP but I am not understanding how to pass the whole image. The width of buffer length register is set to 24 bits. I was initially passing the whole image using a buffer then I realized that the buffer width is just 24 bits… So I am thinking to pass pixel by pixel… The input image will be RGB and the output will be single channel from the IP…

Can someone help me in passing an image from the PL to PS?

Thanks in Advance
Srijith Krishnan

There are some tutorials on using DMA starting here:

The width register determines the maximum number of bytes you can transfer. The max size is 2^(REGISTER WIDTH) or 67,108,863 bytes. If your image is bigger than this, you need to split it into sections to send it.


Thank you @cathalmccabe for your response !

I wanted to know how will the data be received by my custom ip if I sending the image by sections? I am using the AXI streams for both input and output. The custom ip is designed by the understanding that the input AXI stream will be passing the complete image pixels and this AXI is then converted into a MAT and that MAT is used for processing. After processing the MAT is converted back into the AXI and send back.

Therefore if the image is to sent by sections then will I have to make changes in my custom IP?