Sei sulla pagina 1di 23

Arithmetic Circuits

Half Adder
A
0 0 1 1

B
0 1 0 1

Sum
0 1 1 0

Carry
0 0 0 1

Sum AB AB A B Carry AB

Half Adder

Full Adder
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 Cin 0 1 0 1 0 1 0 1 Sum 0 1 1 0 1 0 0 1 Cout 0 0 0 1 0 1 1 1

Full Adder

Implementing a Full adder using two half adders

Parallel Binary Adder

Parallel Binary adder

Two Numbers X & Y


Each number is represented using 6 bits. [X]=XoX1X2X3X4X5 [Y]=YoY1Y2Y3Y4Y5

Complete Parallel Adder With Registers


D Flip-flops are used to save a single bit A number of D flip-flops are connected in a way to form the binary number, where each bit of that number is saved in a single D flip-flop.

Example: Sequence of operations in Adding 1001 and 0101


1) [A] = 0000. A CLEAR pulse is applied to CLR of each FF on register A at t1. 2) [M] [B]. The first binary number 1001 is transferred from memory to B register on the PGT of the LOAD pulse at t2. 3) [S] [A]. With [B] = 1001 and [A] = 0000, the full adders produce a sum of 1001 which is transferred to A register on the PGT of the TRANSFER pulse at t3. This makes [A] = 1001. 4) [M] [B]. The second binary number 0101 is transferred from memory to B register on the PGT of the second LOAD pulse at t4. This makes [B] = 0101. 5) [S] [A]. With [B] = 0101 and [A] = 1001, the full adders produce a sum of 1110 which is transferred to A register on the PGT of the second TRANSFER pulse at t5. This makes [A] = 1110.

Integrated Circuit Parallel Adder ( IC Parallel Adder )

4- Bits adder

8 Bit IC Parallel 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 0 0 0 0 0 0 1 1 1 S3 1 1 1 1 1 1 0 0 0 S2 0 0 1 1 1 1 0 0 0 S1 1 1 0 0 1 1 0 0 1 S0 0 1 0 1 0 1 0 1 0 10 11 12 13 14 15 16 17 18

BCD Adder
Whenever S4=1 (sums greater than 15) Whenever S3=1 and either S2 or S1 or both are 1 (sums 10 to 15) The previous table can be expressed as: X = S4 + S3 ( S2 + S1) So, whenever X = 1 we should add a correction of 0110 to the sum.

Inputs:[A]=0101, [B]= 0011, Co=0

0011

0101
0 0 0 0 1000 1 1 0 0 0 0000 1 0 0 0

Inputs:[A]=0111, [B]= 0110, Co=0

0110

0111
0 1 1 1 1101 1 0 0 1 1 0110 1 1 0 1

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: BCD Adder BCD Adder 2 4 7 5 3 8 + -------------------?
BCD Adder

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 0 1 0 0 0111 0 1000 0 1 0 0 1 0 0101 0 1 1 1

0 1 0 1

0 0 1 1

1 0 0 0

Potrebbero piacerti anche