Professional Documents
Culture Documents
Design of Single Precision Floating Point Multiplication Algorithm With Vector Support
Design of Single Precision Floating Point Multiplication Algorithm With Vector Support
Design of Single Precision Floating Point Multiplication Algorithm With Vector Support
This paper presents floating point multiplier capable of supporting wide range of application domains like
scientific computing and multimedia applications. The floating point units consume less power and small
part of total area. Graphic Processor Units (GPUS) are specially tuned for performing a set of operations
on large sets of data. This paper work presents the design of a single precision floating point multiplication
algorithm with vector support. The single precision floating point multiplier is having a path delay of 72ns
and also having the operating frequency of 13.58MHz.Finally this implementation is done in Verilog HDL
using Xilinx ISE-14.2.
These refer to the format used to store and Noise in signals is usually represented by
manipulate numbers within the devices. Fixed point its standard deviation. For here, the important fact
DSPs usually represent each number with a is that the standard deviation of this quantization
minimum of 16 bits. In comparison, floating point noise is about one-third of the gap size. This means
DSPs use a minimum of 32 bits to store each value. that the signal-to-noise ratio for storing a floating
This results in many more bit patterns than for fixed point number is about 30 million to one, while for a
point. All floating point DSPs can also handle fixed fixed point number it is only about ten-thousand to
IJSRSET15113 | Received: 16 Dec 2014 | Accepted: 20 Dec 2014 | January-February 2015 [(1)1: 62-69] 62
one. In other words, floating point has roughly The exponent field needs to represent both
30,000 times less quantization noise than fixed positive and negative exponents. To do this,
point. a bias is added to the actual exponent in order to
get the stored exponent.
For IEEE single-precision floats, this value is
The important idea is that the fixed point
127. Thus, an exponent of zero means that 127
programmer must understand dozens of ways to is stored in the exponent field. A stored value of
carry out the very basic task of multiplication. In 200 indicates an exponent of (200-127), or 73.
contrast, the floating point programmer can spend is For reasons discussed later, exponents of -127
time concentrating on the algorithm the cost of the (all 0s) and +128 (all 1s) are reserved for special
DSP is insignificant, but the performance is critical. numbers.
In spite of the larger number of fixed point DSPs Significand is the mantissa with an extra MSB
bit i.e.,1 which represents the precision bits of
being used, the floating point market is the fastest
the number. It is composed of an implicit
growing segment. Verilog programming has been leading bit and the fraction bits.
used to implement Floating Point Multiplier.
Tool used for programming XILINX ISE SUITE
14.2 Version.
IEEE754 FLOATINGPOINT REPRESENTATION Normalized floating point numbers have the form
of
Basic Representation
Z= (-1S) * 2 (E - Bias )* (1.M).
IEEE floating point numbers have three basic Steps for Floating Point Multiplication
components: the sign, the exponent, and the To multiply two floating point numbers the
mantissa. The mantissa is composed of
the fraction and an implicit leading digit. The following is done:
exponent base 2 is implicit and need not be stored. 1. Multiplying the significand; i.e.
Single Precision:
2. Placing the decimal point in the result
3. Adding the exponents; i.e.
31 30 24 23 2 1 0
4. Obtaining the sign; i.e. s1EXOR s2
5. Normalizing the result; i.e. obtaining 1 at the
Figure IEEE-754 Single Precision Bit Format
MSB of the results significant
6. Rounding the result to fit in the available bits
Where
S = Sign Bit 7. Checking for underflow/overflow occurrence
E = Exponent
M = Mantissa
The sign bit is as simple as it gets. 0 denotes a Multiplication using Two Numbers
positive number; 1 denotes a negative number.
Flipping the value of this bit flips the sign of the Consider a floating point representation similar to
number. the IEEE 754 single precision floating point format,
but with a reduced number of mantissa bits. Here
is not the true exponent; i.e. EA = EA-true + bias A_exponent B_exponent A_mantissa B_mantissa
+
*
and EB = EB-true + bias A_sign B_sign
- Bias
And EXOR
NORMALIZER
MULTIPLIER RESULT
An 8-bit ripple carry adder is used to add the two A normal subtractor has three inputs (minuend (S),
input exponents. As shown in Fig. 4.2 a ripple subtrahend (T), Borrow in (Bi)) and two outputs
carry adder is a chain of cascaded full adders and (Difference (R), Borrow out (Bo)). The subtractor
one half adder; each full adder has three inputs (A, logic can be optimized if one of its inputs is a
B, Ci) and two outputs (S, Co). The carry out (Co) of constant value which is our case, where the Bias is
each adder is fed to the next full adder (i.e. each constant .In single precision the Bias subtractor
carry bit "ripples" to the next full adder). which is a chain of 7 one subtractors (OS) followed
B7 B1 B0
by 2 zero subtractors (ZS); the borrow output of
A7 Ai Bi A1 A0
each subtractor is fed to the next subtractor. If an
underflow occurs then Eresult< 0 and the number is
C0,7 FA FA FA HA
out of the IEEE 754 single precision normalized
numbers range; in this case the output is signaled to
S7 Si S1 S0 0 and an underflow flag is asserted.
Figure 2 : Ripple Carry Adder
Table 2: Port list of Ripple Borrow