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