Use of single_buffer - 2023.2 English

Vitis Libraries

Release Date
2023-12-20
Version
2023.2 English

When configured for TP_API=0, i.e. iobuffer API, the FFT will default to use ping-pong buffers for performance. However, for the FFT, the resulting buffers can be very large and can limit the point size achievable by a single kernel. It is possible to apply the single_buffer constraint to the input and/or output buffers to reduce the memory cost of the FFT, though this will come at the cost of reduced performance. By this means an FFT with TT_DATA=cint16 of TP_POINT_SIZE=4096 can be made to fit in a single kernel. The following code shows how such a constraint may be applied.

xf::dsp::aie::fft::dit_1ch::fft_ifft_dit_1ch_graph<DATA_TYPE, TWIDDLE_TYPE, POINT_SIZE, FFT_NIFFT, SHIFT, CASC_LEN,
                                                   DYN_PT_SIZE, WINDOW_VSIZE, API_IO, PARALLEL_POWER>
                                                   fftGraph;
single_buffer(fftGraph.FFTwinproc.m_fftKernels[0].in[0]);