SlideShare a Scribd company logo
IOSR Journal of Electronics and Communication Engineering (IOSR-JECE)
e-ISSN: 2278-2834,p- ISSN: 2278-8735.Volume 10, Issue 1, Ver. 1 (Jan - Feb. 2015), PP 49-54
www.iosrjournals.org
DOI: 10.9790/2834-10114954 www.iosrjournals.org 49 | Page
Design and Implementation of High Speed Area Efficient Double
Precision Floating Point Arithmetic Unit
Onkar Singh1
, Kanika Sharma2
1
Arni University, Kathgarh, Indora, HP, India.
2
NITTTR, Chandigarh. India.
Abstract: A floating-point arithmetic unit designed to carry out operations on floating point numbers. Floating
point numbers can support a much wider range of values than fixed point representation. Floating Point units
are mainly used in high speed objects recognition system, high performance computer systems, embedded
systems, mobile applications. Latch based design is implemented in the proposed work so the longer
combinational paths can be compensated by shorter path delays in the subsequent logic gates. That is why the
performance has increased in the design. All four individual units addition, subtraction, multiplication and
division are designed using Verilog verified by using Questa Sim and implemented on vertex-5 FPGA
Keywords: Floating Point, IEEE, FPGA, Vertex-5, Double Precision, Verilog, Arithmetic Unit
I. Introduction
A floating point arithmetic unit designed to carry out operations on floating point numbers. Floating
point arithmetic unit is widely used in high speed objects recognition system, high performance computer
systems, embedded systems, mobile applications and signal processing applications. Floating point
representation can support a much wider range of values than fixed point representation. To represent very large
or small values, wide range is required as the integer representation is no longer appropriate. These values can
be represented using the IEEE-754 standard based floating point representation. The design has been
implemented on latches so the longer combinational paths can be compensated by shorter path delays in the
subsequent logic gates. That is why the performance has increased in the design.
IEEE Single Precision Format: The IEEE single precision format uses 32 bits for representing a floating point
number, divided into three subfields, as illustrated in figure 1. The first field is the sign bit for the fraction part.
The next field consists of 8 bits which are used for exponent the third field consists of the remaining 23 bits and
is used for the fractional part.
Sign Exponent Fraction
1 bit 8 bits 23 bits
Fig 1: IEEE format for single precision
IEEE Double Precision Format: The IEEE double precision format uses 64 bits for representing a floating
point number, as illustrated in figure 2. The first bit is the sign bit for the fraction part. The next 11 bits are used
for the exponent, and the remaining 52 bits are used for the fractional part.
Sign Exponent Fraction
1 bit 11 bits 52 bits
Fig 2: IEEE format for double precision
II. Implementation Of Double Precision Floating Point Arithmetic Unit
The block diagram of the proposed floating point arithmetic unit is given in figure 3. The unit supports
four arithmetic operations: Add, Subtract, Multiply and Divide. All arithmetic operations have been carried out
in four separate modules one for addition, one for subtraction, one for multiplication and one for division as
shown in figure 3. In this unit one can select operation to be performed on the 64-bit operands by a 3-bit op-
code and the same op-code selects the output from that particular module and connects it to the final output of
the unit. Particular exception signal will be high whenever that type of exception will occur.
Design and implementation of high speed area efficient double precision floating point arithmetic unit
DOI: 10.9790/2834-10114954 www.iosrjournals.org 50 | Page
Fig 4: RTL view of double precision floating point
arithmetic unit
Fig 3: Block diagram of double precision floating
point arithmetic unit
The floating point arithmetic unit consists of following blocks
2.1) Fpu_Add- Floating Point adder
2.2) Fpu_Sub- Floating Point Subtractor
2.3)Fpu_Mul-Floating Point Multiplier
2.4) Fpu_Div- Floating Point Division
2.5)Fpu_Round-Floating Point Rounding Unit
2.6) Fpu_Exception- Floating Point Exception Unit
2.1) Fpu_Add- Floating Point adder- Two floating point numbers are added as shown below.
(f1 x 2e1
) + (f2 x 2e2
) = F x 2E
In order to add two fractions, the associated exponents must be equal. Thus, if the two exponents are
different, we must un normalize one of the fractions and adjust the exponents accordingly. The smaller number
is the one that should adjusted so that if significant digits are lost, the effect is not significant. In this module two
64-bit numbers are added and after going through rounding and exception part final added result will come to
the output.
2.2) Fpu_Sub- Floating Point Subtractor- Two floating point numbers are subtracted as shown below.
(f1 x 2e1
) - (f2 x 2e2
) = F x 2E
In order to subtract two fractions, the associated exponents must be equal. Thus, if the two exponents
are different, we must un normalize one of the fractions and adjust the exponents accordingly. The smaller
number is the one that should adjusted so that if significant digits are lost, the effect is not significant. In this
module two 64-bit numbers are subtracted and after going through rounding and exception part final subtracted
result will come to the output.
2.3) Fpu_Mul- Floating Point Multiplier-Two floating point numbers are multiplied as shown below.
(f1 x 2e1
) x (f2 * 2e2
) = (f1 x f2) x 2(e1+e2)
= F x 2E
In this module two 64-bit numbers are multiplied using sub multipliers and after going through
rounding and exception part final multiplied result will come to the output. The mantissa of operand A are
stored in the 53-bit register (mul_a). The mantissa of operand B are stored in the 53-bit register (mul_b).
Multiplying all 53 bits of mul_a by 53 bits of mul_b would result in a 106-bit wide product and a 53 by 53 bit
multiplier is not available in the most popular Xilinx FPGAs, so the multiply would be broken down into
smaller multiplies and the results would be added together to give the final 106-bit product. the module
(fpu_mul) breaks up the multiply into smaller 24-bit by 17-bit multiplies. The Xilinx Virtex5 device contains
Design and implementation of high speed area efficient double precision floating point arithmetic unit
DOI: 10.9790/2834-10114954 www.iosrjournals.org 51 | Page
DSP48E slices with 25 by 18 twos complement multipliers, which can perform a 24 by 17-bit multiply. The
multiply is broken up as follows:
Multiplier_1 = mul_a[23:0] x mul_b[16:0]
Multiplier_2 = mul_a[23:0] x mul_b[33:17]
Multiplier_3 = mul_a[23:0] x mul_b[50:34]
Multiplier_4= mul_a[23:0] x mul_b[52:51]
Multiplier_5 = mul_a[40:24] x mul_b[16:0]
Multiplier_6 = mul_a[40:24] x mul_b[33:17]
Multiplier_7= mul_a[40:24] x mul_b[52:34]
Multiplier_8 = mul_a[52:41] x mul_b[16:0]
Multiplier_9 = mul_a[52:41] x mul_b[33:17]
Multiplier_10 = mul_a[52:41] x mul_b[52:34]
The multiplier (1-10) are added together, with the appropriate offsets based on which part of the mul_a
and mul_b arrays they are multiplying. The summation of the products is accomplished by adding one product
result to the previous product result instead of adding all 10 multiplier (1-10) together in one summation. The
final 106-bit product is stored in register (product). The exponent fields of operands A and B are added together
and then the value (1022) is subtracted from the sum of A and B. If the resultant exponent is less than 0, than the
(product) register needs to be right shifted by the amount. The final exponent of the output operand will be 0 in
this case, and the result will be a denormalized number.
2.4) Fpu_Div- Floating Point Division - Two floating point numbers are divided as shown below.
(f1 x 2e1
) / (f2 x 2e2
) = (f1 / f2) x 2(e1-e2)
= F x 2E
In this module two 64-bit numbers are divided and after going through rounding and exception part
final divided result will come to the output. The leading „1‟ (if normalized) and mantissa of operand A is the
dividend, and the leading „1‟ (if normalized) and mantissa of operand B is the divisor. In division one bit of the
quotient calculated each clock cycle based on a comparison between the dividend and divisor register. If the
dividend is greater than the divisor, the quotient bit is „1‟, and then the divisor is subtracted from the dividend,
and the resulting difference is shifted one bit to the left, and after shifting it becomes the dividend for the next
clock cycle. And in another case if the dividend is less than the divisor, the dividend is shifted one bit to the left,
and then this shifted value becomes the dividend for the next clock cycle. Repeat the steps by the number of bits
time. The number in the dividend place gives remainder value and quotient place gives quotient value
2.5) Fpu_Round-Floating Point Rounding Unit - Rounding module is used to modifies a number and fit it in
the destination‟s format. The various rounding modes are written below.
2.5.1) Round to nearest even: This is the standard default rounding. The value is rounded down or up to the
nearest infinitely precise result.
2.5.2) Round-to-Zero: Basically in this mode the number will not be rounded. The excess bits will simply get
truncated, e.g. 5.48 will be truncated to 5.5
2.5.3) Round-Up: In this mode the number will be rounded up towards +∞, e.g. 6.4 will be rounded to 7, while -
5.4 to -5
2.5.4) Round-Down: The opposite of round-up, the number will be rounded up towards -∞, e.g. 6.4 will be
rounded to 6, while -5.4 to -6
2.6) Fpu_Exception- Floating Point Exception Unit- Exception occurs when an operation on some particular
operands has no outputs suitable for a reasonable application.
The five possible exceptions are:
2.6.1) Invalid: Operation are like square root of a negative number, returning of NaN by default, etc., output of
which does not exist.
2.6.2) Division by zero: It is an operation on a finite operand which gives an exact infinite result for e.g., 1/0 or
log (0) that returns positive or negative infinity by default.
2.6.3) Overflow: It occurs when an operation results a very large number that can‟t be represented correctly i.e.
which returns ±infinity by default (for round-to-nearest mode).
2.6.4) Underflow: It occurs when an operation results very small i.e. outside the normal range and inexact by
default.
2.6.5) Inexact: It occurs whenever the result of an arithmetic operation is not exact due to the restricted exponent
or precision range.
Design and implementation of high speed area efficient double precision floating point arithmetic unit
DOI: 10.9790/2834-10114954 www.iosrjournals.org 52 | Page
III. Synthesis, Timing And Simulation Result
3.1) Synthesis Result
DEVICE UTILIZATION SUMMARY
Logic Utilization Used Available Utilization
Number of Slice Registers 4762 28800 16%
Number of Slice LUTs 6525 28800 22%
Number of fully used LUT-FF pairs 3013 7600 36%
Number of bonded IOBs 206 220 93%
Number of BUFG/BUFGCTRLs 6 32 18%
Number of DSP48Es 9 48 18%
3.2) Timing Result
Minimum Period 3.817ns (Maximum Frequency: 262.006MHz)
Minimum Input arrival time before clocks 3.900ns
Maximum output required time after clocks 2.775ns
3.3) Simulation Result- The simulation results of double precision floating point arithmetic unit (Addition,
Subtraction, Multiplication and Division) is shown in fig 5, fig 6, fig 7, fig 8 respectively. It is calculated for the
two input operands of 64 bits each. The reset signal is kept low throughout the simulation, so that operands are
initialised all at once, then at the high of enable signal, operation of the two operands are calculated. After
calculating the result, the result goes into fpu_round and then goes into fpu_exceptions. From fpu_exceptions
the out signal gives the output. In the waveforms clock defines the applied frequency (262.006MHz) to the
signals. Fpu_op defines the operation to be preformed that is 0=addition,1=subtraction, 2=multiplication and
3=division. Opa1 and Opa1 defines the input operand one and input operand two respectively. The r_mode
signal defines the various rounding modes (00=Round to nearest even, 01=Round-to-Zero, 10=Round-Up,
11=Round-Down. Fpu_out defines the final output of the signals.
3.3.1) Simulation Result of floating point addition- It is calculated for the two input operands of 64 bits each.
15 clock cycles are required by floating point unit to complete addition process. As frequency is 262.006MHz so
one clock cycle completes 3.82ns and 15 clock cycles completes in 3.82ns x 15 =57.3ns. Therefore the addition
process completes in 57.3ns.
Fig 5: Simulation Result of Floating Point Addition
Operation Time taken by modules in ns
Addition 57.255ns (15 cycles)
Subtraction 57.255ns (15 cycles)
Multiplication 57.255ns (15 cycles)
Division 259.556ns (68 cycles)
Design and implementation of high speed area efficient double precision floating point arithmetic unit
DOI: 10.9790/2834-10114954 www.iosrjournals.org 53 | Page
3.3.2) Simulation result of floating point subtraction- It is calculated for the two input operands of 64 bits
each. 15 clock cycles are required by floating point unit to complete subtraction process. As frequency is
262.006MHz so one clock cycle completes 3.82ns and 15 clock cycles completes in 3.82ns x 15 =57.3ns.
Therefore the subtraction process completes in 57.3ns.
Fig 6: Simulation Result of Floating Point Subtraction
3.3.3) Simulation result of floating point multiplication- It is calculated for the two input operands of 64 bits
each. 15 clock cycles are required by floating point unit to complete multiplication process. As frequency is
262.006MHz so one clock cycle completes 3.82ns and 15 clock cycles completes in 3.82ns x 15 =57.3ns.
Therefore the multiplication process completes in 57.3ns.
Fig 7: Simulation Result of Floating Point Multiplication
3.3.4) Simulation result of floating point division- It is calculated for the two input operands of 64 bits each.
68 clock cycles are required by floating point unit to complete division process. As frequency is 262.006MHz so
one clock cycle completes 3.82ns and 68 clock cycles completes in 3.82ns x 68 =259.76ns. Therefore the
division process completes in 259.76ns.
Design and implementation of high speed area efficient double precision floating point arithmetic unit
DOI: 10.9790/2834-10114954 www.iosrjournals.org 54 | Page
Fig 8: Simulation Result of Floating Point Division
IV. Conclusion
This paper presents a high performance implementation of double precision floating point arithmetic
unit. The complete design is captured in Verilog Hardware description language (HDL), tested in simulation
using Questa Sim, placed and routed on a Vertex 5 FPGA from Xilinx.It works on Maximum Frequency of
262.006MHz. When synthesized, this module used 16% number of slice registers, 22% Number of Slice LUTS,
and 36% number of fully used LUT-FF pairs. The overall performance is increased in this design. The proposed
work can be further proceed by adding some more modules like square root, logarithmic units to the floating
point unit and also the complete design can be implemented on high performance vertex-6 FPGA.
References
[1]. Chaitanya a. Kshirsagar, P.M. Palsodkar “An FPGA implementation of IEEE - 754 double precision floating point unit using
verilog” international journal of electrical, electronics and data communication, ISSN: 2320-2084 , volume-2, issue-6, june-2014
[2]. Paschalakis, S., Lee, P., “Double Precision Floating-Point Arithmetic on FPGAs”, In Proc. 2003 2nd
IEEE International Conference
on Field Programmable Technology (FPT ‟03), Tokyo, Japan, pp. 352-358, 2003
[3]. Addanki Puma Ramesh, A. V. N. Tilak, A.M.Prasad “An FPGA Based High Speed IEEE-754 Double Precision Floating Point
Multiplier Using Verilog” 2013 International Conference on Emerging Trends in VLSI, Embedded System, Nano Electronics and
Telecommunication System (ICEVENT), pp. 1-5, 7-9 Jan. 2013
[4]. Ushasree G, R Dhanabal, Sarat Kumar Sahoo “Implementation of a High Speed Single Precision Floating Point Unit using Verilog”
International Journal of Computer Applications National conference on VSLI and Embedded systems, pp.32-36, 2013
[5]. Pramod Kumar Jain, Hemant Ghayvat , D.S Ajnar “Double Precision Optimized Arithmetic Hardware Design For Binary &
Floating Point Operands” International Journal of Power Control Signal and Computation (IJPCSC) Vol. 2 No. 2 ISSN : 0976-268X
[6]. Basit Riaz Sheikh and Rajit Manohar “An Operand-Optimized Asynchronous IEEE 754 Double-Precision Floating-Point Adder”,
IEEE Symposium on Asynchronous Circuits and Systems (ASYNC), pp. 151 – 162, 3-6 May 2010
[7]. Ms. Anjana Sasidharan, Mr. M.K. Arun” Vhdl Implementation Of Ieee 754 Floating Point Unit” IJAICT, ISSN 2348 –
9928Volume 1, Issue 2, June 2014
[8]. Dhiraj Sangwan , Mahesh K. Yadav “Design and Implementation of Adder/Subtractor and Multiplication Units for Floating-Point
Arithmetic” International Journal of Electronics Engineering, 2(1), pp. 197-203, 2010
[9]. Tarek Ould Bachir, Jean-Pierre David “Performing Floating-Point Accumulation on a modern FPGA in Single and Double
Precision” 18th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines, pp.105-108, 2010
[10]. Geetanjali Wasson “IEEE-754 compliant Algorithms for Fast Multiplication of Double Precision Floating Point Numbers”
International Journal of Research in Computer Science, Volume 1, Issue 1, pp. 1-7, 2011
[11]. KavithaSravanthi, Addula Saikumar “An FPGA Based Double Precision Floating Point Arithmetic Unit using Verilog”
International Journal of Engineering Research & Technology ISSN: 2278-0181, Vol. 2 Issue 10, October - 2013
[12]. Rathindra Nath Giri, M.K.Pandit “Pipelined Floating-Point Arithmetic Unit (FPU) for Advanced Computing Systems using FPGA”
International Journal of Engineering and Advanced Technology (IJEAT), Volume-1, Issue-4, pp. 168-174, April 2012
[13]. H. Yamada, T. Hottat, T. Nishiyama, F. Murabayashi, T. Yamauchi, and H. Sawamoto “A 13.3ns Double-precision Floating-point
ALU and Multiplier”, IEEE International Conference on Computer Design: VLSI in Computers and Processors, pp. 466 – 470, 2-4
Oct 1995
[14]. Shrivastava Purnima, Tiwari Mukesh, Singh Jaikaran and Rathore Sanjay “VHDL Environment for Floating point Arithmetic Logic
Unit - ALU Design and Simulation” Research Journal of Engineering Sciences, Vol. 1(2), pp.1-6, August -2012
Ad

Recommended

Multiplier and Accumulator Using Csla
Multiplier and Accumulator Using Csla
IOSR Journals
 
Chapter 03 arithmetic for computers
Chapter 03 arithmetic for computers
Bảo Hoang
 
Chapter 05 computer arithmetic 2o-p
Chapter 05 computer arithmetic 2o-p
IIUI
 
Gsp 215 Future Our Mission/newtonhelp.com
Gsp 215 Future Our Mission/newtonhelp.com
amaranthbeg8
 
Computer organiztion3
Computer organiztion3
Umang Gupta
 
F044033742
F044033742
IJERA Editor
 
Floating point arithmetic operations (1)
Floating point arithmetic operations (1)
cs19club
 
Finite word lenth effects
Finite word lenth effects
tamil arasan
 
Design of 32-bit Floating Point Unit for Advanced Processors
Design of 32-bit Floating Point Unit for Advanced Processors
IJERA Editor
 
Computer Arithmetic
Computer Arithmetic
Kamal Acharya
 
GSP 215 Effective Communication - tutorialrank.com
GSP 215 Effective Communication - tutorialrank.com
Bartholomew35
 
Ap32283286
Ap32283286
IJERA Editor
 
Computer organiztion2
Computer organiztion2
Umang Gupta
 
Digital Logic & Design
Digital Logic & Design
Rokonuzzaman Rony
 
GSP 215 Enhance teaching/tutorialrank.com
GSP 215 Enhance teaching/tutorialrank.com
jonhson300
 
GSP 215 Inspiring Innovation/tutorialrank.com
GSP 215 Inspiring Innovation/tutorialrank.com
jonhson129
 
Digital Logic
Digital Logic
Dilum Bandara
 
Chapter 05 computer arithmetic
Chapter 05 computer arithmetic
IIUI
 
Alu app b
Alu app b
Sathish Kumaravelu
 
05 multiply divide
05 multiply divide
Piyush Rochwani
 
Chapter 03 number system
Chapter 03 number system
IIUI
 
Data Reprersentation
Data Reprersentation
Kamal Acharya
 
IRJET - Design and Implementation of Double Precision FPU for Optimised Speed
IRJET - Design and Implementation of Double Precision FPU for Optimised Speed
IRJET Journal
 
Chapter 06 boolean algebra
Chapter 06 boolean algebra
IIUI
 
Finite word length effects
Finite word length effects
PeriyanayagiS
 
Floating point ALU using VHDL implemented on FPGA
Floating point ALU using VHDL implemented on FPGA
Azhar Syed
 
High Speed Time Efficient Reversible ALU Based Logic Gate Structure on Vertex...
High Speed Time Efficient Reversible ALU Based Logic Gate Structure on Vertex...
IJERD Editor
 
Class10
Class10
Wasi Ahmad
 
Design and Implementation of Single Precision Pipelined Floating Point Co-Pro...
Design and Implementation of Single Precision Pipelined Floating Point Co-Pro...
Silicon Mentor
 
Decimal arithmetic in Processors
Decimal arithmetic in Processors
Peeyush Pashine
 

More Related Content

What's hot (17)

Design of 32-bit Floating Point Unit for Advanced Processors
Design of 32-bit Floating Point Unit for Advanced Processors
IJERA Editor
 
Computer Arithmetic
Computer Arithmetic
Kamal Acharya
 
GSP 215 Effective Communication - tutorialrank.com
GSP 215 Effective Communication - tutorialrank.com
Bartholomew35
 
Ap32283286
Ap32283286
IJERA Editor
 
Computer organiztion2
Computer organiztion2
Umang Gupta
 
Digital Logic & Design
Digital Logic & Design
Rokonuzzaman Rony
 
GSP 215 Enhance teaching/tutorialrank.com
GSP 215 Enhance teaching/tutorialrank.com
jonhson300
 
GSP 215 Inspiring Innovation/tutorialrank.com
GSP 215 Inspiring Innovation/tutorialrank.com
jonhson129
 
Digital Logic
Digital Logic
Dilum Bandara
 
Chapter 05 computer arithmetic
Chapter 05 computer arithmetic
IIUI
 
Alu app b
Alu app b
Sathish Kumaravelu
 
05 multiply divide
05 multiply divide
Piyush Rochwani
 
Chapter 03 number system
Chapter 03 number system
IIUI
 
Data Reprersentation
Data Reprersentation
Kamal Acharya
 
IRJET - Design and Implementation of Double Precision FPU for Optimised Speed
IRJET - Design and Implementation of Double Precision FPU for Optimised Speed
IRJET Journal
 
Chapter 06 boolean algebra
Chapter 06 boolean algebra
IIUI
 
Finite word length effects
Finite word length effects
PeriyanayagiS
 
Design of 32-bit Floating Point Unit for Advanced Processors
Design of 32-bit Floating Point Unit for Advanced Processors
IJERA Editor
 
GSP 215 Effective Communication - tutorialrank.com
GSP 215 Effective Communication - tutorialrank.com
Bartholomew35
 
Computer organiztion2
Computer organiztion2
Umang Gupta
 
GSP 215 Enhance teaching/tutorialrank.com
GSP 215 Enhance teaching/tutorialrank.com
jonhson300
 
GSP 215 Inspiring Innovation/tutorialrank.com
GSP 215 Inspiring Innovation/tutorialrank.com
jonhson129
 
Chapter 05 computer arithmetic
Chapter 05 computer arithmetic
IIUI
 
Chapter 03 number system
Chapter 03 number system
IIUI
 
Data Reprersentation
Data Reprersentation
Kamal Acharya
 
IRJET - Design and Implementation of Double Precision FPU for Optimised Speed
IRJET - Design and Implementation of Double Precision FPU for Optimised Speed
IRJET Journal
 
Chapter 06 boolean algebra
Chapter 06 boolean algebra
IIUI
 
Finite word length effects
Finite word length effects
PeriyanayagiS
 

Viewers also liked (20)

Floating point ALU using VHDL implemented on FPGA
Floating point ALU using VHDL implemented on FPGA
Azhar Syed
 
High Speed Time Efficient Reversible ALU Based Logic Gate Structure on Vertex...
High Speed Time Efficient Reversible ALU Based Logic Gate Structure on Vertex...
IJERD Editor
 
Class10
Class10
Wasi Ahmad
 
Design and Implementation of Single Precision Pipelined Floating Point Co-Pro...
Design and Implementation of Single Precision Pipelined Floating Point Co-Pro...
Silicon Mentor
 
Decimal arithmetic in Processors
Decimal arithmetic in Processors
Peeyush Pashine
 
Fixed-point arithmetic
Fixed-point arithmetic
David Bařina
 
Optimized Floating-point Complex number multiplier on FPGA
Optimized Floating-point Complex number multiplier on FPGA
Dr. Pushpa Kotipalli
 
Representation of Real Numbers
Representation of Real Numbers
Forrester High School
 
Fixed point and floating-point numbers
Fixed point and floating-point numbers
MOHAN MOHAN
 
Quick tutorial on IEEE 754 FLOATING POINT representation
Quick tutorial on IEEE 754 FLOATING POINT representation
Ritu Ranjan Shrivastwa
 
06 floating point
06 floating point
Piyush Rochwani
 
Cutting Parameter Optimization for Surface Finish and Hole Accuracy in Drilli...
Cutting Parameter Optimization for Surface Finish and Hole Accuracy in Drilli...
IOSR Journals
 
Secure Data Sharing Using Compact Summation key in Hybrid Cloud Storage
Secure Data Sharing Using Compact Summation key in Hybrid Cloud Storage
IOSR Journals
 
Modelling of PV Array with MPP Tracking & Boost DC-DC Converter
Modelling of PV Array with MPP Tracking & Boost DC-DC Converter
IOSR Journals
 
Analysis of Spending Pattern on Credit Card Fraud Detection
Analysis of Spending Pattern on Credit Card Fraud Detection
IOSR Journals
 
Car Dynamics using Quarter Model and Passive Suspension, Part VI: Sprung-mass...
Car Dynamics using Quarter Model and Passive Suspension, Part VI: Sprung-mass...
IOSR Journals
 
The Effect of Imbalance on the Performance of Unpaced Production Line – A Mat...
The Effect of Imbalance on the Performance of Unpaced Production Line – A Mat...
IOSR Journals
 
On Some Types of Fuzzy Separation Axioms in Fuzzy Topological Space on Fuzzy ...
On Some Types of Fuzzy Separation Axioms in Fuzzy Topological Space on Fuzzy ...
IOSR Journals
 
Data Usage Monitor for a Shared Wireless Network Connection
Data Usage Monitor for a Shared Wireless Network Connection
IOSR Journals
 
Best Power Surge Using Fuzzy Controlled Genetic Technique
Best Power Surge Using Fuzzy Controlled Genetic Technique
IOSR Journals
 
Floating point ALU using VHDL implemented on FPGA
Floating point ALU using VHDL implemented on FPGA
Azhar Syed
 
High Speed Time Efficient Reversible ALU Based Logic Gate Structure on Vertex...
High Speed Time Efficient Reversible ALU Based Logic Gate Structure on Vertex...
IJERD Editor
 
Design and Implementation of Single Precision Pipelined Floating Point Co-Pro...
Design and Implementation of Single Precision Pipelined Floating Point Co-Pro...
Silicon Mentor
 
Decimal arithmetic in Processors
Decimal arithmetic in Processors
Peeyush Pashine
 
Fixed-point arithmetic
Fixed-point arithmetic
David Bařina
 
Optimized Floating-point Complex number multiplier on FPGA
Optimized Floating-point Complex number multiplier on FPGA
Dr. Pushpa Kotipalli
 
Fixed point and floating-point numbers
Fixed point and floating-point numbers
MOHAN MOHAN
 
Quick tutorial on IEEE 754 FLOATING POINT representation
Quick tutorial on IEEE 754 FLOATING POINT representation
Ritu Ranjan Shrivastwa
 
Cutting Parameter Optimization for Surface Finish and Hole Accuracy in Drilli...
Cutting Parameter Optimization for Surface Finish and Hole Accuracy in Drilli...
IOSR Journals
 
Secure Data Sharing Using Compact Summation key in Hybrid Cloud Storage
Secure Data Sharing Using Compact Summation key in Hybrid Cloud Storage
IOSR Journals
 
Modelling of PV Array with MPP Tracking & Boost DC-DC Converter
Modelling of PV Array with MPP Tracking & Boost DC-DC Converter
IOSR Journals
 
Analysis of Spending Pattern on Credit Card Fraud Detection
Analysis of Spending Pattern on Credit Card Fraud Detection
IOSR Journals
 
Car Dynamics using Quarter Model and Passive Suspension, Part VI: Sprung-mass...
Car Dynamics using Quarter Model and Passive Suspension, Part VI: Sprung-mass...
IOSR Journals
 
The Effect of Imbalance on the Performance of Unpaced Production Line – A Mat...
The Effect of Imbalance on the Performance of Unpaced Production Line – A Mat...
IOSR Journals
 
On Some Types of Fuzzy Separation Axioms in Fuzzy Topological Space on Fuzzy ...
On Some Types of Fuzzy Separation Axioms in Fuzzy Topological Space on Fuzzy ...
IOSR Journals
 
Data Usage Monitor for a Shared Wireless Network Connection
Data Usage Monitor for a Shared Wireless Network Connection
IOSR Journals
 
Best Power Surge Using Fuzzy Controlled Genetic Technique
Best Power Surge Using Fuzzy Controlled Genetic Technique
IOSR Journals
 
Ad

Similar to Design and Implementation of High Speed Area Efficient Double Precision Floating Point Arithmetic Unit (20)

An FPGA Based Floating Point Arithmetic Unit Using Verilog
An FPGA Based Floating Point Arithmetic Unit Using Verilog
IJMTST Journal
 
IRJET- A Review on Single Precision Floating Point Arithmetic Unit of 32 Bit ...
IRJET- A Review on Single Precision Floating Point Arithmetic Unit of 32 Bit ...
IRJET Journal
 
Survey On Two-Term Dot Product Of Multiplier Using Floating Point
Survey On Two-Term Dot Product Of Multiplier Using Floating Point
IRJET Journal
 
Design and Analysis of High Performance Floating Point Arithmetic Unit
Design and Analysis of High Performance Floating Point Arithmetic Unit
ijtsrd
 
Jz2517611766
Jz2517611766
IJERA Editor
 
Jz2517611766
Jz2517611766
IJERA Editor
 
A Fast Floating Point Double Precision Implementation on Fpga
A Fast Floating Point Double Precision Implementation on Fpga
IJERA Editor
 
Iy3116761679
Iy3116761679
IJERA Editor
 
Final modified ppts
Final modified ppts
sravan kumar y
 
Floating Point Unit (FPU)
Floating Point Unit (FPU)
Silicon Mentor
 
Review on 32 bit single precision Floating point unit (FPU) Based on IEEE 754...
Review on 32 bit single precision Floating point unit (FPU) Based on IEEE 754...
IRJET Journal
 
alu_design.doc
alu_design.doc
David68120
 
Gr2512211225
Gr2512211225
IJERA Editor
 
Gr2512211225
Gr2512211225
IJERA Editor
 
IRJET- Implementation of Floating Point FFT Processor with Single Precision f...
IRJET- Implementation of Floating Point FFT Processor with Single Precision f...
IRJET Journal
 
Implementation of 32 Bit Binary Floating Point Adder Using IEEE 754 Single Pr...
Implementation of 32 Bit Binary Floating Point Adder Using IEEE 754 Single Pr...
iosrjce
 
BOOTH ALGO, DIVISION(RESTORING _ NON RESTORING) etc etc
BOOTH ALGO, DIVISION(RESTORING _ NON RESTORING) etc etc
Abhishek Rajpoot
 
SINGLE PRECISION FLOATING POINT MULTIPLIER USING SHIFT AND ADD ALGORITHM
SINGLE PRECISION FLOATING POINT MULTIPLIER USING SHIFT AND ADD ALGORITHM
AM Publications
 
Lp2520162020
Lp2520162020
IJERA Editor
 
Lp2520162020
Lp2520162020
IJERA Editor
 
An FPGA Based Floating Point Arithmetic Unit Using Verilog
An FPGA Based Floating Point Arithmetic Unit Using Verilog
IJMTST Journal
 
IRJET- A Review on Single Precision Floating Point Arithmetic Unit of 32 Bit ...
IRJET- A Review on Single Precision Floating Point Arithmetic Unit of 32 Bit ...
IRJET Journal
 
Survey On Two-Term Dot Product Of Multiplier Using Floating Point
Survey On Two-Term Dot Product Of Multiplier Using Floating Point
IRJET Journal
 
Design and Analysis of High Performance Floating Point Arithmetic Unit
Design and Analysis of High Performance Floating Point Arithmetic Unit
ijtsrd
 
A Fast Floating Point Double Precision Implementation on Fpga
A Fast Floating Point Double Precision Implementation on Fpga
IJERA Editor
 
Floating Point Unit (FPU)
Floating Point Unit (FPU)
Silicon Mentor
 
Review on 32 bit single precision Floating point unit (FPU) Based on IEEE 754...
Review on 32 bit single precision Floating point unit (FPU) Based on IEEE 754...
IRJET Journal
 
alu_design.doc
alu_design.doc
David68120
 
IRJET- Implementation of Floating Point FFT Processor with Single Precision f...
IRJET- Implementation of Floating Point FFT Processor with Single Precision f...
IRJET Journal
 
Implementation of 32 Bit Binary Floating Point Adder Using IEEE 754 Single Pr...
Implementation of 32 Bit Binary Floating Point Adder Using IEEE 754 Single Pr...
iosrjce
 
BOOTH ALGO, DIVISION(RESTORING _ NON RESTORING) etc etc
BOOTH ALGO, DIVISION(RESTORING _ NON RESTORING) etc etc
Abhishek Rajpoot
 
SINGLE PRECISION FLOATING POINT MULTIPLIER USING SHIFT AND ADD ALGORITHM
SINGLE PRECISION FLOATING POINT MULTIPLIER USING SHIFT AND ADD ALGORITHM
AM Publications
 
Ad

More from IOSR Journals (20)

A011140104
A011140104
IOSR Journals
 
M0111397100
M0111397100
IOSR Journals
 
L011138596
L011138596
IOSR Journals
 
K011138084
K011138084
IOSR Journals
 
J011137479
J011137479
IOSR Journals
 
I011136673
I011136673
IOSR Journals
 
G011134454
G011134454
IOSR Journals
 
H011135565
H011135565
IOSR Journals
 
F011134043
F011134043
IOSR Journals
 
E011133639
E011133639
IOSR Journals
 
D011132635
D011132635
IOSR Journals
 
C011131925
C011131925
IOSR Journals
 
B011130918
B011130918
IOSR Journals
 
A011130108
A011130108
IOSR Journals
 
I011125160
I011125160
IOSR Journals
 
H011124050
H011124050
IOSR Journals
 
G011123539
G011123539
IOSR Journals
 
F011123134
F011123134
IOSR Journals
 
E011122530
E011122530
IOSR Journals
 
D011121524
D011121524
IOSR Journals
 

Recently uploaded (20)

System design handwritten notes guidance
System design handwritten notes guidance
Shabista Imam
 
grade 9 science q1 quiz.pptx science quiz
grade 9 science q1 quiz.pptx science quiz
norfapangolima
 
60 Years and Beyond eBook 1234567891.pdf
60 Years and Beyond eBook 1234567891.pdf
waseemalazzeh
 
machine learning is a advance technology
machine learning is a advance technology
ynancy893
 
DESIGN OF REINFORCED CONCRETE ELEMENTS S
DESIGN OF REINFORCED CONCRETE ELEMENTS S
prabhusp8
 
ElysiumPro Company Profile 2025-2026.pdf
ElysiumPro Company Profile 2025-2026.pdf
info751436
 
IntroSlides-June-GDG-Cloud-Munich community [email protected]
IntroSlides-June-GDG-Cloud-Munich community [email protected]
Luiz Carneiro
 
special_edition_using_visual_foxpro_6.pdf
special_edition_using_visual_foxpro_6.pdf
Shabista Imam
 
Complete guidance book of Asp.Net Web API
Complete guidance book of Asp.Net Web API
Shabista Imam
 
Proposal for folders structure division in projects.pdf
Proposal for folders structure division in projects.pdf
Mohamed Ahmed
 
Cadastral Maps
Cadastral Maps
Google
 
IPL_Logic_Flow.pdf Mainframe IPLMainframe IPL
IPL_Logic_Flow.pdf Mainframe IPLMainframe IPL
KhadijaKhadijaAouadi
 
NALCO Green Anode Plant,Compositions of CPC,Pitch
NALCO Green Anode Plant,Compositions of CPC,Pitch
arpitprachi123
 
362 Alec Data Center Solutions-Slysium Data Center-AUH-Adaptaflex.pdf
362 Alec Data Center Solutions-Slysium Data Center-AUH-Adaptaflex.pdf
djiceramil
 
David Boutry - Mentors Junior Developers
David Boutry - Mentors Junior Developers
David Boutry
 
Fundamentals of Digital Design_Class_21st May - Copy.pptx
Fundamentals of Digital Design_Class_21st May - Copy.pptx
drdebarshi1993
 
Decoding Kotlin - Your Guide to Solving the Mysterious in Kotlin - Devoxx PL ...
Decoding Kotlin - Your Guide to Solving the Mysterious in Kotlin - Devoxx PL ...
João Esperancinha
 
Low Power SI Class E Power Amplifier and Rf Switch for Health Care
Low Power SI Class E Power Amplifier and Rf Switch for Health Care
ieijjournal
 
Industrial internet of things IOT Week-3.pptx
Industrial internet of things IOT Week-3.pptx
KNaveenKumarECE
 
Pavement and its types, Application of rigid and Flexible Pavements
Pavement and its types, Application of rigid and Flexible Pavements
Sakthivel M
 
System design handwritten notes guidance
System design handwritten notes guidance
Shabista Imam
 
grade 9 science q1 quiz.pptx science quiz
grade 9 science q1 quiz.pptx science quiz
norfapangolima
 
60 Years and Beyond eBook 1234567891.pdf
60 Years and Beyond eBook 1234567891.pdf
waseemalazzeh
 
machine learning is a advance technology
machine learning is a advance technology
ynancy893
 
DESIGN OF REINFORCED CONCRETE ELEMENTS S
DESIGN OF REINFORCED CONCRETE ELEMENTS S
prabhusp8
 
ElysiumPro Company Profile 2025-2026.pdf
ElysiumPro Company Profile 2025-2026.pdf
info751436
 
special_edition_using_visual_foxpro_6.pdf
special_edition_using_visual_foxpro_6.pdf
Shabista Imam
 
Complete guidance book of Asp.Net Web API
Complete guidance book of Asp.Net Web API
Shabista Imam
 
Proposal for folders structure division in projects.pdf
Proposal for folders structure division in projects.pdf
Mohamed Ahmed
 
Cadastral Maps
Cadastral Maps
Google
 
IPL_Logic_Flow.pdf Mainframe IPLMainframe IPL
IPL_Logic_Flow.pdf Mainframe IPLMainframe IPL
KhadijaKhadijaAouadi
 
NALCO Green Anode Plant,Compositions of CPC,Pitch
NALCO Green Anode Plant,Compositions of CPC,Pitch
arpitprachi123
 
362 Alec Data Center Solutions-Slysium Data Center-AUH-Adaptaflex.pdf
362 Alec Data Center Solutions-Slysium Data Center-AUH-Adaptaflex.pdf
djiceramil
 
David Boutry - Mentors Junior Developers
David Boutry - Mentors Junior Developers
David Boutry
 
Fundamentals of Digital Design_Class_21st May - Copy.pptx
Fundamentals of Digital Design_Class_21st May - Copy.pptx
drdebarshi1993
 
Decoding Kotlin - Your Guide to Solving the Mysterious in Kotlin - Devoxx PL ...
Decoding Kotlin - Your Guide to Solving the Mysterious in Kotlin - Devoxx PL ...
João Esperancinha
 
Low Power SI Class E Power Amplifier and Rf Switch for Health Care
Low Power SI Class E Power Amplifier and Rf Switch for Health Care
ieijjournal
 
Industrial internet of things IOT Week-3.pptx
Industrial internet of things IOT Week-3.pptx
KNaveenKumarECE
 
Pavement and its types, Application of rigid and Flexible Pavements
Pavement and its types, Application of rigid and Flexible Pavements
Sakthivel M
 

Design and Implementation of High Speed Area Efficient Double Precision Floating Point Arithmetic Unit

  • 1. IOSR Journal of Electronics and Communication Engineering (IOSR-JECE) e-ISSN: 2278-2834,p- ISSN: 2278-8735.Volume 10, Issue 1, Ver. 1 (Jan - Feb. 2015), PP 49-54 www.iosrjournals.org DOI: 10.9790/2834-10114954 www.iosrjournals.org 49 | Page Design and Implementation of High Speed Area Efficient Double Precision Floating Point Arithmetic Unit Onkar Singh1 , Kanika Sharma2 1 Arni University, Kathgarh, Indora, HP, India. 2 NITTTR, Chandigarh. India. Abstract: A floating-point arithmetic unit designed to carry out operations on floating point numbers. Floating point numbers can support a much wider range of values than fixed point representation. Floating Point units are mainly used in high speed objects recognition system, high performance computer systems, embedded systems, mobile applications. Latch based design is implemented in the proposed work so the longer combinational paths can be compensated by shorter path delays in the subsequent logic gates. That is why the performance has increased in the design. All four individual units addition, subtraction, multiplication and division are designed using Verilog verified by using Questa Sim and implemented on vertex-5 FPGA Keywords: Floating Point, IEEE, FPGA, Vertex-5, Double Precision, Verilog, Arithmetic Unit I. Introduction A floating point arithmetic unit designed to carry out operations on floating point numbers. Floating point arithmetic unit is widely used in high speed objects recognition system, high performance computer systems, embedded systems, mobile applications and signal processing applications. Floating point representation can support a much wider range of values than fixed point representation. To represent very large or small values, wide range is required as the integer representation is no longer appropriate. These values can be represented using the IEEE-754 standard based floating point representation. The design has been implemented on latches so the longer combinational paths can be compensated by shorter path delays in the subsequent logic gates. That is why the performance has increased in the design. IEEE Single Precision Format: The IEEE single precision format uses 32 bits for representing a floating point number, divided into three subfields, as illustrated in figure 1. The first field is the sign bit for the fraction part. The next field consists of 8 bits which are used for exponent the third field consists of the remaining 23 bits and is used for the fractional part. Sign Exponent Fraction 1 bit 8 bits 23 bits Fig 1: IEEE format for single precision IEEE Double Precision Format: The IEEE double precision format uses 64 bits for representing a floating point number, as illustrated in figure 2. The first bit is the sign bit for the fraction part. The next 11 bits are used for the exponent, and the remaining 52 bits are used for the fractional part. Sign Exponent Fraction 1 bit 11 bits 52 bits Fig 2: IEEE format for double precision II. Implementation Of Double Precision Floating Point Arithmetic Unit The block diagram of the proposed floating point arithmetic unit is given in figure 3. The unit supports four arithmetic operations: Add, Subtract, Multiply and Divide. All arithmetic operations have been carried out in four separate modules one for addition, one for subtraction, one for multiplication and one for division as shown in figure 3. In this unit one can select operation to be performed on the 64-bit operands by a 3-bit op- code and the same op-code selects the output from that particular module and connects it to the final output of the unit. Particular exception signal will be high whenever that type of exception will occur.
  • 2. Design and implementation of high speed area efficient double precision floating point arithmetic unit DOI: 10.9790/2834-10114954 www.iosrjournals.org 50 | Page Fig 4: RTL view of double precision floating point arithmetic unit Fig 3: Block diagram of double precision floating point arithmetic unit The floating point arithmetic unit consists of following blocks 2.1) Fpu_Add- Floating Point adder 2.2) Fpu_Sub- Floating Point Subtractor 2.3)Fpu_Mul-Floating Point Multiplier 2.4) Fpu_Div- Floating Point Division 2.5)Fpu_Round-Floating Point Rounding Unit 2.6) Fpu_Exception- Floating Point Exception Unit 2.1) Fpu_Add- Floating Point adder- Two floating point numbers are added as shown below. (f1 x 2e1 ) + (f2 x 2e2 ) = F x 2E In order to add two fractions, the associated exponents must be equal. Thus, if the two exponents are different, we must un normalize one of the fractions and adjust the exponents accordingly. The smaller number is the one that should adjusted so that if significant digits are lost, the effect is not significant. In this module two 64-bit numbers are added and after going through rounding and exception part final added result will come to the output. 2.2) Fpu_Sub- Floating Point Subtractor- Two floating point numbers are subtracted as shown below. (f1 x 2e1 ) - (f2 x 2e2 ) = F x 2E In order to subtract two fractions, the associated exponents must be equal. Thus, if the two exponents are different, we must un normalize one of the fractions and adjust the exponents accordingly. The smaller number is the one that should adjusted so that if significant digits are lost, the effect is not significant. In this module two 64-bit numbers are subtracted and after going through rounding and exception part final subtracted result will come to the output. 2.3) Fpu_Mul- Floating Point Multiplier-Two floating point numbers are multiplied as shown below. (f1 x 2e1 ) x (f2 * 2e2 ) = (f1 x f2) x 2(e1+e2) = F x 2E In this module two 64-bit numbers are multiplied using sub multipliers and after going through rounding and exception part final multiplied result will come to the output. The mantissa of operand A are stored in the 53-bit register (mul_a). The mantissa of operand B are stored in the 53-bit register (mul_b). Multiplying all 53 bits of mul_a by 53 bits of mul_b would result in a 106-bit wide product and a 53 by 53 bit multiplier is not available in the most popular Xilinx FPGAs, so the multiply would be broken down into smaller multiplies and the results would be added together to give the final 106-bit product. the module (fpu_mul) breaks up the multiply into smaller 24-bit by 17-bit multiplies. The Xilinx Virtex5 device contains
  • 3. Design and implementation of high speed area efficient double precision floating point arithmetic unit DOI: 10.9790/2834-10114954 www.iosrjournals.org 51 | Page DSP48E slices with 25 by 18 twos complement multipliers, which can perform a 24 by 17-bit multiply. The multiply is broken up as follows: Multiplier_1 = mul_a[23:0] x mul_b[16:0] Multiplier_2 = mul_a[23:0] x mul_b[33:17] Multiplier_3 = mul_a[23:0] x mul_b[50:34] Multiplier_4= mul_a[23:0] x mul_b[52:51] Multiplier_5 = mul_a[40:24] x mul_b[16:0] Multiplier_6 = mul_a[40:24] x mul_b[33:17] Multiplier_7= mul_a[40:24] x mul_b[52:34] Multiplier_8 = mul_a[52:41] x mul_b[16:0] Multiplier_9 = mul_a[52:41] x mul_b[33:17] Multiplier_10 = mul_a[52:41] x mul_b[52:34] The multiplier (1-10) are added together, with the appropriate offsets based on which part of the mul_a and mul_b arrays they are multiplying. The summation of the products is accomplished by adding one product result to the previous product result instead of adding all 10 multiplier (1-10) together in one summation. The final 106-bit product is stored in register (product). The exponent fields of operands A and B are added together and then the value (1022) is subtracted from the sum of A and B. If the resultant exponent is less than 0, than the (product) register needs to be right shifted by the amount. The final exponent of the output operand will be 0 in this case, and the result will be a denormalized number. 2.4) Fpu_Div- Floating Point Division - Two floating point numbers are divided as shown below. (f1 x 2e1 ) / (f2 x 2e2 ) = (f1 / f2) x 2(e1-e2) = F x 2E In this module two 64-bit numbers are divided and after going through rounding and exception part final divided result will come to the output. The leading „1‟ (if normalized) and mantissa of operand A is the dividend, and the leading „1‟ (if normalized) and mantissa of operand B is the divisor. In division one bit of the quotient calculated each clock cycle based on a comparison between the dividend and divisor register. If the dividend is greater than the divisor, the quotient bit is „1‟, and then the divisor is subtracted from the dividend, and the resulting difference is shifted one bit to the left, and after shifting it becomes the dividend for the next clock cycle. And in another case if the dividend is less than the divisor, the dividend is shifted one bit to the left, and then this shifted value becomes the dividend for the next clock cycle. Repeat the steps by the number of bits time. The number in the dividend place gives remainder value and quotient place gives quotient value 2.5) Fpu_Round-Floating Point Rounding Unit - Rounding module is used to modifies a number and fit it in the destination‟s format. The various rounding modes are written below. 2.5.1) Round to nearest even: This is the standard default rounding. The value is rounded down or up to the nearest infinitely precise result. 2.5.2) Round-to-Zero: Basically in this mode the number will not be rounded. The excess bits will simply get truncated, e.g. 5.48 will be truncated to 5.5 2.5.3) Round-Up: In this mode the number will be rounded up towards +∞, e.g. 6.4 will be rounded to 7, while - 5.4 to -5 2.5.4) Round-Down: The opposite of round-up, the number will be rounded up towards -∞, e.g. 6.4 will be rounded to 6, while -5.4 to -6 2.6) Fpu_Exception- Floating Point Exception Unit- Exception occurs when an operation on some particular operands has no outputs suitable for a reasonable application. The five possible exceptions are: 2.6.1) Invalid: Operation are like square root of a negative number, returning of NaN by default, etc., output of which does not exist. 2.6.2) Division by zero: It is an operation on a finite operand which gives an exact infinite result for e.g., 1/0 or log (0) that returns positive or negative infinity by default. 2.6.3) Overflow: It occurs when an operation results a very large number that can‟t be represented correctly i.e. which returns ±infinity by default (for round-to-nearest mode). 2.6.4) Underflow: It occurs when an operation results very small i.e. outside the normal range and inexact by default. 2.6.5) Inexact: It occurs whenever the result of an arithmetic operation is not exact due to the restricted exponent or precision range.
  • 4. Design and implementation of high speed area efficient double precision floating point arithmetic unit DOI: 10.9790/2834-10114954 www.iosrjournals.org 52 | Page III. Synthesis, Timing And Simulation Result 3.1) Synthesis Result DEVICE UTILIZATION SUMMARY Logic Utilization Used Available Utilization Number of Slice Registers 4762 28800 16% Number of Slice LUTs 6525 28800 22% Number of fully used LUT-FF pairs 3013 7600 36% Number of bonded IOBs 206 220 93% Number of BUFG/BUFGCTRLs 6 32 18% Number of DSP48Es 9 48 18% 3.2) Timing Result Minimum Period 3.817ns (Maximum Frequency: 262.006MHz) Minimum Input arrival time before clocks 3.900ns Maximum output required time after clocks 2.775ns 3.3) Simulation Result- The simulation results of double precision floating point arithmetic unit (Addition, Subtraction, Multiplication and Division) is shown in fig 5, fig 6, fig 7, fig 8 respectively. It is calculated for the two input operands of 64 bits each. The reset signal is kept low throughout the simulation, so that operands are initialised all at once, then at the high of enable signal, operation of the two operands are calculated. After calculating the result, the result goes into fpu_round and then goes into fpu_exceptions. From fpu_exceptions the out signal gives the output. In the waveforms clock defines the applied frequency (262.006MHz) to the signals. Fpu_op defines the operation to be preformed that is 0=addition,1=subtraction, 2=multiplication and 3=division. Opa1 and Opa1 defines the input operand one and input operand two respectively. The r_mode signal defines the various rounding modes (00=Round to nearest even, 01=Round-to-Zero, 10=Round-Up, 11=Round-Down. Fpu_out defines the final output of the signals. 3.3.1) Simulation Result of floating point addition- It is calculated for the two input operands of 64 bits each. 15 clock cycles are required by floating point unit to complete addition process. As frequency is 262.006MHz so one clock cycle completes 3.82ns and 15 clock cycles completes in 3.82ns x 15 =57.3ns. Therefore the addition process completes in 57.3ns. Fig 5: Simulation Result of Floating Point Addition Operation Time taken by modules in ns Addition 57.255ns (15 cycles) Subtraction 57.255ns (15 cycles) Multiplication 57.255ns (15 cycles) Division 259.556ns (68 cycles)
  • 5. Design and implementation of high speed area efficient double precision floating point arithmetic unit DOI: 10.9790/2834-10114954 www.iosrjournals.org 53 | Page 3.3.2) Simulation result of floating point subtraction- It is calculated for the two input operands of 64 bits each. 15 clock cycles are required by floating point unit to complete subtraction process. As frequency is 262.006MHz so one clock cycle completes 3.82ns and 15 clock cycles completes in 3.82ns x 15 =57.3ns. Therefore the subtraction process completes in 57.3ns. Fig 6: Simulation Result of Floating Point Subtraction 3.3.3) Simulation result of floating point multiplication- It is calculated for the two input operands of 64 bits each. 15 clock cycles are required by floating point unit to complete multiplication process. As frequency is 262.006MHz so one clock cycle completes 3.82ns and 15 clock cycles completes in 3.82ns x 15 =57.3ns. Therefore the multiplication process completes in 57.3ns. Fig 7: Simulation Result of Floating Point Multiplication 3.3.4) Simulation result of floating point division- It is calculated for the two input operands of 64 bits each. 68 clock cycles are required by floating point unit to complete division process. As frequency is 262.006MHz so one clock cycle completes 3.82ns and 68 clock cycles completes in 3.82ns x 68 =259.76ns. Therefore the division process completes in 259.76ns.
  • 6. Design and implementation of high speed area efficient double precision floating point arithmetic unit DOI: 10.9790/2834-10114954 www.iosrjournals.org 54 | Page Fig 8: Simulation Result of Floating Point Division IV. Conclusion This paper presents a high performance implementation of double precision floating point arithmetic unit. The complete design is captured in Verilog Hardware description language (HDL), tested in simulation using Questa Sim, placed and routed on a Vertex 5 FPGA from Xilinx.It works on Maximum Frequency of 262.006MHz. When synthesized, this module used 16% number of slice registers, 22% Number of Slice LUTS, and 36% number of fully used LUT-FF pairs. The overall performance is increased in this design. The proposed work can be further proceed by adding some more modules like square root, logarithmic units to the floating point unit and also the complete design can be implemented on high performance vertex-6 FPGA. References [1]. Chaitanya a. Kshirsagar, P.M. Palsodkar “An FPGA implementation of IEEE - 754 double precision floating point unit using verilog” international journal of electrical, electronics and data communication, ISSN: 2320-2084 , volume-2, issue-6, june-2014 [2]. Paschalakis, S., Lee, P., “Double Precision Floating-Point Arithmetic on FPGAs”, In Proc. 2003 2nd IEEE International Conference on Field Programmable Technology (FPT ‟03), Tokyo, Japan, pp. 352-358, 2003 [3]. Addanki Puma Ramesh, A. V. N. Tilak, A.M.Prasad “An FPGA Based High Speed IEEE-754 Double Precision Floating Point Multiplier Using Verilog” 2013 International Conference on Emerging Trends in VLSI, Embedded System, Nano Electronics and Telecommunication System (ICEVENT), pp. 1-5, 7-9 Jan. 2013 [4]. Ushasree G, R Dhanabal, Sarat Kumar Sahoo “Implementation of a High Speed Single Precision Floating Point Unit using Verilog” International Journal of Computer Applications National conference on VSLI and Embedded systems, pp.32-36, 2013 [5]. Pramod Kumar Jain, Hemant Ghayvat , D.S Ajnar “Double Precision Optimized Arithmetic Hardware Design For Binary & Floating Point Operands” International Journal of Power Control Signal and Computation (IJPCSC) Vol. 2 No. 2 ISSN : 0976-268X [6]. Basit Riaz Sheikh and Rajit Manohar “An Operand-Optimized Asynchronous IEEE 754 Double-Precision Floating-Point Adder”, IEEE Symposium on Asynchronous Circuits and Systems (ASYNC), pp. 151 – 162, 3-6 May 2010 [7]. Ms. Anjana Sasidharan, Mr. M.K. Arun” Vhdl Implementation Of Ieee 754 Floating Point Unit” IJAICT, ISSN 2348 – 9928Volume 1, Issue 2, June 2014 [8]. Dhiraj Sangwan , Mahesh K. Yadav “Design and Implementation of Adder/Subtractor and Multiplication Units for Floating-Point Arithmetic” International Journal of Electronics Engineering, 2(1), pp. 197-203, 2010 [9]. Tarek Ould Bachir, Jean-Pierre David “Performing Floating-Point Accumulation on a modern FPGA in Single and Double Precision” 18th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines, pp.105-108, 2010 [10]. Geetanjali Wasson “IEEE-754 compliant Algorithms for Fast Multiplication of Double Precision Floating Point Numbers” International Journal of Research in Computer Science, Volume 1, Issue 1, pp. 1-7, 2011 [11]. KavithaSravanthi, Addula Saikumar “An FPGA Based Double Precision Floating Point Arithmetic Unit using Verilog” International Journal of Engineering Research & Technology ISSN: 2278-0181, Vol. 2 Issue 10, October - 2013 [12]. Rathindra Nath Giri, M.K.Pandit “Pipelined Floating-Point Arithmetic Unit (FPU) for Advanced Computing Systems using FPGA” International Journal of Engineering and Advanced Technology (IJEAT), Volume-1, Issue-4, pp. 168-174, April 2012 [13]. H. Yamada, T. Hottat, T. Nishiyama, F. Murabayashi, T. Yamauchi, and H. Sawamoto “A 13.3ns Double-precision Floating-point ALU and Multiplier”, IEEE International Conference on Computer Design: VLSI in Computers and Processors, pp. 466 – 470, 2-4 Oct 1995 [14]. Shrivastava Purnima, Tiwari Mukesh, Singh Jaikaran and Rathore Sanjay “VHDL Environment for Floating point Arithmetic Logic Unit - ALU Design and Simulation” Research Journal of Engineering Sciences, Vol. 1(2), pp.1-6, August -2012