Modified Booth Multiplier: Digital Electronics Fall 2008 Project 2
Modified Booth Multiplier: Digital Electronics Fall 2008 Project 2
Modified Booth Multiplier: Digital Electronics Fall 2008 Project 2
+1 0 1
+1 -1 0
+1 -1
+1 -1
+1 -1
+1 -1
-1
-1
Spring 2006
(+1 -1)
+1 0 -1 +1 0
0 +1 -1 0
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 EE 5324 - VLSI Design II - Kia Bazargan 3
0 0 0 0 0 0 0
Spring 2006
1 1 0 0 1 1
0 0 +1 0 1 0 0 1 0
0 1 0 0 0 0 0 0 1
1 1 0 0 1 0
1 1 -1 0 0
0 0 0 0
6x 14
(-6)
0 1 0 0
84
4
Spring 2006
Modified Booth
Booth 2 modified to produce at most n/2+1 partial products. Algorithm: (for unsigned numbers)
1. Pad the LSB with one zero. 2. Pad the MSB with 2 zeros if n is even and 1 zero if n is odd. 3. Divide the multiplier into overlapping groups of 3-bits. 4. Determine partial product scale factor from modified booth 2 encoding table. 5. Compute the Multiplicand Multiples 6. Sum Partial Products
i
0 0 1 1 0 0 1 1
i-1
0 1 0 1 0 1 0 1
add
0*M 1*M 1*M 2*M 2*M 1*M 1*M 0*M
Must be able to add multiplicand times 2, -1, 0, 1 and 2 Since Booth recoding got rid of 3s, generating partial products is not that hard (shifting and negating)
[Hauck]
7
Modified Booth
Example: (n=4-bits unsigned) 1. Pad LSB with 1 zero
Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 0
Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
Modified Booth
4. Determine partial product scale factor from modified booth 2 encoding table.
0 0 0 0 0 1 0 1 0 0 0 Xi+1 0 0 Groups 0 0 0 Coding 0Y 0 0 1 1 1 1 Xi 0 0 1 1 0 0 1 1 Xi-1 0 1 0 1 0 1 0 1 Action 0Y 1Y 1Y 2Y -2 Y -1 Y -1 Y 0Y
0
0 0 0
1
1 0 0
0
0 0 0
1Y
1Y 0Y 0Y
Modified Booth
5. Compute the Multiplicand Multiples
0 0 0 0 0 1 0 0 0 Groups 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 Coding 0Y 1Y 1Y 0Y 0Y 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 20 1Y 1Y 0Y 0Y
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0Y
0 0 0 0 0 0 0 0
Xi+1
0 0
Xi
0 0
Xi-1
0 1
Action
0Y 1Y
0
0 1 1 1 1
1
1 0 0 1 1
0
1 0 1 0 1
1Y
2Y -2 Y -1 Y -1 Y 0Y
Xi-1 Xi Xi+1
Modified Booth
6. Sum Partial Products
0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 + 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 20 1Y 1Y
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0Y
0Y 0Y
0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 160
Modified Booth
Booth 2 modified to produce at most n/2+1 partial products. Algorithm: (for unsigned numbers)
1. Pad the LSB with one zero. 2. 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). 3. Divide the multiplier into overlapping groups of 3-bits. 4. Determine partial product scale factor from modified booth 2 encoding table. 5. Compute the Multiplicand Multiples 6. Sum Partial Products
Modified Booth
Example: (n=4-bits unsigned) 1. Pad LSB with 1 zero
Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 0
Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
Modified Booth
4. Determine partial product scale factor from modified booth 2 encoding table.
0 1 1 0 1 0 0 1 0 Xi+1 0 0 Groups 0 1 1 0 0 0 Coding 1Y -2 Y 0 0 1 1 1 1 Xi 0 0 1 1 0 0 1 1 Xi-1 0 1 0 1 0 1 0 1 Action 0Y 1Y 1Y 2Y -2 Y -1 Y -1 Y 0Y
1 0
0 1
1 1
-1 Y 2Y
Modified Booth
5. Compute the Multiplicand Multiples
1 0 0 1 0 1 0 1 Groups 0 1 1 0 1 0 0 1 0 0 1 1 Coding 1Y -2 Y -1 Y 2Y 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 0 -107 105 1Y -2 Y -1 Y 2Y
1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 -11235
i 0 0 1 1 0 0 1 1
i-1 0 1 0 1 0 1 0 1
Explanation No string of 1s in sight End of a string of 1s Isolated 1 End of a string of 1s Beginning of a string of 1s End one string, begin new one Beginning of a string of 1s Continuation of string of 1s
[Par] p. 160
17