I want to make sure I understand writing boolean expressions for MUXs.

For F0, I derived the following boolean expression: \$\ F0 = S1’S2’(A’B + AB’)\$

from this circuit: enter image description here

Is this correct? If so, is there a way to further minimize this?


In this case the mux's are being used to implement arbitrary logic functions determined by their inputs and selects. One giveaway is when you see all the inputs of a mux tied to either 0 or 1, you can simply derive its expression by finding what inputs are 1's, and what values of select will select those 1's.

Mux's are used to select one of many inputs (left side) based on their select signals (bottom part of mux) to show up at the output (right side).

For the upper mux, since it's inputs are tied to logic values either 0 or 1, the mux is just implementing the logic function determined by those tied input values:

A B F0
0 0 0
0 1 1
1 0 1
1 1 0

Using a karnaugh map, or by inspection you can realize that this is XOR (exclusive or).

F0 = A'*B + A*B'

F1 is the same but with BC:

F1 = B'*C + C'*B

F2 can be expressed:

F2 = A*B*C + A*B'*C' + A'*B*C' + A'*B'*C

F3 can be expressed:

F3 = A'*B'*C

Now you do the same thing for the output:

Z = S1*S2*F0 + S1*S2'*F1 + S1'*S2*F2 + S1'*S2'*F3

Pretty straightforward algebra from here, just substitute and factor/simplify

  • \$\begingroup\$ Thank you so much, that clarifies so much. I would +1, but I don't have the reputation points to do that yet. \$\endgroup\$ – Jonathan May 10 '16 at 22:19

I think you mean:

F0 = A'B + AB'
Z = S1'S2'(F0) + ...

F0 could also be done with a SN7486:

F0 = A xor B
  • \$\begingroup\$ Opps, sorry about that. Yes, that is what I meant. \$\endgroup\$ – Jonathan May 10 '16 at 21:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.