2.4 KiB
2.4 KiB
🧠 PS Subsystem (Control + Capture + Processing)
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)