PYNQ is defined as: Python productivity on Zynq, which is an open source software framework that makes it convenient for engineers to develop embedded systems on Xilinx Zynq SoC devices. PYNQ leverages the popular Python language and function library to enable developers to use the logic and processor resources of Zynq devices to create high-performance embedded systems.
The core term for PYNQ is “overlay”. You can think it as circuit implemented by hardware logic and in the form of a function library, therefore we also call it a hardware library. These overlays are very similar to our commonly used software libraries; software engineers can call the appropriate overlay to design their project depending on their own project requirements. These overlays can be called in the traditional API way. Creating a new overlay still requires the involvement of FPGA engineers, just like the traditional IP creation. One advantage is that these overlays, like IPs, or software libraries, are reusable, and you can easily use an overlay in other projects through configuration. The PYNQ framework requires FPGA engineers to design overlays, and firmware engineers to design drivers, a PYNQ framework should be the first thing to build. Fortunately, PYNQ's open source community already has a large number of pre-designed overlays for developers to use.
In PYNQ, Python is the programming language that runs on an ARM processor or calling overlays. As well known, C and C++ languages have dominated most embedded programming designs, while Python provides programming productivity. These two approaches are not contradictory in PYNQ. PYNQ uses CPython, so you can still take C libraries and some optimized C codes. Developers are provided with a highly efficient Python development environment and may use C language to program when necessary.
PYNQ is an open source project that is intended to be used across multiple platforms and operating systems. This is implemented based on the web architecture, and also operated through browsers. PYNQ is integrated with the open source Jupyter Notebook architecture, which can run IPython kernel and web server directly on the ARM processor of Zynq devices. Developers can use common browser tools to develop programs, edit code, and run remote terminal control, charts and other functions. At the same time, developers can debug directly in the embedded product environment itself, and the host is the ARM processor in Zynq, which makes the development more efficient. Of course, the first step is to run all the Python code on the ARM processor for software-only implementation, and then the second phase calls overlays to speed up some computationally intensive algorithms.
Later, through some PYNQ experiment courses, users may gradually gain a better understanding of the improved productivity offered by PYNQ in embedded development. We also hope that users will enjoy using the PYNQ framework to develop more embedded products.
Xilinx PYNQ
PYNQ is an open-source project from Xilinx
Learn MoreLet's Talk
Connect with Avnet's Xilinx experts to find the right solution for your business
Learn More