PYNQ Z2 Overlay (Video Pipeline with custom IP Core)

Hello everyone,

Apologies if this is the wrong place to post (I’m new to the forum).

I am working on a project on a Pynq Z2. I have actually the last image flashed on my PYNQ Z2 board, and I am currently using vivado 2018.3.

The project I’m working on consists in the creation of an overlay, which contains the blocks necessary for the creation of a video pipeline (starting with hdmi_in and ending with hdmi_out). This video pipeline should include, at some point, an IP Core that performs operations on the video stream, such as applying certain filters.

i have created a working video pipeline following this tutorial:

HDMI Video Pipeline Design Implementation on Zynq 7000 SoC (Pynq-Z1)

but it seems that this only work with the board connected to the pc, launching the project from vivado.
My questions are:

  1. how can i create a video overlay with a custom IP, in a way that i can import the overlay into the pynq and launch it from the board? (it would be great if the overlay also contains the blocks responsible for correct functionalities of the leds and buttons)

  2. is it possible to adapt the design found in the tutorial in order to reach this goal by adding the IP core and the other resources needed for the overlay to work on the board?

  3. if the answer is no, is there a tutorial that explain better how to do this kind of stuff? i’ve looked everywhere but i can’t find anything that could help.

  4. what should be included Python-Side on the pynq to make this overlay work?

I also have watched the tutorial on the pynq site on how to rebuild the base overlay, deleting all unnecessary blocks, but i think that this solution isn’t viable because vivado keeps bringing on dozen of errors and problems when i try to validate any design that I create modifying the base overlay.

I know that is possible to create what I need starting from the base overlay, it’s just hard (maybe confusing is a better word to describe it) to understand what to remove, what to leave, how to connect the various elements, what settings those elements should have, and where implement the custom IP.

In general I’ve found very little documentation for this related problems.

if anyone could help shed some light on the operations needed to reach this goal, i’d really appreciate it, thank you!

1 Like