Forums - Open Redstone Engineers
The CCA - Carry-Cancel Adder - Printable Version

+- Forums - Open Redstone Engineers (https://forum.openredstone.org)
+-- Forum: ORE General (https://forum.openredstone.org/forum-39.html)
+--- Forum: Projects & Inventions (https://forum.openredstone.org/forum-19.html)
+---- Forum: Completed Projects (https://forum.openredstone.org/forum-21.html)
+---- Thread: The CCA - Carry-Cancel Adder (/thread-5493.html)

Pages: 1 2 3 4 5


The CCA - Carry-Cancel Adder - Magic :^) - 01-07-2015

./warp cca
video here: https://www.youtube.com/watch?v=FrWNrTTcdXg

NOTE: There have been massive improvements to the CCA design, so I may redo this OP at some point. So there will be some trimming done to this post, and I'll probably do a tutorial post on how to build one in a new thread.

First, I'd like to say that Yap7 also came up with the same type of carry logic independently of myself a few months later, before joining ORE. I figure he deserves just as much credit as I do for coming up with this style of addition.

- for future reference, my original design was created in September 2014

How it works:

The adder is comprised of 3 stages:

In stage 1, the adder performs XOR, AND, and NOR.
XOR is pretty straightforward. It's just the sum without the carry.
AND is the Generate signal G.
NOR is the Carry Cancel signal CC.

In stage 2, the G and CC signals are sent to two separate slab stacks. The G signal goes to a slab stack that connects to the base input of every comparator in the CCA carry tower. The CC signal goes to a slab stack that connects to the side input of every carry tower comparator.

When these signals hit the slab stacks, you need to provide full power (15 signal strength). The carry calculation works in ratios of signal strength so make sure that your input strengths are all the same! Also keep in mind that these slab stacks are supposed to 'bleed upwards' to the other comparators, that's the core of how this system works.

The two slab stacks are used by a comparator at each level to calculate whether there is a valid carry. The G signal is what is passed through the comparator, and the CC signal is what goes into the side for comparison. If the signal strength read from the CC stack is higher than the signal strength from G, the carry is 'cancelled'.

This works because a physically higher CC will always have a higher signal strength than a G signal from below.
The same goes for if G is stronger than CC, it can only mean that G happened at least 1 level higher than CC. This would force signal out of the comparator as the CC signal can't subtract it all. This comparator's output would signify that a carry happened, and needs to be XORed in stage 3.

In stage 3, the output of the comparators of stage 2 are fed into a final XOR with the first XOR result from stage 1. The output of this XOR is the final result.

In summary:
Stage 1: xor, and, nor. (2 ticks)
Stage 2: carry calculations. (1 tick)
Stage 3: final xor. (2 ticks) (This can be 1 tick with a special type of XOR I designed)

Now here's the example adder:

First, here's a top-down view of the adder. The blue part is stage 1, the white is stage 2, and the yellow is stage 3. Green is the signal source for AND/Generate, and red is the signal source for NOR/Carry-Cancel.
[Image: 9wHWSTZ.png]

In stage 1 to create the AND, I NOR the 1 tick XOR and NOR using the existing circuitry. I then add 1 tick to the NOR and XOR to sync with the AND. (that makes 2 ticks in total.)
The nor is on the far right.
[Image: z6ACLsM.png]

Here's a close-up of the comparator that does the carry calculations. Note the difference in signal strength here where G>CC. That's allowing the carry to go through as G happened above CC.
[Image: eiMRkw5.png]

(For later comment context, this post was originally on what this adder design should be called)


RE: About my vertical adder, name TBC - Phase - 01-07-2015

it looks like a bunch of horz circuits bussed vertical. Those XORs aren't the best design for that :\


RE: About my vertical adder, name TBC - Magic :^) - 01-07-2015

(01-07-2015, 07:23 PM)Phasesaber Wrote: it looks like a bunch of horz circuits bussed vertical. Those XORs aren't the best design for that :\

I assume you're talking about the first screenshot? That's derp, I know full well Tongue

EDIT [23/11/15]: referenced screenshot no longer in OP


RE: About my vertical adder, name TBC - Nuuppanaani - 01-07-2015

This is an incredibly original adder with probably the fanciest carry logic there is, but isn't it like 6 ticks?

Can't be the fastest vertical adder Big Grin

We need a vertical PLA!


RE: About my vertical adder, name TBC - Magic :^) - 01-07-2015

oh and i'd might as well post some specs:
5 tick, synced
6 wide, 11 long.
doesn't need strong signal in, but strong signal is outputted.


RE: About my vertical adder, name TBC - GISED_Link - 01-08-2015

Very nice Topic !

[edit]AAAAAAAH The post was so long that I've miss you have mention the Yap's trial creation ^^. Anyway, there are two other pics', maybe will show another way to realise this new design of adder (but not a new technology).[/edit]

[Image: 96432320150108090117.png]

[Image: 98977120150108090101.png]
Those pictures don't show the latest version. Contact Yap for further informations.

All the carry are generate in the same "diod tower".

Maybe this design will be the new classic CLA adder ? (Why CLA, because it runs like the CLA, with only one diod tower)


RE: About my vertical adder, name TBC - Konstacon - 01-08-2015

(01-07-2015, 08:43 PM)Nuuppanaani Wrote: This is an incredibly original adder with probably the fanciest carry logic there is, but isn't it like 6 ticks?

Can't be the fastest vertical adder Big Grin

We need a vertical PLA!

The purpose of PLA is it to be horizontal and fast...

Also, instead of some carry cancel shit call it VCLE (vertical CLE) or at least VCE (vertical carry everywhere)


RE: About my vertical adder, name TBC - LordDecapo - 01-08-2015

This honestly seems like a Non-piston ICA... I have looked and looked, and can't justify calling it a CLA/E

I like the name SSA (Special Snowflake Adder)
Big Grin
PS, that name wins, it has over NINE THOUSAND!


RE: About my vertical adder, name TBC - Magic :^) - 01-08-2015

Decap, think of the comparators as using hex compression to store the 8 stacks used in 8-bit cle logic. That's why I say it's using modified cle logic.

SSA... HhhmmmmMMMMmmnnn


RE: About my vertical adder, name TBC - Magic :^) - 01-09-2015

What about this: I'll call it CCA. It can stand for Comparator Carry Adder. Because, that's what it does. Also it avoids the CLE vs ICA thing

EDIT: actually nah it'll stand for Carry Cancel.