FIR Frame size selection, through the FIR Graph’s TP_INPUT_WINDOW_VSIZE
template parameter is limited by a variety of factors, including a 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 can use a repetition_factor
of up to 8 to achieve the best scheduling and therefore performance.
Taking into account that each vector operation might calculate four or eight output samples at a time, the selection of TP_INPUT_WINDOW_VSIZE
can be allowed in increments of, e.g., 64.
Furthermore, rate-changing FIRs require the frame size to be divisible by TP_DECIMATION_FACTOR
to fully process input data samples within the optimized loop.
Additionally, in SSR mode (see Super Sample Rate - Operation Modes), the user provided frame size is distributed across all input phases of the graph.
Therefore, the FIR graph’s frame size TP_INPUT_WINDOW_VSIZE
must be divisible by TP_SSR * TP_DECIMATION_FACTOR * Repetition_factor
.
An invalid selection will report a message in a form of Metadata error or a static_assert() with rule violation details and a suggestion of how to fix it.