PYNQ is an open-source framework (http://www.pynq.io/) that enables programmers who want to use embedded systems to exploit the capabilities of Xilinx Zynq SoCs, which are processor-centric platforms that offer software-, hardware- and I/O-level programmability in a single chip. It allows users to exploit custom hardware in the programmable logic without having to use ASIC-style CAD tools. Instead the SoC is programmed in Python and the code is developed and tested directly on the embedded system. The programmable logic circuits are imported as hardware libraries and programmed through their APIs, in essentially the same way that software libraries are imported and programmed.
The framework combines four main elements: (1) the use of a high-level productivity language, Python in this case; (2) Python-callable hardware libraries based on FPGA overlays; (3) a web-based architecture incorporating the open-source Jupyter Notebook infrastructure served from Zynq's embedded processors; and (4) Jupyter Notebook's client-side, web apps.
The result is a web-centric programming environment that enables software programmers to work at higher levels of design abstraction and to re-use both software and hardware libraries. This tutorial will give a hands-on introduction to PYNQ framework using PYNQ-Z2 board. It will feature the latest PYNQ release which includes an updated API, an optimized video pipeline, a simplified way of integrating new hardware and drivers into PYNQ, partial reconfiguration support, and developing, compiling, and deploying C-language code straight from the Jupyter notebook without opening Xilinx SDK tool.
The tutorial will also include demonstration of some notebook examples of how the framework can be used in in the development, testing and modeling of cyber-physical systems.
Parimal Patel received a Doctor of Philosophy in Electrical and Computer Engineering from the University of Texas at Austin, Texas in 1986. In 1987 he joined the University of Texas as an Assistant Professor, got promoted to Associate and then to Full Professorships. During his tenure at the university he taught variety of courses including Logic Design, Digital Systems Design, Microcomputer Systems (peripheral interface principles), Embedded Systems Design, VLSI System Design, Computer Architecture, RISC Processor Design, Engineering Workstations, and Advanced HDL modeling. Parimal has always enjoyed teaching and developing new courses. He started as a contract trainer and then full-time employee of Xilinx developing variety of courses for Customer Education department. He joined the Xilinx University Program in April 2007 developing new courses, updating current courses, and delivering XUP workshops worldwide, including High-Level Synthesis, Embedded Systems, Advanced Embedded Systems, DSP Design Flow, DSP Implementation Techniques, Designing with SDSoC, Dynamic Partial Reconfiguration, Python Productivity on Zynq (PYNQ), and Accelerated Cloud Computing on AWS with SDAccel.