What is PYNQ?

PYNQ is PYthon on zyNQ

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

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

It largely help software developer who don’t want to invest time in learning Hardware Definition Language (HDL) and design their new hardware. PYNQ integrates the power and parallelism of FPGA into Python Libraries that software developers can use to exploit the power and flexibility of an FPGA.

PYNQ on the Ultra96

Lucky for us, PYNQ is now supported on the Ultra96 and the link to download PYNQ OS image can be found at:

The OS image consists of a custom Linux based OS with the special sauce that makes PYNQ tick.

Ways to access PYNQ web interface ie Jupiter NoteBook

PYNQ has a decent web interface that runs on the Jupiter Notebook.

One of the more noticeable features of Jupiter notebook is that you can directly run code snippets step by step from a written documentation.

Since this is a web interface, there are a few ways to access it

  • USB Ethernet Gadget: You can plug in a micro-usb-3b or micro-usb-2b(these are backward compatible) to the micro-usb-3b port on the Ultra96, and connect it to your computer. It will show up as a new LAN Port and now you can navigate to the IP address of the ultra96 and access the web UI.
  • Display Port: Simply use a display connected to the Ultra96 and navigate to http://localhost on chromium which comes pre-installed with the PYNQ OS image.

BNN Example:

PYNQ has an examples page which has a bunch of examples to try out, apart from the ones that come pre-installed. One of the more interesting ones is the Binary Neural Network Exaple by Xilinx Labs, NTNU, University Sidney.

To see this example working and a further walk-through of PYNQ on Ultr96: