background image

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 [

10

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