Examples of Resets, Mux/Demux, Rise/Fall Edge Detect, Queue, FIFO, Interface, Clocking block, Operator, clock-divider, Assertions, Power gating & Adders.

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:

HalfAdder : 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 :

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 :

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:

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