detailed subsystems
This commit is contained in:
@@ -1,50 +1,108 @@
|
||||
# 📡 PL Tx Subsystem (Pulse Generator)
|
||||
|
||||
[🏠 Project Home](../README.md)
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
The Tx subsystem implements a pulse-based LFM chirp generator using a DDS/NCO architecture.
|
||||
The Tx subsystem implements a **pulse-based 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 → pulse_gen_ctrl → tx_active → NCO → Output
|
||||
TxPulseStart (PS)
|
||||
↓
|
||||
pulse_gen_ctrl (FSM)
|
||||
↓
|
||||
tx_active
|
||||
↓
|
||||
Phase Increment Counter
|
||||
↓
|
||||
NCO (DDS)
|
||||
↓
|
||||
Complex Output (I/Q)
|
||||
|
||||
---
|
||||
|
||||
## Chirp Generation
|
||||
## 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
|
||||
## Parameterization (PS → PL)
|
||||
|
||||
- Fc (center frequency)
|
||||
- B (bandwidth)
|
||||
Inputs:
|
||||
|
||||
- Center frequency: Fc
|
||||
- Bandwidth: B
|
||||
- Pulse width: N (samples)
|
||||
|
||||
Derived internally:
|
||||
|
||||
Derived:
|
||||
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
|
||||
## Pulse Timing (FSM)
|
||||
|
||||
States:
|
||||
|
||||
- IDLE: waits for trigger and latches parameters
|
||||
- ACTIVE: generates pulses
|
||||
- DONE: waits for trigger reset
|
||||
|
||||
---
|
||||
|
||||
## Timing Behavior
|
||||
|
||||
Within each PRI:
|
||||
|
||||
|<------ PRI ------>|
|
||||
|<-- pulse -->| idle |
|
||||
|
||||
- tx_active = 1 → chirp output
|
||||
- tx_active = 0 → output zero
|
||||
|
||||
Chirp is reset at each pulse start.
|
||||
|
||||
---
|
||||
|
||||
## Trigger
|
||||
## Burst Trigger (PS Interaction)
|
||||
|
||||
Controlled via TxPulseStart (from PS subsystem)
|
||||
- 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 burst-mode radar operation
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Related Components
|
||||
|
||||
- [Project Overview (README)](../README.md)
|
||||
- [PS Subsystem](ps_subsystem.md)
|
||||
- [🏠 Project Home](../README.md)
|
||||
- [PL Rx Subsystem](pl_rx_subsystem.md)
|
||||
- [PS Subsystem](ps_subsystem.md)
|
||||
|
||||
Reference in New Issue
Block a user