DSPMAC Summary: The DSPMAC function is designed to be used in applications requiring a MAC that can accumulate both positive and negative products (i.e. Z=C +/- X*Y). The Add input controls whether the positive or negative product is accumulated. Note that the accumulator and reset circuits must be supplied externally. 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 XS and YS signals, respectively. The formats of X and Y may be changed dynamically to accommodate extended precision calculations. The multiplier is always Booth encoded. The output, Z, is has the same precision as the C input. When rounding is selected (Round>0), only the bits of Z with indices from Round to Awidth-1 are valid. The type of the final adder type is controlled by "AdderType". Function: Z=C+X*Y (Add HIGH) Z=C-X*Y (Add LOW) Signals: X: Xwidth wide input (XS sets format) Y: Ywidth wide input (YS sets format) Z: Cwidth wide output C: Cwidth wide accumulator input Add: HIGH to add X*Y, LOW to subtract X*Y XS: HIGH for X signed, LOW for unsigned YS: HIGH for Y signed, LOW for unsigned Parameters: Name: actual module name Xwidth: width of input X Ywidth: width of input Y Cwidth: width of the accumulator input, output AdderType: the type of the final adder ('fastcla', 'cla', 'clsa' or 'csa') Round: select the rounding position (0 for no rounding) AdderType: type of the adder to build (cla, fastcla, clsa, csa, ripple) Verilog Usage: Name(C,X,Y,Add,XS,YS,Z); Version: $Id: DSPMAC.help,v 1.4 1998/08/22 00:28:40 peter Exp $