A student writes:

     Dr. Patt,
     On problem set #3, one of the problems asked us to prove how the
     NOR gate was logically complete. After going through some painful
     times, I was able to answer the question and come up with 3 different
     logic circuits (AND, NOT, and OR) constructed using only NOR gates. 

Good for you! That is indeed the way to show that NOR gates are complete.

     Now, my question is: If NOR gates are logically complete,
     why do we need to have AND, NOT, and OR gates? 

We don't.

     Why isn't everything on a chip made up of NOR gates? 

Some chips are indeed made up of only NOR gates. (And, we could make a chip out of only NAND gates, if we wanted, since it too is by itself logically complete.)

     Is it just a matter of the number of transistors being used?

Nope. In fact, if you look at Figure 3.6 in the book, the NOR gate requires fewer transistors than the OR gate.

     Also, by saying that "the NOR gate, by itself, is logically
     complete," isn't that a challenge to section 3.3.5 in the book, which
     states that all we need are AND gates, NOT gates, and OR gates? 
     Having in mind that AND, NOT, and OR gates can be constructed with
     NOR gates, this sounds contradictory to me. 

Why is this contradictory? It says all we need are AND, NOT, and OR gates. That is true. That is all we need. We do not need NOR gates since we can build NOR out of OR and NOT. Or, all we need are NOR gates. That is also true. Or, all we need is AND, XOR, and the ability to provide the power supply voltage to the input of a circuit.

It turns out that most of us think more easily in terms of AND, OR, and NOT and that is why we generally express all that we want to do in terms of these three kinds of gates. The real circuits in today's microprocessors are generally produced by software programs that take our descriptions in terms of AND, OR, and NOT and convert them into the appropriate transistor circuits that will do the job, minimizing whatever constraint we are trying to optimize (like minimum energy consumption, for example). OK?

Yale Patt

     Thanks you Dr. Patt!
     << name withheld >>