“PYNQ enables us to access the performance of programmable logic. Let’s look at how we can use the that with IoT frameworks.
The PYNQ framework enables us to work easily with the programmable logic provided in Xilinx Heterogeneous SoCs such as the Zynq and Zynq MPSoC.
Using Python within PYNQ enables easy access and use of high level frameworks, including those which connect us to the Internet or Things (IoT) and cloud based services.
In this project we are going to explore how we can create a PYNQ image for the Zybo development board and then connect this easily with sensors and IoT cloud based services. It goes without saying we could do the same for any board, including a custom designed board.
Getting Started Building PYNQ
For this project we are going to be using the ZYBO Z7 board as the target for the PYNQ application. I picked this board as it provides six Pmod interfaces allowing us to interface with a range of sensors and actuators e.g. temperature, ambient light sensors, accelerators etc.
Of course the first step in this journey is to create a PYNQ image, which means we start our journey in Vivado where we implement the base hardware design.
To be able to make use of the Pmod interfaces the PYNQ framework uses Input Output Processors (IOP) within the programmable logic. These are Microblaze processors which are connected to a input / output switch to support several IO standards currently used e.g. IIC, SPI, UART, GPIO etc.
This lets us offload lower level, real-time interfacing to the programmable logic, enabling a more responsive solution.”