By the time i got my board to test it is early July, so it is kind of late

for the session 2, my original aim is to use does overlay on IO to control on/off of water pump to shoot water

following the lab book 2 (which is also accessible from Github ) , i encounter first error at 19, which is to run the build_ip.bat

in my folder, there isnn't such folder and file. puzzled, i look at the session 2 recording again, and turns out that i made a silly mistake, navigating the directory wrongly. So one thing nice about this series is

it is step by step with video recording. although i am super late into the real attempt on the board, i hope i can get pass the steps by referring to it again.


so, i build my first IP and it takes about 1.5 minutes


and i added it to the IP repository

At this stage, i know at least the proper way to add our own ip. With the added IP, we can then use it in our design

following the lab book, we added the Color Convert, Pixel Pack, VDMA, Test Pattern Generator, and select run automation


The runs automation connects the IP blocks automatically

as illustration, below is before and after running connection automation (step 25)

for VDMA, we set to frame buffers 4 with address width 32. VDMA is provided to work in conjunction with the Video Frame Buffer Controller PIM within the Multiport Memory Controller for DMA access.


then we follow a sequence of connecting IP blocks. However, in step 32, i can't select auto assign address but it seems it has been automated for me anyhow

eventually, i connected few more IP blocks and validate the design. It has no error but does have a warning

we then create HDL wrapper and generate bitstream. i got this dialog and a subsequent settings block that is not in the lab book but i am able to move on nonetheless


Bitstream generation does takes some time (in fact in older xilinx tools up to half and hour), i let it run for

it takes 15 minutes on my laptop

following the lab book, copy the bitstream file into a new folder manually created

also copy these two

and create a python script


Now Let's look at the IO that we want to implement

for the PYNQ-Z2 board it has these peripherals


DeviceZynq Z7020
Memory512MB DDR3
VideoHDMI In & Out
AudioADAU1761 codec with HP + Mic, Line in
Network10/100/1000 Ethernet
ExpansionUSB host (PS)
GPIO1x Arduino Header
2x Pmod*
1x RaspberryPi header*
Other I/O6x user LEDs
4x Pushbuttons
2x Dip switches
Dimensions3.44” x 5.51” (87mm x 140mm)
WebpageTUL PYNQ-Z2 webpage


*PYNQ-Z2 RaspberryPi header shares 8 pins with 1 Pmod


===> to be continued ....





PYNQ-Z2 Workshop: Getting Up and Running with PYNQ (Win a $500 Gift Card for Your Embedded Vision Project!)

session 2

session 3