NOR logic

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
A single NOR gate

A NOR gate is a logic gate which gives a positive output only when both inputs are negative.

Like NAND gates, NOR gates are so-called "universal gates" that can be combined to form any other kind of logic gate. For example, the first embedded system, Apollo Guidance Computer, was built exclusively from NOR gates, about 5,600 in total for the later versions. Today, integrated circuits are not constructed exclusively from a single type of gate. Instead, EDA tools are used to convert the description of a logical circuit to a netlist of complex gates (standard cells) or transistors (full custom approach).

NOR[edit]

A NOR gate is logically an inverted OR gate. By itself has the following truth table:

NOR ANSI Labelled.svg

Q = NOT( A OR B )

Truth Table
Input A Input B Output Q
0 0 1
0 1 0
1 0 0
1 1 0

Making other gates by using NOR gates[edit]

A NOR gate is a universal gate, meaning that any other gate can be represented as a combination of NOR gates.

NOT[edit]

This is made by joining the inputs of a NOR gate. As a NOR gate is equivalent to an OR gate leading to NOT gate, this automatically sees to the "OR" part of the NOR gate, eliminating it from consideration and leaving only the NOT part.

Desired NOT Gate NOR Construction
NOT ANSI Labelled.svg NOT from NOR.svg
Q = NOT( A ) = A NOR A
Truth Table
Input A Output Q
0 1
1 0

OR[edit]

The OR gate is equivalent to a NOR gate followed by a NOT gate. Note that we already know that a NOT gate is equivalent to a NOR gate with its inputs joined.

Desired OR Gate NOR Construction
OR ANSI Labelled.svg OR from NOR.svg
Q = A OR B = ( A NOR B ) NOR ( A NOR B )
Truth Table
Input A Input B Output Q
0 0 0
0 1 1
1 0 1
1 1 1

AND[edit]

An AND gate gives a 1 output when both inputs are 1; a NOR gate gives a 1 output only when both inputs are 0. Therefore, an AND gate is made by inverting the inputs of a NOR gate. Again, note that a NOT gate is equivalent to a NOR gate with its inputs joined.

Desired AND Gate NOR Construction
AND ANSI Labelled.svg AND from NOR.svg
Q = A AND B = ( A NOR A ) NOR ( B NOR B )
Truth Table
Input A Input B Output Q
0 0 0
0 1 0
1 0 0
1 1 1

NAND[edit]

A NAND gate is made using an AND gate in series with a NOT gate.

Desired NAND Gate NOR Construction
NAND ANSI Labelled.svg NAND from NOR.svg
Q = A NAND B = [ ( A NOR A ) NOR ( B NOR B ) ] NOR
[ ( A NOR A ) NOR ( B NOR B ) ]
Truth Table
Input A Input B Output Q
0 0 1
0 1 1
1 0 1
1 1 0

XNOR[edit]

An XNOR gate is constructed similarly to an AND gate, except with an additional NOR gate inserted such that if both inputs are low, the inputs to the final NOR gate will also be low, and the output will be high. This construction has a propagation delay three times that of a single NOR gate and uses four gates.

Desired XNOR Gate NOR Construction
XNOR ANSI Labelled.svg XNOR from NOR.svg
Q = A XNOR B = [ A NOR ( A NOR B ) ] NOR
[ B NOR ( A NOR B ) ]
Truth Table
Input A Input B Output Q
0 0 1
0 1 0
1 0 0
1 1 1

Alternatively, the B-input of the XOR gate with the 3-gate propagation delay can be inverted. This construction uses five gates instead of four.

Desired Gate NOR Construction
XNOR ANSI Labelled.svg XNOR from NOR 2.svg
Q = A XNOR B = [ B NOR ( A NOR A ) ] NOR
[ A NOR ( B NOR B ) ]

XOR[edit]

An XOR gate is made by connecting the output of 3 NOR gates (connected as an AND gate) and the output of a NOR gate to the respective inputs of a NOR gate. This construction entails a propagation delay three times that of a single NOR gate and uses five gates.

Desired XOR Gate NOR Construction
XOR ANSI Labelled.svg XOR from NOR.svg
Q = A XOR B = [ ( A NOR A ) NOR ( B NOR B ) ] NOR
( A NOR B )
Truth Table
Input A Input B Output Q
0 0 0
0 1 1
1 0 1
1 1 0

Alternatively, the 4-gate version of the XNOR gate can be used with an inverter. This construction has a propagation delay four times (instead of three times) that of a single NOR gate.

Desired Gate NOR Construction
XOR ANSI Labelled.svg XOR from NOR 2.svg
Q = A XOR B = { [ A NOR ( A NOR B ) ] NOR
[ B NOR ( A NOR B ) ] } NOR
{ [ A NOR ( A NOR B ) ]
NOR [ B NOR ( A NOR B ) ] }

See also[edit]

References[edit]