Skip to main content

Full adder using a single 4:1 MUX

Short answer

Connect A and B as select lines of a 4:1 MUX. For sum, set I0=I3=Cin, I1=I2=Cin' (with one NOT). Carry output is generated separately using gates: Cout = AB + Cin(A⊕B).

Realize full-adder using a single 4:1 MUX and logical gates.

A full adder adds AA, BB and CinC_{in} and gives

S=A⊕B⊕Cin,Cout=AB+Cin(A⊕B)S = A \oplus B \oplus C_{in}, \qquad C_{out} = AB + C_{in}(A \oplus B)

Use AA and BB as the select lines (S1=AS_1 = A, S0=BS_0 = B) of the 4:1 MUX and express each output in terms of CinC_{in}.

Truth table grouped by A, B

ABCinC_{in}SCoutC_{out}
00000
00110
01010
01101
10010
10101
11001
11111
ABS in terms of CinC_{in}CoutC_{out} in terms of CinC_{in}
00 (I0I_0)CinC_{in}0
01 (I1I_1)Cin′C_{in}'CinC_{in}
10 (I2I_2)Cin′C_{in}'CinC_{in}
11 (I3I_3)CinC_{in}1

Realization

  • Sum from the single 4:1 MUX: I0=CinI_0 = C_{in}, I1=Cin′I_1 = C_{in}', I2=Cin′I_2 = C_{in}', I3=CinI_3 = C_{in} (one NOT gate gives Cin′C_{in}').
  • Carry from gates: Cout=AB+Cin(A⊕B)C_{out} = AB + C_{in}(A\oplus B), using one XOR, two AND and one OR gate (or the simpler Cout=AB+BCin+ACinC_{out} = AB + BC_{in} + AC_{in}).
Cin ------+----------> I0 +-------+
          +-[NOT]--+-> I1 | 4:1   |
                   +-> I2 | MUX   |--> S
Cin -----------------> I3 |       |
                          +-------+
                          S1=A S0=B

A --+--[AND]---------------+
B --+--[   ]               +--[OR]--> Cout
A,B --[XOR]--[AND]---------+
Cin ---------[   ]

Check: A=1,B=0,Cin=1A=1, B=0, C_{in}=1 selects I2=Cin′=0I_2 = C_{in}' = 0 so S=0S = 0, and Cout=0+1⋅1=1C_{out} = 0 + 1\cdot1 = 1. This matches 1+0+1=1021+0+1 = 10_2.

(If a second 4:1 MUX were allowed, CoutC_{out} would use I0=0,I1=Cin,I2=Cin,I3=1I_0=0, I_1=C_{in}, I_2=C_{in}, I_3=1.)

✓ Answer checked by Claude Opus 5.5 (high effort)

All Digital Logic chapter 4 questions →