Time for a new post on an arithmetical topic.
We all love the good old binary number system and some of us even consider round numbers to be 32, 64, 128, 256, …
Here is another important number system – the signed digit tri-nary number system, which is also a redundant number system. This means that we could have several representations for the very same number.
In the signed digit system we use -1,0,1 instead of just 0,1 for each digit.
It is best explained by an example; The picture below shows three different representations of the number 9 in tri-nary signed digit.
So why do we need to know another number system, and what is it useful for in digital design of ASICs and (especially) FPGAs?
Turns out that using the signed digit number system, one can add without needing to propagate the carry – i.e. in constant time!!!
Hold on your horses, it is not all bright and sunny. The result still needs to be converted back into the good old binary representation and that is not done in constant time, but dependent on the width of the number (although there are various techniques that help optimize the process).
If you are doing DSP applications, especially in FPGAs, where digital filter design is involved – using the signed digit number system can come in handy…