FIR
Summary:
The FIR function filters the data input, X, with the filter specified by the coefficients on the Yi inputs. The number of filter taps (and multipliers) is specified
with the Taps parameter. The filter output is provided at Z. The width of the X and
Y inputs can be controlled independently with the Xwidth and Ywidth parameters,
respectively. The formats (signed or unsigned) of X and Y are also controlled
independently with Xsigned and Ysigned, respectively. The filter desired delay is
controlled via the Delay parameter. When Delay is greater than zero, a pipelined filter
is constructed, else an unpipelined filter is constructed.
The output, Z, is always a full precision value, with width equal to Zwidth. When
rounding is selected (Round>0), only the bits of Z with indices from Round to Zwidth-1
are valid.
The type of the multipliers used (Booth or non-Booth) is controlled by Booth. Booth
multipliers are most efficient when X and Y are large (greater than 8 bits) and
when X and Y have an even number of bits and are signed.
Non-Booth multipliers are most efficient when X and Y are unsigned and/or the widths
are small.
The type of the final adder type is controlled by "AdderType".
Function:
Z(n)=Y0*X(n)+Y1*X(n-1)+ ... YTaps-1*X(n-Taps-1) + 1<<(Round-1)
Signals:
X: Xwidth wide data input (Xsigned sets format)
Yi: Ywidth wide coefficient inputs (Ysigned sets format, 0<=i