Attention
This documentation is a work in progress. Expect to see errors and unfinished things.
complex_mul_flat
Description
TODO:
Could potentially save a cycle in the flip-flop, by combining Add and Saturate into 1 cycle
Pinout
Ports
Signal |
Direction |
Description |
---|---|---|
clk |
Input |
Rising edge clock input; all logic is synchronous in this domain |
gate_in |
Input |
Flag marking input data valid |
x_I[17:0] |
Input |
Multiplicand 1, real |
x_Q[17:0] |
Input |
Multiplicand 1, imag |
y_I[17:0] |
Input |
Multiplicand 2, real |
y_Q[17:0] |
Input |
Multiplicand 2, imag |
z_I[17:0] |
Output |
Result, real |
z_Q[17:0] |
Output |
Result, imag |
z_I_all[35:0] |
Output |
Result, real, large |
z_Q_all[35:0] |
Output |
Result, imag, large |
gate_out |
Output |
Delayed version of gate_in |
Implementation and use
The portable Verilog implementation can be found in complex_mul_flat Source File
Timing Diagram
A GTKWave-generated timing diagram is shown below: