Documente Academic
Documente Profesional
Documente Cultură
Aarthy M.
Student
VIT University
Vellore, TamilNadu
Assistant Professor
VIT University
Vellore, TamilNadu
ABSTRACT
The 32-bit and 64-bit Floating point Arithmetic Logic Unit is
a main part in the design of computers. The Aim of this paper
is high performance through the pipelining concept compared
to non-pipelining. This ALU includes all the arithmetic and
logical operations. The Pipelined modules are independent of
each other. The novelty is to design pipelined modules like
left shift, right shift, increment, decrement and logical
modules. The Arithmetic pipelined modules are also
modified. These modules use single and double precision
IEEE 754 standard to carry out the required operation. All
modules in the ALU design are realized using Verilog HDL.
Test vectors are given to the inputs of the floating point ALU
to testify its functionality. The simulation is carried out with
ModelSim 6.5b simulator and RTL synthesis is done with
RTL Compiler tool in Cadence. Physical design of this
architecture is done with SoC Encounter cadence tool in
180nm technology.
General Terms
Algorithm, Floating point number.
Keywords
1. INTRODUCTION
Floating Point numbers are used when there is necessity
numbers to be very large or to be very small [1]. Floating
point representation has its advantages of its resolution and
accuracy compared to fixed point number representation.
Numbers in the floating point are represented in the form of
bit string. This bit string is combination of sign bit, mantissa
and exponent power. This representation is called IEEE 754
standard [2].The single precision of floating Point is shown in
Fig 1[2].
31
30
22
Sign
Exponent
Mantissa
1 bit
8 bit
23 bit
27
Addition
Stage2
Stage3
Stage4
Stage5
Stage6
Stage1
Stage2
Stage3
Stage4
Stage5
Stage6
Stage1
Stage2
Stage3
Stage4
Stage5
Stage1
Stage2
Stage3
Stage4
Srage1
Stage2
Stage3
Srage1
Stage2
Operand a
32 bit
Subtraction
1:16
Demux
Multiplication
16:1
Mux
ALU
Out
16:1
Mux
Status
Division
Reciprocal
2:1
MUX
Left
Shift
Operand b
2. BACKGROUND
32 bit
2:1
MUX
1:16
Demux
Right
Shift
s
2:1
MUX
Incre
ment
s
2:1
MUX
Decre
ment
s
AND
OR
Clock
1:16
Demux
NAND
NOR
XOR
XNOR
a
16 bit
ADD
2:1
MUX
DEMUX
MUX
OUT
SUB
b
16 bit
NOT
Selection
{
bits[4:0]
DEMUX
16 bit
MUL
MUX
STATUS OUT
No.
Selection bits[3:0]
ALU Operation
0000
Addition
0001
Subtraction
0010
Multiplication
0011
Division
0100
Reciprocal
0101
Left Shift
0110
Right Shift
0111
Increment
1000
Decrement
10
1001
AND
11
1010
OR
12
1011
NAND
13
1100
NOR
14
1101
XOR
15
1110
XNOR
16
1111
NOT
DEMUX
CLK
DIV
STATUS
As shown in Fig 4, the modified top level architecture of 32bit floating point ALU consists of 3 levels. In, first level there
are 3 demultiplexers .first demultiplexer is for selecting the
first operand and second demultiplexer is for selecting the
second operand and last demultiplexer is to select the clock. In
second level, there are 16 blocks consists of all the arithmetic
and logical operations depending on the selection bits as
shown in the TABLE 1. These blocks have two outputs ALU
out and status. Third level consists of 2 multiplexer .First
multiplexer is used to select the ALU operation and second
28
Status bits[2:0]
1
2
3
4
5
Status
000
001
010
011
100
Result zero
Overflow
Underflow
Normal Operation
Divide by Zero
Operand a
Clock
32 bit
Operand b
32 bit
s1
DFF
s1d
sc1
s2
DFF
s2d
sc2
e1
DFF
Unpack
module e2
m1
m2
DFF
DFF
DFF
Comparator
e1d
and e3
e2d
Barrel e4
mc1
m1d shifter
m2d
mc2
DFF
sc1d
DFF
sc1d
sr
DFF
e3d
DFF
e4d
Add/sub e5
module mf
DFF
DFF
DFF
DFF
DFF
srd
sr1
e5d
Normalize en
mfd module
mn
DFF
DFF
DFF
sr1d
sr2
Exception ec
mnd Checker mc
ed
mc1d
st
DFF
DFF
DFF
DFF
sr2d
out[31:0]
ecd
Packer
mcd
std
mc2d
Start
If e1=e2
Compare
If e1>e2
exponents
Yes
Is sign bit is 1?
If e2>e1
Subtract
the
mantissas
Add the
mantissas
No
Yes
Is the MSB of
the result
mantissa 1?
No
3.3.2.6 Packer
Packer module will combine the resultant sign bit, exponent
and mantissa. It will drop the implied bit from the resultant
mantissa.
29
status[2:0]
Start
Take two floating point
numbers in IEEE 754
standard
Separate mantissa, exponent
and sign bits and add the
implied bit in the mantissa
Calculate the sign
of the result by
XOR operation
Normalization is
not needed
Yes
Is the MSB of
the result
mantissa 1?
Multiply Mantissas of
two operands
No
Terminate
No shift is
needed
If m1<m2
Compare
mantissa
If m1>m2
Right shift m1 by 1
and decrement
exponent by 1
Divide m1 by m2 and
compute the result
mantissa
Subtract the
exponents and add
the bias
Yes
Is the MSB of
the result
mantissa 1?
No
sr
s1
Operand a
32 bit
s2
e1
Operand b
32 bit
Unpack
module e2
m1
DFF
DFF
DFF
DFF
DFF
m2
DFF
Clock
s1d
s2d
Sign Calculation
module
sc
DFF
scd
e5
sn mfD- snd
FF
se
ec
e1d
e2d
m1d
m2d
Exponent adder
with bias
subtraction
Mantissa
Multiplier
module
e3
m3
DFF
DFF
e3d
m3d
Normalize en
module
mn
DFF
DFF
ed
Exception mc
Checker st
DFF
DFF
sed
ecd
DFF
mcd
DFF
std
out[31:0]
Packer
mnd
status[2:0]
30
Operand a
Operand b
32 bit
32 bit
s2
Unpack
module
e1
DFF
DFF
DFF
Sign Calculation
module
s1d
s2d
m1
e3
e1d
DFF
e2d
DFF
m1d
m2
DFF
DFF
e5
scd
sn
snd
mfD-
se
FF
DFF
ec
e4
e2
sc
Division
Aligner
m3
m4
m2d
flag
Exponent
subtractor
m5
Divider
module
fg
DFF
DFF
DFF
e3d
Normalize
module
en
DFF
mn
m5d
fn
fgd
Exception
Checker
ed
DFF
mnd
DFF
fnd
DFF
mc
st
sed
ecd
DFF
mcd
DFF
std
out[31:0]
Packer
status[2:0]
Clock
This module just passes the sign of the operand to the next
module.
This module will align the mantissa to get the desired result.
As mentioned in the division algorithm, if first mantissa is
greater than second mantissa, Division Aligner will shift the
first mantissa by 1 and decrement the exponent by 1.It also
indicates the division flag for the exception like divide by
zero, result zero and normal operation.
mantissa
previous
mantissa
division
32 bit
s1
DFF
s1d
e1
DFF
e1d
DFF
m1d
Operand a
sl
DFF
sld
sc
el
DFF
eld
ml
DFF
mld
Exception
Checker mc
DFF
sc
out[31:0]
2:1
MUX
DFF
Operand b
od
Unpack
module m1
Left
Shifter
ec
DFF
ecd
DFF
mcd
Packer
32 bit
sr
s1
32 bit
DFF
s1d
Sign Passer
sc
DFF
scd
e5
sn mfD- snd
FF
se
Operand a
ec
2:1
MUX
Operand b
32 bit
DFF
od
Unpack
module
e1
m1
DFF
DFF
e1d
e3
Exponent e
e4
Recipro subtractor
m1d -cal m3
m5
Aligner m4 Divider
flag module fg
DFF
DFF
DFF
e3d
m5d
fgd
Normalize en
module
mn
fn
DFF
ed
DFF
mnd
DFF
fnd
Exception mc
Checker st
DFF
DFF
Selection
bit
sed
ecd
DFF
mcd
DFF
std
out[31:0]
Packer
status[2:0]
Selection
bit
Clock
Clock
31
status[2:0]
s1
DFF
s1d
e1
DFF
e1d
m1
DFF
32 bit
Operand a
2:1
MUX
DFF
od
Unpack
module
Operand b
m1d
sc
Compara
tor and
shifter
ec
mc
DFF
scd
DFF
ecd
DFF
mcd
Mantissa
Incrementor
by 1
snd
se
DFF
edn
DFF
ed
DFF
mnd
me
DFF
med
sid
sn
DFF
DFF
eid
en
DFF
mid
mn
si
DFF
ei
mi
Normalize
sid
module
Exception
Checker
DFF
sed
out[31:0]
Packer
status[2:0]
32 bit
Selection
bit
Clock
32 bit
s1
DFF
s1d
sc1
s2
DFF
s2d
sc2
e1
Unpack
Operand b
e2
32 bit module
m1
m2
DFF
DFF
DFF
DFF
Comparator
and e3
e2d
Barrel e4
shifter mc1
m1d
e1d
m2d
mc2
DFF
sc1d
DFF
sc1d
DFF
e3d
DFF
e4d
DFF
DFF
XOR
Gate
sr
Exponent e5
Passer mf
mc1d
mc2d
DFF
DFF
DFF
srd
e5d
sr1
Normalize en
mfd module
mn
AND
Gate
DFF
DFF
DFF
sr1d
sr2
Exception ec
mnd Checker mc
ed
st
DFF
DFF
DFF
DFF
sr2d
out[31:0]
ecd
Packer
mcd
status[2:0]
std
Clock
32
33
32-bit Floating
point ALU with
Pipelining
Cells
Cell
Area(mm2)
Power(nW)
32-bit Floating
point ALU
without Pipelining
41092
37621
0.936860
0.820796
213482898.96
Worst path
delay (ns)
0.891
15799143.81
16.231
64-bit Floating
point ALU with
Pipelining
136564
103096
Cell
Area(mm2)
3.1175726
2.763565
Worst path
delay (ns)
971665797.7
1.018
64-bit Floating
point ALU
without Pipelining
Cells
Power(nW)
773982042.61
34.323
Fig 23: Chip Layout of 32-bit floating point ALU with
pipelining
34
5. ACKNOWLEDGEMENTS
It is pleasure to thank MR. JAYKRISHANAN P .Asst.
professor from the department of SENSE (School of
Electronics engineering), VIT University for helping in the
project work. His guidance, encouragement and suggestions
are helpful from the starting to the end of this project.
7. REFERENCES
[1]
[2]
[3]
[4]
[5]
[9]
[14] V.Vinay
[7]
[19] Website:http://babbage.cs.qc.cuny.edu/IEEE-
[8]
[20] Website:http://www.academic.marist.edu/~jzbv/architect
[6]
IJCATM : www.ijcaonline.org
35