Re: Building chips problem.

Posted by cadet1620 on
URL: http://nand2tetris-questions-and-answers-forum.52.s1.nabble.com/Building-chips-problem-tp3468285p3706329.html

The important thing about the canonical representation is that it always exists and therefore any function that can be described in a truth table can be generated.

The canonical representation is rarely the simplest form of a function. There are various ways to find reduced forms.  One good method is to use Karnaugh Maps. Search the forum for "karnaugh". Also see http://www.facstaff.bucknell.edu/mastascu/elessonshtml/Logic/Logic3.html. Using Karnaugh Maps will reduce the fig. 1.1 function to
    (x . ~z) + (y . ~z)
You can use Boolean algebraic rules to reduce this to
    (x+y) . ~z

For TECS it is not necessary to find optimized implementations; any implementation that passes the tests is OK. For more complex parts the canonical representation is unmanageable -- the canonical representation for the sum output of a 16-bit adder has 32768 terms -- so it is important to learn how to design using abstraction.

--Mark

[Please edit your post to remove the simplified implementation of Mux. We want students to find this on their own.]