Change Log
Version 3.1.0
Updates to PYNQ since the last release include:
- Image releases:
pynq_z1_v3.1.0
pynq_z2_v3.1.0
zcu104_v3.1.0
- Upgraded Software
All overlays built with Vivado 2024.1
Linux kernel and build updated to Petalinux 2024.1
- New Features
Added PYNQ.remote and PYNQ.cpp
Docker image build flow added
- Deprecations
Support for Alveo and AWS F1 platforms is deprecated
Removed Vagrant VM support for SD card image builds
Version 3.0.0
Updates to PYNQ since the last release include:
- Image releases:
pynq_z1_v3.0.0
pynq_z2_v3.0.0
zcu104_v3.0.0
pynq_zu_v3.0.0
zcu111_v3.0.0
rfsoc2x2_v3.0.0
rfsoc4x2_v3.0.0
(new) zcu208_v3.0.0
- Official Ubuntu 22.04 support on the Kria-PYNQ repository:
KV260
(new) KR260
- Upgraded Software
All overlays built with Vivado 2022.1
Linux kernel and build updated to Petalinux 2022.1
- Productivity additions - software
Updated to Python 3.10
Updated to JupyterLab 3.4.4
Updated to Ubuntu 22.04 based packages
Separation of PYNQ-Utils repository for overlay packaging
- Productivity additions - hardware
Added XSA parsing support
Added debug bridge IP for XVC server support
Improved support for block design containers and partial reconfiguration
Separation of PYNQ-Metadata repository for design exploration
- SD Build updates
API change to emphasize builds using prebuilt root filesystem
API change to emphasize builds using PYNQ source distribution
XRT library included in board-agnostic images
- Deprecations
PL server as a multi-user daemon is deprecated - pynq server CLI is also deprecated
3rd party board automatic building of overlays in SD Build is deprecated
Wavedrom viewing in JupyterLabs is deprecated - Jupyter notebook viewing is still supported
Use of pynq/utils.py will be deprecated in future releases - PYNQ-Utils will have same APIs
Use of pynq/pl_server/<Vivado parsers>.py will be deprecated in future releases - PYNQ-Metadata will have same APIs
Version 2.7.0
Updates to PYNQ since the last release include:
- Image releases:
pynq_z1_v2.7.0
pynq_z2_v2.7.0
zcu104_v2.7.0
zcu111_v2.7.0
rfsoc2x2_v2.7.0
pynq_zu_v2.7.0
- Upgraded Software
All overlays built with Vivado 2020.2
Linux kernel and build updated to Petalinux 2020.2
- Productivity additions
Updated to Python 3.8
Updated to JupyterLab 3.0.16
Updated to Ubuntu 20.04 based packages
Pynq and Jupyter now execute in a virtual environment (venv)
- SD Build updates
Updated to use OpenEmbedded WIC flows for building SD card images
- Programmable Logic updates
Added cmac.py for 100 GbE offload
PL DRAM allocation support added
RFSoC clock and data converters updated to support RFSoC Gen3 devices
- Deprecations
Removed Xlnk allocator and libraries for edge devices (replaced by XRT allocation)
Version 2.6.0
Updates to PYNQ since the last release include:
- Image releases:
pynq_z1_v2.6.0
pynq_z2_v2.6.0
zcu104_v2.6.0
zcu111_v2.6.0
- Upgraded Software
All overlays built with Vivado 2020.1
Linux kernel and build updated to Petalinux 2020.1
- Productivity Additions
Docker support enabled in the kernel config
Pybind11 support and notebook added for C++ integration
Support for BOOT.BIN bitstream inclusion for custom sdcard builds
Boot.py added to boot partition to enable modifications to the PYNQ boot flow.
- Deprecations
Removed Xlnk allocator from all notebooks - please now use pynq.allocate
Tcl parsing removed - please generate and use an HWH file for Overlays
Version 2.5.1
Updates to PYNQ since the last release include:
- Alveo and AWS F1 Support
Alveo platforms and AWS F1 instances are now supported
IP dictionary and Overlay classes support xclbin metadata parsing
Live Alveo power monitoring added
Vitis kernel signatures delivered with loaded xlcbin files
AWS F1 awsxclbin files are supported
- Productivity Additions
PYNQ is now on PYPI and can be installed using
pip install pynqPYNQ can be installed on x86 machines to support attached Alveo platforms or AWS F1 instances
pynq.utils added for dependent packages to install notebooks and bitstreams
pynq._cli added for new commandline calls to collect and deliver notebooks
JupyterLab views of bitstream metadata dictionaries added
- SD Build Updates
Support added for building sdcard images from Ubuntu 18.04 host machines
No new SD Card images were created for this release
Version 2.5
- Image releases:
pynq_z1_v2.5
pynq_z2_v2.5
zcu104_v2.5
zcu111_v2.5
Within those image files, PYNQ v2.5 is already installed. Updates to PYNQ since the last release include:
- Productivity Additions
Updated to JupyterLab 1.1.3
JupyterLab extensions support added
Support for multiple memories using mem_dict entries
Support for Device Tree Overlays delivered with PL overlays
Support for custom PL device communication using the Device metaclass
- Programmable Logic Updates
All bitstreams built using Vivado 2019.1
XRT Support added (beta)
- Repository Updates
Jenkins CI added
Sdist support added (removing all binaries from the repository)
- SDBuild Updates
Boot partition built on Petalinux 2019.1
Version 2.4
- Image releases:
pynq_z1_v2.4
pynq_z2_v2.4
zcu104_v2.4
zcu111_v2.4
Documentation updated 22 Feb 2019
- Board Additions
RFSoC support added in the new ZCU111-PYNQ repository
- Programmable Logic Updates
All bitstreams built using Vivado 2018.3
Partial reconfiguration support added (beta)
Expanded metadata parsing using the Vivado hwh files
- SDBuild Updates
Boot partition built on Petalinux 2018.3
SDSoC 2018.3 support added
Vagrant configuration file for users building their own SDCard images
Yocto recipes added for including PYNQ in Petalinux root filesystems
Version 2.3
- Image releases:
pynq_z1_v2.3
pynq_z2_v2.3
zcu104_v2.3
Documentation updated 7 Sep 2018
- Architecture Additions
Zynq UltraScale+ (ZU+) support added
- Board Additions
ZCU104 support added
- Programmable Logic Updates
All bitstreams built using Vivado 2018.2
Initial support for DSA generation and PL parsing added
Removed custom toplevel wrapper file requirement
- SDBuild Updates
Root filesystem based on Ubuntu 18.04
Boot partition built on Petalinux 2018.2
SDSoC 2018.2 support added
Added fpga_manager support for Zynq and ZU+
AWS Greengrass kernel configuration options added
Custom board support updated
- New PYNQ Python Modules
Added ZU+ DisplayPort
Added PMBus power monitoring
Added uio support
Added AXI IIC support
- New Microblaze Programming Notebooks
Added arduino ardumoto, arduino joystick, grove usranger notebooks
Version 2.2
Image release: pynq_z2_v2.2
Documentation updated 10 May 2018
- Board Additions
PYNQ-Z2 support added
- New Microblaze Subsystems
Added RPi Microblaze subsystem, bsp and notebooks
- New IP
Added audio with codec support
Version 2.1
Image release: pynq_z1_v2.1
Documentation updated 21 Feb 2018
- Overlay Changes
All overlays updated to build with Vivado 2017.4
Hierarchical IPs’ port names refactored for readability and portability
The IOP hierarchical blocks are renamed from iop_1, 2, 3 to iop_pmoda, iop_pmodb, and iop_arduino
The Microblaze subsystem I/O controllers were renamed to be iop agnostic
- Base Overlay Changes
The onboard switches and LEDs controlled are now controlled by two AXI_GPIO IPs.
The 2nd I2C (shared) from the Arduino IOP was removed
- IP Changes
IP refactored for better portability to new boards and interfaces
IO Switch now with configuration options for pmod, arduino, dual pmod, and custom I/O connectivity
IO Switch now with standard I/O controller interfaces for IIC and SPI
- Linux changes
Updated to Ubuntu 16.04 LTS (Xenial)
Updated kernel to tagged 2017.4 Xilinx release.
Jupyter now listens on both :80 and :9090 ports
opencv2.4.9 removed
- Microblaze Programming
IPython magics added for Jupyter programming of Microblazes
Microblaze pyprintf, RPC, and Python-callable function generation added.
New notebooks added to demonstrate the programming APIs
- Repository Changes
Repository pynqmicroblaze now a package to support Microblaze programming
- Pynq API Changes
Audio class renamed to AudioDirect to allow for future audio codec classes
- New Python Packages
netifaces, imutils, scikit-image
- Device Updates
Removed version-deprecated Grove-I2C Color Sensor
Version 2.0
Image release: pynq_z1_v2.0
Documentation updated: 18 Aug 2017
- Overlay changes
New logictools overlay
Updated to new Trace Analyzer IP in the base overlay
- Repository Changes
Repository restructured to provide better support for multiple platforms
- Repository now supports direct pip install
update_pynq.sh is now deprecated
PYNQ Image build flow now available
- Pynq API Changes
pynq.lib combines previous packages: pynq.board, pynq.iop, pynq.drivers
The pynq.iop subpackage has been restructured into lib.arduino and lib.pmod
For example:
from pynq.iop import Arduino_Analog
is replaced by:
from pynq.lib.arduino import Arduino_Analog
Overlay() automatically downloads an overlays on instantiation by default. Explicit .download() is not required
DMA driver replaced with new version
The buffer is no longer owned by the DMA driver and should instead be allocated using Xlnk.cma_array. Driver exposes both directions of the DMA engine. For example:
send_buffer = xlnk.cma_array(1024, np.float32) dma.sendchannel.transfer(send_buffer) dma.wait() # wait dma.wait_async() also available in coroutines
New Video subsystem with support for openCV style frame passing, color space transforms, and grayscale conversion
New PynqMicroblaze parent class to implement any PYNQ MicroBlaze subsystem
New DefaultIP driver to access MMIO, interrupts and GPIO for an IP and is used as the base class for all IP drivers
New DefaultHierarchy driver to access contained IP as attributes and is used as the base class for all hierarchy drivers
New AxiGPIO driver
- Linux changes
Addition USB Ethernet drivers added
Start-up process added to systemd services
- New Python Packages
cython
- IP changes
Updated Trace Analyzer, deprecated Trace Buffer
Updated Video subsytem with added HLS IP to do color space transforms, and grayscale conversion
Added new logictools overlay IP: Pattern Generator, Boolean Generator, FSM Generator
- Documentation changes
Restructured documentation
Added PYNQ Overlays section describing each overlay and its hardware components
Added PYNQ Libraries section descriping Python API for each hardware component
Added pynq Package section for Python Docstrings
Creating Overlays section renamed to Overlay Design Methodology
Added PYNQ SD Card image section describing PYNQ image build process
Version 1.4
Image release: pynq_z1_image_2016_02_10
Documentation updated: 10 Feb 2017
Xilinx Linux kernel upgraded to 4.6.0
- Added Linux Packages
Python3.6
iwconfig
iwlist
microblaze-gcc
- New Python Packages
asyncio
uvloop
transitions
pygraphviz
pyeda
- Updated Python Packages
pynq
Jupyter Notebook Extension added
IPython upgraded to support Python 3.6
pip
- Other changes
Jupyter extensions
reveal.js updated
update_pynq.sh
wavedrom.js
- Base overlay changes
IOP interface to DDR added (Pmod and Arduino IOP)
Interrupt controller from overlay to PS added. IOP GPIO connected to interrupt controller.
Arduino GPIO base address has changed due to merge of GPIO into a single block. arduino_grove_ledbar and arduino_grove_buzzer compiled binaries are not backward compatible with previous Pynq overlay/image.
- Pynq API/driver changes
TraceBuffer: Bit masks are not required. Only pins should be specified.
PL:
pl_dictreturns an integer type for any base addresshttp://pynq.readthedocs.io/en/latest/4_programming_python.html / address range.Video: Video mode constants are exposed outside the class.
Microblaze binaries for IOP updated.
Xlnk() driver updated, with better support for SDX 2016.3. Removed the customized Xlnk() drivers and use the libsds version.
- Added new iop modules
arduino_lcd18
- Added Notebooks
audio (updated)
arduino_lcd (new)
utilities (new)
asyncio (new)
- Documentation changes
New section on peripherals and interfaces
New section on using peripherals in your applications
New section on Asyncio/Interrupts
New section on trace buffer
Version 1.3
Image release: pynq_z1_image_2016_09_14
Documentation updated: 16 Dec 2016
- Added new iop modules to docs
Arduino Grove Color
Arduino Grove DLight
Arduino Grove Ear HR
Arduino Grove Finger HR
Arduino Grove Haptic motor
Arduino Grove TH02
Pmod Color
Pmod DLight
Pmod Ear HR
Pmod Finger HR
Pmod Haptic motor
Pmod TH02
Added USB WiFi driver