Chapter 3. The FPU
42
Table 3.2: Device Utilization Summary for the FPU multiplier
Logic Utilization
Used
Available
Utilization
Number of Slice Registers
446
93120
0%
Number of slice LUTs
2382
46560
5%
Number of used LUT-FF pairs
351
2477
14%
Number of bonded IOBs
201
240
83%
Number of BUFG/BUFGCTRLs
2
32
6%
Number of DSP48E1s
15
288
65
and the following result was produced:
R = 0110010010000010001111101000000010111100001111010000100001011100
After breaking down the result to the actual components we get the following:
Sign
A
= 1
Sign
B
= 1
Sign
R
= 0
E
A
= 10101010001
E
B
= 10011110101
E
R
= 11001001000
S
A
= 0101010101010101110101010101001010101010101001111111
S
B
= 1011010111011011011011010111011011011011011101100111
S
R
= 0010001111101000000010111100001111010000100001011100
The sign result is 0 i.e. positive since minus times minus is plus. The exponent result
is E
A
+ E
B
− 1023 + 1 the +1 is the result of rounding and normalization. The actual
significand result is 1.S
R
due to the hidden bit that is not stored and the 52 bits of S
R
are the 52 most significant bits of the multiplication result.
3.3
Floating point division
The division algorithm employed here is the simple non-performing sequential algorithm.
Division in general is a much less frequent calculation so a very similar implementation
of the design found here [
] was chosen since speed is not of utmost concern. The
only differences is that the final rounding and normalizing stages of the calculation have
been merged to one cycle resulting in a 55 cycle operation. The actual divisor module