Complex Delay

Block: Complex Delay (delay_complex)
Block Author: Aaron Parsons
Document Author: Aaron Parsons

Contents

Summary

A delay block that treats its input as complex, splits it into real and imaginary components, delays each component by a specified amount, and then re-joins them into a complex output. The underlying storage is user-selectable (either BRAM or SLR16 elements). The reason for this is wide (36 bit) delays make adjacent multipliers in multiplier-bram pairs unusable.

Mask Parameters

Parameter Variable Description
Delay Depth delay_depth The length of the delay.
Bit Width n_bits Specifies the width of the real/imaginary components. Width of each component is assumed equal.
Use BRAM use_bram Set to 1 to implement the delay using BRAM. If 0, the delay will be implemented using SLR16 elements.

Ports

Port Dir Data Type Description
in in ??? The complex signal to be delayed.
out out ??? The delayed complex signal.

Description

A delay block that treats its input as complex, splits it into real and imaginary components, delays each component by a specified amount, and then re-joins them into a complex output. The underlying storage is user-selectable (either BRAM or SLR16 elements). The reason for this is wide (36 bit) delays make adjacent multipliers in multiplier-bram pairs unusable.