Complex Adder/Subtractor

Block: Complex Adder/Subtractor (complex_addsub)
Block Author: Aaron Parsons
Document Author: Ben Blackman

Contents

Summary

This block does a complex addition and subtraction of 2 complex numbers, a and b, and spits out 2 complex numbers, a+b and a-b.

Mask Parameters

Parameter Variable Description
Bit Width BitWidth The number of bits in its input.
Add Latency add_latency The latency of the adders/subtractors.

Ports

Port Dir Data Type Description
a IN 2*BitWidth Fixed point The first complex number whose higher BitWidth bits are its real part and lower BitWidth bits are its imaginary part.
b IN 2*BitWidth Fixed point The second complex number whose higher BitWidth bits are its real part and lower BitWidth bits are its imaginary part.
a+b OUT 2*BitWidth Fixed point Upper BitWidth bits are real(a)+real(b). Lower BitWidth bits are imaginary(a)-imaginary(b).
a-b OUT 2*BitWidth Fixed point Upper BitWidth bits are imaginary(a)+imaginary(b). Lower BitWidth bits are real(b)-real(a).

Description

Usage

The top output, a+b, is a complex output whose real part equals the sum of the real parts of a and b. The imaginary part of a+b equals the difference of the imaginary parts of a and b. The bottom output, a-b, is a complex output whose real part equals the sum of the imaginary parts of a and b.The imaginary part of a-b equals the difference of the real parts of b and a. The latency of this block is 2*add_latency.