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.

is it possible Consume the FFTA radix steps results, in the C5000 or C6000.

Is it possible to activate the FFT accelerator and to consume its output after a predefined number of Radix steps? For example to call the accelerator to perform FFT on an input vector of 2048 complex points and to return with the results of the third Radix step that was performed on the input vector?

  • Hi Shaul,

    Yes. I'm not sure about C6000, but the FFT hardware accelerator on the C55xx actually requires code with coprocessor instructions to operate. This code is stored in the ROM of the device, but can also be executed from RAM through user software. So you could modify the code to stop the FFT conversion at a specific stage of the computation. One gotcha is that the accelerator code is optimized to perform two stages in one pass called a double stage (see comments in the code - double stage vs single stage). For instance an 8-point FFT conversion uses one double stage followed by one single stage, and a 16-point FFT just uses two double stages. These could be broken into multiple single stages with modified code.

    The intermediate results bounce back and forth between the data and scratch pointers, which is why the FFT result returns an out_sel Boolean to inform the software which buffer contains the final result - the modified code will also need to handle this.

    Find the code here: www-s.ti.com/.../sprabb6.zip
    App note here: www.ti.com/.../sprabb6b.pdf (also copied into the FFT chapter of the device TRM)

    Keep in mind that the FFT hardware accelerator on the C5000 is capable of only 1024-point complex FFTs (16-bit real and imag parts), so you will have to divide a 2048-point FFT into two 1024-point FFTs, and then complete the FFT conversion with a Radix-2 performed by the CPU. An example of this is discussed in the app note - see Computation of Large (Greater Than 1024-Point) FFTs.

    Hope this helps,
    Mark