Our Latest News

PYNQ Z1 Review: How Does It Work?

To understand how the PYNQ Z1 works, we will first need to understand the programming process of FPGAs. When we talk about that, we would then discuss how PYNQ Z1 can be a gamechanger for FPGA programming.

What is FPGA Programming?

It is the set of processes or techniques involved in the configuration of Field Programmable Gate Arrays (FPGAs). At the core of these techniques is the optimization of the FPGAs to fit into the designated applications or use cases.

How is an FPGA Programmed?

PYNQ Z1
PYNQ Z1

There are a couple of ways to optimize and reoptimize a Field Programmable Gate Array (FPGA). The most common process is the use of the C and the C++ programming language. However, there are some other processes that we will talk about below.

The HLS Perspective

The integration of the C and the C++ programming languages into the FPGA programming process is possible because of the support for High-Level Synthesis (HLS).

Xilinx, one of the leading FPGA manufacturers enabled this via the release of the Xilinx Vivado HLS Compiler, which provides the architecture or programming environment for the C and the C++ usage in FPGA programming.

Xilinx Vitis

Xilinx has also been in the news for the continual release of innovative FPGA programming concepts – one of which is the Xilinx Vitis.

It is a one-size-fits-all FPGA programming environment, designed to facilitate the AI-induced process of integrating existing software solutions into FPGAs.

Introducing the PYNQ Z1

PYNQ Z1 is the latest programming platform for Field Programmable Gate Array (FPGA) and interestingly, it is coming from Xilinx.

The major reason for introducing this FPGA programming concept is first to offer better solutions than Raspberry Pi does and second, to accelerate the use of Python programming language in FPGA programming. Seeing the considerable success Xilinx achieved with the Xilinx Vivado HLS Compiler, we can expect that the company carves the path for Python programming for FPGAs.

Below are some of the important points to note about this FPGA programming process:

Raspberry Pi vs. PYNQ Z1

PYNQ Z1 is said to be a better programming interface than the Raspberry Pi. It has a considerable advantage over the latter because of the speedy process of offloading the compute-intensive tasks to the Field Programmable Gate Array (FPGA).

Interfacing is Important

Interfacing is very essential to how the PYNQ Z1 works. In this case, it has to allow for the connection of the Zynq’s FPGA programmable logic with the FPGA.

The Zynq is required for the interfacing because the PYNQ Z1 supports the following classes of Xilinx Zynq-based circuit boards:

  • Zynq
  • Zynq UltraScale+
  • Zynq RFSoC

For the aforementioned Xilinx Zynq FPGAs, the PYNQ Z1 can be easily used for the interfacing by downloading a Storage Device (SD) card image that would be used to power/boot the circuit board.

However, if you are to use the PYNQ Z1 with other FPGA series, you can expect the process to be different. For example, it can also be used with the Kria SOMs, Xilinx Alveo Accelerator circuit boards and AWS-F1 instances.

If that be the case, the PYNQ needs to be installed into the host (circuit board)’s Operating System (OS).

Getting Started with the PYNQ Z1

At this point, we want to differentiate between the PYNQ Z1 and the PYNQ. The PYNQ is the open-source project from Xilinx. Among many other things, it is designed or optimized to make the integration of the Python programming language easier for configuring some Xilinx FPGAs.

On the other hand, the PYNQ Z1 is one of the PYNQ development boards. It is the basis upon which can learn the theatrics, design iterations and capabilities of the broader PNYQ framework.

Understanding How the PYNQ Z1 and the PYNQ Z2 Work

Full pcb manufacturing

It is imperative to point out here that the PYNQ Z1 and the PYNQ Z2 are the two (2) major development boards released by Xilinx for use with the PYNQ platform. Despite the differences in how they function, they have at their core, the boards are to download a set of pre-compiled images that would be used to facilitate the configuration. These images typically include example Jupyter notebooks and example overlays.

To point out the differences, the PYNQ Z1 is manufactured by Digilent, while the PYNQ Z2 is from TUL.

The second difference between the two is based on audio systems and the expansion headers. According to the vetted reply in the element14 Community, the PYNQ Z1 has a ChipKit header, 2 Pmods and an Arduino header. On the other hand, the PYNQ Z2 has the same number of Pmods as the PYNQ Z1 does (2), as well as having an Arduino header, but spots the 40-pin Raspberry Pi header instead of the ChipKit header.

Another difference between the two is that the PYNQ Z1 uses an integrated MIC with PWM input, as well as a mono PDM audio out. On the other hand, the PYNQ Z2 has a full ADI audio codec with the headphones out, as well line in and a mic.

Overall Functions of the PYNQ Z1

Now that we know the differences between the PYNQ Z1 and the PYNQ Z2, let us highlight some of the PYNQ Z1 attributes.

Multi-Software Support

As one of the development boards for the PYNQ framework, PYNQ Z1 supports multiple software usage.

The software performs a wide range of functions, such as hosting the Jupyter Notebooks design environment via the web server hosting.

The software also supports the following:

  • A base hardware library and an API for the Field Programmable Gate Array (FPGA).
  • The IPython kernel and the supported packages.
  • Linux

Expandable Capability

Despite the core function of allowing the API-based importation of the programmable logic circuits, PYNQ Z1 also allows the board’s usage for other purposes.

One of those purposes is the expansion of the capability in a way that different devices can be used to improve the functions. Examples of the supported devices are Webcams, Wi-Fi and Bluetooth.

Conclusion

In conclusion, PYNQ Z1 is an ideal development board for Xilinx FPGA programmers looking to tap into the new PYNQ framework, through which the Python programming language can be used for FPGA configuration.

    GET A FREE QUOTE

    FPGA IC & FULL BOM LIST

    We'd love to

    hear from you

    Highlight multiple sections with this eye-catching call to action style.

      Contact Us

      Exhibition Bay South Squre, Fuhai Bao’an Shenzhen China

      • Sales@ebics.com
      • +86.755.27389663