07-02-2016, 01:36 PM
(This post was last modified: 07-09-2016, 09:40 PM by minestyler007.)
I recently made a new kind of adder that I call Instant Comperator Carry (ICC). It uses a carryline which consists of many comperators whos outputs go into the side input of the next one. By powering all the back inputs they become not gates and every second comperator will be turned off. There is a bug which makes comperator calculate the side inputs instantly if the back input is 1 tick before the side input. Like that you can make a signal travel through all the not-gates within 1 tick. The downside is that you have to sync the inputs and activate it for example with a CPU clock.
For the adder I use XNOR and AND for the carry generation just like in ICA. And another XNOR for the output. 2 Comperators create 1 bit. The ANDs output goes to the comperator that is off by default and the XNOR goes into the comperator that is on by default. Carryin is true if the comperator, that is usually off, is on.
advantage: pistonless
downside: needs synced inputs, is kinda big and uses XNORs so I only got it to 6 ticks.
I see some more potential in it as you can use ICE logic and use NAND and NOR for the generate and propagate that would get it to 4 ticks.
Another thing i see is that you could further exploit the bug to create a 1 tick adder by only using clocked comperator not-gates.
The problem is that I'm kind of new and dont have the knowledge to build this ( I tried it for quite some time). so i hope someone can help me and that i explained it ok. If you have questions - just ask.
UPDATE: I found a pretty cool thing which would allow this adder to be ANY bit size without adding extra delay. it works by only activating the back inputs if a signal has to be propagated through the output of and XOR. it is superhard to implement so I couldn't make it. it also does not need synced inputs and does not need to be clocked. it is at min 5 ticks or maybe 4??? anyways i think it would rather work with 7 or 8 ticks but that would still be pretty good for something like 512 bits
For the adder I use XNOR and AND for the carry generation just like in ICA. And another XNOR for the output. 2 Comperators create 1 bit. The ANDs output goes to the comperator that is off by default and the XNOR goes into the comperator that is on by default. Carryin is true if the comperator, that is usually off, is on.
advantage: pistonless
downside: needs synced inputs, is kinda big and uses XNORs so I only got it to 6 ticks.
I see some more potential in it as you can use ICE logic and use NAND and NOR for the generate and propagate that would get it to 4 ticks.
Another thing i see is that you could further exploit the bug to create a 1 tick adder by only using clocked comperator not-gates.
The problem is that I'm kind of new and dont have the knowledge to build this ( I tried it for quite some time). so i hope someone can help me and that i explained it ok. If you have questions - just ask.
UPDATE: I found a pretty cool thing which would allow this adder to be ANY bit size without adding extra delay. it works by only activating the back inputs if a signal has to be propagated through the output of and XOR. it is superhard to implement so I couldn't make it. it also does not need synced inputs and does not need to be clocked. it is at min 5 ticks or maybe 4??? anyways i think it would rather work with 7 or 8 ticks but that would still be pretty good for something like 512 bits