Implementing 5-variable function using multiplexers
-
22-09-2019 - |
Question
If I have a 5-variable function (below) and I want to implement it using a multiplexer, how would I do that (using the minimum possible multiplexer):
f(A,B,C,D,E) = A + C'D + BD' + B'D + B'CE
This is homework, so don't provide a solution, just a guidance of how that works.
Thanks!
Solution
5 variables means a 2**5 (32) input multiplexer, with inputs 0 through 31. Convert the terms into binary numbers and hold the corresponding inputs high. For B'CE
we have:
A B C D E
X 0 1 X 1
This gives us 4 numbers, since we have 2 don't cares. The four numbers are:
00101 = 5
00111 = 7
10101 = 21
10111 = 23
Hold inputs 5, 7, 21, and 23 high.
Repeat for the rest of the terms.
OTHER TIPS
Since you explicitly mention
using the minimum possible multiplexer
there's another way of doing it in which you only need a 2^(n-1) input multiplexer to implement a n input function (so, in your case, a MUX with 2^4 inputs and 4 select inputs would suffice). The idea is to use the first n-1 inputs of the truth table as select inputs for the MUX while the remaining one is connected to the data inputs as appropriate to give the desired result.
Since I can't post images yet, see this for a concrete example: https://www.dropbox.com/s/v8osbd8gtwhtfor/n-1inputmux.png
Or for how to implement simple logic gates with MUXes: https://www.dropbox.com/s/7cqbodha7lcoi9y/n-1inputmuxbasics.png
Sources:
http:// sifaka.uwaterloo.ca/~akenning/courses/ece124/
http:// 6004.mit.edu/
(I can't post more than two real links...)