Название: Experience of PYNQ: Tutorials for PYNQ-Z2 Автор: Songlin Sun, Jiaqi Zou, Zixuan Zou Издательство: Springer Год: 2023 Язык: английский Формат: pdf (true), epub Размер: 35.2 MB
This book introduces PYNQ, a Python-based framework from Xilinx that makes it easier for users to build electronic systems on Xilinx platforms. The book covers the architecture of PYNQ, the design tools and methods, software and hardware design approach, as well as rich experiment cases on communications, multimedia, and Deep Learning. This book serves as a useful guide for those getting starting with, or working with PYNQ and enables the learners to have a thorough understanding of the hardware/software co-design approaches in the area of the communication, multimedia, and other information system components.
This book is organized based on the teaching materials of “hardware comprehensive experiments” which is an experimental course in BUPT, for both undergraduate and graduate students, and domestic and international students. This course has more than ten years of teaching experience and has taught hundreds of students.
PYNQ is an open-source project from Xilinx. It provides a Jupyter-based framework with Python APIs for using Xilinx platforms. PYNQ supports Zynq and Zynq Ultrascale+, Zynq RFSoC, Alveo and AWS-F1 instances. PYNQ enables architects, engineers and programmers who design embedded systems to use Zynq devices, without having to use ASIC-style design tools to design programmable logic circuits.
Programmable logic circuits are presented as hardware libraries called overlays. These overlays are analogous to software libraries. A software engineer can select the overlay that best matches their application. The overlay can be accessed through a Python API. Creating a new overlay still requires engineers with expertise in designing programmable logic circuits. The key difference, however, is the build once, reuse many times paradigm. Overlays, like software libraries, are designed to be configurable and reused as often as possible in many different applications.
PYNQ supports Python for programming both the embedded processors and the overlays. Python is a “productivity-level” language. To date, C and C++ are the most common embedded programming languages. In contrast, Python raises the level of programming abstraction and programmer productivity. These are not mutually exclusive choices, however. PYNQ uses CPython which is written in C and integrates thousands of C libraries and can be extended with optimized code written in C. Wherever practical, the more productive Python environment should be used, and whenever efficiency dictates, lower-level C code can be used.
PYNQ is an open-source project that aims to work on any computing platform and operating system. This goal is achieved by adopting a web-based architecture, which is also browser agnostic. We incorporate the open-source Jupyter Notebook infrastructure to run an Interactive Python (IPython) kernel and a web server directly on the ARM processor of the Zynq device. The web server brokers access to the kernel via a suite of browser-based tools that provide a dashboard, bash terminal, code editors and Jupyter Notebooks. The browser tools are implemented with a combination of javascript, HTML and CSS and run on any modern browser.
The Xilinx Zynq All Programmable device is an SOC based on a dual-core ARM Cortex-A9 processor (referred to as the processing system or PS), integrated with FPGA fabric (referred to as programmable logic or PL). The PS subsystem includes a number of dedicated peripherals (memory controllers, USB, UART, IIC, SPI, etc.) and can be extended with additional hardware IP in a PL overlay.
Contents: PYNQ Introduction PYNQ HelloWorld: Image Resizing Digital Signal Processing Experiment on PYNQ Basic Communication Experiment on PYNQ Neural Network Experiment on PYNQ