šŸ“„ complex_mult.sv

Parameterized complex multiplier for SDR I/Q signal paths — SDR-LIB

SystemVerilog IEEE 1800-2017SDR Signal ChainFixed-Point DSPCombinational Logic
Author
Mintaka Engineering Team
Created
2026-05-14
Version
1.0.0
Copyright
Mintaka LLC

Architecture — Complex Multiply and Scale

Stage 1Four signed products
→
Stage 2Real / imaginary sum
→
Stage 3Fixed-point scale
→
Stage 4Overflow & saturation
(are + jĀ·aim) Ā· (bre + jĀ·bim) = (arebre āˆ’ aimbim) + j(arebim + aimbre)

Four signed products form the complex result. An arithmetic right shift restores the selected fixed-point scale; each I/Q output is independently checked and optionally clamped.

Parameters

ParameterDefaultDescription
kDataWidth16Signed input width for every I and Q component.
kOutWidth16Signed output width for the real and imaginary results.
kFracBitsToDrop15Product fractional bits removed to restore the output Q-format.
kEnableSaturation1'b1Clamps each component to the signed output range on overflow.

Interface

SignalDirectionDescription
a_re, a_imInputFirst complex signed fixed-point sample.
b_re, b_imInputSecond complex signed fixed-point sample.
y_re, y_imOutputScaled complex product.
overflow_re, overflow_imOutputAsserted when the corresponding scaled result exceeds the output range.
saturated_re, saturated_imOutputAsserted when saturation is enabled and the corresponding result is clamped.

Implementation source