Reloadable Coefficients - array size for non-SSR cases - 2023.2 English

Vitis Libraries

Release Date
2023-12-20
Version
2023.2 English

Array size of an argument passed to the graphs update() method depends on the FIR variant type, as well as operational mode the FIR is configured to run.

In case the FIR is configured in a non-SSR mode, i.e. TP_SSR is set to 1, the reloadable coefficient array size is similar to static coefficient variant.

Asymmetrical* FIR

Asymmetrical filters expect the port to contain the full array of coefficients, i.e. coefficient array size is equal to the TP_FIR_LEN.

Symmetrical FIR

In the case of symmetrical (non-half-band) filters, only the first half (plus any odd centre tap) need be passed, as the remaining may be derived by symmetry.
The length of the array expected will therefore be (TP_FIR_LEN+1)/2,
e.g. for a filter of length 7, where int16 type coefficient’s values are:
{1, 2, 3, 5, 3, 2, 1},
4 non-zero tap values, including the centre tap, are expected, i.e. constructor expects an argument:
int16 tapsIn[4] =  {1, 2, 3, 5}.

Half-band FIR

For half-band filters, only the non-zero coefficients should be entered, with the centre tap last in the array.
The length of the array expected will therefore be (TP_FIR_LEN+1)/4+1,
e.g. for a half-band filter of length 7, where int16 type coefficient’s values are:
{1, 0, 2, 5, 2, 0, 1},
3 non-zero tap values, including the centre tap, are expected, i.e. constructor expects an argument:
int16 tapsIn[3] =  {1, 2, 5}.