BCD Adder
BCD Adder
BCD Adder
When the sum of two digits is less than or
equal to 9 then the ordinary 4-bit adder can
be used
But if the sum of two digits is greater than 9
then a correction must be added I.e adding
0110
We need to design a circuit that is capable of
doing the correct addition
BCD Adder
The cases where the sum of two 4-bit
numbers is greater than 9 are in the following
table:
S4 S
3
S
2
S
1
S
0
0 1 0 1 0 10
0 1 0 1 1 11
0 1 1 0 0 12
0 1 1 0 1 13
0 1 1 1 0 14
0 1 1 1 1 15
1 0 0 0 0 16
1 0 0 0 1 17
1 0 0 1 0 18
BCD Adder
Whenever S
4
=1 (sums greater than 15)
Whenever S
3
=1 and either S
2
or S
1
or both are
1 (sums 10 to 15)
The previous table can be expressed as:
X = S
4
+ S
3
( S
2
+ S
1
)
So, whenever X = 1 we should add a correction
of 0110 to the sum.
0011
0101
0 1 0 0 0
0
0
0
1000
0000
Inputs:[A]=0101, [B]= 0011, C
o
=0
1 0 0 0
1
0110
0111
0 1 1 0 1
1
1
1
1101
0110
Inputs:[A]=0111, [B]= 0110, C
o
=0
0 0 1 1
1
BCD Adder
BCD Adder
BCD Adder
Cascading BCD Adders
The previous circuit is used for adding two
decimal digits only. That is, 7 + 6 = 13.
For adding numbers with several digits, a separate
BCD adder for each digit position must be used.
For example:
2 4 7
5 3 8 +
--------------------
?
Cascading BCD Adders
Example
Determine the inputs and the outputs when
the above circuit is used to add 538 to 247.
Assume a CARRY IN = 0
Solution:
Represent the decimal numbers in BCD
247 = 0010 0100 0111
538 = 0101 0011 1000
Put these numbers in registers [A] and [B]
[A] = 0010 0100 0111
[B] = 0101 0011 1000
Example
0 1 1 1
1 0 0 0
0 1 0 0
0 0 1 1
0 0 1 0
0
0 1 0 1
0101
1
1000
0
0111
0