<!– SPDX-FileCopyrightText: 2026 Ahmed Imamović SPDX-FileCopyrightText: 2026 Tarik Hamedović SPDX-License-Identifier: CC-BY-SA-4.0 –>

Export DDR3 Data over UDP

This page describes how captured DDR3 data is transferred to the host and processed using the provided scripts.

Overview

After capturing data into DDR3, it is streamed to the host using UDP.

The flow:

DDR3 memory
     ↓
DMA reader
     ↓
UDP stream
     ↓
host receiver
     ↓
binary reconstruction
     ↓
analysis / plotting

Receiver Script

The main receiver is:

3.build/scripts/receive_udp_capture.py

Run it on the host:

python 3.build/scripts/receive_udp_capture.py

This script:

  • listens for UDP packets

  • validates packet headers

  • reconstructs binary data

  • writes capture.bin

Available Analysis Tools

The repository provides several helper scripts:

capture_bin_to_txt.py
plot_capture_bin.py
plot_capture_lanes.py
plot_csv_fft.py
plot_csv_fft_coherent.py
serial_capture_to_csv.py

Each tool serves a specific purpose:

  • capture_bin_to_txt.py Converts binary capture into readable numeric format

  • plot_capture_bin.py Quick visualization of raw waveform

  • plot_capture_lanes.py Debug multi-lane/interleaved data

  • plot_csv_fft.py Frequency-domain analysis

  • plot_csv_fft_coherent.py Coherent FFT (better for precise measurements)

Typical Workflow

# 1. receive UDP data
python 3.build/scripts/receive_udp_capture.py

# 2. convert to text
python 3.build/scripts/capture_bin_to_txt.py capture.bin

# 3. plot waveform
python 3.build/scripts/plot_capture_bin.py capture.bin

# 4. FFT analysis
python 3.build/scripts/plot_csv_fft.py capture.csv

Validation Checklist

Before using captured data:

  • verify no packet loss

  • verify correct file size

  • validate with ramp mode

  • confirm waveform continuity

Why This Matters

This step makes high-speed capture usable:

  • data leaves FPGA

  • signal becomes visible

  • analysis becomes possible

Without it, DDR3 capture cannot be inspected or validated.