Adders :

Adders are used extensively in Computer arithmetic in addition, Subtraction, multiplication and division. There are is a constant attempt to make Adders faster as faster Arithmetic leads to faster Machine , E,g Faster Graphics . At very basic level Adders are classified as Half Adders and Full Adders:

Half Adder : Its a 1-bit Adder with no Carry-in. Output is 1-bit Sum and a Carry-out. Sum is XOR of inputs and Carry out is AND of inputs & is represented as follows:

Sum   = A ^ B;
Carry = A & B;

Gate and block diagram representation of Half Adder is shown below :

Half Adder
Half Adder
(Courtesy: Creative Commons, Attribution-Share Alike 4.0 International )
Half Adder Block Diagram

Full Adder : Its a 1-bit/multi-bit Adder with carry in from previous Adder. Sum and Carry-out are represented as :

Sum    = A ^ B ^ C;
       = A B C + A' B' C' + A' B C' + A B'C';

Carry  = C (A ^ B) + AB;
       = C ( A B' + A' B) + AB; 
       = A B' C + A' B C + A B;

Gate and block diagram representation of Half Adder is shown below :

Full Adder
Full Adder
(Courtesy : Creative Commons Attribution-Share Alike 4.0 International )
Full Adder
Block Diagram

Multi-bit Adders can be formed by combining HA and FA. In each case, calculation of Carry is the most critical part in terms of Timing. Here’s an example of 2-bit Adder & 4-bit Adder formed using 1 HA and multiple FA:

2-bit Adder
4-Bit Adder (Ripple-Carry)
(Courtesy: Creative Commons Attribution-Share Alike 4.0 International )

In order to optimize carry and make Adders fasters, different flavors of Adders have been introduced:
1. Ripple Carry Adder
2. Cary-Save Adder
3. Look-Ahead Carry Adder