How to create overlay dpu.bit on PYNQ-ZU

I am a new user of PYNQ and DPU. Could anyone assist me with this tutorial DPU-PYNQ/boards at master · Xilinx/DPU-PYNQ · GitHub ?
Basically, I want to get the overlay dpu.bit for the PYNQ-ZU board. My question is, should I use a Linux machine to follow the tutorial for Rebuilding Designs DPU?
Also, I am still confused about XRT, so should I install it in Ubuntu? Can it be installed on windows?
Can I use the windows machine to follow those steps?

thank you very much.

Hi there,

Could you clarify if you want to just run the DPU or build your own custom overlay? You don’t need to rebuild anything if you just want to use the dpu.bit shipped with dpu-pynq, just run pip3 install pynq-dpu --no-build-isolation and you’ll have it on your board (that’s running a PYNQ image).

For rebuilding, yes, you will need a Linux machine or a VM. Yes you would install XRT in Linux/Ubuntu, I’m not sure if it’s available on Windows.


Hi skalade,

Thank you for your answer. Previously I ran that command to install dpu-pynq. But I cannot find dpu.bit when I try to run an example. Maybe there is a problem with the installation. I will check it again.

And also, after I can run it, I need to create a custom overlay for dpu in combination with other IP cores. So thank you for clarifying about XRT.

Do you know if there is any vivado project example for DPU that align with the PYNQ overlay? I need to learn that configuration. Thank you

You can run the platform generation script for the pynq-zu board, which will generate the base vivado project to create a platform. You should be able to open it up and modify it to your needs.

For learning, you can take a look at the following:

One thing to keep in mind when working with dpu-pynq is we don’t go through the software platform generation steps with petalinux you’ll see in other tutorials – we already have the images and bootfiles necessary from PYNQ, so instead in our makefile we pass the magic --package.no_image flag to only use the hardware platform.


Great thank you for your guidance. But from the platform generation script, I can not see the DPU IP core inside it. I can create the Vivado project based on that script, but when I saw no DPU IP core inside it, I realized there was something wrong. for using the DPU, we should have a DPU IP core in vivado; shouldn’t we? or is there any wrong understanding in my side for DPU-PYNQ?

Based on my understanding, we can create the overlay if we can create the vivado project and generate the bitstream, then we take the bit file and tcl file.

am my understanding wrong?

Thank you

DPU-PYNQ uses the Vitis flow to build the DPU design, the tcl script builds a platform, which Vitis then links with a dpu kernel. There is a Vivado flow as well, but I have not used it and can’t give much guidance. Please take the time to read the materials I linked earlier, the tutorials go over these flows in greater detail.


1 Like

Oh, I just realized about vitis flow and vivado flow. Thank you for clarifying. I have a better understanding now.

1 Like