Skip to content

SPEAR-BF: RFSoC RFDC Documentation

Welcome to the API documentation for SPEAR-BF (Software-defined Python-Enhanced RFSoC Beamformer).

SPEAR-BF provides complete software and hardware designs for a real-time wideband D-band beamforming testbed built on the Xilinx RFSoC platform and the CHARM D-band frontend.

Overview

SPEAR-BF bridges the gap in sub-THz spectrum research by providing a flexible, real-time, wideband experimental system. It supports:

  • Real-Time Wideband Streaming: Up to 1.2 GHz aggregated bandwidth via custom Hardware-Assisted StreamingDMA.
  • Digital Beamforming: Dedicated hardware IP for multi-channel phase and amplitude control.
  • Scalable Architecture: 1T1R, 4T1R, and 8T1R configurations, expandable to 16T16R.
  • Pythonic Interface: High-level PYNQ-based API for rapid prototyping.

Package Structure

The rfsoc_rfdc package is organized into the following modules:

Module Description
rfdc RF Data Converter hardware control
rfdc_config Board configuration dictionaries
rfdc_task High-level RFDC task orchestration
overlay_task Abstract base classes for overlay tasks
rfsoc_overlay PYNQ overlay management
clocks Clock source configuration
dma_monitor DMA throughput monitoring
dsp/ DSP algorithms: OFDM, FMCW, beamforming
receiver/ Receiver channel management and analysis pipelines
transmitter/ Transmitter channel management
plotter/ Visualization utilities
measurement/ Link quality metrics
tiqc/ Transmon qubit control utilities

Quick Start

from rfsoc_rfdc import RfsocOverlay
from rfsoc_rfdc.rfdc_task import RfdcTask

# Load the overlay
overlay = RfsocOverlay("path/to/bitfile.bit")

# Configure the RF data converter
rfdc_task = RfdcTask(overlay)
rfdc_task.run()

Experimental Configurations

Config Setup Carrier Frequency Connection
C1 1T1R 700 MHz Wired Loopback
C2 1T1R 700 MHz OTA (Sub-6 GHz)
C3 1T1R 135 GHz CHARM OTA
C4 4T1R 135 GHz CHARM OTA
C5 8T1R 135 GHz CHARM OTA

Source Repository

The source code is available on GitHub. See the repository README for hardware setup instructions, bitstream preparation, and Jupyter Notebook examples.