design 3 bit adder from full adders

bertus

Joined Apr 5, 2008
22,278
Last edited:

tshuck

Joined Oct 18, 2012
3,534
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.
 

Thread Starter

eldadoh

Joined May 2, 2014
23
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:

tshuck

Joined Oct 18, 2012
3,534
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?
 

Thread Starter

eldadoh

Joined May 2, 2014
23
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.
 

tshuck

Joined Oct 18, 2012
3,534
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:

Thread Starter

eldadoh

Joined May 2, 2014
23
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
 

tshuck

Joined Oct 18, 2012
3,534
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:

WBahn

Joined Mar 31, 2012
30,076
Consider how you add two decimal numbers. Say

Rich (BB code):
  37846
 +29384
----------
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?
 
Top