Subsections


FFT (fft)

Block Author: Aaron Parsons
Document Author: Aaron Parsons

Summary

Computes the Fast Fourier Transform with $2^N$ channels for time samples presented $2^P$ at a time in parallel. Uses a biplex FFT architecture under the hood which has been extended to handled time samples in parallel. For $P=0$, this block accepts two independent, parallel streams (labelled as pols) and computes the FFT of each independently (the biplex architecture provides this for free). Data is output in normal frequency order, meaning that channel 0 (corresponding to DC) is output first, followed by channel 1, on up to channel $2^N-1$ (which can be interpreted as channel -1). When multiple time samples are presented in parallel on the input, multiple frequency samples are output in parallel.

Mask Parameters

Parameter Variable Description
Size of FFT: ($2^?$) FFTSize The number of channels in the FFT.
Bit Width BitWidth The number of bits in each real and imaginary sample as they are carried through the FFT. Each FFT stage will round numbers back down to this number of bits after performing a butterfly computation.
Number of Simultaneous Inputs: ($2^?$) n_inputs The number of parallel time samples which are presented to the FFT core each clock. The number of output ports are set to this same value.
Quantization Behavior quantization Specifies the rounding behavior used at the end of each butterfly computation to return to the number of bits specified above.
Overflow Behavior overflow Indicates the behavior of the FFT core when the value of a sample exceeds what can be expressed in the specified bit width.
Add Latency add_latency Latency through adders in the FFT.
Mult Latency mult_latency Latency through multipliers in the FFT.
BRAM Latency bram_latency Latency through BRAM in the FFT.

Ports

Port Dir. Data Type Description
sync in Boolean Indicates the next clock cycle contains valid data
shift in Unsigned Sets the shifting schedule through the FFT. Bit 0 specifies the behavior of stage 0, bit 1 of stage 1, and so on. If a stage is set to shift (with bit = 1), that every sample is divided by 2 at the output of that stage.
In in Inherited The time-domain stream(s) to channelized.
sync_out out Boolean Indicates that data out will be valid next clock cycle.
of out Boolean Indicates an overflow occurred at some stage in the FFT.
Out out Inherited The frequency channels.

Description

Computes the Fast Fourier Transform with $2^N$ channels for time samples presented $2^P$ at a time in parallel. Uses a biplex FFT architecture under the hood which has been extended to handled time samples in parallel. For $P=0$, this block accepts two independent, parallel streams (labelled as pols) and computes the FFT of each independently (the biplex architecture provides this for free). Data is output in normal frequency order, meaning that channel 0 (corresponding to DC) is output first, followed by channel 1, on up to channel $2^N-1$ (which can be interpreted as channel -1). When multiple time samples are presented in parallel on the input, multiple frequency samples are output in parallel.
Documentor 2008-11-17