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.