PYNQ Environment on Versal Devices
Nemanja Filipović, Dragomir El Mezeni, Vladimir L. Petrović · 2023
Python productivity for Zynq (PYNQ) is a Linux environment targeted for use on Zynq UltraScale+ and Zynq-7000 platforms from AMD. Its main component is a Python library that facilitates writing drivers, performing direct memory access (DMA) transfers and executing other complex tasks directly from the Python environment. This enables the use of a high-level programming language with a rich library set to control the implemented hardware design directly. However, the newest architecture of AMD all-programmable systems on chip (SoCs), Versal does not support PYNQ. It represents a paradigm shift, with a tighter coupling between the field-programmable gate array (FPGA) fabric, the processing system, and the newly introduced artificial intelligence (AI) engines. This makes the straightforward porting of the PYNQ environment to the new hardware impossible. Through the use of specific implementation settings and modifications to the PYNQ library, the work from this paper successfully ported much of the PYNQ functionality to the new platform. These modifications were tested on a VCK190 board, featuring a Versal Core XCVC1902 ACAP.