TAMS / Java / Hades / **applets** (print version): contents | previous | next#### Floating-point multiplier

**Description**

This applet demonstrates a **floating-point multiplier**.
The number representation is based on the same principles as the
single-precision and double-precision formats defined by the
the IEEE 754 standard.
However, the multiplier shown here only uses a four-bit normalized
mantissa and a three-bit exponent (with offset 3), without sign-bits.
That is, a number is represented as

value = 2^{(exponent-3)} * (1.0 + mantissa * 2^{-4})

For details and a few examples, please read the
short introduction
to the floating-point representation.
The following table summarizes the number of bits used here and
in the single- and double-precision standard representations:

number of bits total sign exponent (offset) mantissa
---------------------------+------------------------------------------
this applet 7 0 3 3 4
IEEE-754 single-precision 32 1 8 127 23
IEEE-754 double-precision 64 1 11 1023 52

Click or shift+click the input switches to increment or decrement
the input values for the A and B exponents and mantissae,
and watch the resulting output value.
For example, the initial values for both numbers are exponent=100b
and mantissa=1000b, which corresponds to a value of

A = B = 2^{(4-3)}*(1.0 + 8/16) = 2*1.5 = 3

Not surprisingly, the resulting multiplier output is exp=110b
and mantissa=0010b, or

R = 2^{(6-3)}*(1.0 + 2/16) = 8*1.125 = 9

You can open new editor windows for all subcomponents
(popup-menu, select 'edit') to study the actual gate-level implmentation
of the multiplier.
A real floating-point multiplier just uses a much larger array
(e.g. 23*23 for single-precision and 52*52 for double-precision),
but the princile stays the same.
Also, note that the muliplication of signed-numbers poses no problem;
the sign bit is just the XOR or the two operand sign bits.

Run the applet | Run the editor (via Webstart)

Impressum | 24.11.06

http://tams.informatik.uni-hamburg.de/applets/hades/webdemos/95-dpi/float-multiplier/multiplier_print.html