Intel 2920 Design Handbook page 43

Analog signal processor
Table of Contents

Advertisement

BUILDING BLOCK FUNCTIONS-FOUNDATION OF DESIGN
Consider Z
=
X
*
Y, where X is the multiplier, Y is the
multiplicand, and Z the product. As several steps are
required to perform the multiply,
the intermediate
values of Yare known as partial products.
The basic procedure consists of loading the multiplier X
to the DAR, and then conditionally adding the suitably
shifted multiplicand Y to the partial product Z, based
on tests of bits in the DAR. Consider multiplying the
binary values '0.1011 x 0.1101, where 0.1011 is the
multiplier and 0.1101 the multiplicand. The sequence is
as follows:
0.00000
0.01101
0.01101
0.00000
0.01101
0.0001101
0.1000001
0.00001101
0.10001111
partial product initialized to zero
multiplicand x 1st multiplier bit
first partial product = 0.1 x 0.1101
multiplicand
x
2nd multiplier bit
2nd partial product = 0.10 x 0.1101
multiplicand x 3rd multiplier bit
3rd partial product = 0.101 x 0.1101
multiplicand x 4th multiplier bit
final product = 0.1011 x 0.1101
Implementation of a 4 Quadrant Multiplier-A
four-quadrant multiply is needed when both variables
can take on positive and negative values. One example
of such a requirement is a mixer which multiplies two
signals. A microprocessor implementation of this
mUltiply might use a shift and add algorithm to deter-
mine the magnitude of the product and separate logic to
determine the sign. A more direct alogrithm is used in
the 2920 to avoid the necessity of dealing with the sign
bit separately since bit manipulation is comparatively
inefficient in the 2920.
Number Representation-It
is convenient to form a
representation of a number in two's complement nota-
tion since this notation is hardware efficient and is used
in the 2920. Assume that X is the multiplier number
(sign and magnitude) and Y is the multiplicand. We can
represent X in two's complement as
n
n
x
= (-1) s + s
}:
b.2-·+s
}:
b.2- i +sTn
i=O
i=O
4-4
where s is the sign bit; 0 is positive, 1 is negative
b
i
is the weighting and is either 1 or 0
This can be rewritten as
x= -s+X
n
X =
}:
b.2-
i
+2- n for X
<
0
i=O
s=1
n
X
=
}:
b.2-·
for
X
;;?;
0
i=O
s=O
Product Implementation-The
product, Z
=
X
*
Y,
can now be determined as follows:
Let
Where
X
= -s+x
Y = -t+y
s = sign bit of X
t = sign bit of Y
x = magnitude o(X
y = magnitude of Y
Then
Z
=X
*
Y
= (-s+x) (-t+y)
= st+xy - sy - tx
Now the 2920 can easily implement the product of a
positive multiplier and a bipolar multicand using a sim-
ple shift and conditional add alogorithm. The add is
conditioned on the value of the multiplier bit located in
the DAR.
If the sign bit is ignored in the multiplier, X, the
resulting product will be
Z' = x(-t+y)
=
xy-tx
This expression lacks the terms
st - sy = s (-Y)
Which can be added to form the entire product Z
=
Z'
+
s (-Y) by performing a conditional add of -Y based on
the value of "s".
Assembly Code-
The resulting 2920 Assembly code
is shown in Figure 4-1 along with comments.

Advertisement

Table of Contents
loading

Table of Contents