What is PYNQ?
PYNQ™ is an open-source project from AMD® that makes it easier to use Adaptive Computing platforms.
Using the Python language, Jupyter notebooks, and the huge ecosystem of Python libraries, designers can exploit the benefits of programmable logic and microprocessors to build more capable and exciting electronic systems.
PYNQ can be used to create high performance applications with:
- parallel hardware execution
- high frame-rate video processing
- hardware accelerated algorithms
- real-time signal processing
- high bandwidth IO
- low latency control
Explore PYNQ
Learn about PYNQ with our brief video overview.
Who is PYNQ for?
PYNQ is intended to be used by a wide range of designers and developers including:
- Software developers who want to take advantage of the capabilities of Adaptive Computing platforms without having to use ASIC-style design tools to design hardware.
- System architects who want an easy software interface and framework for rapid prototyping and development of their Zynq, Alveo and AWS-F1 design.
- Hardware designers who want their designs to be used by the widest possible audience.
What AMD devices and boards are supported?
PYNQ can be used with Zynq™, Zynq UltraScale+™, Kria™, Zynq RFSoC, Alveo™ accelerator boards and AWS-F1.
PYNQ can be delivered in two ways; as a bootable Linux image for a Zynq board, which includes the pynq Python package, and other open-source packages, or as a Python package for Kria, or an Alveo or AWS-F1 host computer. Find out about PYNQ supported boards.
Key technologies
Jupyter Notebook is a browser based interactive computing environment. Jupyter notebook documents can be created that include live code, interactive widgets, plots, explanatory text, equations, images and video.
A PYNQ enabled board can be easily programmed in Jupyter Notebook using Python.
Using Python, developers can use hardware libraries and overlays on the programmable logic. Hardware libraries, or overlays, can speed up software running on a Zynq or Alveo board, and customize the hardware platform and interfaces.
What software do I need?
Jupyter notebook runs in a web browser. Only a compatible web browser is needed to start programming PYNQ with Python.
For higher performance, you can also use C/C++ with Python and PYNQ. The AMD Vitis software development environment is available for free. You can also use third party software development tools.
New hardware libraries and overlays can be created using standard AMD and third party hardware design tools.
The free WebPACK version of AMD Vivado can be used with a wide range of Zynq boards.
Vitis and Vitis open-source Accelerated Libraries are also free, and can be used for Alveo/AWS-F1.
How do I get started with PYNQ?
Check the PYNQ Getting Started guide
Find out about supported boards
Read the PYNQ documentation
Try the PYNQ tutorial
Get involved
The full source code for the PYNQ project is available the PYNQ GitHub.
If you would like to get involved or contact the PYNQ team, you can post a message on the PYNQ support forum.