Overlay loading problem -> ip_dict empty

Hi

I have a question on using PYNQ. Vivado generates the bitstream without errors, but PYNQ can’t read the overlay?

I tried:

$ overlay.ip_dict
resulted in an empty dict, even though the bitstream is > 5MB and was generated using Vivado without errors. So, it should have all the IPs in it.

Any suggestions for what could I be missing or pointers for further debug?

Thanks,

-j

Can you post the Python code you used to instantiate the Overlay?

Did you export the TCL file from Vivado and copy it with the bitstream, or copy the HWH file?

If you did, please post version of PYNQ you are using, and your Tcl file.

Cathal

You need files (hwh / tcl) more than just the bitstream.

Hi,

I don’t know if the problem was solved but I have encountered it as well when trying to implement the overlay tutorial (Overlay Tutorial — Python productivity for Zynq (Pynq) v1.0).
I’m using PYNQ Z1 and this tcl file:
add.txt (41.5 KB)
(I changed the extension so I could upload it)

Can you help me please?

Thank you,
Ioana

This looks like an issue with Vivado 2019.2.

The ip_dict is created from the Tcl file generated from Vivado. The Tcl is checked for patterns in the file to parse information about the design.

In a Vivado IPI diagram addresses were assigned with assign_bd_address, but in 2019.2 the default seem to be to use the assign_bd_address command.

We’ll look at this for the next PYNQ release.

Can you please check if you still see this problem if you export and include the HWH file with your overlay?

Cathal

Thank you for the quick response.

It seems the problem persists even after including the hwh file.
Should I try another version of Vivado?

2019.1 and earlier should be OK.
If you check here (6) you can see the versions each PYNQ release was tested against.
https://pynq.readthedocs.io/en/v2.5/pynq_sd_card.html#prepare-the-building-environment

Other Vivado versions may work for building your own overlays with a PYNQ release, but not every combination has been tested.
PYNQ v2.5 was released before Vivado 2019.2 and was not verified against this version.

Cathal

I installed vivado 2019.1 and now it works fine.

Than you!
Ioana

1 Like

@cathalmccabe

FYI. It seems Pynq “prefers” the .hwh over the .tcl file. I don’t get the ip_dict empty error when the .hwh is present, with or without the .tcl file present. If I remove the .hwh, then the error shows up. Granted, my BD design is much simpler than the base, having removed the Microblazes, PMODs, video cores, etc. but kept the GPIO for switches, buttons and LEDs, and added a DMA, on ZCU104.

Thanks,
-Pat

1 Like

Indeed, I stand by @patocarr statement. We actually also throw a warning when you use the .tcl instead of the .hwh. Always try to use the hwh file as it is the recommended way. For many reasons, it works much better and for us it is easier to parse (and holds more information).

2 Likes