Lab 6 - ECE 421L
Authored
by Dara Wells, wellsd5@unlv.nevada.edu
10/21/2023
Design, layout, and simulation of a CMOS NAND gate, XOR gate, and Full-Adder
Prelab:
The prelab has students go through Tutorial 4. Tutorial 4 had students design, layout, and simulate a NAND gate.
This is the schematic for the NAND gate:
![nandschematic](0-nandschematic.PNG)
Next we created a symbol for the NAND:
![nandsymbol](1-nandsymbol.PNG)
Next we created a circuit to test the function of our NAND seen in the following:
![nandcircuit](2-nandcircuit.PNG)
![nandtest](3-nandtest.PNG)
Next, we created a layout of the NAND and ran LVS to make sure it is clean:
![nandlayout](4-nandlayout.PNG)
![nandlvs](5-nandlvs.PNG)
Lab:
This lab has students design, layout, and simulate a NAND gate, XOR gate and a Full-Adder.
First
we have the schematic and symbol for the NAND, which is very similar to
the one used in the tutorial, but with some minor changes:
![nandschematic](6-nandschematic.PNG)
![nandsymbol](7-nandsymbol.PNG)
Next, we created the layout and ran it through LVS:
![nandlayout](8-nandlayout.PNG)
![nandlvs](9-nandlvs.PNG)
Next,
we want to see that our NAND functions correctly so we run it through a
basic two-bit logic sequence to see what the simulations look like. We
use the symbol to create a circuit and the simulations can be seen as
follows:
![nandtest](10-nandtest.PNG)
![nandsim](11-nandsim.PNG)
On the sim we see some glitches, so to smooth them out we add some inverters and the simulations then look as follows:
![nandtest2](12-nandtest2.PNG)
![nandsim2](13-nandsim2.PNG)
Second, we design, layout, and simulate a XOR gate. The schematic and symbol are as follows:
![xorschematic](14-xorschematic.PNG)
![xorsymbol](15-xorsymbol.PNG)
Next we created the layout and checked to see that it is LVS clean:
![xorlayout](16-xorlayout.PNG)
![xorlvs](17-xorlvs.PNG)
Then
we used the XOR gate in a ciruit to verify its logic outputs, using
inverters again to minimize any glitching in the simulations:
![xortest](18-xortest.PNG)
![xorsim](19-xorsim.PNG)
Lastly
we used our NAND and XOR to create a Full-Adder, first using the
symbols to create the schematic, then making a symbol for the
Full-Adder:
![faschematic](20-faschematic.PNG)
![fasymbol](21-fasymbol.PNG)
Next, we make a layout for the Full-Adder, using the layouts we made for the XOR and NAND:
![falayout](22-falayout.PNG)
Then we make sure the layout is LVS clean:
![falvs](23-falvs.PNG)
Now
that we have the Full-Adder, we want to use it in a circuit so we can
verify the nature of the outputs are as they should be expected:
![fatest](24-fatest.PNG)
![fasim](25-fasim.PNG)
Here is verification of proper labeling of the cells:
![labels](26-labels.PNG)
Here is proof of my backup of the lab:
![backup](27-backup.PNG)
Return to labs.