Software developers
Use existing hardware overlays from Python, without having to design the hardware.
PYNQ is an open-source project from AMD that makes it easier to use adaptive computing platforms. It uses Python and Jupyter notebooks to work with programmable logic and processors.
Load and inspect hardware designs at runtime, read and write registers with MMIO, allocate buffers for data transfer, and much more.
from pynq import Overlay, MMIO, allocate
ol = Overlay("my_design.xsa")
print(ol.ip_dict)
mmio = MMIO(BASE_ADDR, ADDR_RANGE)
mmio.write(ADDR_OFFSET, DATA)
result = mmio.read(ADDR_OFFSET)
buffer = allocate(shape=(5,), dtype='u4')
buffer[:] = range(5)PYNQ is intended for a wide range of designers and developers.
Python libraries, Jupyter notebooks, and overlays provide a way to use programmable logic alongside processor software.
Use existing hardware overlays from Python, without having to design the hardware.
Prototype systems with a Python interface to programmable logic.
Make reusable designs available to others through Python APIs.
Choose the image for your board and memory configuration. Older versions are in Previous downloads below.
Zynq UltraScale+
Zynq UltraScale+
Zynq UltraScale+ RFSoC
Zynq UltraScale+ RFSoC
Zynq UltraScale+ RFSoC
Versal AI Core
Zynq UltraScale+
Source distribution and root filesystem downloads for custom board images.
Read the image build guide ↗Zynq UltraScale+
Zynq UltraScale+
Zynq UltraScale+ RFSoC
Zynq UltraScale+ RFSoC
Zynq UltraScale+ RFSoC
Zynq 7000
Zynq 7000
Zynq UltraScale+ RFSoC
Zynq UltraScale+
Zynq UltraScale+
Zynq UltraScale+
Zynq UltraScale+
The PYNQ source code is available on GitHub. For questions or to contact the PYNQ team, use the support forum.