Python is a very powerful and flexible programming language, enabling engineers to perform complex mathematics analysis, implement Artificial Intelligence solutions and develop a range of other complex engineering solutions. The ability to use Python within the Field Programmable Gate Array (FPGA) space has however previously been limited. With the release of the PYNQ framework, Python developers for the first-time were able to exploit the capabilities and performance provided by programmable logic. FPGA developers also benefited as they were able to integrate the high-level capabilities of Python with their FPGA designs. A recent project on Hackster.io by Adam Taylor exemplifies how one can combine this powerful hardware and Python for the implementation of their ideas.

 

To get started with the tutorial, one can pick up Digilent Arty 27-20 as well as a MicroSD card (which should be at least 8 GB if possible). The first step involves getting the PYNQ image up and running on the Digilent Arty 27-20. Once this is complete, the ISO File should be burned to the MicroSD card. Once these steps are complete, it's time to insert the micro SDcard into the Arty Z7-20. If things run smoothly, you will see the Done LED illuminate, indicating the Xilinx Zynq has been configured, followed by activity on the Ethernet LEDs. Once the boot sequence is complete and the PYNQ framework is ready. The four LEDs and two RGB LEDs will flash several times before leaving the four LEDs illuminated.

 

 

Next the tutorial goes into depth about how to leverage Python on the Arty Z7-20 by using Jupyter notebooks.

 

 

In addition to getting you started with utilizing the PYNQ framework the tutorial goes into depth on how the programmable logic can be used to provide several interfaces and programmable logic overlays. This includes developing custom overlays, which can be done in either Vivado Design Suite including SDK and High-Level Synthesis using Vivado HLS or SDSoC Development Environmen so users can fully harness the power of both Python and FPGA.