Skip to main content

Full adder using a single 1:4 DEMUX

Short answer

A 1:4 DEMUX with data=1 and selects A,B acts as a 2-to-4 decoder giving minterms Y0–Y3. Sum S = (Y1 OR Y2) XOR Cin, carry Cout = Y3 OR ((Y1 OR Y2) AND Cin). Requires one OR, one XOR, one AND, and one OR gate.

Realize a full-adder circuit using a single 1:4 demultiplexer and necessary logic gates.

A 1:4 demultiplexer with its data input tied to logic 1 behaves as a 2-to-4 decoder: with A,BA, B on the select lines, each output YiY_i is one minterm of AA and BB. The third input CinC_{in} is then combined with these outputs using a few gates.

Truth table of the full adder

ABCinC_{in}SCoutC_{out}
00000
00110
01010
01101
10010
10101
11001
11111

Expressing S and CoutC_{out} in terms of the DEMUX outputs

With S1=AS_1 = A, S0=BS_0 = B and data input D=1D = 1:

Y0=A′B′,Y1=A′B,Y2=AB′,Y3=ABY_0 = A'B',\quad Y_1 = A'B,\quad Y_2 = AB',\quad Y_3 = AB

From the table, grouping by ABAB:

ABDEMUX outputSCoutC_{out}
00Y0Y_0CinC_{in}0
01Y1Y_1Cin′C_{in}'CinC_{in}
10Y2Y_2Cin′C_{in}'CinC_{in}
11Y3Y_3CinC_{in}1
S=(Y0+Y3)Cin+(Y1+Y2)Cin′=(Y1+Y2)⊕CinCout=Y3+(Y1+Y2) Cin\begin{aligned} S &= (Y_0 + Y_3)C_{in} + (Y_1 + Y_2)C_{in}' \\ &= (Y_1 + Y_2) \oplus C_{in} \\ C_{out} &= Y_3 + (Y_1 + Y_2)\,C_{in} \end{aligned}

(Here Y1+Y2=A⊕BY_1 + Y_2 = A \oplus B.)

Circuit

        +----------+
  1 --->| D     Y0 |-- (not used)
        |  1:4  Y1 |--+
  A --->| S1    Y2 |--+--[OR]--- P  (= A xor B)
  B --->| S0    Y3 |------------ Y3
        +----------+

  P, Cin  ---[XOR]-------------------- S
  P, Cin  ---[AND]--- P.Cin --+
  Y3 -------------------------+--[OR]-- Cout

Gates needed: one 2-input OR (P=Y1+Y2P = Y_1 + Y_2), one XOR (S=P⊕CinS = P \oplus C_{in}), one AND (P⋅CinP \cdot C_{in}) and one OR (Cout=Y3+PCinC_{out} = Y_3 + P C_{in}).

Check: for A=1,B=1,Cin=1A=1, B=1, C_{in}=1: Y3=1Y_3 = 1, P=0P = 0, so S=0⊕1=1S = 0 \oplus 1 = 1 and Cout=1C_{out} = 1, i.e. 1+1+1=1121+1+1 = 11_2. Correct.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Digital Logic chapter 4 questions →