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’)\$
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
I think you mean:
F0 = A'B + AB' Z = S1'S2'(F0) + ...
F0 could also be done with a SN7486:
F0 = A xor B