updated doc: Tx subsystem

This commit is contained in:
canisio
2026-04-08 15:04:15 -03:00
parent 520a37f520
commit f8edb31dc2

View File

@@ -1,4 +1,4 @@
# 📡 PL Tx Subsystem (Pulse Generator) # 📡 PL Tx Subsystem (Pulse & Continuous LFM Generator)
[🏠 Project Home](../README.md) [🏠 Project Home](../README.md)
@@ -6,7 +6,7 @@
## Overview ## Overview
The Tx subsystem implements a **pulse-based Linear Frequency Modulated (LFM) chirp generator** using a DDS/NCO architecture in the FPGA (PL). The Tx subsystem implements a **pulse-based and continuous Linear Frequency Modulated (LFM) chirp generator** using a DDS/NCO architecture in the FPGA (PL).
The generator produces **complex baseband output**: The generator produces **complex baseband output**:
@@ -24,7 +24,7 @@ pulse_gen_ctrl (FSM)
tx_active tx_active
Phase Increment Counter Phase Increment Logic
NCO (DDS) NCO (DDS)
@@ -32,6 +32,39 @@ Phase Increment Counter
--- ---
## Operating Modes
The subsystem now supports multiple Tx modes:
### 1. Pulsed LFM (default)
- Chirp generated only during pulse window
- Phase resets at each pulse start
- Standard radar burst operation
---
### 2. CW Mode (Continuous Wave)
- `tx_active = 1` continuously
- Generates a single-tone output
- Achieved by setting constant phase increment
---
### 3. Continuous LFM (Workaround Implementation)
- `tx_active` forced HIGH continuously
- A **1-cycle LOW pulse** is inserted periodically
- This LOW→HIGH transition **resets the NCO**
Result:
- Continuous chirp
- Bounded bandwidth
- Periodic repetition of LFM
---
## Chirp Generation Principle ## Chirp Generation Principle
The chirp is generated using a second-order phase accumulator: The chirp is generated using a second-order phase accumulator:
@@ -72,7 +105,7 @@ States:
## Timing Behavior ## Timing Behavior
Within each PRI: ### Pulsed Mode
|<------ PRI ------>| |<------ PRI ------>|
|<-- pulse -->| idle | |<-- pulse -->| idle |
@@ -80,7 +113,31 @@ Within each PRI:
- tx_active = 1 → chirp output - tx_active = 1 → chirp output
- tx_active = 0 → output zero - tx_active = 0 → output zero
Chirp is reset at each pulse start. ---
### Continuous LFM Mode
tx_active behavior:
1 1 1 1 1 0 1 1 1 1 ...
- 1-cycle LOW inserted at end of chirp period
- Rising edge resets NCO
- Defines chirp repetition interval
---
## CW / Continuous LFM Implementation Details
- CW mode bypasses FSM output
- A dedicated counter generates periodic reset pulses
- Reset timing is based on `pulse_width_cycles`
Important:
- Reset pulse is exactly **1 clock cycle**
- Ensures deterministic NCO restart
- Decoupled from PRI/FSM timing
--- ---
@@ -97,7 +154,19 @@ Chirp is reset at each pulse start.
- Deterministic timing (128 MHz) - Deterministic timing (128 MHz)
- Efficient DDS (adder-based) - Efficient DDS (adder-based)
- Complex output (I/Q) - Complex output (I/Q)
- Supports burst-mode radar operation - Supports:
- Pulsed radar mode
- Continuous wave (CW)
- Continuous LFM (periodic chirp)
---
## Design Notes
- FSM controls **timing (when to transmit)**
- NCO controls **frequency evolution**
- Continuous LFM implemented via **tx_active edge reuse**
- Minimal hardware overhead (no additional NCO logic)
--- ---