design 3 bit adder from full adders

Discussion in 'Homework Help' started by eldadoh, May 2, 2014.

  1. eldadoh

    Thread Starter New Member

    May 2, 2014
    23
    0
    how can i design 3 bit full adder from regular full adder?
    [​IMG]
    [​IMG]
    [​IMG]
     
    Last edited: May 2, 2014
  2. bertus

    Administrator

    Apr 5, 2008
    15,645
    2,344
    Last edited: May 2, 2014
  3. eldadoh

    Thread Starter New Member

    May 2, 2014
    23
    0
  4. tshuck

    Well-Known Member

    Oct 18, 2012
    3,531
    675
    Hello, and welcome to the forums.

    You will need to put some effort into the solution before we can help you.

    What do you think you may have to do?

    Also, when you add in decimal, at what point do you carry over to the next digit? Does that occur in binary? If so, where?

    When posting in Homework Help, be sure to include your best guess, or at least something you know about the problem so we can have a jumping off point for discussion.
     
  5. eldadoh

    Thread Starter New Member

    May 2, 2014
    23
    0
    well digital design is new for me , i am at the end of my first semester.the soultion is only from the subject of Adders and logic gates.
    about my question , I understand the truth table of HA and FA and the logic meaning of those components, but in FA there is sum of 2 binary digits and a carry and in my question there are 3 binary entries and a carry and I don't understand how I can build the correct truth table .
     
    Last edited: May 2, 2014
  6. tshuck

    Well-Known Member

    Oct 18, 2012
    3,531
    675
    Okay, you know that when you add (in decimal), you start from the lowest significant digit, add the two values and add any digits that exceed the possible values for a single digit (above 0-9) to the next higher digit.

    Can you make any connections with doing this in binary?
     
  7. eldadoh

    Thread Starter New Member

    May 2, 2014
    23
    0
    in binary I know that when I add :
    0+0=the sum is 0 and the carry is 0
    0+1=the sum is 1 and the carry is 0
    1+0=sum 1 carry 0
    1+1=sum 0 carry 1

    and when there is a carry :
    0+0 +carry 0=sum 0 carry 0
    0+0 +carry 1=sum 1 carry 0
    0+1 +carry 0=sum 1 carry 0
    0+1 +carry 1=sum 0 carry 1
    1+0 +carry 0=sum 1 carry 0
    1+0 +carry 1=sum 0 carry 1
    1+1 +carry 0=sum 0 carry 1
    1+1 +carry 1=sum 1 carry 1

    but in 3 entries and a carry
    0+0+0 +carry 0=sum 0 carry 0
    0+0+0 +carry 1=sum 1 carry 0
    0+0+1 +carry 0=sum 1 carry 0
    0+0+1 +carry 1=sum 0 carry 1
    0+1+0 +carry 0=sum 1 carry 0
    0+1+0 +carry 1=sum 0 carry 1
    0+1+1 +carry 0=sum 0 carry 1 ??
    0+1+1 +carry 1=sum 1 carry 1 ??
    1+0+0 +carry 0=sum 1 carry 0 ??
    1+0+0 +carry 1=sum 0 carry 1 ??
    1+0+1 +carry 0=sum 0 carry 1 ??
    1+0+1 +carry 1=sum 1 carry 1 ??
    1+1+0 +carry 0=sum 0 carry 1 ??
    1+1+0 +carry 1=sum 1 carry 1 ??
    1+1+1 +carry 0=sum 1 carry 1 ??
    1+1+1 +carry 1=sum 1 carry 1 second carry 1 ????? OR is it s1 (s1>sum=s0) =1 sum =0 carry =0 ??

    This is how my point of view, and I think i have a mistake.
     
  8. tshuck

    Well-Known Member

    Oct 18, 2012
    3,531
    675
    You are looking at the big picture, while I am taking about a single stage whose outputs become the next stage's inputs - the principle behind a ripple-carry adder.

    So, if you have a + b, where a ={a_{2},a_{1},a_{0}} and b ={b_{2},b_{1},b_{0}} , you add them in stages.

    So, let's add this is decimal and let a=133 and b=496

    Stage 0:
    a_{0}+b_{0} = 3+6 =9
    The sum(s_{0}) is 9 with no carry(c_{0}).

    Stage 1:
    a_{1}+b_{1} +carry_{0} = 3+9+0 =12
    The sum(s_{1}) is 2 with a carry(c_{1}) of 1.

    Stage 2:
    a_{2}+b_{2} +carry_{1} = 1+4+1 =6
    The sum(s_{2}) is 6 with a carry(c_{2}) of 0.

    The result is comprised of the sum of each stage s and the final carry, where s={s_{2},s_{1},s_{0}}, so the result is  result={carry_{2},s_{2},s_{1},s_{0}} = {0,6,2,9}, which tells us the result of 133 + 496 = 629.

    Looking at it like this, can you extend this method to a binary adder using full adders?
     
    Last edited: May 2, 2014
  9. eldadoh

    Thread Starter New Member

    May 2, 2014
    23
    0
    hello again , I think i didnt understand you . you tried to explain me how ripple carry header works ? anyway I understand this subject.
    what i am looking for is how to make this component , can you explain me how this one works ?
     
  10. tshuck

    Well-Known Member

    Oct 18, 2012
    3,531
    675
    Okay, if know how it works, would it be difficult to add another input per stage?
     
  11. eldadoh

    Thread Starter New Member

    May 2, 2014
    23
    0
    yes! because I Still don't know how to make the truth table of it. sorry I am new at this, what easy for you might be not easy for me . if you can look at the truth table that I wrote on one of my replies and try to fix me
     
  12. tshuck

    Well-Known Member

    Oct 18, 2012
    3,531
    675
    This is an intuitive approach - it is what you do everytime you add things, but you must look at it as a series of steps in order to do this.

    If you truly want a truth table, fill this out understanding that your sum is now two bits and the carry is still just one bit:
    A B C Cin S1 S2 Cout
    0 0 0 0
    0 0 0 1
    0 0 1 0
    0 0 1 1
    0 1 0 0
    0 1 0 1
    0 1 1 0
    0 1 1 1
    1 0 0 0
    1 0 0 1
    1 0 1 0
    1 0 1 1
    1 1 0 0
    1 1 0 1
    1 1 1 0
    1 1 1 1


    A truth table covers any and all possible inputs and shows the resulting outputs.
     
    Last edited: May 2, 2014
  13. WBahn

    Moderator

    Mar 31, 2012
    17,716
    4,788
    Consider how you add two decimal numbers. Say

    Code ( (Unknown Language)):
    1.  
    2.   37846
    3.  +29384
    4. ----------
    5.  
    When you are adding the hundreds column, what information do you need to know what the hundreds digit is in the answer and whether or not there is a carry to the thousands digit?
     
Loading...