Setting FIR Frame Size - 2023.2 English

Vitis Libraries

Release Date
2023.2 English

FIR Frame size selection, through FIR Graph’s template parameter TP_INPUT_WINDOW_VSIZE is limited by a variety of factors, including FIR variant or input interface type. FIR kernels operate on the frame size provided using heavy pipelining and code repetition to schedule vector multiply-accumulate (VMAC) operations as frequently as possible. As a result, FIRs architectures may use a repetition_factor of up to 8 to achieve best scheduling and therefore performance. Taking into account that each vector operation may calculate 4 or 8 output samples at a time, the selection of TP_INPUT_WINDOW_VSIZE may be allowed in increments of, e.g.: 64.

Furthermore, rate-changing FIRs require frame size to be divisible by TP_DECIMATION_FACTOR in order to fully process input data samples within the optimized loop.

Additionally, in SSR mode (see Super Sample Rate - Operation Modes) user provided frame size is distributed across all input phases of the graph.

As a consequence, the FIR graph’s frame size TP_INPUT_WINDOW_VSIZE must be divisible by TP_SSR * TP_DECIMATION_FACTOR * Repetition_factor.

Invalid selection will report a message to the User in a form of Metadata error or a static_assert() with rule violation details and suggestion how to fix it.