Skip to content

rfsoc_rfdc

Python library for controlling Xilinx RFSoC RF Data Converters (RFDC) on PYNQ-enabled boards (e.g. ZCU216).

Features

Area Description
RFDC control DAC/ADC tile configuration, mixer, NCO, interpolation/decimation
Clock management LMK04828 distribution IC and LMX2594 PLL programming
Multi-Tile Sync Coherent DAC/ADC alignment across tiles (MTS)
Transmit tasks Single-channel, multi-channel, and MIMO transmit orchestration
Receive tasks Single-channel, multi-channel, and MIMO receive orchestration
DSP OFDM (16/256 QAM), Zadoff-Chu detection, CFO estimation
DMA drivers Streaming DMA controller wrappers (v1–v4)
Waveforms Sine, cosine, square, triangle, sawtooth, Zadoff-Chu, PRBS
IQ loading NumPy .npy and MATLAB .mat file loaders
Visualization Time-domain, FFT, BER, and EVM plots

Quick Start

from rfsoc_rfdc.rfsoc_overlay import RFSoCOverlay
from rfsoc_rfdc.rfdc_task import RfdcTask

overlay = RFSoCOverlay("design.bit")
rfdc = RfdcTask(overlay)
rfdc.start()

Architecture

rfsoc_rfdc/
├── rfdc.py               # RF Data Converter controller
├── rfdc_config.py        # Hardware configuration dictionaries
├── rfdc_task.py          # RFDC + clock + MTS orchestration
├── rfsoc_overlay.py      # PYNQ overlay / bitstream management
├── overlay_task.py       # Abstract task base classes
├── clocks.py             # LMK04828 / LMX2594 clock configuration
├── mts.py                # Multi-Tile Synchronization
├── iq_loader.py          # IQ sample file loaders
├── waveform_generator.py # Waveform synthesis
├── dma_monitor.py        # DMA controller drivers
├── multi_ch_mem_layout.py# Multi-channel DMA memory layout
├── throughput_timer.py   # Performance measurement
├── cmac_task.py          # CMAC transceiver task
├── dsp/                  # Signal processing (OFDM, detection, MIMO)
├── receiver/             # ADC channel wrappers and Rx tasks
├── transmitter/          # DAC channel wrappers and Tx tasks
└── plotter/              # Matplotlib / Plotly visualization

API Reference

See the API Reference tab for full auto-generated documentation of every module, class, and function.