The Logic family is composed of different types of digital logic circuits:
Both the p-channel MOSFET (pMOS) and n-channel MOSFET (nMOS) can be treated as a switch between its drain and source controlled by the voltage between gate and source . When (e.g., ) for nMOS and (e.g., ) for pMOS, the circuit is a short-circuit because of the low resistance between and ; otherwise, the circuit is an open-circuit due to the large resistance between and . A circuit composed of both types of MOSFET transistors is called a complementary MOS or CMOS circuit, which is widely used in digital systems.
Due to such logic properties of the series and parallel connections of the MOS transistors, various logic circuits can be constructed to realize any arbitrary logic function by two complementary networks of MOS transistors:
These two pull-up and pull-down networks will turn on and off alternatively, depending on the input variables of the logic function. If the pull-up circuit representing the function is conduting and the pull-down circuit representing the negation of the function is cut-off, the voltage at output is pulled up to a high voltage (logical 1) indicatng the function is true; when the pull-up circuit is cut-off and the pull-down circuit is conducting, the voltage at output is pulled down to a low voltage (logical 0) indicating the function is false.
The specific circuits of the pull-up and pull-down networks are based on De Morgan's Law which states: the negation (complement) of a logic function can be found by negating the logical operations (turn AND to R and OR to AND) as well as the variables in a function. For example, given a logic function , we can find its negation by De Morgan's law:
(183) |
Here are the CMOS implementations of some simple logic functions:
The NOT gate is implemented by a pull-up circuit composed of only a pMOS transistor and its complementary pull-down circuit composed of only a nMOS transistor:
The pull-up function is , the pull-down function is .
The pull-up function , the pull-down function is .
(184) |
The pull-up network implements the given function while the pull-down network implements its negation :