Function: fft2d is the top level L1 API provided which takes a number of template parameters and in/out streams. These template functions describe the architecture and the data-path of 1-D SSR FFT processors deployed as line processors. The description of these parameters is as follows:
Template Parameter | Functionality |
---|---|
t_memWidth | Describes the width of wide stream in complex<T_elemType> words |
t_numRows | Number of rows in 2-D FFT input data (currently limited to 256) |
t_numCols | Number of column in 2-D FFT input data (currently limited to 256) |
t_numKernels | Number of parallel kernels used to process rows/columns |
t_ssrFFTParamsRowProc | Configuration parameter structure for row processors |
t_ssrFFTParamsColProc | Configuration parameter structure for column processors |
t_rowInstanceIDOffset | Instance ID offset for row processors |
t_colInstanceIDOffset | Instance ID offset for column processors |
T_elemType | The inner type for complex wrapper |
- t_memWidth: Gives the width of wide stream in complex<inner_type> words can be calculated as: t_memWidth=(wide stream size in bits)/(sizeof(complex<T_elemType>)*8))
- t_numRows: 2-D SSR FFT processes a matrix the number of rows in input matrix are given by t_numRows
- t_numCols: 2-D SSR FFT processes a matrix the number of columns in input matrix are given by t_numCols
- t_numKernels: 2-D SSR FFT can deploy multiple 1-D SSR FFT processors along rows and columns to processes numerous row/columns in parallel this paramter gives number of processors to be used along rows/columns. Number of columns used along rows and columns are same and equal t_numKernels
- t_ssrFFTParamsRowProc: It is a structure of parameters that describes tranform direction, data-path etc for row processors. The details of configuration parameter structures can be found here Configuration Parameter Structure for Floating Point SSR FFT for fixed point case (currently not supported) it is Configuration Parameter Structure for Fixed Point SSR FFT
- t_ssrFFTParamsColProc: It is a structure of parameters that describes tranform direction, data-path etc for column processors. The details of configuration parameter structures can be found here Configuration Parameter Structure for Floating Point SSR FFT for fixed point case (currently not supported) it is Configuration Parameter Structure for Fixed Point SSR FFT
- t_rowInstanceIDOffset: 2-D SSR FFT deploys multiple 1D SSR FFT processors and it is required that every 1D SSR FFT proessor has a unique ID. If ‘M’ processors are used along rows then their IDs will be in the range: (t_rowInstanceIDOffset+1 , t_rowInstanceIDOffset+M) the selection of offset for rows and columns should be made such that these ranges are unique without any overlap. Essentially it requires that abs(t_rowInstanceIDOffset - t_colInstanceIDOffset) > M
- t_colInstanceIDOffset: 2-D SSR FFT deploys multiple 1D SSR FFT processors and it is required that every 1D SSR FFT proessor has a unique ID. If ‘M’ processors are used along rows then their IDs will be in the range: (t_rowInstanceIDOffset+1 , t_rowInstanceIDOffset+M) the selection of offset for rows and columns should be made such that these ranges are unique without any overlap. Essentially it requires that abs(t_rowInstanceIDOffset - t_colInstanceIDOffset) > M
- T_elemType: 2-D SSR FFT processes complex samples and T_elemType gives the inner type used to store real and imaginary parts. Currently it supports only float as inner type for simulation and synthesis.