3.2 KiB
📡 PL Tx Subsystem (Pulse & Continuous LFM Generator)
Overview
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:
x[n] = exp(j·φ[n])
and operates deterministically in the PL after a trigger from the PS.
Architecture
TxPulseStart (PS) ↓ pulse_gen_ctrl (FSM) ↓ tx_active ↓ Phase Increment Logic ↓ NCO (DDS) ↓ Complex Output (I/Q)
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 = 1continuously- Generates a single-tone output
- Achieved by setting constant phase increment
3. Continuous LFM (Workaround Implementation)
tx_activeforced 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
The chirp is generated using a second-order phase accumulator:
Δφ[n] = Δφ[n−1] + step
φ[n] = φ[n−1] + Δφ[n]
This results in a linear frequency sweep.
Parameterization (PS → PL)
Inputs:
- Center frequency: Fc
- Bandwidth: B
- Pulse width: N (samples)
Derived internally:
f_start = Fc − B/2
step = B / (N − 1)
These values are converted to DDS phase increments before being written to PL registers.
Pulse Timing (FSM)
States:
- IDLE: waits for trigger and latches parameters
- ACTIVE: generates pulses
- DONE: waits for trigger reset
Timing Behavior
Pulsed Mode
|<------ PRI ------>| |<-- pulse -->| idle |
- tx_active = 1 → chirp output
- tx_active = 0 → output zero
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
Burst Trigger (PS Interaction)
- Controlled via TxPulseStart (memory-mapped register)
- Rising edge triggers burst
- PL runs autonomously afterward
Key Characteristics
- Deterministic timing (128 MHz)
- Efficient DDS (adder-based)
- Complex output (I/Q)
- 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)