A Fast Hybrid Multiplier Combining Booth and Wallace/Dadda Algorithms
A Fast Hybrid Multiplier Combining Booth and Wallace/Dadda Algorithms
WALLACE/DADDA ALGORITHMS
S 31 3 0 2 9 2 8 2 7 2 6 2 5 24 23 2 2 2 1 2 0 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2
159
Regular Mux LSB Mux
....................
0
...............................ooooooooooooooooooooooooooooooooo
....................
(1
. . . . . . . . . 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0
.......,
0 .
.......ooooooooooooooooooooooooooooooooo
..................ooooooooooooooooooooooooooooooooo
.....................ooooooooooooooooooooooooooooooooo
(1
(1
0
.....................ooooooooooooooooooooooooooooooooo
0
.................
. ~ . . . . . . . . . . . . . . . . . 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0
.............
0
. . . . . . . . . . . . . . . 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
...........
0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0
.......
.......e.
.....
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ~ ~ 0 0 0 0 0 0
0
0.. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0
. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0
. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 = Mux Outputs = Carry from he mux to complete two’scomplement = Sign extended bit = Sign Bit [A(s)$B(s)l
llllllllllllllllllllllllllllllllllllllllllllll9lS9l86l56453423l2
l77777llll7lllll7777lllllllllllS6l56453423l2Ol 0
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFHH
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFHH
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFHH
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFHH
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
lllllllllllllllllllllllllllllllllllllllllllllll9lS9l86l56453423l2
3333333333333333333333333333333333333333231101 0
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFHH
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFHH
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFHH
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFHH
9999999999999999999999999999999999999999999999998918615645342312
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFHH
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFHH
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFHH
6666666666666666666666666666666666666666666666666666665645342312
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFHH
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFHH
44444444444444444444444444444444444144444444444.444444444444342312
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFHH
3333333333333333333333333333333333333333333333333333333333332312
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFnH
2222222222222222222222222222222222222222222222222222222222222212
S 64 Bit High-speedAdder
A=000101100
(append 0 to LSB in Booth and sign extend)
A=-25/32= 1.001110
ahitSAction B= -5/16= 1.101100
1 E= 0.010011
111111010111 100 2B+1 Answer=l25/5 12= 0.0011 11 101OOO
m101oO0 011 2B
Ooo10100 010 B A= 110011100
000000 OOO None (append 0 to LSB in Booth and sign extend)
o.OOO110 1 11OOO P f
m
x0 is XOR of sign bits of A & B 1
OOOOOO100111 100 28+1
0000000000 111 None
Examde:! 11101100 001 B
A= 11/32= 0.010110 1
B= -5/16= 1.101100 010011 110 B+1
E= 0.010011
Answer=-55/512 =1.111001001Ooo 0.0011 1 1101000
x-
0 is XOR of sign ".s of A IB
A=Ooo101100
Analyzing Example 1, there ~ I V four columns of partial
(append 0 to LSB in Booth and sign extend) products. The one '1' all by itself is the cany in which is
needed to form the 2's com lement of 2B. The partial -
at ebltSAction p"d
ucts are sign extended to i n n the correct number o bits.
Notice the last partial product is not sign extended (it is only
1
000000100111 100 m+1 six bits not seven) since the number of decimal bits needed in
the result are already met. Also,the carry out of the most sig-
11 11011Ooo 011 2B nificant decimal digit is discarded. The sign bit is indepen-
11101100 010 B dently calculated as the XOR of A&B.
000000 OOO None Example 2 shows the case when B is the negative of
Example 1. The same characteristicscan be Seen here.
1.11 1001001Ooo Examples 3 & 4 Serve to illustrate a CO le of points. They
x1 is XOR of sign bits of A & B both contain a 2B+1 step in them (where%+l is equivalent
to 2* 2's complement of B). In Example 3, B is a positive
value and in Exam le 4, B is a negative value. But, as can be
seen, when the 2&1 operation is needed, a '1' is shifted in
regardless of the sign of B. Likewise, if a 2B operation were
needed, a 'O'would be shifted in regardless of the sign. Notice
A=-25/32= 1.001110 again that the last partial product is not sign extended (it is
only six bits not seven) since the number of decimal bits
B= 5/16= 0.0 10100 needed in the result are already met. Again the carry out of the
E= 1.101011 MSB is discarded. and the sign is calculated from the xor of A
Answer=-125/5 12= 1.1 1OOOOO11oO0 & B.
162
1'
bit3
bit2
bit1
bit0
165 .