The FFT core computes an N -point forward DFT or inverse DFT (IDFT) where N can be 2m,m = 3–16.
For fixed-point inputs, the input data is a vector of N complex values represented as dual bx -bit twos-complement numbers, that is, bx bits for each of the real and imaginary components of the data sample, where bx is in the range 8 to 34 bits inclusive. Similarly, the phase factors bw can be 8 to 34 bits wide.
For pseudo single-precision floating-point inputs, the input data is a vector of N complex values represented as dual 32-bit floating-point numbers with the phase factors represented as 24- or 25-bit fixed-point numbers.
For native single-precision floating-point inputs, the input data is a vector of N complex values where each of the real and imaginary component is represented as a 32-bit single precision floating point number. This input data format is available on Versal devices.
All memory is on-chip using either block RAM or distributed RAM. The N element output vector is represented using by bits for each of the real and imaginary components of the output data. Input data is presented in natural order and the output data can be in either natural or bit/digit reversed order. The complex nature of data input and output is intrinsic to the FFT algorithm, not the implementation.
Four arithmetic options are available for computing the FFT:
- Full-precision unscaled arithmetic
- Scaled fixed-point, where you provide the scaling schedule
- Block floating-point (runtime adjusted scaling)
- Native single-precision floating-point (runtime adjusted scaling)
The point size N, the choice of forward or inverse transform, the scaling schedule and the cyclic prefix length are runtime configurable. Transform type (forward or inverse), scaling schedule and cyclic prefix length can be changed on a frame-by-frame basis. Changing the point size aborts any frame currently being processed. The config packet needs to be four cycles before the first frame data. For native floating-point inputs, runtime configuration is not supported.
Four architecture options are available: Pipelined Streaming I/O, Radix-4 Burst I/O, Radix-2 Burst I/O, and Radix-2 Lite Burst I/O. For detailed information about each architecture, see Architecture Options.
where N is the transform size and . The inverse DFT (IDFT) is given by
Super Sample Rate (SSR) is supported for the native single-precision floating-point inputs. The supported values of SSR are two and four. In SSR mode, SSR number of samples are processed per clock cycle.