Keywords 
Floating point multiplier, Shift and Add Multiplier, Radix4 Booth Algorithm, Xilinx 9.1i Synthesizer. 
INTRODUCTION 
Floating Point (FP) multiplication is widely used in large set of scientific and signal processing computation.
Multiplication is one of the common arithmetic operations in these computations. Also the need of high speed
multiplier is increasing as the need of high speed processors are increasing. Higher throughput arithmetic operations are
important to achieve the desired performance in many real time signal and image processing applications. One of the
key arithmetic operations in such applications is multiplication and the development of fast multiplier circuit has been a
subject of interest over decades. Also reducing the time delay and power consumption are very essential requirements
for many applications. 
Floating point numbers are one possible way of representing real numbers in binary format. The IEEE has produced a
standard to define floating point representation and arithmetic which is known as IEEE 754 standard and which is the
most common representation today for real numbers on computer. IEEE 754 basically specifies two formats for
representing floating point values. They are single precision and double precision floating point format. This paper
mainly focuses on double precision floating point multiplier. 
In IEEE754 double precision binary format, sign (S) is represented with one bit, exponent (E) and fraction (M or
Mantissa) are represented with eleven and fifty two bits respectively. For a number is said to be a normalized number,
it must consist of' one' in the MSB of the significand and exponent is greater than zero and smaller than 1023. The real
number is represented by equations (1) & (2). 
Z = (1
S
) * 2
(E Bias) * (1. M) (1) 
Value = (1
Sign bit
) * 2
(Exponent 1023) * (1.Mantissa) Bias = 1023 (2) 
FLOATING POINT MULTIPLICATION ALGORITHM 
The normalized floating point numbers have the form of Z = (1S) * 2
(E  Bias) * (1.M) . The following algorithm is
used to multiply two floating point numbers. 
1. Multiplying the significand; i.e. (1.M1*1.M2) (By Using Booth Algorithm) 
2. Placing the decimal point in the result. 
3. Adding the exponents; i.e. (E1 + E2 – Bias) 
4. Obtaining the sign; i.e. s1 xor s2 
5. Normalizing the result; i.e. obtaining 1 at the MSB of the results significand 
6. Rounding the result to fit in the available bits. 
7. Checking for underflow/overflow occurrence. 
MAIN BLOCKS OF FLOATING POINT MULTIPLIER 
A. Sign calculator 
The main component of Sign calculator is XOR gate. If any one of the numbers is negative then result will be negative.
The result will be positive if two numbers are having same sign. 
B. Exponent Adder 
This subblock adds the exponents of the two floating point numbers and the Bias (1023) is subtracted from the result
to get true result i.e. EA + EB – bias. To perform ripple carry adder (RCA) is used. The Bias is subtracted using an
array of ripple borrow subtractors. 
C. Mantissa Multiplier Using Shift and Add Multiplier 
Shiftandadd multiplier is the basic binary multiplier and is used commonly in all applications. Shiftaddmultiplication
is the simplest way to perform multiplication. It is derived for binary nbits x nbits integer which can
also be used for double precision floating point number with some minor changes. Number of intermediate additions
operation for shiftandadd multiplication method is equal to number1‟s in the multiplier number. Below are the steps
for shiftandadd multiplication: 
Step 1: Divide the multiplicand and multiplier in three fields and extract each field; those are sign, biased exponent and
fraction. 
Step 2: Sign of resultant multiplication will be XOR of the sign bits of the multiplier and the multiplicand. 
Step 3: Biased exponent of the resultant will be addition of the biased exponents of the multiplier and the multiplicand
and subtracting the bias (i.e. 1023 for double precision). 
Step 4: Starting from the LSB of the multiplier, add the multiplicand if there is „1‟ at the LSB of the multiplier, then
shift multiplier 1 place to the right. 
Step 5: Repeat step 4, until all the fraction bits from multiplier are considered shifting multiplicand to the right per
every bit of multiplier, including the leading „1‟ of the normalized floating point number. 
Step 6: Normalize the final number if necessary, shifting it right and incrementing the biased exponent. 
D. Mantissa Multiplier Using Radix4 Booth Algorithm (Proposed Work) 
Multiplication involves two basic operations i.e. the generation of partial products and their accumulation. Therefore
there are two possible ways to speed up multiplication i.e. reduce the number of partial products or accelerate their
accumulation. A smaller number of partial products reduces the complexity; and as a result reduces the time needed to
accumulate the partial products. Therefore Booth algorithm is used to Speed up the Multiplication. 
Booth algorithm provides a procedure for multiplying binary integers in signed2‟s complement representation. Radix
4 booth encoder performs the process of encoding the multiplicand, based on multiplier bits. It will compare 3 bits at a
time with overlapping technique. By using this technique, partial products are reduced by half. Grouping starts from the
LSB & the first block only uses two bits of the multiplier & assumes the zero for the third bit. For Example 

Booth algorithm which scans strings of three bits is given above. Append a 0 to the right of the LSB of the multiplier.
According to the value of each vector, each Partial Product will be 0, +M, M, +2M or 2M. 
Booth Multiplier provides: 
• Ease in multiplication 
• Greater speed. 
• Low power consumption. 
• Less delay. 
E . Normalizer 
The result of the significand multiplication (intermediate product) must be normalized to have a leading „1‟ just to the
left of the decimal point. The shift operation is done using combinational shift logic made by multiplexers. 
UNDERFLOW/OVERFLOW DETECTION 
Underflow/Overflow means that the result‟s exponent is too small/large to be represented in the exponent field. An
overflow may occur while adding the two exponents or during normalization. Overflow due to exponent addition may
be compensated during subtraction of the bias; resulting in a normal output value (normal operation). An underflow
may occur while subtracting the bias to form the intermediate exponent. If the intermediate exponent < 0 then it‟s an
underflow that can never be compensated; if the intermediate exponent = 0 then it‟s an underflow that may be
compensated during normalization by adding 1 to it. 
SIMULATION AND RESULT 
The simulation results for corresponding inputs are shown in Fig. The simulation is done using Xilinx 9.1i.
Considering the random 64 bit floating point numbers, 
INPUT: a = 25.5 
b = 75.6 
OUTPUT:
25.5* 75.6= 1927.8 

CONCLUSION 
This paper presents an implementation of Double precision floating point multiplier which shows the comparison
between ShiftAdd and Radix4 Booth Algorithm. The Multiplier has been designed on Xilinx, Virtex5, FPGA. The
multiplier is more precise because it doesn‟t implement rounding and just presents the significand multiplication. As
compared to ShiftAdd Multiplier, Radix4 Booth Multiplier gives high speed, less delay, utilize less area and consume
low power. 
Tables at a glance 


Table 1 
Table 2 


Figures at a glance 





Figure 1 
Figure 2 
Figure 3 
Figure 4 
Figure 5 





Figure 6 
Figure 7 
Figure 8 
Figure 9 
Figure 10 


References 
 IEEE 7542008, IEEE Standard for FloatingPoint Arithmetic, 2008.
 Mohamed AlAshrfy, Ashraf Salem and WagdyAnis “An Efficient implementation of Floating Point Multiplier” IEEE Transaction on VLSI
 B. Fagin and C. Renard, “Field Programmable Gate Arrays and Floating Point Arithmetic,” IEEE Transactions on VLSI, vol. 2, no. 3, pp. 365 367, 1994.
 L. Louca, T. A. Cook, and W. H. Johnson, “Implementation of IEEE Single Precision Floating Point Addition and Multiplication on FPGAs,”Proceedings of 83 the IEEE Symposium on FPGAs for Custom Computing Machines (FCCM‟96), pp. 107116, 1996.
 N. Shirazi, A. Walters, and P. Athanas, “Quantitative Analysis of Floating Point Arithmetic on FPGA Based Custom Computing Machines,”Proceedings of the IEEE Symposium on FPGAs for Custom Computing Machines (FCCM‟95), pp.155162, 1995.
 Jaenicke and W. Luk, "Parameterized FloatingPoint Arithmetic on FPGAs", Proc. of IEEE ICASSP, 2001, vol. 2, pp.897900.
 [7] Sixth Asilomar Conference on Signals, Systems, and Computers, 2002.
 “DesignChecker User Guide”, HDL Designer Series 2010.2a, Mentor Graphics, 2010.
 “Precision® Synthesis User‟s Manual”, Precision RTL plus 2010a update 2, Mentor Graphics, 2010.
 Patterson, D. & Hennessy, J. (2005), Computer Organization and Design: The Hardware/software Interface , Morgan Kaufmann .
