Friday, September 18, 2009 11:19 PM,
A student writes: Professor Patt: Im a student in your 306 class. And I was working with my group on the problem set and we had a question concerning problem 6B. One of the conditions of the problem is to not use a "NOT GATE". Do you mean by that like dont use INVERTERS on our muxes? Thanks <<name withheld to protect the student wanting to use INVERTERS>> Actually, the problem is even more restrictive than that. You are being asked to implement a logic circuit consisting of ONLY two 2to1 MUXes that provides at the output A XOR B. You are not allowed to use inverters, AND gates, OR gates or any other gates. Just two 2to1 muxes. Recall that a two2one MUX has two sources X and Y, one output Z, and one select line S. X, Y, and S can be either A, B, 0, 1 or the output of the other MUX. We put this problem into the problem set because some students like the challenge of a tricky problem. The fact is, we would never put a problem like this on an exam because in addition to testing your understanding of MUXes and the XOR function, you have to see the trick. And, we have far too much understanding to test to bother putting trick questions on an exam. However, for homework, we thought we would provide the opportunity for joy for those who solve 6b. If this is not you, feel free to use more than two 2to1 MUXes (but ONLY 2to1 MUXes), which removes the trick from the problem. I apologize for not labeling Problem 6b with a warning: THIS IS A TRICK QUESTION for those who like to solve tricky puzzles. For the rest of you, feel free to use a third 2to1 MUX. Let me also supply a hint for using MUXes to implement arbitrary logic functions. If you recognize that only one input combination can be present at one time, one could use the input variables for the Select lines, and the output for that input combination as the source when the Select lines are so chosen. _ _ _ _ For example, suppose we want to implement f(a,b,c) = abc + abc + abc That is, the truth table looks like: a b c | f ------|--- 0 0 0 | 0 0 0 1 | 0 0 1 0 | 1 0 1 1 | 1 1 0 0 | 0 1 0 1 | 1 1 1 0 | 0 1 1 1 | 0 We can implement this with an 8to1 MUX as shown below: 0 0 1 1 0 1 0 0 | | | | | | | | | | | | | | | | v v v v v v v v ------------------------- 3 \ / a,b,c --/-->\ / \ / ------------------- | | V f(a,b,c) Now, your job: Problem 6b. Implement A XOR B using ONLY 2to1 MUXes, and if you can't do it with two of them, use three and get full credit. Good luck with the rest of the problem set as well. Yale Patt