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
: