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 pynq

    • PYNQ 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

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_dict returns 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