Thanks to visit codestin.com
Credit goes to github.com

Skip to content
@pueo-pynq

pueo-pynq

Custom PYNQ firmware and tools for RFSoCs

This organization contains a collection of firmware for RFSoC boards, files to build PYNQ distributions, and tools to interact with them.

All firmware builds have an identical interface from the Python side, so the Python tools can be used on any board freely. In addition, the firmware is set up to allow using the RFSoC data from HDL, rather than a block diagram view or from Matlab.

All of these repositories are Vivado GitHub managed repos in the style as described here. Please read those details first.

The boards involved are:

  • HiTech Global HTG-ZRF-HH, a half-height PCIe form factor card with a ZU28DR.
  • Xilinx ZCU111
  • Real Digital RFSoC-4x2
  • Trenz Electronic TEB0835 using a ZU25DR, although a ZU47DR would just require a part number change.
  • PUEO SURF (in progress)

The base firmware here was built for the PUEO Project ( http://pueo.space ). Please contact Abigail Vieregg ( [email protected] ) or Jim Beatty ( [email protected] ) for reuse in other projects.

Images

https://pueo.uchicago.edu/data/pueo/disk-images/

Common Interface

All of these repositories contain common elements, namely 4 internal RAMs that capture data when commanded to by the processing system via a GPIO, as well as a DebugBridge module to allow for running an XVC server so that a JTAG cable is not needed.

The Python files describing the Overlay all have an internal_capture() function which captures data from those 4 internal RAMs using the GPIO. This common functionality is used by the rfsoc-pydaq program.

PYNQ notes

The "official" PYNQ repositories aren't very well maintained, as there are a number of known issues/patches which just get shoved in commit notes or other repositories. So don't use them, use these.

rfsoc-pydaq

rfsoc-pydaq is a Tkinter-based Python interface for quickly interacting with an RFSoC. It is board-agnostic so long as the overlay supports the internal_capture() function as mentioned above.

To use it, you need a directory containing:

  • a Python module implementing a PYNQ Overlay class to control the board (see the python/ subdirectories)
  • the bitstream you plan on programming (which should be referenced directly in the PYNQ Overlay class constructor, again, see examples in python/)
  • the hardware handoff (.hwh) file for that bitstream which should be named identically to it (if bitstream is my_bitstream.bit you want my_bitstream.hwh)
  • any additional Python modules or files needed (e.g. clock programming modules/files)

Popular repositories Loading

  1. RFSoC-PYNQ-OSU RFSoC-PYNQ-OSU Public

    Forked from Xilinx/RFSoC-PYNQ

    Python productivity for RFSoC platforms

    Jupyter Notebook 2 1

  2. PYNQ-OSU PYNQ-OSU Public

    Forked from Xilinx/PYNQ

    Python Productivity for ZYNQ

    Jupyter Notebook

  3. firmware-htg-zrf-hh firmware-htg-zrf-hh Public

    Firmware for the HTG-ZRF-HH board for testing

    Verilog 1

  4. firmware-zcu111 firmware-zcu111 Public

    Firmware for the ZCU111 for testing

    Verilog 1

  5. rfsoc-pydaq rfsoc-pydaq Public

    Simple Python UI for accessing data from a Pynq RFSoC overlay

    Python 1

  6. firmware-teb0835 firmware-teb0835 Public

    Firmware for the TEB0835 board for testing

    Verilog 1

Repositories

Showing 9 of 9 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…