TAMS / Java / Hades / applets: contents | previous | next | ||||
Hades Applets contents visual index introduction std_logic_1164 gatelevel circuits delay models flipflops adders and arithm... counters LFSR and selftest memories programmable logic state-machine editor misc. demos I/O and displays DCF-77 clock relays (switch-le... CMOS circuits (sw... RTLIB logic RTLIB registers Prima processor D*CORE MicroJava Pic16 cosimulation Mips R3000 cosimu... Intel MCS4 (i4004) image processing ... [Sch04] Codeumsetzer [Sch04] Addierer [Sch04] Flipflops [Sch04] Schaltwerke [Sch04] RALU, Min... [Fer05] State-Mac... [Fer05] PIC16F84/... [Fer05] Miscellan... floating-poi... n-bit multip... n-bit adder formula wave... formula wave... formula wave... line waveform freedraw wav... [Fer05] Femtojava FreeTTS | Floating-point multiplier
Circuit 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.
| |||
Print version | Run this demo in the Hades editor (via Java WebStart) | ||||
Usage | FAQ | About | License | Feedback | Tutorial (PDF) | Referenzkarte (PDF, in German) | ||||
Impressum | http://tams.informatik.uni-hamburg.de/applets/hades/webdemos/95-dpi/float-multiplier/multiplier.html |