Email: boloor@unlv.nevada.edu
Cadence Tutorial 4 goes through the design, simulation, and layout
of a CMOS NAND gate.
Design of CMOS NAND Gate
The NAND gate has the following truth table:
Input A |
Input B |
Output |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
The CMOS NAND gate consists of two PMOS and two NMOS transistors,
shown below.
Simulation of CMOS NAND Gate
The following schematic shows the schematic drafted to test the
NAND gate, as well as its simulated results. When operating correctly, a NAND
gate should output high unless both of its inputs are high. Since the top
terminal of the NAND gate is tied high, the output changes with the pulse shown
in the bottom terminal. When this pulse is high, both terminals of the NAND are
high, so the output is low. When this pulse is low, only one terminal of the
NAND is high, so the output is low. The logic gate is working correctly.
Layout of CMOS NAND Gate
The layout and extracted views of the NAND gate are shown below,
along with their DRV and LVS verification.
|
|
|
Note that the tutorial leads us through designing a NAND gate
whose PMOS devices are 12u/600n in the layout, but 6u/600n in the schematic.
Though the LVS will still show verification, comparing device sizes can be
added to the parameters that the LVS checks by going to NCSU > Modify LVS
Rules > Compare FET parameters. The following LVS message will appear after
the size parameters are added:
The last step I took
for the prelab was backing up my work. This concludes Tutorial 4, as well as
the prelab.
Lab Work:
Designing the 2-Input NAND Gate:
The truth table for the NAND gate was shown in the prelab.
Simulation:
The simulation below
clearly follows the truth table for the NAND gate – the output is high for all
inputs except when both inputs are high. Glitches can be seen in the output
of the simulation; they can be attributed to the fact that the input signals
are pulses. The glitches occur during the small rise/fall time of these pulse
signals, as the inputs at those picoseconds are not perfect high/low values.
Layout with
Extracted View and LVS / DRC Verifications:
|
|
|
Designing the 2-Input XOR Gate:
The XOR gate has the following truth table:
Input A |
Input B |
Output |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
Schematic and Symbol:
Simulation:
The simulation below clearly follows the truth table for the XOR
gate – the output is high when the inputs are not the same. Glitches can be
seen in the output of the simulation for the same reasons mentioned earlier -
the gate is not reading a clear value at those moments.
Layout with Extracted View and LVS / DRC Verifications:
|
|
|
|
|
|
Designing the Full Adder:
The full adder
was drafted using the NAND and XOR gates shown above. It has the following
truth table:
A |
B |
Cin |
S |
Cout |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
Schematic and Symbol:
Simulation:
The simulation below resembles the information shown in the truth
table above – the sum of the three inputs is added and then represented by Sum
and Cout. Again, the glitches seen in the output
of the simulation are due to the full adder not reading clear high/low values
at the rise and fall times of the input pulses.
Layout with Extracted View and LVS / DRC Verifications:
Lastly, I backed up all my work
to my Google Drive.
This concludes lab 6.