Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

You can use Python to control a Zynq FPGA board, typically through PYNQ, but Python does not synthesize your code into FPGA logic. Python runs on the Zynq processor system (PS); custom hardware functions run in the programmable logic (PL) and must be designed for the target board. PYNQ connects the two, commonly through Python APIs and Jupyter notebooks.

What “programming Python on a Zynq FPGA” means

A Zynq device combines an Arm-based processor system with programmable logic. In the PYNQ workflow, Python application code runs on the processor side and controls hardware in the PL through an overlay: a hardware design and the interfaces or metadata that let software use it.

The PYNQ project describes its user experience this way: “A PYNQ enabled board can be easily programmed in Jupyter Notebook using Python.” That refers to developing and controlling applications from Python and Jupyter, not translating arbitrary Python source into FPGA circuitry. See the PYNQ project overview.

How the Python-to-FPGA workflow fits together

  1. Choose the board and supported software route. Check the PYNQ supported-board and image list, as well as the relevant setup documentation. Support and installation differ by platform; a prebuilt SD-card image for one board is not automatically suitable for another. See PYNQ supported boards and pre-built images and PYNQ v3.1 Getting Started.
  2. Boot the matching environment. Follow the setup guide for the exact board and its software version. Where a supported image is used, boot it using the board’s documented process and connect to its Jupyter environment as described in that guide. Check image availability and board revision before following older tutorials.
  3. Load an overlay from Python. An overlay supplies the programmable-logic design and the information Python needs to access it. Use the board-compatible overlay and the PYNQ APIs documented for your installed version.
  4. Write the application in Python. Use Python for orchestration, interactive experiments, data handling and calls into overlay functions. The actual hardware behavior is determined by the overlay, not by Python statements alone.
  5. Design custom PL logic when necessary. If the required hardware function is not available in an existing overlay, create or adapt a hardware design for the target platform using Vivado or compatible AMD design tools. Python can then control that design once its interfaces are available.
  6. Add lower-level code selectively. C or C++ can sit beneath Python-facing application code when appropriate. The architecture and implementation determine throughput and timing; Python by itself is not a guarantee of hard real-time behavior or high performance.

What Python handles—and what still requires hardware design

  • Python is well suited to: interacting with overlays, controlling experiments, coordinating software tasks and building notebook-based applications.
  • Hardware-design tools are needed for: implementing or changing custom logic in the PL and integrating it with the processor-side system.
  • Performance-critical paths may need: a different hardware architecture, optimized overlay interfaces, or C/C++ components, depending on measured requirements.

AMD’s 2018 WP502 describes one example architecture involving HDL and HLS modules, a MicroBlaze worker, Python access through CFFI, memory-mapped I/O and DDR buffers. It is useful as an illustration of how software and hardware components can be combined, not as a current setup recipe or a general performance result: The Value of Python Productivity: Extreme Edge Analytics on Xilinx Zynq Portfolio.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
1M1-M000127DVA Development Board TUL PYNQ-Z2 Zynq-7000 XC7Z020 PYNQ-Z2 Development Board FPGA
  • 1M1-M000127DVA Development Board TUL PYNQ-Z2 Zynq-7000 XC7Z020 PYNQ-Z2 Development Board FPGA

Choosing a board and matching its software

PYNQ lists support across Zynq, Zynq UltraScale+, Zynq RFSoC and Kria families, but supported images are board-specific. Its board page recommends PYNQ-Z2 as a getting-started board and lists it as a Zynq-7000 Z7020 board with 512 MB DDR3 and microSD storage. The page also lists PYNQ-Z1 and ZCU104 image entries. Confirm the current support and image listing for the exact board before buying hardware or adapting a tutorial: PYNQ supported boards and pre-built images.

The AMD Kria KV260 is another Zynq-family option, but it follows its own development context. AMD identifies it as a Zynq UltraScale+ MPSoC kit with customizable acceleration overlays and Vivado/Vitis support. Its user guide describes Linux as the default OS for example applications and points to a prebuilt Linux image. Do not assume that the KV260’s setup is interchangeable with a PYNQ-Z2 image or instructions. See the KV260 datasheet and KV260 software getting-started guide.

Quick Recap

Bestseller No. 2
Digilent PYNQ-Z1 Python Productivity for Zynq (PYNQ-Z1)
Digilent PYNQ-Z1 Python Productivity for Zynq (PYNQ-Z1)
Onboard user interfaces include 4 push buttons, 2 slide switches, 4 LEDs, and 2 RGB LED; Expansion opportunities with two standard Pmod host ports and 16 total FPGA I/O
$338.95
Bestseller No. 5
RCTCBRZVTW FPGA Development Board ZYNQ Core Board 7020 7010 PYNQ Dual Network Interface Z7-Nano(Nano7020C(Enterprise Edition))
RCTCBRZVTW FPGA Development Board ZYNQ Core Board 7020 7010 PYNQ Dual Network Interface Z7-Nano(Nano7020C(Enterprise Edition))
Stability: Long-term stable use; Maintenance: Easy to maintain; Easy to install: Simple operation
$537.91
Best Value
RCTCBRZVTW FPGA Development Board ZYNQ Core Board 7020 7010 PYNQ Dual Network Interface Z7-Nano(Nano7020C(Enterprise Edition))
  • Stability: Long-term stable use
  • Maintenance: Easy to maintain
  • Easy to install: Simple operation
  • Application: Wide range of applications
  • Correct use: correct use can extend the product life
Rank #4
Development Board Dual Core, PYNQ-Z2 FPGA Mainboard
  • Performance: Embedded single-board computer equipped with a quad-core 64-bit processor and supporting the Linux operating system; suitable for edge computing, the Internet of Things (IoT), and other control applications
  • Specifications: The development board offers multiple configuration options, featuring LPDDR4 memory and eMMC flash storage, allowing users to select the configuration that best suits their needs
  • Design: The industrial AI module features a compact design with low power consumption and supports AI acceleration, making it suitable for deep learning and machine vision
  • Reliability: The motherboard supports a wide temperature range, ensuring long-term, continuous, stable, and reliable operation in industrial environments
  • Applications: Widely used in embedded development, smart gateways, AI vision, and industrial automation
Rank #3
Raxmolo FPGA Development Board Zynq-7020 with 40-pin RGB LCD GigE
  • The core board utilizes an industrial-grade main chip and features 512MB DDR3 memory, 16MB QSPI Flash, a TF card slot, Gigabit Ethernet, -compatible output, and a newly added 40-pin RGB LCD interface, offering abundant resources and strong expandability.
  • The Smart Zynq SL V1.3B is a high-performance minimum system development board based on the Xilinx Zynq-7020 chip, designed for FPGA developers, embedded system engineers, and university research projects.
  • This version (V1.3B) builds upon the V1.3 model by adding a 40-pin FPC RGB LCD interface. It is compatible with RGB screens and provides 35 FPGA I/O pins to support a range of display applications.
Rank #2
Digilent PYNQ-Z1 Python Productivity for Zynq (PYNQ-Z1)
  • Designed for use with the PYNQ open-source framework that enables embedded programmers to access the AP SoC via the Python programming language
  • Built around the Xilinx Zynq-7000 AP SoC, with 650MHz dual-core Cortex-A9 processor and DDR3 memory controller with 8 DMA channels
  • Onboard user interfaces include 4 push buttons, 2 slide switches, 4 LEDs, and 2 RGB LED
  • Expansion opportunities with two standard Pmod host ports and 16 total FPGA I/O

Compare the platform to your project

  • Learning with PYNQ: PYNQ-Z2 is the project’s recommended starting board in its board listing. Verify current board and image support first.
  • Application-focused development: Consider whether a kit such as KV260 fits the target application and whether its Linux, Vivado and Vitis route matches the example or overlay you intend to use.
  • For either choice: Match the SoC family, available logic, memory and peripherals, boot/storage method, and overlay or tutorial target to the project. The cited documentation establishes platform differences, not a tested ranking of boards.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Common mistakes to avoid

  • Expecting Python to become FPGA logic: Python controls the PL through software interfaces; custom PL functions still need a hardware design.
  • Using an image for a different board: Match the image, overlay, board revision and software version to the target platform.
  • Assuming all Zynq boards share one setup: PYNQ support and installation paths vary by platform, and adjacent products such as KV260 have their own instructions.
  • Assuming Python guarantees a timing or speed target: Performance depends on the full hardware/software architecture and implementation; validate it against the application’s requirements.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.