As I have said several times in this blog, I am a massive fan of the PYNQ framework. We use PYNQ and HLS to accelerate our development timescale in my consultancy because PYNQ enables us to create test environments quickly and easily.
I have also created numerous Hackster projects over the years that use the PYNQ framework on several different boards including the PYNQ-Z1 and PYNQ-Z2, Ultra96-V2, Cora Z7, Zybo Z7, and, of course, the snickerdoodle.
Therefore, I was very excited to receive the latest PYNQ-ZU board recently. Like the name implies, this board provides the user with a Zynq UltraScale+ ZU5EG device. Supporting this is 4 GB of DDR4 memory connected to the processing system.
The ZU5EG device provides us with 234 K CLB flip flops, 117 K CLB LUTs, and 5.1 Mb of BRAM. In addition, the device also provides the developer with 18.0 Mb of UltraRAM.
What I really like about the board, however, is its interfacing capability. The board provides a myriad of interfaces that can be used for applications like video and signal processing, DSP algorithms, motor control and sensing applications.
The interfaces can be broken down into several functional groups.
Audio & Video Processing – The board provides the user with HDMI In and Out, Mini Display Port Out, 4 USB 3.0 downstream ports, and MIPI CSI interface. This allows the developer to be able to interface with a range of cameras or image sensors that can be connected to either the PS or the PL as necessary.
Communication – The board provides WiFi and Bluetooth and a USB 3.0 upstream port in addition to a USB UART terminal / JTAG interface.
IO Expansion – The major advantage of this board is the provided IO breakout and standards, low-speed interfacing by Raspberry PI 40 pin headers, three grove interfaces, and dual Pmods. High-speed interfacing is provided by a FMC LPC and dual SYZYGY interfaces. This means the PYNQ-ZU can be used to connect to a range of FMC and SYZYGY boards that can provide high-speed ADC/DAC, networking solutions (TSN), and application-specific image processing interfaces (e.g., FPD link and storage solutions such as NVMe Solid State Drives).
Development and Test - The board also provides buttons switches and LEDs as would be expected for a development board. Additionally, two channels of the XADC are also broken out to the headers to enable developers to learn how to use the XADC with PYNQ.
What is great about the PYNQ framework is that projects migrate between boards seamlessly . If your script worked on PYNQ-Z1 or Z2 and an overlay is available, it will work on the PYNQ-ZU. You can easily re-compile the overlay for the PYNQ-ZU.
What makes the PYNQ-ZU so powerful to me is the SYZYGY and FMC interfaces. This is where the PYNQ enables acceleration of development via rapid prototyping. Combining the FMC and SYZYGY interfacing with the ability to generate and capture data in Python (especially with the UltraRAM capability for storage) enables developers to drop algorithms into a PYNQ overlay and see how it operates in the real world working with the real sensors very quickly.
Over the next few weeks, I will start looking to generate some projects in Hackster based around this. In fact, the parts for the first one are already on order.