I am trying to make an asynchronous adder that holds three bits and adds two to the number. Can someone help? A Google search shows nothing and I'm having a hard time visualizing how to make the circuit.

Edit: This circuit is part of a larger circuit I have to make for a problem. The circuit needs to add two to either an even three-bit number or an odd three-bit number. I have the rest of the problem done except for the adding two part.

(If anyone wonders, the problem says the circuit is supposed to act like a normal down-counter when an input w = 0, then switch to adding two if w = 1.)

Edit 2: I know this is a late edit (and might be illegal), but here is my attempt at the circuit using four flip-flops (I am required to use d flip-flops). IT IS VERY UGLY AND CONVOLUTED, I apologize. :(

The first four count down when w = 0 while the fourth d flip-flop stores the value of the least-bit (0 = even, 1 = odd). When w = 1, the clock to the fourth becomes zero and therefor stores the value of the least bit indefinitely. Ev/odd becomes Q_0, Y_0 then becomes Q_1 and Y_1 becomes Q_2, "adding" one to the two's place and, to my understanding, simulating the addition of two to the number.

I feel this is the simplest way to do it, but I feel I am using more gates than are necessary or that I am miscalculating the clock timing.

• It's exactly the same as the standard add-one circuit. Think place-value system. Binary two is 010 instead of 001. – MarkU Nov 16 '14 at 4:20
• Where is your truth table? – Ignacio Vazquez-Abrams Nov 16 '14 at 4:23
• @MarkU Sorry for not responding, I've literally spent the past 7 hours on binary logic problems and am having a tough time. I notice that if I use bit Y_1 and Y_0 as Y_2 and Y_1 and Y_2 as Y_0 it appears the same as adding two to the number. Am I understanding this correctly? :( – Qwurticus Nov 16 '14 at 6:00
• Eg : 5 = 0101 --- 2 = 0010 ----- 5 + 2 = 0101 + 0010 . Hope this helps. (4 bits needed else carry gets lost) – Plutonium smuggler Nov 16 '14 at 6:08
• You're on the right track. The even/odd is determined by the least significant bit, you can pass that bit unchanged. And adding one in the 2's place is the same thing as adding 2. – MarkU Nov 16 '14 at 8:15

• Right. x+2 is the same as ((x>>1)+1)<<1 where >> and << indicate a shift left / shift right operation. So you just construct a normal counter circuit out of your 2 most significant bits, and then append the least significant bit back onto the result. – Ponkadoodle Nov 17 '14 at 7:58