FPGA Implementation of IEEE-754 Karatsuba Multiplier
FPGA Implementation of IEEE-754 Karatsuba Multiplier
I.
I NTRODUCTION
II.
L ITERATURE REVIEW
8-bits
23-bits
11-bits
52-bits
In general, floating point arithmetic implementation involves computing the sign, exponent and mantissa part of the
operands separately, and then combining the three of them after
rounding and normalization. A basic overview of the flow of
floating point multiplication operations is given below.
1)
2)
3)
4)
5)
Qn
Qn+1
shift
+1
Add M
Subtract M
Shift M
Recoded Bits
Operation Performed
11011001
Multiplier
0 1 1 1 0 0 0 10
Recoded multiplier
+1 0 0 -10 0+1-1
000100111
111011001
000000000
000000000
000100111
000000000
000000000
111011001
y = Operand1 Operand2
= (1)sign1 2exp1 1.mant1 (1)sign2 2exp2 1.mant2
= 1sign1 xorsign2 2exp11 +exp2 bias 1.mant1 1.mant2
where sign1 , exp1 , mant1 are the sign, exponent and mantissa of first operand, and sign2 , exp2 , mant2 are the sign,
exponent and mantissa of second operand
Product
0000001001001001
p q = p1 q1 bn + (p1 q0 + p0 q1 )bn/2 + p0 q0
(2)
(1)
7
3T (n/2) + 5n
if n = 2,
if n > 2.
IV.
A LGORITHM I MPLEMENTATION
Booth
Karatsuba
Number of slices
1282
1156
679
2351
2165
1206
64
64
64
32
32
32
Recursive Karatsuba
Macro statistics
Adders/ Subtractor
50
81
45
Multiplexers
528
462
98.837 ns
54.899 ns
31.123 ns
91.679 ns
58.878 ns
21.892 ns
4.114 ns
4.114 ns
4.114 ns
Timing Summary
V.
Booth
Karatsuba
Recursive Karatsuba
Number of slices
6115
5285
1784
11346
9662
3280
128
128
128
64
64
64
Macro statistics
Adders/ Subtractor
108
81
45
Multiplexers
2703
462
196.198 ns
54.899 ns
37.348 ns
189.029 ns
58.878 ns
29.660 ns
4.114 ns
4.114 ns
4.114 ns
Timing Summary
VI.
C ONCLUSION
After implementation and comparison of three multiplication algorithms, Booths, Normal Karatsuba and Recursive
Karatsuba, a brief performance result is reported in this paper.
Two main criteria, FPGA resources and processing speed are
adopted when evaluating the performance. We can see from
the results that Recurisve Karatsuba Algorithm performs better
than Normal Karatsuba and Booths algorithm. Recursive
Karatsuba algorithm has the least FPGA resources utilised and
the speed is relatively high. Hence Recursive Karatsuba is the
best algorithm among the three algorithms.