Anonymous user menu

Carry Look Ahead Adder

In order to overcome the disadvantaged of Ripple carry Adder, we use carry look ahead Adder. 

The problem with ripple carry adder is a dependency on the previous stage for carry bit.



Note:   C_{n} will be 1 if: C_{n-1} is 1 and either of two input is 1 or Both inputs are 1

               In other words, we can write is as 

               C_{n}= C_{n-1}(A_{n-1} \oplus B_{n-1}) + A_{n-1}B_{n-1}

               The reason we are using \oplusis: It gives output 1 when either of one input is 1


Step 1: Writing carry equation

C_{1}= C_{0}(A_{0} \oplus B_{0}) + A_{0}B_{0}

C_{2}= C_{1}(A_{1} \oplus B_{1}) + A_{1}B_{1}

C_{3}= C_{2}(A_{2} \oplus B_{2}) + A_{2}B_{2}

C_{4}= C_{3}(A_{3} \oplus B_{3}) + A_{3}B_{3}

let's assume 

G_{i}= A_{i}B_{i}              //  generating term

P_{i}= A_{i}\oplus B_{i}      //    propagation term


Step 2: rewriting the carry equation in terms of P_{i} and G_{i}

C_{1}= C_{0}(P_{0})+ G_{0}

C_{2}= C_{1}(P_{1})+ G_{1}

C_{3}= C_{2}(P_{2})+ G_{2}

C_{4}= C_{3}(P_{3})+ G_{3}


Step 3: removing carry dependency   

C_{1}= C_{0}(P_{0})+ G_{0}

C_{2}= (C_{0}(P_{0})+ G_{0})P_{1} + G_{1}

C_{3}= ((C_{0}(P_{0})+ G_{0})P_{1} + G_{1})P_{2} + G_{3}

C_{4}= (((C_{0}(P_{0})+ G_{0})P_{1} + G_{1})P_{2} + G_{3})P_{3} + G_{3}

C_{4}= C_{0}P_{0}P_{1}P_{2}P_{3} + G_{0}P_{1}P_{2}P_{3}+ G_{1}P_{2}P_{3}+G_{2}P_{3} + G_{3}

Now, we can clearly see that there is no carry dependency except C_{0}

Final Picture:



Total number of AND gate used is: 10

Total number of OR gate used is: 4



What to read next

Please Go through all these linksW3Schools – HTML Tutorial