Full Adder

absf

Joined Dec 29, 2010
1,968


This is wrong... unless I am thinking wrong. Here is what I understood from you on this attachment, but it doesn't add up right.
Your schematic is correct but the way you placed the numbers is wrong. A1, B1 are less significant and should be placed on the right. A2, B2 are more significant and should be placed on the left. Like below

Then

Rich (BB code):
  B2 B1      1 0
+ A2 A1      1 1
----------------
     5     1 0 1
----------------

But in your case the answer is "4".
This is what Austin Clark was trying to explain - "Watch the labels"....

Allen
 
Last edited:

Austin Clark

Joined Dec 28, 2011
412




Your schematic is correct but the way you placed the numbers is wrong. A1, B1 is less significant and should be placed on the right. A2, B2 is more significant and should be placed on the left. Like below

Then

Rich (BB code):
  B2 B1      1 0
+ A2 A1      1 1
----------------
       5     1 0 1
----------------

But in your case the answer is "4".
Allen
I'm looking at your picture, where you wrote the sum as 100, it's actually showing up as 101. Also, the image you're using isn't my circuit. In my posted image, I have it layed out correctly, as you have typed.

You're correct that A2 and B2 are more significant, though, and do go on the left.
 

WBahn

Joined Mar 31, 2012
30,060
@aj88:

One thing that will help is if you adopt a consistent and widely accepted way of refering to the digits within a value's representation.

If you want to add two numbers, A and B, then A0 (generally a subscipt 0) is the least significant digit and A1 the next-to-least and so on. The same for B. This is extremely useful because the subscript is then equal to the exponent that is applied to the base of the representation before being multiplied by that digit.

Hence (in base 10):

A = 123
A = 1*100 + 2*10 + 3*1
A = 1*10^2 + 2*10^1 + 3*1^0

So when we express this as a sequence of variable representing the individual digits, we might write it as:

A = {A2 A1 A0}

where

A2 = 1
A1 = 2
A0 = 3

So if you want to add, in binary, A=11 to B=01, you would have:

A = {1 1} = {A1 A0}
B = {0 1} = {B1 B0}

You feed A0 and B0 to the first adder, A1 and B1 are fed to the second stage adder, and so on.
 

Thread Starter

aj88

Joined Sep 17, 2012
27
Ok, Thanks! Now I understand it! I will build soon and tell you the results. So the second adder's bits are more significant then the first?
 

Attachments

WBahn

Joined Mar 31, 2012
30,060
Yes. Just as in the number 42, the '4' is more significant than the '2' because the '4' represents 40 while the '2' only represents 2.

You know which adder stage is more significant than another by considering the connection of the carry out and carry in bits. Just as when adding numbers by hand, less significant bits produce carry information that is fed to the next more significant bit.
 

Thread Starter

aj88

Joined Sep 17, 2012
27
I made the adder using your diagram and it worked! You made it work with 2 less chips then my circuit! Thanks!
 

Austin Clark

Joined Dec 28, 2011
412
Thanks, WBahn, you took more time and did a better job explaining it than I did!

@aj88
I'm glad you got it all working like you wanted!
I hope you keep going, and become as excited about digital electronics as I have.
 
Top