DSPs operate in either fixed-point arithmetic or floating point arithmetic. In general, most of the high performance DSPs operate with fixed-point arithmetic because of different reasons that have to do with number of arithmetic instructions that can be executed per second (in many cases by parallelizing over several ALUs, power dissipation, memory use and access bandwidth, etc.). Because of this, a basic but important skill for anybody working with DSPs is to know how fixed-point arithmetic works.
One of the tricky points found at the beginning of working with fixed point arithmetic is that, although the DSP architecture determines the number of bits of the registers used for arithmetic operations, the placement of the decimal point within those bits is entirely up to the programmer’s choice. Even more, the programmer can change the placement of the decimal point from one operation to the next with no problem as long as it keeps track of where the decimal point is.






