# ๐Ÿ“ก PL Tx Subsystem (Pulse & Continuous LFM Generator) [๐Ÿ  Project Home](../README.md) --- ## 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 = 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 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) --- ## ๐Ÿ”— Related Components - [๐Ÿ  Project Home](../README.md) - [PL Rx Subsystem](pl_rx_subsystem.md) - [PS Subsystem](ps_subsystem.md)