| NAND and NOR gates possess a special property: they are 
    universal. That is, given enough gates, either type of gate is able to mimic 
    the operation of any other gate type. For example, it is possible to 
    build a circuit exhibiting the OR function using three interconnected NAND 
    gates. The ability for a single gate type to be able to mimic any other gate 
    type is one enjoyed only by the NAND and the NOR. In fact, digital control 
    systems have been designed around nothing but either NAND or NOR gates, all 
    the necessary logic functions being derived from collections of 
    interconnected NANDs or NORs.
 As proof of this property, this section will be divided into subsections 
    showing how all the basic gate types may be formed using only NANDs or only 
    NORs.  Constructing the NOT function 
      As you can see, there are two ways to use a NAND gate as an inverter, and 
    two ways to use a NOR gate as an inverter. Either method works, although 
    connecting TTL inputs together increases the amount of current loading to 
    the driving gate. For CMOS gates, common input terminals decreases the 
    switching speed of the gate due to increased input capacitance.  Inverters are the fundamental tool for transforming one type of logic 
    function into another, and so there will be many inverters shown in the 
    illustrations to follow. In those diagrams, I will only show one method of 
    inversion, and that will be where the unused NAND gate input is connected to 
    +V (either Vcc or Vdd, depending on whether the 
    circuit is TTL or CMOS) and where the unused input for the NOR gate is 
    connected to ground. Bear in mind that the other inversion method 
    (connecting both NAND or NOR inputs together) works just as well from a 
    logical (1's and 0's) point of view, but is undesirable from the practical 
    perspectives of increased current loading for TTL and increased input 
    capacitance for CMOS.  Constructing the "buffer" function Being that it is quite easy to employ NAND and NOR gates to perform the 
    inverter (NOT) function, it stands to reason that two such stages of gates 
    will result in a buffer function, where the output is the same logical state 
    as the input.  
      Constructing the AND function To make the AND function from NAND gates, all that is needed is an 
    inverter (NOT) stage on the output of a NAND gate. This extra inversion 
    "cancels out" the first N in NAND, leaving the AND function. 
    It takes a little more work to wrestle the same functionality out of NOR 
    gates, but it can be done by inverting ("NOT") all of the inputs to a NOR 
    gate.  
      Constructing the NAND function It would be pointless to show you how to "construct" the NAND function 
    using a NAND gate, since there is nothing to do. To make a NOR gate perform 
    the NAND function, we must invert all inputs to the NOR gate as well as the 
    NOR gate's output. For a two-input gate, this requires three more NOR gates 
    connected as inverters.  
      Constructing the OR function Inverting the output of a NOR gate (with another NOR gate connected as an 
    inverter) results in the OR function. The NAND gate, on the other hand, 
    requires inversion of all inputs to mimic the OR function, just as we needed 
    to invert all inputs of a NOR gate to obtain the AND function. Remember that 
    inversion of all inputs to a gate results in changing that gate's essential 
    function from AND to OR (or visa-versa), plus an inverted output. Thus, with 
    all inputs inverted, a NAND behaves as an OR, a NOR behaves as an AND, an 
    AND behaves as a NOR, and an OR behaves as a NAND. In Boolean algebra, this 
    transformation is referred to as DeMorgan's Theorem, covered in more 
    detail in a later chapter of this book.  
      Constructing the NOR function Much the same as the procedure for making a NOR gate behave as a NAND, we 
    must invert all inputs and the output to make a NAND gate function as a NOR.
     
      |