SlideShare uma empresa Scribd logo
1 de 4
Baixar para ler offline
Remadevi R / International Journal of Engineering Research and Applications
                     (IJERA)          ISSN: 2248-9622        www.ijera.com
                          Vol. 3, Issue 2, March -April 2013, pp.283-286
    Design and Simulation of Floating Point Multiplier Based on
                              VHDL
                                                 Remadevi R
    (M-Tech Student,Department of ECE, Mangalam College of Engineering ,MG University Kerala,India)


ABSTRACT
         Multiplying floating point numbers is a          against the Xilinx floating point multiplier core
critical requirement for DSP applications                 generated by Xilinx core generator.
involving large dynamic range. This paper
focuses only on single precision normalized                         In [2], an IEEE 754 single precision
binary interchange format targeted for Xilinx             pipelined floating point multiplier was implemented
Spartan-3 FPGA based on VHDL. The multiplier              on multiple FPGAs (4 Actel A1280). In [3], a
was verified against Xilinx floating point                custom 16/18 bit three stage pipelined floating point
multiplier core. It handles the overflow and              multiplier that doesn‟t support rounding modes was
underflow cases. Rounding is not implemented to           implemented. In [4], a single precision floating point
give more precision when using the multiplier in          multiplier that doesn‟t support rounding modes was
a Multiply and Accumulate (MAC) unit.                     implemented using a digit-serial multiplier: using
 .                                                        the Altera FLEX 8000 it achieved 2.3 MFlops. In
Keywords – Floating point multiplication, VHDL            [5], a parameterizable floating point multiplier was
simulation                                                implemented using the software-like language
                                                          Handel-C, using the Xilinx XCV1000 FPGA,a five
I. INTRODUCTION                                           stages pipelined multiplier achieved 28MFlops. In
          Floating point numbers are one possible         [6], a latency optimized floating point unit using the
way of representing real numbers in binary format,        primitives of Xilinx Virtex II FPGA was
the IEEE 754[1] standard presents two different           implemented with a latency of 4 clock cycles. In [7]
floating point formats, Binary interchange format         an efficient implementation of floating point
and Decimal interchange format. Multiplying               multiplier is targeted for Xilnx Virtex -5 FPGA.
floating point numbers is a critical requirement for
DSP applications involving large dynamic range.           II. FLOATING         POINT       MULTIPLICATION
This paper focuses only on single precision               ALGORITHM
normalized binary interchange format. It consists of      The normalized floating point numbers are of the
a one bit sign (S), an eight bit exponent (E), and a      form shown in Fig. (1)
twenty three bit fraction (M or Mantissa). An extra
bit is added to the fraction to form what is called the
significand. If the exponent is greater than 0 and
smaller than 255, and there is 1 in the MSB of the
significand then the number is said to be a
normalized number. Multiplying two numbers in
floating point format is done by adding the exponent
of the two numbers then subtracting the bias from
their result,and multiplying the significand of the
two numbers, and calculating the sign by XORing
the sign of the two numbers.
          The multiplier was verified against Xilinx
floating point multiplier core.In this paper
represention of floating point multiplier in such a
way that rounding support isn‟t implemented, thus
accommodating more precision if the multiplier is
connected directly to an adder in a MAC unit.
Exponents addition, Significand multiplication, and
Result‟s sign calculation are independent and are
                                                          Figure 1: IEEE single precision floating point
done in parallel.Xilinx ISE Design Suite 13.3 tool
                                                          format
& VHDL programming is used. ISIM tool is used
for Simulation process .Xilinx core generator tool is
                                                                  Floating point multiplication can be done
used to generate Xilinx floating point multiplier core
                                                          by multiplying the significand of two floating point
The whole multiplier (top unit) was simulated
                                                          numbers and adding the exponents,then subtract the

                                                                                                283 | P a g e
Remadevi R / International Journal of Engineering Research and Applications
                    (IJERA)          ISSN: 2248-9622        www.ijera.com
                         Vol. 3, Issue 2, March -April 2013, pp.283-286
Bias from added exponent result (E1 + E2 –              adder).The addition process produces an 8 bit sum
Bias).Sign is obtained by xor-ing the MSB of two        (S7 to S0) and a carry bit (Co,7). These bits are
numbers,then normalize the result.Rounding of           concatenated to form a 9 bit addition result (S8 to
result is done to fit in the available bits and if      S0) from which the Bias is subtracted. The Bias is
desired finally check the underflow/overflow            subtracted using an array of ripple borrow
occurrence.The bias constant used is (127 =             subtractors. The addition process produces an 8 bit
001111111).                                             sum (S7 to S0) and a carry bit (Co,7). These bits are
                                                        concatenated to form a 9 bit addition result (S8 to
                                                        S0) from which the Bias is subtracted. The Bias is
                                                        subtracted using an array of ripple borrow
                                                        subtractors.




Figure 2: Block diagram of floating point multiplier

III.DESIGN OF            FLOATING           POINT
MULTIPLIER
3.1 Sign Bit Calculation
          Multiplying two number‟s result is a          Figure 4:Unsigned Adder
negative sign if one of the multiplied numbers is of
a negative value. By the aid of a truth table we find   3.3 Bias Subtraction
that this can be obtained by XORing the sign of two               Subtract the bias constant (127 =
inputs.                                                 001111111) from unsigned exponent adder result
                                                        for this, two zero subtractors (ZS) and seven one
                                                        subtractors (OS) are used . S0…..S8            is the
                                                        unsigned adder result (9 bit ) .T=001111111 is the
                                                        Bias constant. Bias subtractor result is R =S-T.




Figure 3: Sign bit calculator-XOR gate

3.2 Unsigned Adder (for Exponent Addition)
          This unsigned adder is responsible for
adding the exponent of the first input to the
exponent of the second input and after that subtract
the Bias (127) from the addition result (i.e.
A_exponent + B_exponent - Bias). The result of this
stage is called the intermediate exponent. The
addition operation is done on 8 bits, and there is no
need for a quick result because most of the
calculation time is spent in the significand
multiplication process (multiplying 24 bits by 24       Figure 5: Bias Subtractor
bits); thus we need a moderate exponent adder and a
fast significand multiplier.An 8-bit ripple carry       3.4 Unsigned Multiplier (for significand
adder is used to add the two input exponents. A         multiplication)
ripple carry adder is a chain of cascaded full adders            This unit is responsible for multiplying the
and one half adder; each full adder has three inputs    unsigned significand and placing the decimal point
(A, B, Ci) and two outputs (S, Co). The carry           in the multiplication product. The result of
out(Co) of each adder is fed to the next full adder     significand multiplication will be called the
(i.e each carrybit "ripples" to the next full           intermediate product (IP). The unsigned significand

                                                                                              284 | P a g e
Remadevi R / International Journal of Engineering Research and Applications
                     (IJERA)          ISSN: 2248-9622        www.ijera.com
                          Vol. 3, Issue 2, March -April 2013, pp.283-286
multiplication is done on 24 bit. Multiplier               So    this simulation result can compare with
performance should be taken into consideration so          proposed floating point multiplier
as not to affect the whole multiplier‟s performance.
A 24x24 bit carry save multiplier architecture is
used as it has a moderate speed with a simple
architecture. In the carry save multiplier, the carry
bits are passed diagonally downwards (i.e. the carry
bit is propagated to the next stage). Partial products
are made by ANDing the inputs together and
passing them to the appropriate adder.This is done
in significand multiplication process which is one of
the important steps in floating point multiplication

3.5 Normalizer
                                                           Figure 6: Xilinx floating point multiplier core
          The result of the significand multiplication
                                                           generated by Xilinx core generator tool
(intermediate product) must be normalized to have a
leading „1‟ just to the left of the decimal point (i.e.
                                                                    The whole multiplier (top unit) was tested
in the bit 46 in the intermediate product). Since the
                                                           against the Xilinx floating point multiplier core
inputs are normalized numbers                then the
                                                           generated by Xilinx core generator. Xilinx core was
intermediate product has the leading one at bit 46 or
                                                           customized to have two flags to indicate overflow
47. If the leading one is at bit 46 (i.e. to the left of
                                                           and underflow conditions. Xilinx core implements
the decimal point) then the intermediate product is
                                                           the “round to nearest” rounding mode .A testbench
already a normalized number and no shift is needed.
                                                           is used to generate the stimulus and applies it to the
If the leading one is at bit 47 then the intermediate
                                                           implemented floating point multiplier and to the
product is shifted to the right and the exponent is
                                                           Xilinx core then compares the results. The area of
incremented by 1.
                                                           Xilinx core is less than the proposed floating point
                                                           multiplier because the latter doesn‟t truncate/round
3.6 Overflow/underflow Detection                           the 48 bits result of the mantissa multiplier which is
         Overflow/underflow means that the result‟s
                                                           reflected in the amount of function generators and
exponent is too large/small to be represented in the
                                                           registers used to perform operations on the extra
exponent field. The exponent of the result must be 8
                                                           bits. But the proposed one indicates Normalized
bits in size, and must be between 1 and 254
                                                           significand product of 48 bits separately give more
otherwise the value is not a normalized one .An
                                                           precision when compared to Xilinx floating point
overflow may occur while adding the two exponents
                                                           core..So proposed floating point multiplier has
or during normalization. Overflow due to exponent
                                                           greater importance when it utilized in another Unit-
addition maybe compensated during subtraction of
                                                           floating point adder to form a MAC unit involving
the bias; resulting in a normal output value (normal
                                                           large dynamic range
operation). An underflow may occur while
subtracting the bias to form the intermediate
exponent. If the intermediate exponent < 0 then it‟s       V. SOFTWARE TOOLS
an underflow that can never be compensated; if the
intermediate exponent = 0 then it‟s an underflow                    Xilinx ISE Design Suite 13.3 tool &
that may be compensated during normalization by            VHDL programming is used. ISIM tool is used for
adding 1 to it .When an overflow occurs an                 Simulation process .Xilinx core generator tool is
overflow flag signal goes high and the result turns to     used to generate Xilinx floating point multiplier core
±Infinity (sign determined according to the sign of        The whole multiplier (top unit) was tested against
the floating point multiplier inputs). When an             theXilinx floating point multiplier core. Xilinx core
underflow occurs an underflow flag signal goes high        was customized to have two flags to indicate
and the result turns to ±Zero (sign determined             overflow and underflow conditions. Xilinx core
according to the sign of the floating point multiplier     implements the “round to nearest” rounding mode.A
inputs). Denormalized numbers are signaled to zero         testbench is used to generate the stimulus and
with the appropriate sign calculated from the inputs       applies it to the proposed floating point multiplier
and an underflow flag is raised.                           and to the Xilinx core then compares the results.

IV.  XILINX   FLOATING                        POINT        VI.SIMULATION RESULTS
MULTIPLIER CORE                                                     ISIM tool is used for Simulation process
         DSP48E is the IP core generated for               Xilinx core generator tool is used to generate Xilinx
simulation.Resource estimation & vhdl program can          floating point multiplier core The whole multiplier
                                                           (top unit) was tested against the Xilinx floating
be obtained when a core is generated in xilinx.
                                                           point multiplier core.
Using this vhdl program its simulation can be done

                                                                                                 285 | P a g e
Remadevi R / International Journal of Engineering Research and Applications
                    (IJERA)          ISSN: 2248-9622        www.ijera.com
                         Vol. 3, Issue 2, March -April 2013, pp.283-286
                                                         this gives better precision if the whole 48 bits are
                                                         utilized in another unit; i.e.with a floating point
6.1 Simulation results of floating point multiplier      adder to form a MAC unit. But the floating point
core generated by Xilinx core generator tool             multiplier core generated by Xilinx core generator
                                                         does not indicates the entire 48 bits of mantissa due
                                                         to rounding and is not beneficial in case of DSP
                                                         application of large dynamic range especially when
                                                         using it in another high precision floating point units
                                                         like Multiply and Accumulate (MAC) unit.

                                                         REFERENCES
                                                           [1]    IEEE 754-2008, IEEE Standard for
                                                                  Floating-Point Arithmetic, 2008.
Figure 7: Simulation result of Xilinx floating point
                                                           [2]    B. Fagin and C. Renard, “Field
multiplier core generated by Xilinx core generator                Programmable       Gate     Arrays     and
tool                                                              FloatingPoint       Arithmetic,”     IEEE
                                                                  Transactions on VLSI, vol. 2, no. 3, pp.
                                                                  365–367, 1994.
                                                           [3]    N. Shirazi, A. Walters, and P. Athanas,
                                                                  “Quantitative Analysis ofFloating Point
                                                                  Arithmetic on FPGA Based Custom
                                                                  Computing Machines,” Proceedings of the
                                                                  IEEE Symposium on FPGAs for
Figure 8: RTL Schematic of Xilinx floating point                  CustomComputing Machines (FCCM’95),
multiplier core generated by Xilinx core generator                pp.155–162, 1995.
tool                                                       [4]    L. Louca, T. A. Cook, and W. H. Johnson,
                                                                  “Implementation of IEEESingle Precision
6.2 Simulation results of proposed floating point                 Floating Point Addition and Multiplication
multiplier                                                        on FPGAs,”Proceedings of 83 the IEEE
                                                                  Symposium        on        FPGAs        for
                                                                  CustomComputing Machines (FCCM’96),
                                                                  pp. 107–116, 1996.
                                                           [5]    A. Jaenicke and W. Luk, "Parameterized
                                                                  Floating-Point Arithmetic on FPGAs",
                                                                  Proc. of IEEE ICASSP, 2001, vol. 2,
                                                                  pp.897-900.
                                                           [6]    B. Lee and N. Burgess, “Parameterisable
                                                                  Floating-point Operations on FPGA,”
                                                                  Conference Record of the Thirty-Sixth
                                                                  Asilomar Conference onSignals, Systems,
                                                                  and Computers, 2002
Figure 9: Simulation result of Proposed floating           [7]    Mohamed Al-Ashrafy, Ashraf Salem and
point multiplier                                                  Wagdy Anis” An Efficient Implementation
                                                                  of Floating PointMultiplier” Electronics,
                                                                  Communications          and      Photonics
                                                                  Conference (SIECPC), 2011 Saudi
                                                                  International




Figure 10: RTL Schematic        of   proposed Xilinx
floating point multiplier

VII.CONCLUSION
          This paper presents design and simulation
of a floating point multiplier that supports the IEEE
754-2008 binary interchange format, the proposed
multiplier doesn‟t implement rounding and presents
the significand multiplication result as is (48 bits),

                                                                                                286 | P a g e

Mais conteúdo relacionado

Mais procurados

Comparison of Adders for optimized Exponent Addition circuit in IEEE754 Float...
Comparison of Adders for optimized Exponent Addition circuit in IEEE754 Float...Comparison of Adders for optimized Exponent Addition circuit in IEEE754 Float...
Comparison of Adders for optimized Exponent Addition circuit in IEEE754 Float...IJERD Editor
 
A Novel Efficient VLSI Architecture for IEEE 754 Floating point multiplier us...
A Novel Efficient VLSI Architecture for IEEE 754 Floating point multiplier us...A Novel Efficient VLSI Architecture for IEEE 754 Floating point multiplier us...
A Novel Efficient VLSI Architecture for IEEE 754 Floating point multiplier us...IJERA Editor
 
Design and Implementation of High Speed Area Efficient Double Precision Float...
Design and Implementation of High Speed Area Efficient Double Precision Float...Design and Implementation of High Speed Area Efficient Double Precision Float...
Design and Implementation of High Speed Area Efficient Double Precision Float...IOSR Journals
 
Low Power VLSI Design of Modified Booth Multiplier
Low Power VLSI Design of Modified Booth MultiplierLow Power VLSI Design of Modified Booth Multiplier
Low Power VLSI Design of Modified Booth Multiplieridescitation
 
IRJET-Design and Implementation of LNS based Approximate Multiplier using Mit...
IRJET-Design and Implementation of LNS based Approximate Multiplier using Mit...IRJET-Design and Implementation of LNS based Approximate Multiplier using Mit...
IRJET-Design and Implementation of LNS based Approximate Multiplier using Mit...IRJET Journal
 
Floating point arithmetic operations (1)
Floating point arithmetic operations (1)Floating point arithmetic operations (1)
Floating point arithmetic operations (1)cs19club
 
Matlab solved problems
Matlab solved problemsMatlab solved problems
Matlab solved problemsMake Mannan
 
Design of 32-bit Floating Point Unit for Advanced Processors
Design of 32-bit Floating Point Unit for Advanced ProcessorsDesign of 32-bit Floating Point Unit for Advanced Processors
Design of 32-bit Floating Point Unit for Advanced ProcessorsIJERA Editor
 
Matlab-Data types and operators
Matlab-Data types and operatorsMatlab-Data types and operators
Matlab-Data types and operatorsLuckshay Batra
 
Lecture2 binary multiplication
Lecture2 binary multiplicationLecture2 binary multiplication
Lecture2 binary multiplication景文 饶
 
Design and implementation of high speed baugh wooley and modified booth multi...
Design and implementation of high speed baugh wooley and modified booth multi...Design and implementation of high speed baugh wooley and modified booth multi...
Design and implementation of high speed baugh wooley and modified booth multi...eSAT Publishing House
 
Numerical analysis using Scilab: Numerical stability and conditioning
Numerical analysis using Scilab: Numerical stability and conditioningNumerical analysis using Scilab: Numerical stability and conditioning
Numerical analysis using Scilab: Numerical stability and conditioningScilab
 
Numerical analysis using Scilab: Solving nonlinear equations
Numerical analysis using Scilab: Solving nonlinear equationsNumerical analysis using Scilab: Solving nonlinear equations
Numerical analysis using Scilab: Solving nonlinear equationsScilab
 
IRJET- An Image Cryptography using Henon Map and Arnold Cat Map
IRJET-  	  An Image Cryptography using Henon Map and Arnold Cat MapIRJET-  	  An Image Cryptography using Henon Map and Arnold Cat Map
IRJET- An Image Cryptography using Henon Map and Arnold Cat MapIRJET Journal
 
Basic operators in matlab
Basic operators in matlabBasic operators in matlab
Basic operators in matlabrishiteta
 
Development of an Algorithm for 16-Bit WTM
Development of an Algorithm for 16-Bit WTMDevelopment of an Algorithm for 16-Bit WTM
Development of an Algorithm for 16-Bit WTMIOSR Journals
 
Introduction to MATLAB 1
Introduction to MATLAB 1Introduction to MATLAB 1
Introduction to MATLAB 1Mohamed Gafar
 

Mais procurados (20)

Comparison of Adders for optimized Exponent Addition circuit in IEEE754 Float...
Comparison of Adders for optimized Exponent Addition circuit in IEEE754 Float...Comparison of Adders for optimized Exponent Addition circuit in IEEE754 Float...
Comparison of Adders for optimized Exponent Addition circuit in IEEE754 Float...
 
Lo3420902093
Lo3420902093Lo3420902093
Lo3420902093
 
A Novel Efficient VLSI Architecture for IEEE 754 Floating point multiplier us...
A Novel Efficient VLSI Architecture for IEEE 754 Floating point multiplier us...A Novel Efficient VLSI Architecture for IEEE 754 Floating point multiplier us...
A Novel Efficient VLSI Architecture for IEEE 754 Floating point multiplier us...
 
Final modified ppts
Final modified pptsFinal modified ppts
Final modified ppts
 
Design and Implementation of High Speed Area Efficient Double Precision Float...
Design and Implementation of High Speed Area Efficient Double Precision Float...Design and Implementation of High Speed Area Efficient Double Precision Float...
Design and Implementation of High Speed Area Efficient Double Precision Float...
 
Low Power VLSI Design of Modified Booth Multiplier
Low Power VLSI Design of Modified Booth MultiplierLow Power VLSI Design of Modified Booth Multiplier
Low Power VLSI Design of Modified Booth Multiplier
 
IRJET-Design and Implementation of LNS based Approximate Multiplier using Mit...
IRJET-Design and Implementation of LNS based Approximate Multiplier using Mit...IRJET-Design and Implementation of LNS based Approximate Multiplier using Mit...
IRJET-Design and Implementation of LNS based Approximate Multiplier using Mit...
 
Floating point arithmetic operations (1)
Floating point arithmetic operations (1)Floating point arithmetic operations (1)
Floating point arithmetic operations (1)
 
Matlab solved problems
Matlab solved problemsMatlab solved problems
Matlab solved problems
 
Design of 32-bit Floating Point Unit for Advanced Processors
Design of 32-bit Floating Point Unit for Advanced ProcessorsDesign of 32-bit Floating Point Unit for Advanced Processors
Design of 32-bit Floating Point Unit for Advanced Processors
 
Matlab-Data types and operators
Matlab-Data types and operatorsMatlab-Data types and operators
Matlab-Data types and operators
 
Lecture2 binary multiplication
Lecture2 binary multiplicationLecture2 binary multiplication
Lecture2 binary multiplication
 
Design and implementation of high speed baugh wooley and modified booth multi...
Design and implementation of high speed baugh wooley and modified booth multi...Design and implementation of high speed baugh wooley and modified booth multi...
Design and implementation of high speed baugh wooley and modified booth multi...
 
Numerical analysis using Scilab: Numerical stability and conditioning
Numerical analysis using Scilab: Numerical stability and conditioningNumerical analysis using Scilab: Numerical stability and conditioning
Numerical analysis using Scilab: Numerical stability and conditioning
 
Numerical analysis using Scilab: Solving nonlinear equations
Numerical analysis using Scilab: Solving nonlinear equationsNumerical analysis using Scilab: Solving nonlinear equations
Numerical analysis using Scilab: Solving nonlinear equations
 
Computer arithmetic
Computer arithmeticComputer arithmetic
Computer arithmetic
 
IRJET- An Image Cryptography using Henon Map and Arnold Cat Map
IRJET-  	  An Image Cryptography using Henon Map and Arnold Cat MapIRJET-  	  An Image Cryptography using Henon Map and Arnold Cat Map
IRJET- An Image Cryptography using Henon Map and Arnold Cat Map
 
Basic operators in matlab
Basic operators in matlabBasic operators in matlab
Basic operators in matlab
 
Development of an Algorithm for 16-Bit WTM
Development of an Algorithm for 16-Bit WTMDevelopment of an Algorithm for 16-Bit WTM
Development of an Algorithm for 16-Bit WTM
 
Introduction to MATLAB 1
Introduction to MATLAB 1Introduction to MATLAB 1
Introduction to MATLAB 1
 

Destaque

Destaque (20)

Ae32208215
Ae32208215Ae32208215
Ae32208215
 
Am32265271
Am32265271Am32265271
Am32265271
 
At32307310
At32307310At32307310
At32307310
 
Jt3417681771
Jt3417681771Jt3417681771
Jt3417681771
 
Ab32189194
Ab32189194Ab32189194
Ab32189194
 
Conhecimentos doutrinarios
Conhecimentos doutrinariosConhecimentos doutrinarios
Conhecimentos doutrinarios
 
Universidad autónoma del estado de hidalgo
Universidad autónoma del estado de hidalgoUniversidad autónoma del estado de hidalgo
Universidad autónoma del estado de hidalgo
 
O Educador Maio
O Educador MaioO Educador Maio
O Educador Maio
 
Comedia ao terror
Comedia ao terrorComedia ao terror
Comedia ao terror
 
Plantilla ppa documento-v4.doc semana santa
Plantilla ppa documento-v4.doc semana santaPlantilla ppa documento-v4.doc semana santa
Plantilla ppa documento-v4.doc semana santa
 
Presentación Proyecto Jumifreal
Presentación Proyecto JumifrealPresentación Proyecto Jumifreal
Presentación Proyecto Jumifreal
 
Caderno de comunicação organizacional
Caderno de comunicação organizacionalCaderno de comunicação organizacional
Caderno de comunicação organizacional
 
Pecados capitales BIE 2014
Pecados capitales BIE 2014Pecados capitales BIE 2014
Pecados capitales BIE 2014
 
Sepsis neonatal 2012 (1)
Sepsis neonatal 2012 (1)Sepsis neonatal 2012 (1)
Sepsis neonatal 2012 (1)
 
Definiciones manual
Definiciones manualDefiniciones manual
Definiciones manual
 
Spanish
SpanishSpanish
Spanish
 
Instituição do Policiamento Ambiental paulista condições sociopolíticas e e...
Instituição do Policiamento Ambiental paulista   condições sociopolíticas e e...Instituição do Policiamento Ambiental paulista   condições sociopolíticas e e...
Instituição do Policiamento Ambiental paulista condições sociopolíticas e e...
 
Recurso da dmdl
Recurso da dmdlRecurso da dmdl
Recurso da dmdl
 
Pat
PatPat
Pat
 
Proyecto Dunass
Proyecto Dunass  Proyecto Dunass
Proyecto Dunass
 

Semelhante a Ap32283286

An FPGA Based Floating Point Arithmetic Unit Using Verilog
An FPGA Based Floating Point Arithmetic Unit Using VerilogAn FPGA Based Floating Point Arithmetic Unit Using Verilog
An FPGA Based Floating Point Arithmetic Unit Using VerilogIJMTST Journal
 
Survey On Two-Term Dot Product Of Multiplier Using Floating Point
Survey On Two-Term Dot Product Of Multiplier Using Floating PointSurvey On Two-Term Dot Product Of Multiplier Using Floating Point
Survey On Two-Term Dot Product Of Multiplier Using Floating PointIRJET Journal
 
DESIGN OF DOUBLE PRECISION FLOATING POINT MULTIPLICATION ALGORITHM WITH VECTO...
DESIGN OF DOUBLE PRECISION FLOATING POINT MULTIPLICATION ALGORITHM WITH VECTO...DESIGN OF DOUBLE PRECISION FLOATING POINT MULTIPLICATION ALGORITHM WITH VECTO...
DESIGN OF DOUBLE PRECISION FLOATING POINT MULTIPLICATION ALGORITHM WITH VECTO...jmicro
 
Area and power performance analysis of floating point ALU using pipelining
Area and power performance analysis of floating point  ALU using pipeliningArea and power performance analysis of floating point  ALU using pipelining
Area and power performance analysis of floating point ALU using pipeliningIRJET Journal
 
10. article azojete vol 11 114 119 dibal
10. article azojete vol 11 114 119 dibal10. article azojete vol 11 114 119 dibal
10. article azojete vol 11 114 119 dibalOyeniyi Samuel
 
Four bit Signed Calculator.pptx
Four bit Signed Calculator.pptxFour bit Signed Calculator.pptx
Four bit Signed Calculator.pptxSUGAMRAJPUT2
 
Iaetsd implementation of power efficient iterative logarithmic multiplier usi...
Iaetsd implementation of power efficient iterative logarithmic multiplier usi...Iaetsd implementation of power efficient iterative logarithmic multiplier usi...
Iaetsd implementation of power efficient iterative logarithmic multiplier usi...Iaetsd Iaetsd
 
IRJET- Implementation of Floating Point FFT Processor with Single Precision f...
IRJET- Implementation of Floating Point FFT Processor with Single Precision f...IRJET- Implementation of Floating Point FFT Processor with Single Precision f...
IRJET- Implementation of Floating Point FFT Processor with Single Precision f...IRJET Journal
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentIJERD Editor
 
A floating-point adder (IEEE 754 floating-point.pptx
A floating-point adder (IEEE 754 floating-point.pptxA floating-point adder (IEEE 754 floating-point.pptx
A floating-point adder (IEEE 754 floating-point.pptxNiveditaAcharyya2035
 
IRJET- Asic Implementation of Efficient Error Detection for Floating Poin...
IRJET-  	  Asic Implementation of Efficient Error Detection for Floating Poin...IRJET-  	  Asic Implementation of Efficient Error Detection for Floating Poin...
IRJET- Asic Implementation of Efficient Error Detection for Floating Poin...IRJET Journal
 
EFFICIENT IMPLEMENTATION OF 16-BIT MULTIPLIER-ACCUMULATOR USING RADIX-2 MODIF...
EFFICIENT IMPLEMENTATION OF 16-BIT MULTIPLIER-ACCUMULATOR USING RADIX-2 MODIF...EFFICIENT IMPLEMENTATION OF 16-BIT MULTIPLIER-ACCUMULATOR USING RADIX-2 MODIF...
EFFICIENT IMPLEMENTATION OF 16-BIT MULTIPLIER-ACCUMULATOR USING RADIX-2 MODIF...VLSICS Design
 

Semelhante a Ap32283286 (20)

An FPGA Based Floating Point Arithmetic Unit Using Verilog
An FPGA Based Floating Point Arithmetic Unit Using VerilogAn FPGA Based Floating Point Arithmetic Unit Using Verilog
An FPGA Based Floating Point Arithmetic Unit Using Verilog
 
Survey On Two-Term Dot Product Of Multiplier Using Floating Point
Survey On Two-Term Dot Product Of Multiplier Using Floating PointSurvey On Two-Term Dot Product Of Multiplier Using Floating Point
Survey On Two-Term Dot Product Of Multiplier Using Floating Point
 
At36276280
At36276280At36276280
At36276280
 
Jz2517611766
Jz2517611766Jz2517611766
Jz2517611766
 
Jz2517611766
Jz2517611766Jz2517611766
Jz2517611766
 
DESIGN OF DOUBLE PRECISION FLOATING POINT MULTIPLICATION ALGORITHM WITH VECTO...
DESIGN OF DOUBLE PRECISION FLOATING POINT MULTIPLICATION ALGORITHM WITH VECTO...DESIGN OF DOUBLE PRECISION FLOATING POINT MULTIPLICATION ALGORITHM WITH VECTO...
DESIGN OF DOUBLE PRECISION FLOATING POINT MULTIPLICATION ALGORITHM WITH VECTO...
 
Area and power performance analysis of floating point ALU using pipelining
Area and power performance analysis of floating point  ALU using pipeliningArea and power performance analysis of floating point  ALU using pipelining
Area and power performance analysis of floating point ALU using pipelining
 
F044033742
F044033742F044033742
F044033742
 
10. article azojete vol 11 114 119 dibal
10. article azojete vol 11 114 119 dibal10. article azojete vol 11 114 119 dibal
10. article azojete vol 11 114 119 dibal
 
Four bit Signed Calculator.pptx
Four bit Signed Calculator.pptxFour bit Signed Calculator.pptx
Four bit Signed Calculator.pptx
 
Iaetsd implementation of power efficient iterative logarithmic multiplier usi...
Iaetsd implementation of power efficient iterative logarithmic multiplier usi...Iaetsd implementation of power efficient iterative logarithmic multiplier usi...
Iaetsd implementation of power efficient iterative logarithmic multiplier usi...
 
IRJET- Implementation of Floating Point FFT Processor with Single Precision f...
IRJET- Implementation of Floating Point FFT Processor with Single Precision f...IRJET- Implementation of Floating Point FFT Processor with Single Precision f...
IRJET- Implementation of Floating Point FFT Processor with Single Precision f...
 
IJETT-V9P226
IJETT-V9P226IJETT-V9P226
IJETT-V9P226
 
Bu33436438
Bu33436438Bu33436438
Bu33436438
 
Bu33436438
Bu33436438Bu33436438
Bu33436438
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and Development
 
Flot multiplier
Flot multiplierFlot multiplier
Flot multiplier
 
A floating-point adder (IEEE 754 floating-point.pptx
A floating-point adder (IEEE 754 floating-point.pptxA floating-point adder (IEEE 754 floating-point.pptx
A floating-point adder (IEEE 754 floating-point.pptx
 
IRJET- Asic Implementation of Efficient Error Detection for Floating Poin...
IRJET-  	  Asic Implementation of Efficient Error Detection for Floating Poin...IRJET-  	  Asic Implementation of Efficient Error Detection for Floating Poin...
IRJET- Asic Implementation of Efficient Error Detection for Floating Poin...
 
EFFICIENT IMPLEMENTATION OF 16-BIT MULTIPLIER-ACCUMULATOR USING RADIX-2 MODIF...
EFFICIENT IMPLEMENTATION OF 16-BIT MULTIPLIER-ACCUMULATOR USING RADIX-2 MODIF...EFFICIENT IMPLEMENTATION OF 16-BIT MULTIPLIER-ACCUMULATOR USING RADIX-2 MODIF...
EFFICIENT IMPLEMENTATION OF 16-BIT MULTIPLIER-ACCUMULATOR USING RADIX-2 MODIF...
 

Ap32283286

  • 1. Remadevi R / International Journal of Engineering Research and Applications (IJERA) ISSN: 2248-9622 www.ijera.com Vol. 3, Issue 2, March -April 2013, pp.283-286 Design and Simulation of Floating Point Multiplier Based on VHDL Remadevi R (M-Tech Student,Department of ECE, Mangalam College of Engineering ,MG University Kerala,India) ABSTRACT Multiplying floating point numbers is a against the Xilinx floating point multiplier core critical requirement for DSP applications generated by Xilinx core generator. involving large dynamic range. This paper focuses only on single precision normalized In [2], an IEEE 754 single precision binary interchange format targeted for Xilinx pipelined floating point multiplier was implemented Spartan-3 FPGA based on VHDL. The multiplier on multiple FPGAs (4 Actel A1280). In [3], a was verified against Xilinx floating point custom 16/18 bit three stage pipelined floating point multiplier core. It handles the overflow and multiplier that doesn‟t support rounding modes was underflow cases. Rounding is not implemented to implemented. In [4], a single precision floating point give more precision when using the multiplier in multiplier that doesn‟t support rounding modes was a Multiply and Accumulate (MAC) unit. implemented using a digit-serial multiplier: using . the Altera FLEX 8000 it achieved 2.3 MFlops. In Keywords – Floating point multiplication, VHDL [5], a parameterizable floating point multiplier was simulation implemented using the software-like language Handel-C, using the Xilinx XCV1000 FPGA,a five I. INTRODUCTION stages pipelined multiplier achieved 28MFlops. In Floating point numbers are one possible [6], a latency optimized floating point unit using the way of representing real numbers in binary format, primitives of Xilinx Virtex II FPGA was the IEEE 754[1] standard presents two different implemented with a latency of 4 clock cycles. In [7] floating point formats, Binary interchange format an efficient implementation of floating point and Decimal interchange format. Multiplying multiplier is targeted for Xilnx Virtex -5 FPGA. floating point numbers is a critical requirement for DSP applications involving large dynamic range. II. FLOATING POINT MULTIPLICATION This paper focuses only on single precision ALGORITHM normalized binary interchange format. It consists of The normalized floating point numbers are of the a one bit sign (S), an eight bit exponent (E), and a form shown in Fig. (1) twenty three bit fraction (M or Mantissa). An extra bit is added to the fraction to form what is called the significand. If the exponent is greater than 0 and smaller than 255, and there is 1 in the MSB of the significand then the number is said to be a normalized number. Multiplying two numbers in floating point format is done by adding the exponent of the two numbers then subtracting the bias from their result,and multiplying the significand of the two numbers, and calculating the sign by XORing the sign of the two numbers. The multiplier was verified against Xilinx floating point multiplier core.In this paper represention of floating point multiplier in such a way that rounding support isn‟t implemented, thus accommodating more precision if the multiplier is connected directly to an adder in a MAC unit. Exponents addition, Significand multiplication, and Result‟s sign calculation are independent and are Figure 1: IEEE single precision floating point done in parallel.Xilinx ISE Design Suite 13.3 tool format & VHDL programming is used. ISIM tool is used for Simulation process .Xilinx core generator tool is Floating point multiplication can be done used to generate Xilinx floating point multiplier core by multiplying the significand of two floating point The whole multiplier (top unit) was simulated numbers and adding the exponents,then subtract the 283 | P a g e
  • 2. Remadevi R / International Journal of Engineering Research and Applications (IJERA) ISSN: 2248-9622 www.ijera.com Vol. 3, Issue 2, March -April 2013, pp.283-286 Bias from added exponent result (E1 + E2 – adder).The addition process produces an 8 bit sum Bias).Sign is obtained by xor-ing the MSB of two (S7 to S0) and a carry bit (Co,7). These bits are numbers,then normalize the result.Rounding of concatenated to form a 9 bit addition result (S8 to result is done to fit in the available bits and if S0) from which the Bias is subtracted. The Bias is desired finally check the underflow/overflow subtracted using an array of ripple borrow occurrence.The bias constant used is (127 = subtractors. The addition process produces an 8 bit 001111111). sum (S7 to S0) and a carry bit (Co,7). These bits are concatenated to form a 9 bit addition result (S8 to S0) from which the Bias is subtracted. The Bias is subtracted using an array of ripple borrow subtractors. Figure 2: Block diagram of floating point multiplier III.DESIGN OF FLOATING POINT MULTIPLIER 3.1 Sign Bit Calculation Multiplying two number‟s result is a Figure 4:Unsigned Adder negative sign if one of the multiplied numbers is of a negative value. By the aid of a truth table we find 3.3 Bias Subtraction that this can be obtained by XORing the sign of two Subtract the bias constant (127 = inputs. 001111111) from unsigned exponent adder result for this, two zero subtractors (ZS) and seven one subtractors (OS) are used . S0…..S8 is the unsigned adder result (9 bit ) .T=001111111 is the Bias constant. Bias subtractor result is R =S-T. Figure 3: Sign bit calculator-XOR gate 3.2 Unsigned Adder (for Exponent Addition) This unsigned adder is responsible for adding the exponent of the first input to the exponent of the second input and after that subtract the Bias (127) from the addition result (i.e. A_exponent + B_exponent - Bias). The result of this stage is called the intermediate exponent. The addition operation is done on 8 bits, and there is no need for a quick result because most of the calculation time is spent in the significand multiplication process (multiplying 24 bits by 24 Figure 5: Bias Subtractor bits); thus we need a moderate exponent adder and a fast significand multiplier.An 8-bit ripple carry 3.4 Unsigned Multiplier (for significand adder is used to add the two input exponents. A multiplication) ripple carry adder is a chain of cascaded full adders This unit is responsible for multiplying the and one half adder; each full adder has three inputs unsigned significand and placing the decimal point (A, B, Ci) and two outputs (S, Co). The carry in the multiplication product. The result of out(Co) of each adder is fed to the next full adder significand multiplication will be called the (i.e each carrybit "ripples" to the next full intermediate product (IP). The unsigned significand 284 | P a g e
  • 3. Remadevi R / International Journal of Engineering Research and Applications (IJERA) ISSN: 2248-9622 www.ijera.com Vol. 3, Issue 2, March -April 2013, pp.283-286 multiplication is done on 24 bit. Multiplier So this simulation result can compare with performance should be taken into consideration so proposed floating point multiplier as not to affect the whole multiplier‟s performance. A 24x24 bit carry save multiplier architecture is used as it has a moderate speed with a simple architecture. In the carry save multiplier, the carry bits are passed diagonally downwards (i.e. the carry bit is propagated to the next stage). Partial products are made by ANDing the inputs together and passing them to the appropriate adder.This is done in significand multiplication process which is one of the important steps in floating point multiplication 3.5 Normalizer Figure 6: Xilinx floating point multiplier core The result of the significand multiplication generated by Xilinx core generator tool (intermediate product) must be normalized to have a leading „1‟ just to the left of the decimal point (i.e. The whole multiplier (top unit) was tested in the bit 46 in the intermediate product). Since the against the Xilinx floating point multiplier core inputs are normalized numbers then the generated by Xilinx core generator. Xilinx core was intermediate product has the leading one at bit 46 or customized to have two flags to indicate overflow 47. If the leading one is at bit 46 (i.e. to the left of and underflow conditions. Xilinx core implements the decimal point) then the intermediate product is the “round to nearest” rounding mode .A testbench already a normalized number and no shift is needed. is used to generate the stimulus and applies it to the If the leading one is at bit 47 then the intermediate implemented floating point multiplier and to the product is shifted to the right and the exponent is Xilinx core then compares the results. The area of incremented by 1. Xilinx core is less than the proposed floating point multiplier because the latter doesn‟t truncate/round 3.6 Overflow/underflow Detection the 48 bits result of the mantissa multiplier which is Overflow/underflow means that the result‟s reflected in the amount of function generators and exponent is too large/small to be represented in the registers used to perform operations on the extra exponent field. The exponent of the result must be 8 bits. But the proposed one indicates Normalized bits in size, and must be between 1 and 254 significand product of 48 bits separately give more otherwise the value is not a normalized one .An precision when compared to Xilinx floating point overflow may occur while adding the two exponents core..So proposed floating point multiplier has or during normalization. Overflow due to exponent greater importance when it utilized in another Unit- addition maybe compensated during subtraction of floating point adder to form a MAC unit involving the bias; resulting in a normal output value (normal large dynamic range operation). An underflow may occur while subtracting the bias to form the intermediate exponent. If the intermediate exponent < 0 then it‟s V. SOFTWARE TOOLS an underflow that can never be compensated; if the intermediate exponent = 0 then it‟s an underflow Xilinx ISE Design Suite 13.3 tool & that may be compensated during normalization by VHDL programming is used. ISIM tool is used for adding 1 to it .When an overflow occurs an Simulation process .Xilinx core generator tool is overflow flag signal goes high and the result turns to used to generate Xilinx floating point multiplier core ±Infinity (sign determined according to the sign of The whole multiplier (top unit) was tested against the floating point multiplier inputs). When an theXilinx floating point multiplier core. Xilinx core underflow occurs an underflow flag signal goes high was customized to have two flags to indicate and the result turns to ±Zero (sign determined overflow and underflow conditions. Xilinx core according to the sign of the floating point multiplier implements the “round to nearest” rounding mode.A inputs). Denormalized numbers are signaled to zero testbench is used to generate the stimulus and with the appropriate sign calculated from the inputs applies it to the proposed floating point multiplier and an underflow flag is raised. and to the Xilinx core then compares the results. IV. XILINX FLOATING POINT VI.SIMULATION RESULTS MULTIPLIER CORE ISIM tool is used for Simulation process DSP48E is the IP core generated for Xilinx core generator tool is used to generate Xilinx simulation.Resource estimation & vhdl program can floating point multiplier core The whole multiplier (top unit) was tested against the Xilinx floating be obtained when a core is generated in xilinx. point multiplier core. Using this vhdl program its simulation can be done 285 | P a g e
  • 4. Remadevi R / International Journal of Engineering Research and Applications (IJERA) ISSN: 2248-9622 www.ijera.com Vol. 3, Issue 2, March -April 2013, pp.283-286 this gives better precision if the whole 48 bits are utilized in another unit; i.e.with a floating point 6.1 Simulation results of floating point multiplier adder to form a MAC unit. But the floating point core generated by Xilinx core generator tool multiplier core generated by Xilinx core generator does not indicates the entire 48 bits of mantissa due to rounding and is not beneficial in case of DSP application of large dynamic range especially when using it in another high precision floating point units like Multiply and Accumulate (MAC) unit. REFERENCES [1] IEEE 754-2008, IEEE Standard for Floating-Point Arithmetic, 2008. Figure 7: Simulation result of Xilinx floating point [2] B. Fagin and C. Renard, “Field multiplier core generated by Xilinx core generator Programmable Gate Arrays and tool FloatingPoint Arithmetic,” IEEE Transactions on VLSI, vol. 2, no. 3, pp. 365–367, 1994. [3] N. Shirazi, A. Walters, and P. Athanas, “Quantitative Analysis ofFloating Point Arithmetic on FPGA Based Custom Computing Machines,” Proceedings of the IEEE Symposium on FPGAs for Figure 8: RTL Schematic of Xilinx floating point CustomComputing Machines (FCCM’95), multiplier core generated by Xilinx core generator pp.155–162, 1995. tool [4] L. Louca, T. A. Cook, and W. H. Johnson, “Implementation of IEEESingle Precision 6.2 Simulation results of proposed floating point Floating Point Addition and Multiplication multiplier on FPGAs,”Proceedings of 83 the IEEE Symposium on FPGAs for CustomComputing Machines (FCCM’96), pp. 107–116, 1996. [5] A. Jaenicke and W. Luk, "Parameterized Floating-Point Arithmetic on FPGAs", Proc. of IEEE ICASSP, 2001, vol. 2, pp.897-900. [6] B. Lee and N. Burgess, “Parameterisable Floating-point Operations on FPGA,” Conference Record of the Thirty-Sixth Asilomar Conference onSignals, Systems, and Computers, 2002 Figure 9: Simulation result of Proposed floating [7] Mohamed Al-Ashrafy, Ashraf Salem and point multiplier Wagdy Anis” An Efficient Implementation of Floating PointMultiplier” Electronics, Communications and Photonics Conference (SIECPC), 2011 Saudi International Figure 10: RTL Schematic of proposed Xilinx floating point multiplier VII.CONCLUSION This paper presents design and simulation of a floating point multiplier that supports the IEEE 754-2008 binary interchange format, the proposed multiplier doesn‟t implement rounding and presents the significand multiplication result as is (48 bits), 286 | P a g e