Skip to content

cathalmccabe/PYNQ

 
 

Repository files navigation

pynq_logo

python

PYNQ is an open-source project from Xilinx that makes it easier to develop and use and create designs for Xilinx Platforms. Using the Python language and libraries, designers can exploit the benefits of programmable logic and and build more capable and exciting 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

See the PYNQ webpage for an overview of the project, and find PYNQ documentation on ReadTheDocs to get started.

Precompiled Image

The project currently supports multiple platforms including Zynq, Zynq Ultrascale+. RFSoC, Kria and XRT supported hardware which includes Alveo and AWS-F1.

For embedded Zynq platforms you can download a PYNQ image, write it to a micro SD card which is used to boot the board. You can start exploring your board with PYNQ in minutes. For Alveo and AWS-F1 and Kria you can install PYNQ to your host OS.

Quick Start

See the Quickstart guide for details on getting started with a PYNQ-enabled platform.

Python Source Code

All Python code for the pynq package can be found in the /pynq folder. This folder can be found on the board after the board boots with the precompiled image.

To update your PYNQ SD card to the latest pynq package, you can run the following command from a terminal connected to your board:

sudo pip3 install --upgrade --upgrade-strategy only-if-needed pynq

The --upgrade-strategy only-if-needed option will upgrade dependencies only in case they do not satisfy the requirements, which will speed-up the installation process and also avoid possible upgrade errors.

SDK software projects and Python-C source codes are also stored along with the Python source code. After installing the pynq package, the compiled target files will be saved automatically into the pynq package.

Board Files and Overlays

All board related files including Vivado projects, bitstreams, and example notebooks, can be found in the /boards folder.

In Linux, you can rebuild the overlay by running make in the corresponding overlay folder (e.g. /boards/Pynq-Z1/base). In Windows, you need to source the appropriate tcl files in the corresponding overlay folder.

Alveo support

Starting from PYNQ version 2.5.1, Alveo support has also been introduced which includes AWS-F1. It is now possible to use PYNQ to tap into the potential of hardware acceleration in the data center space.

To get PYNQ on an Alveo-enabled system, simply install it through PIP:

pip install pynq

For Alveo cards, PYNQ currently requires a Xilinx Runtime (XRT) version above or equal to 2.3 to be installed in the system. In terms of Operating System, any XRT-supported version of either RedHat/CentOS or Ubuntu can be used.

For more information, please see the Alveo getting started guide.

Contribute

Contributions to this repository are welcomed. Please refer to CONTRIBUTING.md for how to improve PYNQ.

Support

Please ask questions on the PYNQ support forum.

Licenses

PYNQ License: BSD 3-Clause License

Xilinx Embedded SW License: Multiple License File

Digilent IP License: MIT License

SDBuild Open Source Components

License and Copyrights Info TAR/GZIP

Open Components Source Code TAR/GZIP

About

Python Productivity for ZYNQ

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Jupyter Notebook 75.1%
  • Python 6.9%
  • Tcl 6.1%
  • C 4.9%
  • VHDL 3.2%
  • Verilog 1.2%
  • Other 2.6%