Vous êtes sur la page 1sur 19

Multipliers

Contents
Unsigned array multiplier
Signed array multiplier
Booth multiplier

UNSIGNED ARRAY MULTIPLIER

Introduction
This is used to multiply number without considering
the sign .
Example : 2X3 =6
2= 0010 (in binary)
3= 0011 (in binary)
2X3=0010X0011
0010
+ 0010X
+ 0000XX
+ 0000XXX
0000110 = 6(in decimal)

Thus in general for a multiplying two 4 bit numbers


A3A2A1A0 X
B3B2B1B0 =
+

A3B0 A2B0 A1B0 A0B0

A3B1

A2B1 A1B1 A0B0

A3B2

A2B2

A1B2 A0B2

A3B3 A2B3

A1B3

A0B3

+
P7 P 6

P5

P4

P3

x
P2

P1

P0

The circuit for the above multiplication is shown in the


next slide

Circuit Diagram for unsigned multiplier

Another form of representing the


circuit
The circuit can be built using carry save
adders and carry propagate adder.
This method helps in reducing the propagate
time for the carry thus reducing the time for
computation.
Using the carry save adder the time to
propagate the carry is less than the time
needed to calculate the sum.

Circuit Diagram

Improved circuit
The previous circuit occupies a lot of area as the design in the form of a
parallelogram . Thus the design can be compressed as shown below.

Signed Array Multiplier

Introduction
Signed multiplication is a little more complicated than
unsigned multiplication .
The product of signed numbers can be computed as shown
below

The last two terms are negative and should be subtracted.


By using the Baugh Wooley Algorithm the negative terms
can be 2s complemented and added.

The upper parallelogram represents the unsigned multiplication of the most


significant bits of the inputs.
The next row shows the product of the most significant bits.
The next two rows show the inverse of the terms to be subtracted.

Example 1
-2X-3
For negative numbers the 2s complement of the
negative number is taken.
2= 010 -> 1s C = 101-> 2s C= 101+1=110
3= 011-> 1s C= 100-> 2s C= 100+1=101
110X101=
NOTE: The 1s in
11110
red are added
when ever the
000X
multiplication
takes place with 1.
110XX
00110
=6

Example 2
-2X3=
2 in binary =010 -> 1s C=101->2s C= 110
3 in binary =011
110X011=
NOTE: The 1s in red are
added when ever the
11110
multiplication takes place
with 1
1110X
000XX
11010 = -6

By using the modified Baugh Wooley Algorithm the number of partial products
can be can be reduced .
Reducing the number of partial products is done by pre-computing the sums of
the constant I's and pushing some of the terms upward into extra columns.
The multiplier circuit is as shown :
This design is identical to the design of
the unsigned multiplier. The only difference is that the hatched cells have NAND
gates instead of AND gates which helps in computing the product of the
negative partial products

Booth Multiplication

Introduction
The booth algorithm is used to multiply two negative numbers
in 2s complement format.
In this algorithm adjacent pairs of digits of the multiplier are
subtracted.
The difference between the consecutive terms is written as
recorded multiplier.
If the digit in the recorded multiplier is :
-1: take the 2s complement of the multiplicand and shift
right
0: right shift the multiplicand
1: keep the multiplicand as it is and shift right
Perform addition and get the result

Example 1
3X8
3 in binary =0000 0011
8 in binary =0000 1000
0000 0011(multiplicand)
X 0000 1000 0 (multiplier)
0001 -1000 ( recorded multiplier)
multiplying the recorded multiplier with the multiplicand from right:
Shift right : 000000000
Shift right : 0000000000
Shift right: 00000000000
Add (-3): +11111011
11111011000
Shift right: 111111011000
Add(3):
+00000011
000000011000
Shift right : 0000000011000
Shift right: 00000000011000
Shift right: 000000000011000
= 24

Example 2
3X-8
3 in binary = 00000011
-8 in binary = 11111000
00000011 (multiplicand)
11111000 0 ( multiplier)
0000-1000 ( recorded multiplier)
multiplying the recorded multiplier with the multiplicand from right:
Shift right: 000000000
Shift right: 0000000000
Shift right: 00000000000
Add(-3) : +11111101
11111101000
Shift right: 111111101000
Shift right: 1111111101000
Shift right: 11111111101000
Shift right: 111111111101000
Shift right: 1111111111101000 = -24

Vous aimerez peut-être aussi