Booth's Multiplication (Data Path + Control Path)
Booth's Multiplication (Data Path + Control Path)
Assignment:
Booths Algorithm for Signed Multiplication
Booths Algorithm is an elegant way to multiply signed numbers using the same
hardware as before and save cycles and can handle multiple bits at a time.
Group Details:
Bhavya Madan
Chaitanya Agarwal
Sanket Garg
Assignment Guide:
Dr. Santosh Biswas
Dept CSE
IIT Guwahati
11010113
11010115
11012335
Dept. CSE
Dept. CSE
Dept. MNC
01
10
11
The following Illustrations will help you understand the Algorithm better.
Illustration 1
1. Multiplicand = 0100
Multiplier
= 0111
Here,
We are multiplying 4 and 7
So,
M = 0100
Q = 0111
We start by initializing A with 0000
M
0100
0000
0111 0
Putting
zero
(2s comp.
Of -4)
1110
0011 1
1111
0001 1
1111
1000 1
0001
1100 0
Illustration 2
2. Multiplicand = 1100
Multiplier
= 0111
Here,
We are multiplying -4 and 7
(1100 is 2s complement of -4)
So,
M = 1100
Q = 0111
We start by initializing A with 0000
M
1100
0000
0111 0
Putting zero
(2s comp.
Of -4)
0010
0011 1
0001 1
1000 1
1110
0100 0
Illustration 3
3. Multiplicand = 0111
Multiplier
= 1100
Here,
We are multiplying -4 and 7
(1100 is 2s complement of -4)
So,
M = 0111
Q = 1100
We start by initializing A with 0000
M
0111
A
0000
Q
1100 0 Putting zero
0000
0110 0
0011 0
1100
1001 1
1110
0100 1
Illustration 4
4. Multiplicand = 1100
Multiplier
= 1101
Here,
We are multiplying -4 and -3
(1100 is 2s complement of -4 and 1101 is 2s complement of -3)
So,
M = 1100
Q = 1101
We start by initializing A with 0000
M
1100
0000
1101 0
Putting zero
0110 1
0011 0
0001
1001 1
1100 1
Hope you would have developed a good understanding of how the Booth
algorithm works. Now, Let us have a look at its Control Path design.
We have already seen the Data path which tells us all about how the data flows
in the Booths Algorithm and what Arithmetic or Shifting operations are
performed. Now how all this stuff in managed in the Hardware?
For this well see the Control Path Design for the Booths Algorithm.
Types of Hardware Blocks required:
A.
B.
C.
D.
Adder Subtractor
Counter
Multi-Function Register
Comparator
1100
0000
01110
100
-4
1100
7
0100
01110
011
0010
00111
1100
0001
00011
010
1100
0000
10001
001
1100
1100
10001
000
1100
1110
01000
The algorithm:
A<-0;
M<-Inbus;
L<-4;
Rest
Load
Load
Q [4:1] Inbus;
Q[0] 0;
Load
Load
Add: A A+M;
go to Rshift
Sub: A A-M
go to Rshift
LL-1;
Decrement
If L<>0 (Comparator)
go to loop;
Output: AQ;
HALT;
Clear
Load
Right shift
Decrement by
1
Freeze
Multifunction register
Although Q required only load and shift, L required load, decrement, etc. then
also we use a register with all five operations in all registers for simplicity.
Although we have only five operations, we could have done using 3 bits also but
then we would require a decoder. So we use a flat design. Also its easier to
debug.
The terminals of AQ are always connected to output trio but required stable
output is obtained only after freeze (i.e. Halt). As we dont want output to
change as AQ changes, we cut the signal using tri-state buffer, like a switch.
Bidirectional bus
When C=0, 1 gets control signal 0 and 2 gets the inverted signal i.e. 1. So 2 allow
flow. Hence data flows from Y1 to X1. When C=1, data flows from X1 to Y1.