IQmath
IQmath
Implementing complex digital control algorithms on a Digital Signal Processor (DSP), or any
other DSP capable processor, typically come across the following issues:
• Algorithms are typically developed using floating-point math
• Floating-point devices are more expensive than fixed-point devices
• Converting floating-point algorithms to a fixed-point device is very time consuming
• Conversion process is one way and therefore backward simulation is not always possible
The diagram below illustrates a typical development scenario in use today:
So how do we really use all this fraction stuff?
So how do we really use all this fraction stuff?
Takes many days/weeks
to convert (one way
process)
Fixed-Point
Algorithm
(ASM, C, C++)
Fix-Point DSP
Can be easily ported
to floating-point
device
Floating-Point DSP
Floating-Point
Algorithm
(C or C++)
Natural development
starts with simulation in
floating-point
Simulation
Platform
(i.e. MatLab)
The Fix
The Fix
-
-
Point Development Dilemma
Point Development Dilemma
The design may initially start with a simulation (i.e. MatLab) of a control algorithm, which
typically would be written in floating-point math (C or C++). This algorithm can be easily ported
to a floating-point device, however because of cost reasons, most likely a 16-bit or 32-bit fixed-
point device would be used in many target systems.
The effort and skill involved in converting a floating-point algorithm to function using a 16-bit or
32-bit fixed-point device is quite significant. A great deal of time (many days or weeks) would
be needed for reformatting, scaling and coding the problem. Additionally, the final
implementation typically has little resemblance to the original algorithm. Debugging is not an
easy task and the code is not easy to maintain or document.
C28x - Numerical Concepts & IQmath 8 - 13