High Performance FPGA-based Floating Point Adder with Three Inputs

Slides:



Advertisements
Similar presentations
Computer Engineering FloatingPoint page 1 Floating Point Number system corresponding to the decimal notation 1,837 * 10 significand exponent A great number.
Advertisements

CENG536 Computer Engineering department Çankaya University.
Topics covered: Floating point arithmetic CSE243: Introduction to Computer Architecture and Hardware/Software Interface.
Floating Point Numbers
COMP3221: Microprocessors and Embedded Systems Lecture 14: Floating Point Numbers Lecturer: Hui Wu Session 2, 2004.
CMPE12cCyrus Bazeghi 1 What do floating-point numbers represent? Rational numbers with non-repeating expansions in the given base within the specified.
Number Systems Standard positional representation of numbers:
CSE 378 Floating-point1 How to represent real numbers In decimal scientific notation –sign –fraction –base (i.e., 10) to some power Most of the time, usual.
Floating Point Numbers
1 ECE369 Chapter 3. 2 ECE369 Multiplication More complicated than addition –Accomplished via shifting and addition More time and more area.
COE 308: Computer Architecture (T041) Dr. Marwan Abu-Amara Integer & Floating-Point Arithmetic (Appendix A, Computer Architecture: A Quantitative Approach,
1/8/ L24 IEEE Floating Point Basics Copyright Joanne DeGroat, ECE, OSU1 IEEE Floating Point The IEEE Floating Point Standard and execution.
Prepared by: Hind J. Zourob Heba M. Matter Supervisor: Dr. Hatem El-Aydi Faculty Of Engineering Communications & Control Engineering.
3-1 Chapter 3 - Arithmetic Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring Computer Architecture.
Binary Real Numbers. Introduction Computers must be able to represent real numbers (numbers w/ fractions) Two different ways:  Fixed-point  Floating-point.
Computer Organization and Architecture Computer Arithmetic Chapter 9.
Computer Arithmetic Nizamettin AYDIN
AICCSA’06 Sharja 1 A CAD Tool for Scalable Floating Point Adder Design and Generation Using C++/VHDL By Asim J. Al-Khalili.
Fixed-Point Arithmetics: Part II
Floating Point vs. Fixed Point for FPGA 1. Applications Digital Signal Processing -Encoders/Decoders -Compression -Encryption Control -Automotive/Aerospace.
Computing Systems Basic arithmetic for computers.
ECE232: Hardware Organization and Design
1/8/ L24 IEEE Floating Point Basics Copyright Joanne DeGroat, ECE, OSU1 IEEE Floating Point The IEEE Floating Point Standard and execution.
Floating Point. Agenda  History  Basic Terms  General representation of floating point  Constructing a simple floating point representation  Floating.
Data Representation in Computer Systems
S. Rawat I.I.T. Kanpur. Floating-point representation IEEE numbers are stored using a kind of scientific notation. ± mantissa * 2 exponent We can represent.
Floating Point (a brief look) We need a way to represent –numbers with fractions, e.g., –very small numbers, e.g., –very large numbers,
07/19/2005 Arithmetic / Logic Unit – ALU Design Presentation F CSE : Introduction to Computer Architecture Slides by Gojko Babić.
9.4 FLOATING-POINT REPRESENTATION
Decimal Multiplier on FPGA using Embedded Binary Multipliers Authors: H. Neto and M. Vestias Conference: Field Programmable Logic and Applications (FPL),
ECEG-3202: Computer Architecture and Organization, Dept of ECE, AAU 1 Floating-Point Arithmetic Operations.
CSC 221 Computer Organization and Assembly Language
Floating Point Arithmetic
1 Number Systems Lecture 10 Digital Design and Computer Architecture Harris & Harris Morgan Kaufmann / Elsevier, 2007.
1/8/ L24 IEEE Floating Point Basics Copyright Joanne DeGroat, ECE, OSU1 IEEE Floating Point The IEEE Floating Point Standard and execution.
1 Floating Point Operations - Part II. Multiplication Do unsigned multiplication on the mantissas including the hidden bits Do unsigned multiplication.
Computer Engineering FloatingPoint page 1 Floating Point Number system corresponding to the decimal notation 1,837 * 10 significand exponent A great number.
Computer Architecture Lecture 11 Arithmetic Ralph Grishman Oct NYU.
MIPS ALU. Exercise – Design a selector? I need a circuit that takes two input bits, a and b, and a selector bit s. The function is that if s=0, f=a. if.
1/8/ L25 Floating Point Adder Copyright Joanne DeGroat, ECE, OSU1 IEEE Floating Point Adder Using the IEEE Floating Point Standard for an.
Floating Point Arithmetic – Part I
William Stallings Computer Organization and Architecture 8th Edition
Floating Point Representations
Integer Division.
Floating Point Numbers: x 10-18
NxN Crossbar design for Barrel Shifter
UNIVERSITY OF MASSACHUSETTS Dept
Floating Point Number system corresponding to the decimal notation
Expressible Numbers.
Chapter 6 Floating Point
Outline Introduction Floating Point Arithmetic Adder Multiplier.
Data Representation and Arithmetic Algorithms
CSCE 350 Computer Architecture
The IEEE Floating Point Standard and execution units for it
Floating Point Arithmetic
How to represent real numbers
How to represent real numbers
ECEG-3202 Computer Architecture and Organization
Data Representation and Arithmetic Algorithms
IEEE Floating Point Adder
UNIVERSITY OF MASSACHUSETTS Dept
The IEEE Floating Point Standard and execution units for it
MIPS ALU.
MIPS ALU.
Floating Point Arithmetic
Chapter 1 Introduction.
Presentation transcript:

High Performance FPGA-based Floating Point Adder with Three Inputs Authors: A. Guntoro and M. Glesner Institute of Microelectronic System Conference: Field Programmable Logic and Applications (FPL), 2008 Presenter: Tareq Hasan Khan ID: 11083577 ECE, U of S Literature review-2 (EE 800)

Outline IEEE 754 Standard Floating point addition algorithm Proposed three input floating point adder Overall architecture Brief description of each stage Results Conclusion

IEEE 754 Standard (-1)s x 1.f x 2e where, s = sign bit, f = mantissa, Issued by IEEE in the year 1985 Covers different types of floating point format Single Double… etc In radix-2, floating point number can be written as (-1)s x 1.f x 2e where, s = sign bit, f = mantissa, e = biased exponent

Floating point addition algorithm Calculate the exponent difference. Align the mantissa by shifting the mantissa with the lower exponent to the right. Add/sub both mantissas depending on the sign bits. Perform the Leading-One Detection (LOD) to determine the location of the first logic one. Normalize and round the result.

Outline IEEE 754 Standard Floating point addition algorithm Proposed three input floating point adder Overall architecture Brief description of each stage Results Conclusion

Proposed three input floating point adder architecture Used in lifting based Discrete Wavelet Transform (DWT) 5 stage pipeline Unique research

Stage 1 Mantissa Comparator: compares the two mantissas Ma and Mb and latches both mantissas Zero logic: detects if the corresponding input is zero. Exponent difference: computes the two differences between Ea and Eb (i.e Ea − Eb and Eb − Ea).

Stage 2 Shift, swap, add guard block shift the mantissa with the smaller exponent to the right with the amount determined by the exponent selector block. Swaps the mantissas when (Ma < Mb and Ea = Eb) or (Ea < Eb) is true. The hidden bit and the guard bits are appended, resulting in fractions Fa and Fb. If a zero number is detected, the corresponding fractions will be set to zero. Exponent difference block computes the two differences between Ed and Ec Mc is latched in Register

Stage 3 Add/sub and shift Shift and add guard The fractions Fa and Fb are added/subtracted depending on the sign difference (Sa XOR Sb), resulting the fraction Fab. If the exponent Ec is greater than max(Ea, Eb), the result will be shifted to the right. Shift and add guard It prepares the mantissa Mc. If Ec is less than max(Ea, Eb), Mc will be shifted right instead. The hidden bit and the guard bits are appended to Mc, resulting in fraction Fc.

Stage 4 Operand swap and add/sub block Swaps the operands Fab and Fc if necessary (notice that both operands have the same exponent). It performs the addition or subtraction, which results Fr. Leading One Petection (LOP) block Predicts the first occurrence of the “logic one” directly from the operands. One-bit inaccuracy might occur, so it gives two values at the output Exponent adjustment block prepares the dominant exponent by simply adding two to the larger exponent (i.e. max(Ea, Eb, Ec) + 2). Because three addition/subtraction arithmetic operations might have an increase of exponent by two.

Stage 5 LOP error is corrected from Fr Normalization is basically a shiftleft block with the amount given by the corrected LOP value The overflow and underflow detector verifies if the resulting fraction and exponent lay outside the floating-point range. The rounding logic implements two rounding mechanisms: rounding to zero and rounding to nearest.

Outline IEEE 754 Standard Floating point addition algorithm Proposed three input floating point adder Overall architecture Brief description of each stage Results Conclusion

Result Xilinx Virtex2 XC2V2000-5 Xilinx Virtex2 XC2VP30-7 Config. Format: exponent–mantissa–guard Xilinx Virtex2 XC2V2000-5 Xilinx Virtex2 XC2VP30-7

Result Slice usage Slightly higher compared to Malik, but still lower compared to the IP core. Operating speeds Higher than both the IP core and Malik on most of the target devices. About 19% speed gain can be achieved on Virtex2Pro and 22% on Virtex2 compared to Malik. Addition of three floating-point The architectures from IP core and Malik will consume at least twice as many slices and will have a 10-level pipeline stage.

Conclusion Design of a 3 input floating point adder Can be operated on 5 stage pipeline Can be operated on Xilinx Virtex2 XC2V2000-5 and Virtex2Pro XC2VP30-7 at 105 MHz and 143 MHz respectively.

Thanks