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?
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)
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.
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.
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).