Full Adder
A full adder is a basic combinational circuit that performs the addition of two -bit binary numbers along with a carry input , and produces an -bit sum along with a carry output . It may be composed of 1-bit full adders connected in series, where each 1-bit full adder handles a single bit of the input numbers and the carry from the previous bit addition:
\begin{document} \begin{tikzpicture} \begin{scope} % Draw the full adder block \draw (0,0) node[draw, minimum width=3cm, minimum height=3cm] (adder) {1-bit adder}; % Input labels and arrows \draw [<-] (-0.5, 1.5) -- (-0.5,2) node[above] {$A_0$}; \draw [<-] (0.5, 1.5) -- (0.5,2) node[above] {$B_0$}; \draw [<-] ++(adder.east) -- ++(0.5, 0) node[right] {$C_{in}=0$}; % Output labels and arrows \draw [->] (adder.west) -- ++(-0.5,0); \draw [->] (adder.south) -- ++(0,-0.5) node[below] {$\Sigma_0$}; \end{scope} \begin{scope}[xshift=-3.5cm] % Draw the full adder block \draw (0,0) node[draw, minimum width=3cm, minimum height=3cm] (adder) {1-bit adder}; % Input labels and arrows \draw [<-] (-0.5, 1.5) -- (-0.5,2) node[above] {$A_1$}; \draw [<-] (0.5, 1.5) -- (0.5,2) node[above] {$B_1$}; % Output labels and arrows \draw [->] (adder.west) -- ++(-0.5,0) node[left] {$\ldots$}; \draw [->] (adder.south) -- ++(0,-0.5) node[below] {$\Sigma_1$}; \end{scope} \begin{scope}[xshift=-8.15cm] % Draw the full adder block \draw (0,0) node[draw, minimum width=3cm, minimum height=3cm] (adder) {1-bit adder}; % Input labels and arrows \draw [<-] (-0.5, 1.5) -- (-0.5,2) node[above] {$A_{n-1}$}; \draw [<-] (0.5, 1.5) -- (0.5,2) node[above] {$B_{n-1}$}; \draw [<-] ++(adder.east) -- ++(0.5, 0); % Output labels and arrows \draw [->] (adder.west) -- ++(-0.5,0) node[left] {$C_{out}$}; \draw [->] (adder.south) -- ++(0,-0.5) node[below] {$\Sigma_{n-1}$}; \end{scope} \end{tikzpicture} \end{document}Where each module is a 1-bit adder,
\begin{document} \begin{tikzpicture} % Draw the full adder block \draw (0,0) node[draw, minimum width=3cm, minimum height=3cm] (adder) {1-bit adder}; % Input labels and arrows \draw [<-] (-0.5, 1.5) -- (-0.5,2) node[above] {A}; \draw [<-] (0.5, 1.5) -- (0.5,2) node[above] {B}; \draw [<-] ++(adder.east) -- ++(0.5, 0) node[right] {$C_{in}$}; % Output labels and arrows \draw [->] (adder.west) -- ++(-0.5,0) node[left] {$C_{out}$}; \draw [->] (adder.south) -- ++(0,-0.5) node[below] {$\Sigma$}; \end{tikzpicture} \end{document}
Properties
There are possible values for each binary number.
There are possible input combinations in total.
Examples
1-Bit Adder
\begin{document}
\begin{tikzpicture}
% Draw the full adder block
\draw (0,0) node[draw, minimum width=3cm, minimum height=3cm] (adder) {1-bit adder};
% Input labels and arrows
\draw [<-] (-0.5, 1.5) -- (-0.5,2) node[above] {A};
\draw [<-] (0.5, 1.5) -- (0.5,2) node[above] {B};
\draw [<-] ++(adder.east) -- ++(0.5, 0) node[right] {$C_{in}$};
% Output labels and arrows
\draw [->] (adder.west) -- ++(-0.5,0) node[left] {$C_{out}$};
\draw [->] (adder.south) -- ++(0,-0.5) node[below] {$\Sigma$};
\end{tikzpicture}
\end{document}