0
\$\begingroup\$

Im trying to design a logic circuit for a 3 bit adder using 6 inputs, A2, A1, A0, B2, B1, B0 and 4 outputs, s0, s1, s2 and c (the carry out). I already have circuits for a half adder, full adder and a 2 bit adder. I thought I understood the concept behind it and iterated upon the 2 bit adder that I got working earlier but for some reason I'm not getting the correct answer.

My logic:

a0 XOR b0 = s0
(a1 XOR b1) XOR (ao AND b0) = s1
(a2 XOR b2) XOR (a1 AND b1) = s2
((a2 XOR b2) AND (a1 AND b1) OR (a2 AND b2)) = c (the carry out)

enter image description here

I'm testing values and when I try to following combination a2 = 0 , a1 = 0 , a0 = 1, b2 = 1, b1 = 1, b0 = 1 . s2 shows 1 when it should be the carry I believe that should be 1 because, (001 + 111) = 1000, right? Could someone let me know where Im making a mistake? Thank you.

\$\endgroup\$
2
  • \$\begingroup\$ If just a ripple-carry, then the basic blocks are one HA and two FA. Each HA can be an XOR and an AND (or four NANDs or four NORs) and each FA is two HA plus an OR gate. (C2 will far and away carry the longest logic expression.) \$\endgroup\$ – jonk Feb 11 '20 at 20:36
  • \$\begingroup\$ (Sorry. I meant S2 will have the longest logic expression.) \$\endgroup\$ – jonk Feb 12 '20 at 0:42
2
\$\begingroup\$

You have C1 correct...A0*B0...but C2 needs to include C1, such that if any two (or 3) of A1, B1, and C1 are true C2 becomes true. Similarly, C3 is triggered by 2 or more of A2, B2, and C2. This is a ripple carry architecture, for carry look-ahead each stage n must derive its carry only from the inputs A,B0..n-1.

\$\endgroup\$
4
  • \$\begingroup\$ I really appreciate the help first of all. Im just confused atm. So I should include the previous carry in following carry as well? So e.g. C2, which is A1*B1 right now, should include C1 as well? \$\endgroup\$ – AlwaysConfused Feb 11 '20 at 19:56
  • \$\begingroup\$ Exactly. You said you had a full adder design already; that should include a carry in and a carry out. See how the carry in is processed, and how the carry out is generated. Remember you've got An, Bn, and Cn, and you generate Cn+1 when any 2 or all 3 are set. \$\endgroup\$ – Cristobol Polychronopolis Feb 11 '20 at 20:08
  • \$\begingroup\$ I really do appreciate all the help you've given so far. So this is where Im at right now, could you maybe confirm if C2 is correct now? I believe my c3 still isn't because I'm not getting the correct result right now but I just want to see if Im on the right track. i.imgur.com/5jTt5DU.png \$\endgroup\$ – AlwaysConfused Feb 11 '20 at 21:40
  • 1
    \$\begingroup\$ Actually I just figured out how to get this done, thanks a lot for your help. I really appreciate everything. \$\endgroup\$ – AlwaysConfused Feb 11 '20 at 23:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.