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

  

  

Next we created a symbol for the NAND:

  

nandsymbol

  

  

Next we created a circuit to test the function of our NAND seen in the following:

  

nandcircuit

  

nandtest

  

  

Next, we created a layout of the NAND and ran LVS to make sure it is clean:

  

nandlayout

  

nandlvs

  

  

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

  

nandsymbol

  

  

Next, we created the layout and ran it through LVS:

  

nandlayout

  

nandlvs

  

 

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

  

nandsim

  

  

On the sim we see some glitches, so to smooth them out we add some inverters and the simulations then look as follows:

  

nandtest2

  

nandsim2

  

  

Second, we design, layout, and simulate a XOR gate. The schematic and symbol are as follows:

  

xorschematic

  

xorsymbol

  

  

Next we created the layout and checked to see that it is LVS clean:

  

xorlayout

  

xorlvs

  

  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

  

xorsim

  

  

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

  

fasymbol

  

  

Next, we make a layout for the Full-Adder, using the layouts we made for the XOR and NAND:

  

falayout

  

Then we make sure the layout is LVS clean:

  

falvs

  

  

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

  

fasim

  

  

Here is verification of proper labeling of the cells:

  

labels

  

  

Here is proof of my backup of the lab:

  

backup

 

Return to labs.