How To Use This Simulator:

STEP1: Choose Radix: Decimal or Binary.

STEP2: If Binary Number, choose the index of bits which you want to be the signed digits. If Decimal Number, don't do anything for the index. It would automatically assign the most significant digit as a signed digit, leaving all others as unsigned digits.

Note :The order of Signed Digit position should be in an ascending order, using comma to split them.(e.g. 4,5,6,7,23) .Also note that the most significant bit (MSB) should be a signed digit, in order to incorporate enough negative numbers. Least Significant Bit(LSB), i.e. bit 0, normally is an Unsigned Digit.

STEP3: Input two operands and the number of total digits. Negative bits can be expressed as a positive number with a minus symbol "-". (e.g. -1-1-11100). Note that the number of digits cannot be larger than 32.

STEP4: Define the delay for each type of gate.

STEP5: You may use the "Compute" button to see the simulation result.

 

Some Tips:

1. Signed digit cell generates its output bits from its current inputs i and the carry input signal from i-1. Unsigned digit cells do the normal carry ripple addition.

2. The addition time ( critical delay) for such a representation is determined by the longest possible carry-propagation chain, i.e. the biggest distance between two unsigned digits.

3. The purpose of HSD number system is to compare the area with performance, to understand the tradeoff. "Area * Performance" is a useful measurement, since we want the minimum delay as well as the minimum cost.

4. Normally, XOR, XNOR and complex gates have higher delays than others.

 

References:

"Computer Arithmetic Algorithms" by Israel Koren , 2nd Edition. P23 - P31

Dhananjay S. Phatak, Israel Koren, "Hybrid Signed Digit Number Systems: A Unified Framework for Redundant Number Representations with Bounded Carry Propagation Chains" ; IEEE Transactions on Computers, vol. 43, No.8, August 1994 pp 880 - 891.