Two-Level NOR circuit

Thread Starter


Joined Jan 10, 2007
For a homework I have to implement diferent circuits with AND, NOR, NAND, OR using two-level implementation and using real 2-input implementation. I've figured how to do this for all gates except NOR.
For all gates except NOR the following applies:
2-level implementation=2-input implementation
X (gate) Y (gate) Z = (X(gate)Y) (gate) Z

X (NOR) Y (NOR) Z ≠ (X(NOR)Y) (NOR) Z

how would I go from a 2-input NOR circuit to a 2-level (possibly 3 input NOR) circuit? i.e from the left hand side to an equivalent right hand side.


Thread Starter


Joined Jan 10, 2007
I used the bubble approach, and that works for NAND and NOR but you end up with a 2-input implementation of the circuit. Changing the 2-input NAND implementation to 2-level NAND implementation is easy because as I said:
((X NAND Y) NAND z) is the same as a single 3-input NAND gate (X NAND Y NAND Z)
but ((X NOR Y) NOR Z) is not the same as a 3-input NOR gate.


Joined Nov 25, 2009
Actually, NAND(x,y,z) isn't the same as (x NAND y) NAND z.

In the first case, the test input 111 gives a correct results of 0.
In the second case, the same input gives:
(1 NAND 1) NAND 1=
0 NAND 1=
which is wrong.

You need to add an extra gate to the first level, to "condition" the single input y. Think about it like passing it through a 1-input NAND gate.

The same applies to the NOR implementation.