Maximum Window based FIRs Length - 2023.2 English

Vitis Libraries

Release Date
2023.2 English

When using window-API for instance, the window buffer must fit into a 32kByte memory bank and since this includes the margin, it limits the maximum window size. Therefore, it also indirectly sets an upper limit on TP_FIR_LEN.

In addition, the single_buffer() constraint is needed to implement window buffers of > 16kB. Please refer to: Single buffer constraint for more details.

As a guide, a single rate symmetric FIR can support up to:

  • 8k for 16-bit data, i.e. int16 data
  • 4k for 32-bit data, i.e. cint16, int32, float
  • 2k for 64-bit data, i.e. cint32, cfloat
Another limiting factor when considering implementation of high order FIRs is the Program Memory and sysmem requirements.
Increasing FIR length requires greater amounts of heap and stack memory to store coefficients. Program Memory footprint also increases, as the number of instructions grows.
As a result, a single FIR kernel can only support a limited amount of coefficients. Longer FIRs have to be split up into a design consisting of multiple FIR kernels using TP_CASC_LEN parameter.