PYNQ: PYTHON PRODUCTIVITY FOR ZYNQ

Base.tcl - where looking for ip cores

Hi,

In the boards/‘board_name’/base folder where does the base.tcl script search for the ip cores during the ip check? This starts at line 184 of the base.tcl script (using the Pynq-Z1 as an example). I don’t see where the script is looking for the ips. They are located in the directory ‘ip’ but I only see the script creating a text list based on $list_check_ips variable not actually checking for them on my hard drive. Shouldn’t this script be searching the PYNQ/boards/ip directory for IP? that is where I put my custom IP, but the script doesn’t find it. Script attached.

base_tcl.zip (22.9 KB)

The ip_repo is set at link 108 in the Z1 base.tcl

https://github.com/Xilinx/PYNQ/blob/master/boards/Pynq-Z1/base/base.tcl#L108

$list_check_ips is only doing a check those IP exist and thi sis automated by Vivado. This check isn’t essential, and will just cause the build process to fail early if an IP doesn’t exist.
If your IP exists and can be used in your project, you shouldn’t have a problem. If your IP doesn’t exist, or can’t be found, the design build will just fail later when you try to instantiate it in the block diagram.

I would suggest you build your create your design, then export the TCL and this should be taken care of automatically for you.

For completeness …

To rebuild the base overlay, you should run make in the /boards/Pynq-Z1/base directory

This will run the build_base_ip.tcl script which will walk the /boards/ip/hls directory and rebuild the HLS IP

You can see this directory is …/…/ip/hls relative to the base directory:
https://github.com/Xilinx/PYNQ/blob/master/boards/Pynq-Z1/base/build_base_ip.tcl#L3

See info here to rebuild the base design:
https://pynq.readthedocs.io/en/v2.4/pynq_overlays/pynqz1/pynqz1_base_overlay.html#rebuilding-the-overlay

Cathal

1 Like

Hi Cathal,

Thank you for the reply. I built the overlay in vivdao completely (to bitstream) and exported the bd tcl file manually using vivado. I managed to get the build back up and running by modding the TCL file in two places. I’ve attached it and commented my edits with # RV. It found the HLS ip no problome, but couldn’t find the non-HLS ip even though it came up fine in vivado’s IP library.

Does that make file build the needed files and place them in the boards/boardname/base directory? Or does it just build the boards/boardname/base/base vivdao project directory?

base.zip (20.5 KB)

From your script, your IP should be available if it is valid, and if it is here: /home/rob/xilinx/PYNQ/boards/ip

You can check the makefile we provided with the base overlay. It will rebuild the HLS IP from source, and rebuild the base design. You can see there is other non-HLS IP in the ip directory.

Cathal

1 Like