Multiplication Algorithm
• Multiplication of two fixed-point binary numbers in signed-magnitude
representation is done by a process of successive shift and add
operations.
• Look at successive bits of the multiplier, least significant bit first.
• If multiplier bit is 1, the multiplicand is copied down. Otherwise, zeros are
copied down.
• Number copied in successive lines are shifted one position to the left from
the previous number.
• Add numbers, Sum forms the product.
The sign of the product is determined from
the signs of the multiplicand and multiplier.
If they are alike, the sign of the product is
positive. If they are unlike, the sign of the
product is negative.
Hardware Implementation
• Multiplicand is stored in Register B and multiplier in Q.
• Sequence Counter SC is initially set to a number equal to number of
bits in the multiplier.
• Counter is decremented by 1 after forming each partial product.
• Sum of A and B forms the partial product which is transferred to the
EA register.
• Both partial product and multiplier are shifted to the right. (shr EAQ)
• LSB of A is shifted into the MSB of Q, bit from E is shifted into the
MSB of A and 0 is shifted into E.
• In this manner right most bit of the multiplier will be inspected next.
Booth Multiplication Algorithm
• It gives a procedure for multiplying binary integers in signed 2’s
complement form.
• Algorithm was invented by Andrew Donald Booth in 1950.
• Strings of 0’s in multiplier -> No addition, just shifting
• Strings of 1’s in multiplier from bit weight 2k to weight 2m can be
treated as 2k+1 - 2m
001110(+14)
(k=3, m=1) -> 2k+1 - 2m -> 24 – 21 -> 16 - 2 = 14
M x 14 -> M x 24 - M x 21
Hardware for Booth Algorithm
Hardware Implementation
• Sign bits are not separated from the rest of the registers.
• Qn designates least significant bit of the multiplier in register QR.
• An extra flip-flop Qn+1 is appended to QR to facilitate a double bit
inspection of the multiplier.
▪ Multiplicand is subtracted from partial
product when first least significant 1 in a
string of 1’s in multiplier is encountered.
▪ Multiplicand is added to partial product
upon encountering the first 0 (Provided
that there was previous 1) in a string of
0’s in the multiplier.
▪ Partial product does not change when
the multiplier bit is identical to the
previous multiplier bit.
(-9) x (-13) = +117