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 $