DSP Builder for Intel® FPGAs (Advanced Blockset): Handbook

ID 683337
Date 12/12/2022

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

15.3.26. Twiddle ROM (TwiddleRom, TwiddleMultRom and TwiddleRomF (deprecated))

The DSP Builder twiddle ROM blocks generate FFT twiddle factors, converting the input angle into a cos-sin pair. These block are memory optimized for use with wide counters.
Note: TwiddleRomF is deprecated; TwiddleRom has a new parameters (therefore appears in the obsolete and the common directory).

The TwiddleRom and TwiddleMutlRom block construct FFTs. They map an angle (specified as an unsigned integer) to a complex number (the twiddle factor). For an FFT, the mapping is:

twiddle = exp(-2*pi*i*angle/N)

For an IFFT, the mapping is:

twiddle = exp(2*pi*i*angle/N)

where N = 2anglewidth and anglewidth is the width of the angle input signal.

The TwiddleRom and TwiddleMultRom blocks have the same external interface but different internal implementations. TwiddleRom uses a single large memory; TwiddleMultRom uses two smaller memories and constructs the twiddle factors using complex multiplication.

TwiddleMultRom consumes more DSP blocks but generally uses fewer memory blocks than TwiddleRom. TwiddleMultRom also produces slightly less accurate results than TwiddleRom.

Table 149.  Parameters for the TwiddleRom and TwiddleMultRom Blocks
Parameter Description
iFFT True to generate twiddle factors for an IFFT.
Angle bit width The width of the angle input signal in bits.
Twiddle type The type of the twiddle output. For example: fixdt(1,18,17).
Table 150.  Port Interface for the TwiddleROM and TwiddleMultRom Blocks
Signal Direction Type Description
angle Input Unsigned Input angle.
twiddle Output User specified Output twiddle factor.