Files
Zcu111ResmReceiver/docs/ps_subsystem.md

2.4 KiB

🧠 PS Subsystem (Control + Capture + Processing)

🏠 Project Home


Overview

The PS subsystem is responsible for:

  • System initialization
  • Configuring PL subsystems
  • Triggering captures
  • Receiving data via DMA
  • Preparing data for processing and visualization

The current implementation acts as a placeholder for post-processing, focusing on reliable data acquisition and host interaction.


Responsibilities

Control & Initialization

  • Configure PL parameters:
    • Tx waveform configuration
    • Capture parameters (nFrames, etc.)
  • Initialize DMA and memory buffers
  • Manage system startup

Trigger & Capture

  • Generates capture trigger (software-controlled)
  • Controls DPW acquisition timing
  • Each trigger initiates one DPW capture

DMA Handling

  • AXI4-Stream → DMA (S2MM)
  • Receives 128-bit stream (4 samples per clock)
  • Stores data in PS DDR memory

Configuration:

  • Frame size: 512 samples
  • nFrames: configurable (validated up to 1024)

Data Format

Raw DMA Data

  • Packed complex samples
  • 16-bit real + 16-bit imag per sample
  • 4 samples per 128-bit word

Processing Representation

Data is unpacked and reshaped into:

[FrameSize x nFrames x nTriggers]

Processing Pipeline (Current)

DMA
→ Unpack samples (I/Q separation)
→ Convert to complex representation
→ Reshape into 3D structure
→ Visualization / basic analysis


Validation Support

Uses counter-based validation:

  • Real part → sample counter
  • Imag part → frame index

Enables verification of:

  • Data continuity
  • Frame alignment
  • Correct ordering from DMA

Execution Model

  • Triggered (event-based)
  • Burst capture (DPW)
  • Not continuous real-time streaming

Performance Notes

  • Designed for correctness and validation (not optimized)
  • Bottleneck: unpacking + data movement
  • Full-rate continuous processing not supported

Role in System

The PS currently serves as:

  • Control interface
  • Data acquisition manager
  • Pre-processing stage

Future implementations will replace the current processing with advanced algorithms (e.g., FrFT).


Future Work

  • FrFT-based processing
  • Timestamp integration
  • UDP streaming
  • Optimization (NEON / vectorization)
  • Metadata extraction (move complexity to PL)