Lab 6 - EE 421L
Authored
by Henry Chan,
chanh6@unlv.nevada.edu
20 October 2014
This lab is meant to design, layout, and simulate a CMOS NAND gate, XOR gate, and Full-Adder.
We
start by first creating the necessary schematics for the 2-input NAND
gate, and 2-input XOR gate using 6u/0.6u MOSFETs (both NMOS and PMOS).
2-Input NAND Gate
Schematic:
The
schematic was created using nmos4 and pmos4 instances from the
NCSU_Analog_Parts library. The lengths and widths of the mosfets were
adjusted and the connections were made as shown below.
![images/nand2_schematic.JPG](images/nand2_schematic.JPG)
Symbol:
A symbol was created using Create->Cellview->From Cellview as shown below.
![images/nand2_symbol.JPG](images/nand2_symbol.JPG)
Layout:
The
layout was created using nmos and pmos instances from the
NCSU_TechLib_ami06 library. Ntap and ptap cells were included to tie
Vdd and ground sources. Pins were then assigned to the appropriate
areas for a successful LVS.
![images/nand2_layout.JPG](images/nand2_layout.JPG)
![images/nand2_LVS.JPG](images/nand2_LVS.JPG)
2-Input XOR Gate
Schematic:
Again, instances of nmos4 and pmos4 from the NCSU_Analog_Parts library were used to create the xor schematic.
![images/xor_schematic.JPG](images/xor_schematic.JPG)
Symbol:
The symbol for the xor gate was made using the same method for the nand gate.
![images/xor_symbol.JPG](images/xor_symbol.JPG)
Layout:
The layout used nmos and pmos instances from the NCSU_TechLib_ami06 library.
![images/xor_layout.JPG](images/xor_layout.JPG)
LVS shows net lists match with no errors.
![images/xor_LVS.JPG](images/xor_LVS.JPG)
Simulating the Gates
Spectre was used to simulate the logical operation of the gates for all four possible inputs (00,01,10,11).
![images/sim_gates_schematic.JPG](images/sim_gates_schematic.JPG)
The plot below shows the correct output logic.
A | B | AND | XOR | NOT A |
0 | 0 | 0 | 0 | 1 |
0 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 1 | 1 | 0 | 0 |
![images/sim_gates_simulation.JPG](images/sim_gates_simulation.JPG)
It
is important to note that any delays from one input of the circuit can
drastically affect the output results due to unsynchronized operation
of the inputs. For example, if input A must traverse through a greater
length mosfet than input B, input A may experience more delay, thus the
output may incorrectly evaluate the state of input B versus an
unarrived input A.
Full-Adder
Schematic:
Using the symbols from the nand and xor gates, the full-adder schematic is created.
![images/full_adder_schematic.JPG](images/full_adder_schematic.JPG)
Symbol:
The symbol view was created similar to the other symbols in this lab.
![images/full_adder_symbol.JPG](images/full_adder_symbol.JPG)
Simulation:
A
simulation schematic was created using the full-adder symbol above.
Three voltage pulse sources were used as inputs a,b, and cin. Each
pulse source has a different frequency in order to demonstrate all
input possibilities.
![images/sim_full_adder_schematic.JPG](images/sim_full_adder_schematic.JPG)
a | b | cin | s | cout |
0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 0 |
0 | 1 | 0 | 1 | 0 |
1 | 1 | 0 | 0 | 1 |
0 | 0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
0 | 1 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
The simulation output shows the correct operation.
![images/sim_full_adder_plot.JPG](images/sim_full_adder_plot.JPG)
Layout:
The layout of the full-adder was created using instances of the nand and xor layouts made previously in this lab.
![images/full_adder_layout.JPG](images/full_adder_layout.JPG)
LVS shows matching netlists and no errors.
![images/full_adder_LVS.JPG](images/full_adder_LVS.JPG)
This concludes the lab, all files from this lab can be found here.
Backups of this lab were stored in a cloud service.
![images/backup1.JPG](images/backup1.JPG)
![images/backup2.JPG](images/backup2.JPG)
Return to EE 421 Labs