4 ms·
I'm curious, what other binary adder designs are out there? This adder-stage-chain design seems ubiquitous. I wonder if anything else can be done considering th
by lxe 7y ago
I'm curious, what other binary adder designs are out there? This adder-stage-chain design seems ubiquitous. I wonder if anything else can be done considering the current state of technology... or just for fun, like analog circuits or no clock, etc...
- kragen 7y agoCarry-save adders (as used in Chinese 7-bead abacus) avoid the ripple-carry penalty mentioned in this article, as does the bit-serial design it mentions. Residue number systems are another option to limit carry chain length, which additionally save you loads on multipliers: https://web.stanford.edu/class/ee486/doc/chap2.pdf https://web.stanford.edu/class/ee486/doc/chap2.pdf When you don't need to add, just count and compare, you can use a LFSR, as the Atari video generator infamously did for sprite positions. Modern computers, even back to the 1970s, usually instead use lookahead carry to get logarithmic carry delays instead of linear ones. If you use a compound or otherwise non-binary base, carry logic is different, but the same basic options still exist. The 8008, 8080, 8086, i386, and amd64 instruction sets have “auxiliary carry” bits for use with BCD arithmetic; a separate DAA instruction adjusts the binary addition result to be a BCD result. The weirdest thing is that the 8086 added DAS, DAM (?), and AAA.