Sie sind auf Seite 1von 19

# Modified Booth Multiplier

Digital Electronics
Fall 2008
Project 2

## Booth Multiplier: an Introduction

Recode each 1 in multiplier as +2-1
Converts sequences of 1 to 100(-1)
Might reduce the number of 1s
0

Spring 2006

+1

+1
-1

+1
-1
0

+1
-1

1
+1
-1

+1
-1

-1

-1

Bazargan

Example
0

(+1 -1)
(+1 -1)

(+1 -1)
(+1 -1)
(+1 -1)

+1

+1

-1

-1

(+1

-1)

+1

-1

## If you use the last row in multiplication,

you should get exactly the same result
as using the first row (after all, they
represent the same number!)
Spring 2006

Bazargan

Example
Sign extension

1 1

0
0 0
0 0 1
0 0 1
Spring 2006

0
0
1
0

0 0 1
0 1 1
+1 0
0 0 0
1 0 1
0 0 0
0 0
0
1 0 1

1
1
0
0
0

0
6x
0
14
-1 0
0
(-6)

0 0

## EE 5324 - VLSI Design II - Kia

Bazargan

84
4

Depends on the architecture
Potential advantage: might reduce the # of 1s
in multiplier

## In the multipliers that we have seen so

far:
Doesnt save in speed
(still have to wait for the critical path, e.g., the
Increases area: recoding circuitry AND
subtraction
Spring 2006

## EE 5324 - VLSI Design II - Kia

Bazargan

Modified Booth
Booth 2 modified to produce at most n/2+1
partial products.
Algorithm: (for unsigned numbers)

## Pad the LSB with one zero.

Pad the MSB with 2 zeros if n is even and 1 zero
if n is odd.
Divide the multiplier into overlapping groups of
3-bits.
Determine partial product scale factor from
modified booth 2 encoding table.
Compute the Multiplicand Multiples
Sum Partial Products

(cont.)

## Can encode the digits by looking at three

bits at a time
Booth recoding table:
i+1

i-1

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

Spring 2006

## Must be able to add

multiplicand times 2,
-1, 0, 1 and 2
0*M Since Booth recoding
1*M
got rid of 3s,
1*M
generating partial
products is not that
2*M
hard (shifting and
2*M
negating)
1*M
1*M
0*M
EE 5324 - VLSI Design II - Kia
Bazargan

[Hauck]
7

Modified Booth
Example: (n=4-bits unsigned)
Y
7

Y
6

Y
5

Y
4

Y
3

Y
2

Y
1

Y
0

0

Y
7

Y
6

Y
5

Y
4

Y
3

Y
2

Y
1

Y
0

Y
7

Y
6

Y
5

Y
4

Y
3

Y
2

Y
1

Y
0

## 3.Form 3-bit overlapping groups for n=8 we

have 05 groups
0 0 0 0 1 0 1 0 0 0
0

Modified Booth
4. Determine partial product scale factor
from modified booth 2 encoding table.
0

Xi+

Xi

Xi-1

Actio
n

0Y

Codi
ng

1Y

1Y

2Y

-2
Y

-1
Y

-1
Y

Groups
0

0Y

1Y

1Y

0Y

0Y

Modified Booth
5. Compute the Multiplicand Multiples
000001000 1
Codi
ng

Groups

0 0 0 0 1 0 1 0 0 20

0Y

00000000000000000
Y

1Y

00000000001000

1Y

1
Y

0Y

000000001000

0Y

1
Y

0000000000

0
Y

00000000

0
Y

## Compute Partial Products

Xi+

Xi

Xi-1

Actio
n

0Y

1Y

1Y

2Y

-2
Y

-1
Y

-1
Y

0Y

Yi-1
Yi

Xi-1 Xi Xi+1

Modified Booth
6. Sum Partial Products
000001000 1
0 0 0 0 1 0 1 0 0 20
00000000000000000
Y
00000000001000
+0 0 0 0 0 0 0 0 1 0 0 0

1
Y
1
Y

0000000000

0
Y

00000000

0
Y

Modified Booth
Booth 2 modified to produce at most n/2+1
partial products.
Algorithm: (for unsigned numbers)

## Pad the LSB with one zero.

If n is even dont pad the MSB ( n/2 PPs) and if n
is odd sign extend the MSB by 1 bit ( n+1/2 PPs).
Divide the multiplier into overlapping groups of 3bits.
Determine partial product scale factor from
modified booth 2 encoding table.
Compute the Multiplicand Multiples
Sum Partial Products

Modified Booth
Example: (n=4-bits unsigned)
Y
7

Y
6

Y
5

Y
4

Y
3

Y
2

Y
1

Y
0

Y
7

Y
6

Y
5

Y
4

Y
3

Y
2

Y
1

Y
0

Y
7

Y
6

Y
5

Y
4

Y
3

Y
2

Y
1

Y
0

## 3.Form 3-bit overlapping groups for n=8 we

have 5 groups
0 1 1 0 1 0 0 1 0

Modified Booth
4. Determine partial product scale factor
from modified booth 2 encoding table.
0

Xi+

Xi

Xi-1

Actio
n

0Y

Codi
ng

1Y

1Y

Groups
0

1Y

2Y

-2
Y

-2
Y

-1
Y

-1
Y

2Y

-1
Y

Modified Booth
5. Compute the Multiplicand Multiples
1 0 0 1 0 1 0 1 -107

Groups

01101001

105

Codi
ng

1111111110010101 1Y

1Y

00000011010110

-2 Y

-2
Y

000001101011

-1 Y

0100101010

2Y

1101010000011101

11235

-1
Y

2Y

(cont.)

table:
i+1
i
i-1
0
0
0
0
1
1
1
1
Spring 2006

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

## 0*M No string of 1s in sight

1*M End of a string of 1s
1*M Isolated 1
2*M End of a string of 1s
2*M Beginning of a string of 1s
1*M End one string, begin new o
1*M Beginning of a string of 1s
0*M Continuation of string of 1s
EE 5324 - VLSI Design II - Kia
Bazargan

[Par] p. 160
17

## Modified Booth Recoding:

Summary
Grouping multiplier bits into pairs
Orthogonal idea to the Booth recoding
Reduces the num of partial products to half
If Booth recoding not used have to be
able to multiply by 3 (hard: shift+add)

## Applying the grouping idea to Booth

Modified Booth Recoding (Encoding)
We already got rid of sequences of 1s
no mult by 3
Just negate, shift once or twice
Spring 2006

Bazargan

18

## Modified Booth Multiplier:

Summary (cont.)
Uses high-radix to reduce number of
Radix-8 should implement *3, *-3, *4, *-4
Recoding and partial product generation
becomes more complex

## Can automatically take care of signed

multiplication
(we will see why)
Spring 2006

Bazargan

19