Comlementary CMOS Logic Gates: nMOS Pull-Down Network pMOS Pull-Up Network Static CMOS
Comlementary CMOS Logic Gates: nMOS Pull-Down Network pMOS Pull-Up Network Static CMOS
Comlementary CMOS Logic Gates: nMOS Pull-Down Network pMOS Pull-Up Network Static CMOS
CMPE 640
Complementary CMOS
Comlementary CMOS Logic Gates:
nMOS pull-down network
pMOS pull-up network
Static CMOS
pMOS
pull-up
network
inputs
output
nMOS
pull-down
network
Pull-down OFF
Pull-up OFF
Z (float)
Pull-up ON
1
Pull-down ON
X(Crowbar)
Introduction
CMPE 640
(C D)
(A B) + (C D)
AND: Series
OR: Parallel
Introduction
CMPE 640
(C + D)
OR: Parallel
(A + B) (C + D)
OR: Parallel
AND: Series
Introduction
CMPE 640
D
F
Introduction
CMPE 640
Useful Transformations
You must know all the following transformations between levels of abstractions
Boolean expression
(with reductions)
1
2
CMOS transistor-level
schematic analysis
3
4
CMOS layout
Introduction
CMPE 640
Useful Transformations
The following heuristics can be applied as target reductions that will help you to obtain
minimum realizations:
Since CMOS is naturally inverting, you'll want to target a final expression of the
form:
F = ( expression )
Many times only uncomplemented literals are available as signals in your circuit.
Therefore, the reductions should attempt to remove the complemented literals in
the Boolean expression.
Application of De Morgan's Laws can be used to transform complemented literals
to NANDs and NORs.
You should analyze each transformation to learn the trade-offs.
Introduction
CMPE 640
Transformation Examples
Let's try:
F = ( AB ) + ( C + D )E
The following reduction sequence can be applied that targets NANDs and removes the
complemented literals:
F = ( AB ) + ( C + D )E
F = ( AB ) + ( C + D )E
F = AB ( C + D )E
F = ( A + B ) ( C + D )E
F = A ( C + D )E + B ( C + D )E
Build here?:
F = ( A + B ) ( C + D )E
# transistors: 6 for OAI, 2 for
inverter for B, 6 for final OAI.
Multiply.
F = A ( C + D )E + B + ( C + D )E
F = A ( C + D )E + B + ( C + D )E
Introduction
CMPE 640
Transformation Examples
Note that further reductions to NANDs and NORs may not pay off in the previous case.
In the next case, it is possible to get rid of an uncomplemented literal without increasing the
size of the OAI:
F = ( AB ) + ( C + D )E
F = ( AB ) + ( C + D )E
F = AB ( C + D )E
F = ( A + B ) ( C + D )E
Build here?:
F = ( A + B ) ( C + D )E
# transistors: 6 for OAI, 4 for
inverters, 6 for final OAI.
F = (A + B)(C + D + E)
Introduction
CMPE 640
Transformation Examples
Expressions with repeated variables may be simplified to save a couple transistors
F = ABC + ACD
F = ABC + ACD
4 + 2 + 10 + 2
F = ( A + BC ) ( A + CD )
2 + 4 + 10
2 + 4 + 10
F = ( A + CD ) + ABC
F = ( A + CD ) + ABC
6 + 8 ( 14 !)
Introduction
CMPE 640
Transformation Examples
In contrast to:
F = ( AB ) + ( A + C )D
F = ( AB ) + ( A + C )D
F = ( A + B ) ( A + C )D
F = ( A + B ) ( AD + CD )
F = (A + B)(A + D)(C + D)
F = ( AB ) ( A + C )D
6 for AB NAND, 8 for OAI,
4 for final NAND.
F = ( A + B ) ( A + C )D
8 for OAI, 2 for inverted B,
6 for final OAI.
F = ( AA + AD + AB + BD ) ( C + D )
F = ABC + ABD + ADC + ADD + BDC + BDD
F = ABC + ABD + AD + BD
F = ABC + D ( A + B )
F = (A + B + C) + D(A + B)
10
Introduction
CMPE 640
Transformation Examples
Sometimes it is best to implement the inverse function and add an inverter.
For example, Carry, which has all uncomplemented inputs.
Carry = AB + C in ( A + B )
Carry = AB + C in ( A + B )
What about XOR and XNOR?
F = AB + AB
F = AB + AB
F = (A + B)(A + B)
F = AB + AB
F = AB + ( A + B )
Introduction
CMPE 640
Useful Transformations
(2) Translating from transistor-level schematics to Boolean expressions is straightforward.
Simply write the n-tree expression using the rules for series and parallel transistors given
earlier. Invert the final expression.
(3) Translating from transistor-level schematic diagrams to layout is covered in the laboratories.
(4) Translating from layout to transistor-level schematic diagrams is also covered in the
laboratories.
In general, start by identifying the transistor sources connected to VDD or GND
nodes.
Add series transistors in the schematic for transistors whose sources are connected to
drains of the previously identified transistors.
Add parallel transistors at fan-out points.
Label the transistors so it possible to connect the gates properly by tracing the poly
connections.
12