PYNQ & 2019.2 compatiblity


Just found out last stable version of PYNQ is made for Vivado 2019.1. Is 2019.2 supported or will be in the future?
It seems also SDK is not available in 2019.2 version and replace by VITIS. What if I want to try PYNQ with 2019.2 tool version?
Basic questions here but I didn’t find any info about this anywhere else.


The current v2.5 version of PYNQ has been tested and verified with 2019.1 only. 2019.2 was unavai;lable at the time of the v2.5 release, and has not been tested with this PYNQ version and is unsupported. Some users have noticed some problems when trying to use bitstreams generated with 2019.2 due to changes in the new version.

I would strongly encourage you to use 2019.1.

Future versions of PYNQ will support newer versions of the tools. Which specific version will depend on the timing of the PYNQ release and the current version of Xilinx tools at that time.


Thanks Cathal.
So there is no news about 2019.2 support for now.


It isn’t intended that PYNQ will “keep up” with every Vivado release. Depending on the timing of the next PYNQ release there may be support for this version, or it may be skipped and a future version used.

If you want to build your own hardware designs, you may be able to use 2019.2. You may run into problems though as it hasn’t been tested.
I do know that you need to make sure you include the HWH with your design, rather than the Tcl file. There are some issues with the Tcl generated. The HWH ‘flow’ is recommended anyway, and Tcl will likely be removed in future releases.

There are some problems rebuilding the base overlay with 2019.2. You may be able to fix these yourself if you have some experience with Vivado/Tcl

If you are trying to rebuild the PYNQ image for your own, I would strongly recommend you use the tested versions.


My main goal is to rebuild PYNQ for a custom board. I do have experience with Vivado and tcl but if I undersand well, it’d be better to stick to the tested version (2019.1 then).

you say that PYNQ v2.5 does NOT support Petalinux 2019.2 and likely requires further modifications compared to Petalinux 2019.1.
I found this, which looks to me (who has no clue about the internals of pynq) like an example of deploying the older PYNQ v2.4 on Petalinux 2019.2:

I first read the statement
“To this end we have been working to include PYNQ as part of Petalinux with the 2019.2 release now including PYNQ version 2.4.”
as “Petalinux 2019.2 supports PYNQ v2.4”. The rest of the description shows that it has to be added as an user package and can’t be selected with petalinux-config -c rootfs/kernel.
I have a custom board and it took quite some time to come up with a working Petalinux project. Adding another recipe as given in this post would be MUCH easier, than setting up a custom vagrant environment and configuring the PYNQ build system.

Could you give some more details about the two approaches and when to choose which?


1 Like

The confusion stems from there being multiple things under the PYNQ umbrella, in this case there PYNQ the python package and PYNQ the full SD card image based on Ubuntu that is released for various boards.

Inside the PYNQ repository we have the sdbuild folder which is used to recreate the entire Ubuntu-based filesystem. As part of that process we use Petalinux to build the Linux kernel and other boot files and at present that requires the using of Petalinux 2019.1.

As a separate project we have had requests from people that use the full Petalinux distribution to have PYNQ the python package work in that stripped down embedded environment rather than a full Ubuntu system. To that end we have a recipe that will install the PYNQ python package inside a Petalinux image. As of Petalinux 2019.2 this recipe ships as part of Petalinux.

If you want the full Ubuntu-based experience then you should use the sdbuild flow to create an image for your board. This can be simplified with the script which will take the Petalinux BSP and PYNQ architecture independent image available for download. If you prefer a stripped-down embedded environment, e.g. for deployment, then you should look at using the PYNQ python package recipe for Petalinux.

Hopefully that helps clear up some of the confusion.


I guess i understand what you mean with the PYNQ recipe “ships with Petalinux 2019.2” now.
It is not a rootfs/kernel element like python or a driver, but one can add PYNQ applications thanks to “inherit xilinx-pynq setuptools3”.

As stated previously, PYNQ v2.5 is designed for Petalinux 2019.1 and currently shows some problems with 2019.2.
Is the “recipe approach” also applicable to Petalinux 2019.1 or does this only work with 2019.2?