Optimal Fixed Point
Home ] Up ] Reconfigurable Computing for Space ] MRAM ] [ Optimal Fixed Point ]

 

Goal: Develop a methodology and software tools to enable embedded systems designers to quickly design numerical computations that provide the maximum numerical accuracy at maximum speed, in the smallest possible package, consuming the minimum amount of power.

Day-to-day scientific computing uses floating point, the hardware equivalent of scientific notation, in which the machine represents numbers with a mantissa and an exponent. Computation seeks a balance between precision and the available storage space. Floating point is not practical for many embedded systems, as it takes too much circuitry and consumes too much power. So embedded systems often use fixed point.

Click on the links for Wikipedia descriptions of fixed and floating point arithmetic.

The table below lists some of the properties of fixed and floating point arithmetic as they affect embedded systems.

 
Floating Point
Fixed Point
Scaling
 
Run-time, according to rules built into hardware.
Design (compile) time scaling. (Hardware sees only integers)
Value
Explicit in representation.
Interpreted by the application designer.
Bit
Utilization
Trade off precision for dynamic range.
Maximum precision for given number of bits, within fixed range.
Speed
Slow, data-dependent.
(Sequential implementation)
Fast and predictable.
(Parallel implementation)
Hardware Complexity
Complex (1/6 of Power PC floor plan)
Simple
Dynamic Range
Fail-soft: adjust granularity.
Fail hard: overflow or saturate.
Ease of design
Designer friendly: hardware takes care of scaling.
Difficult: application must insert scaling operations.

The Fixed Point Design Problem

The addition of two numbers in a computer can produce a carry out, so that the sum may require a wider storage word than the addends. Multiplying two n-bit numbers produces a product that's 2n bits wide. With successive computations, the size of the data path must grow in order accommodate the larger results without loss of information. Eventually, this becomes impractical, and numbers must be scaled back and truncated so as not to outgrow the data path width.