This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA3XEVM: EVE FFT architecture

Part Number: TDA3XEVM

Hi Team,

     I have some questions about the EVE FFT. Please help me to figure them out.

          1. How to calculate the number of stages of the FFT? There are 5 scaling factors and the maximum number of stages is 5. But how can we know the actual number of stages for different sizes of FFTs in EVE? Is it radix-2, radix-4 or mixed?

          2. How to assign the scaling factor if there are 3 stages? {1,1,1,0,0} or {0,0,1,1,1}?

          3. What are the valid number of bits for each stage? What is the max/min value for each stage? I learnt the precision of each stages can be 32 bits or 16 bits. However, the maxNumBits = 15 and saturationLimit = 16384U in FFT_TI_kernelControl and FFT32O_TI_kernelControl functions. Does the 32 bits precision represent a number with a binary point after 15 MSB?

Best,

Frank

  • Hi Frank,

       Please find answers as follows :

    1. How to calculate the number of stages of the FFT? There are 5 scaling factors and the maximum number of stages is 5. But how can we know the actual number of stages for different sizes of FFTs in EVE? Is it radix-2, radix-4 or mixed?

    Anshu>>> We have mixed radix implementation, so the number of stages are CEIL( log4(numFFTPoints) );

              2. How to assign the scaling factor if there are 3 stages? {1,1,1,0,0} or {0,0,1,1,1}?

    Anshu >>> As each stage of FFT can grow the bit depth of FFT, hence to avoid overflow you should set 2 for radix 4 FFT and 1 for radix 2 FFT. Radix 2 always happens in last stage.

              3. What are the valid number of bits for each stage? What is the max/min value for each stage? I learnt the precision of each stages can be 32 bits or 16 bits. However, the maxNumBits = 15 and saturationLimit = 16384U in FFT_TI_kernelControl and FFT32O_TI_kernelControl functions. Does the 32 bits precision represent a number with a binary point after 15 MSB?

    Anshu >>> Number of bits used depends on the configuration if you enable32bitsIntermResults then intermediate results will be in 32 bit precision but final output will be in 16 bit precision. We also have a mode in which output of the FFT can be in 32 bit. Note that input is always expected to be in 16 bit container. The variables you mentioned are internal variables and used for some other purpose. 32 bit precision gives actual 32 bit output.

    Regards,

    ANshu