Implement a full-adder using Karnaugh maps.
Figure 10.17 shows an arrangement for adding two 4bit binary numbers A_{3} A_{2} A_{1} A_{0} and B_{3} B_{2} B_{1} B_{0} to give a 5-bit result X_{4} X_{3} X_{2} X_{1} X_{0}, where A_{3}, B_{3}, and X_{4} represent the most significant bits, and A_{0}, B_{0}, and X_{0} represent the least significant bits. It is common practice to number the bits of binary numbers from the right and to start from 0. Thus an n-bit number has digits from 0 to n-1.
It can be seen that each full-adder has three inputs ( A, B, and the carry input C_{i} ) and two outputs (the sum S, and the carry output C_{o} ). The function of the full-adder is described by the truth table of Fig. 10.18.
Boolean expressions can be obtained directly from this truth table and simplified using algebraic manipulation. Alternatively, the data can be represented using Karnaugh maps, as shown in Fig. 10.19.
From either method of simplification we find that
\begin{aligned} & C_{o}=A B+A C_{i}+B C_{i} \qquad 10.3 \\ & \text { and } S=\bar{A} \bar{B} C_{i}+\bar{A} B \bar{C}_{i}+A B C_{i}+A \bar{B} \bar{C}_{i} \qquad 10.4 \end{aligned}
These functions can be implemented directly, as shown in Fig. 10.20.