PYNQ: PYTHON PRODUCTIVITY FOR ZYNQ

What is PYNQ?

 

PYNQ is an open-source project from Xilinx® that makes it easy to design embedded systems with Xilinx Zynq® All Programmable Systems on Chips (APSoCs).

 

Using the Python language and libraries, designers can exploit the benefits of programmable logic and microprocessors in Zynq to build more capable and exciting embedded systems.

 

PYNQ users can now create high performance embedded applications with

  • parallel hardware execution
  • high frame-rate video processing
  • hardware accelerated algorithms
  • real-time signal processing
  • high bandwidth IO
  • low latency control

The PYNQ-Z1 is the first Zynq board to support PYNQ.

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. 

 

The PYNQ-Z1 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 the PYNQ-Z1, and customize the hardware platform and interfaces. 

 

The PYNQ image is a bootable Linux image, and includes the pynq Python package, and other open-source packages. 

The Jupyter notebook interface is browser based. Only a compatible web browser is needed to start programming PYNQ with Python. 

 

For higher performance, you can also use C/C++ with PYNQ. The Xilinx SDK software development environment is available for free and supports the PYNQ-Z1.

You can also use third party software development tools. 

 

New hardware libraries and overlays can be created using standard Xilinx and third party hardware design tools. The PYNQ-Z1 is fully supported by the free WebPACK version of Xilinx Vivado. 

What software do I need to start using PYNQ?

Processor: Dual-Core ARM® Cortex®-A9

FPGA: 1.3 M reconfigurable gates
Memory: 512MB DDR3 / FLASH
Storage: Micro SD card slot
Video: HDMI In and HDMI Out
Audio: Mic in, Line Out
Network: 10/100/1000 Ethernet
Expansion: USB Host connected to ARM PS
Interfaces: 1x Arduino Header, 2x Pmod (49 GPIO)
GPIO: 16 GPIO (65 in total with Arduino and Pmods)

Other I/O: 6x User LEDs, 4x Pushbuttons, 2x Switches 

Dimensions: 3.44” x 4.81” (87mm x 122mm)

The PYNQ-Z1 Board

How do I get started with PYNQ?

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 Zynq and programmable hardware without having to use ASIC-style design tools to design hardware.
  • System architects who want an easy software interface and framework for their Zynq design.
  • Hardware designers who want their designs to be used by the widest possible audience.

Get the PYNQ-Z1 board

Check the PYNQ-Z1 quick start guide

 

 

You can find the Pynq documentation on http://pynq.readthedocs.io

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.