lets assume I am a bit short in L1 memory. If I had to decide what to place in SDRAM vs. L1, what is a better choice: The FFT inplace input/output buffer or the twiddle table?
I guess anything that is read more often than written should be less critical in SDRAM, so that would be the twiddle table?
I do a 4096 16bit rfft
You can place the twiddle table in the L1 memory and place the input/output buffer in the SDRAM. Since the twiddle table is constant and L1 memory is limited, you can use L1 memory. However the size of the input/output buffer depends on your application, hence you can use SDRAM memory for input/output buffer.
The size of the input array input and the output array output is fft_size, where fft_size represents the number of points in the FFT. By allocating these arrays in different memory banks, any potential data bank collisions are avoided, thus improving run-time performance. If the input data can be overwritten, the optimum memory usage can be achieved by also specifying the input array as the output array, provided that the memory size of the input array is at least 2*fft_size.
For optimal performance, the twiddle table should be allocated in a different memory section than the output array.