CMOS Digital Logic Circuits

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 $D$ and source $S$ controlled by the voltage $V_{gs}$ between gate $G$ and source $S$. When $V_{gs}>V_{Tn}$ (e.g., $V_{Tn}=1\;V$) for nMOS and $V_{gs}\le V_{Tp}$ (e.g., $V_{Tp}=-1\;V$) for pMOS, the circuit is a short-circuit because of the low resistance between $D$ and $S$; otherwise, the circuit is an open-circuit due to the large resistance between $D$ and $S$. 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 $f(a,b,\cdots,x)$ 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 $f(a,b,\cdots,x)$ is conduting and the pull-down circuit representing the negation of the function $f'(a,b,\cdots,x)$ 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.

CMOSlogic.gif

The specific circuits of the pull-up and pull-down networks are based on De Morgan's Law which states: the negation (complement) $f'$ of a logic function $f$ 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 $f(a,b,c)=(a'+b')c$, we can find its negation by De Morgan's law:

$\displaystyle f'(a,b,c)=[(a'+b')c]'=(a'+b')'+c'=ab+c'$ (183)

Here are the CMOS implementations of some simple logic functions: