Added documentation and updated README

This commit is contained in:
canisio
2026-04-02 17:29:24 -03:00
parent e810145620
commit ea0ecefae1
14 changed files with 169 additions and 52 deletions

View File

@@ -4,11 +4,15 @@
This project is based on the RFSoC SoC Blockset reference design, adapted as a prototype for a Radar Electronic Support Measures (R-ESM) receiver. This project is based on the RFSoC SoC Blockset reference design, adapted as a prototype for a Radar Electronic Support Measures (R-ESM) receiver.
### Current Status The system implements a high-throughput signal chain in the FPGA (PL) and performs frame-based processing in the processor (PS).
- Tx subsystem: simple tone generator (to be replaced by LFM pulse generator) ---
## Current Status
- Tx subsystem: LFM pulse generator (DDS-based, complex output)
- Rx subsystem: fully functional channelizer pipeline (PFB-based) - Rx subsystem: fully functional channelizer pipeline (PFB-based)
- PL → PS interface: AXI4-Stream + DMA working - PL → PS interface: AXI4-Stream + DMA operational
- PS processing: frame-based algorithm (RMS + peak detection) - PS processing: frame-based algorithm (RMS + peak detection)
--- ---
@@ -21,7 +25,7 @@ ADC → Channelizer (PFB, 512 bins)
→ AXI4-Stream (uint64) → AXI4-Stream (uint64)
→ DMA (S2MM) → DMA (S2MM)
→ PS Memory → PS Memory
→ Processor Algorithm (frame-based) → Processor Algorithm
--- ---
@@ -37,48 +41,26 @@ ADC → Channelizer (PFB, 512 bins)
--- ---
## DMA (PL → PS) ## 📚 Documentation
- Data type: uint64 ### FPGA (PL)
- Frame size: 512
- Buffers: 16
- Memory: PS DDR
Each TLAST corresponds to one DMA frame. - [Tx Subsystem (Pulse Generator)](docs/pl_tx_subsystem.md)
- [Rx Subsystem (Channelizer)](docs/pl_rx_subsystem.md)
### Processor (PS)
- [PS Subsystem](docs/ps_subsystem.md)
--- ---
## Processor (PS) ## System Flow
- Event-driven execution (triggered by DMA) Tx → Rx → PS
- No task queueing
- Frames may be dropped if processing is slower than input rate
--- - Tx generates waveform
- Rx captures and channelizes
## Data Path in PS - PS processes frames
- Stream Read → uint64[512]
- Bit extraction → real/imag
- Conversion → complex vector
- Processing → RMS + peak detection
---
## Performance Notes
- Bottleneck: unpacking + type conversion
- PS cannot keep up with full-rate stream
- Frames are skipped under load
---
## FrFT Integration Plan
- Replace Processor Algorithm with FrFT
- Keep all other components unchanged
- Input: complex single [512x1]
- Accept dropped frames initially
--- ---

34
docs/pl_rx_subsystem.md Normal file
View File

@@ -0,0 +1,34 @@
# 📡 PL Rx Subsystem (Channelizer)
## Overview
Implements PFB channelizer and FFT processing.
---
## Architecture
ADC → PFB → FFT → Capture → FIFO → AXI → DMA
---
## Processing
- 4096 MSPS input
- Decimation 8
- FFT 512 bins
---
## Output
- AXI4-Stream
- uint64 format
- TLAST per frame
---
## 🔗 Related Components
- [PL Tx Subsystem](pl_tx_subsystem.md)
- [PS Subsystem](ps_subsystem.md)

49
docs/pl_tx_subsystem.md Normal file
View File

@@ -0,0 +1,49 @@
# 📡 PL Tx Subsystem (Pulse Generator)
## Overview
The Tx subsystem implements a pulse-based LFM chirp generator using a DDS/NCO architecture.
---
## Architecture
TxPulseStart → pulse_gen_ctrl → tx_active → NCO → Output
---
## Chirp Generation
Δφ[n] = Δφ[n1] + step
φ[n] = φ[n1] + Δφ[n]
---
## Parameterization
- Fc (center frequency)
- B (bandwidth)
Derived:
f_start = Fc B/2
step = B / (N 1)
---
## Pulse Timing
|<------ PRI ------>|
|<-- pulse -->| idle |
---
## Trigger
Controlled via TxPulseStart (from PS subsystem)
---
## 🔗 Related Components
- [PS Subsystem](ps_subsystem.md)
- [PL Rx Subsystem](pl_rx_subsystem.md)

32
docs/ps_subsystem.md Normal file
View File

@@ -0,0 +1,32 @@
# 🧠 PS Subsystem
## Overview
Handles control and processing.
---
## Control
- Writes parameters
- Triggers Tx (TxPulseStart)
---
## Processing
DMA → unpack → complex → RMS/peak
---
## Execution
- Event-driven
- Frame drops possible
---
## 🔗 Related Components
- [PL Tx Subsystem](pl_tx_subsystem.md)
- [PL Rx Subsystem](pl_rx_subsystem.md)

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<Info/>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<Info location="docs" type="File"/>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<Info/>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<Info location="ps_subsystem.md" type="File"/>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<Info/>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<Info location="pl_rx_subsystem.md" type="File"/>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<Info/>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<Info location="1" type="DIR_SIGNIFIER"/>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<Info/>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<Info location="pl_tx_subsystem.md" type="File"/>