CLE Adder:
-Throughput: 2 Ticks
-Latency: 4 Ticks
-synchronized
-original
-Dimensions: 13*13*12
ALU:
-Latency: 6 Ticks
-Dimensions: 19*17*14
This Adder has a fast throughput thanks to a torchless design. It also has a very low Latency for a torchless Adder, now how does that work?
First Thing to mention is that this CLE is easy to get, hard to explain and a Pain in the Grass to build.
As reference to start with I used Newomaster's compact CLE and made it torchless. Normally, what happens when you convert something into a torchless version, is we lose latency due to SignalStrength repitition with extra repeaters. This is not the case. I discovered another method where I can skip that. I don't know if this is done before but I guarantee that I came up with it all by myself.
Instead of making the SS 15 before inverting, I use a Container instead of a Rodstoneblock(or similar) to power the (Sub)Comperator. This brings the possibility to lower the Output SS and therefore Control over where which SS is in High or Low State. I don't work with True and false but completely with High and Low instead.
First section is the XNOR, I used the NAND for the generate of course. I first figured out where my Comparators have to go. Then adjusted the Containers to get the best output.
Second and hardest part is the Carry Logic. I made the Slab/Glowstone towers and hooked them Comps up. The fact that furnaces let trough power, I could make them next to each other so it doesn't take up more space then it would with torches. I adjusted the Containers so that there are barely off when the Generate powers them, so that they all turn on when Generate does(NAND goes off). I don't change the Containers anymore so I have a reference.
The Propagates where hooked up with a slab OR between the inputs and since i don't use repeaters the further away it is from the Input the less SS I got to begin with.
Now I compare my reference with the comparators. First I make one Input On to see the SS I have, disconnect every other propagates and Generates, and adjust the Container of my propagate that the Redstone that goes into my reference has the exact same SS. I check if I get high->low->high when the Input is on and false->high->false when it's on, then reconnect everything and move on to the next propagate. That's why this Adder is hard to build and is highly likely to not work.
I've placed repeaters at the end of my Carrys to repeat once 1. this is necessary because the Output wouldn't be enough for the rest and 2. this brings the room for one more tick after the XNOR before the second XNOR, so what I did was instead of repeating the Out of XNOR I Inverted it so I need an XOR to finish the adder which brings up the possibility to use a 1-tick XOR, making the low latency of 4 ticks. since 1-tick XOR handle low Outputs instead of false the Output is spaced by 3.
I also added ALU functions but the real deal was the Adder itself, tho I gotta mention it was really a pain making the OR function cause the NAND was buried in there and hard to power.
like you would use an ALU. The lights on the Bottom are just an additional Output so I don't have to fly to the other side to see my result
Add: Inputs are from Bottom to Top like every other Dorito CLE.
Two's Compliment Subtract: Invert A or B and Carry In. use the normal Output as result.
Generic Subtract: Invert A or B. use the Inverted Output as result.
OR: OR
NOR: OR, Flood Carry
AND: OR, Flood Carry, Invert A and B
XOR: Invert A or B, Flood Carry
XNOR: Flood Carry
Wanna mention:
The ALU is on the picture and found with the coordinates, the Adder without anything is not far away, seen with a simple turn of 180°
Also to the left of the ALU is a simple Game I made with a Scroll-down screen I made, feel free to play a Round but don't expect anything fancy or fun ;)
Thank you for wasting your time reading this giant Text.