# 🧠 PS Subsystem (Control + Capture + Processing) [🏠 Project Home](../README.md) --- ## 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) --- ## 🔗 Related Components - [🏠 Project Home](../README.md) - [PL Tx Subsystem](pl_tx_subsystem.md) - [PL Rx Subsystem](pl_rx_subsystem.md)