Carry-save representation is shift-unsafe: The problem and its solution
Several arithmetic circuits use Carry-Save (CS) representation of signed numbers in one's complement or two's complement. However, arithmetic right shifts of the CS form may generate incorrect results. This work presents the problem and proposes a simple solution to keep the correct CS representation of signed numbers when arithmetic right-shift operations or sign extensions are required. The authors discuss why the problem does not occur in most of the traditional implementations of arithmetic circuits and also emphasize that it may happen for some types of arithmetic algorithm and arithmetic hardware design.
carry-save redundant representation computer arithmetic arithmetic shift