Lab 6 - EE 421L 

Author: Edgar Amalyan
Email:  amalyane@unlv.nevada.edu
Date:   10/21/2020

Goals:
This lab focuses on the layout and simulations of a NAND gate, XOR gate, and Full-Adder

Prelab  

Note: Click on pictures for larger views.

Tutorial 4

Schematic

prelab/prelab_sch.png

Symbol

prelab/prelab_sym.png

Simulation

prelab/prelab_sim.png prelab/prelab_plot.png

Layout and DRC

prelab/prelab_layout.png     prelab/prelab_drc.pngprelab/prelab_drc.png

Extraction and LVS

prelab/prelab_extracted.png     prelab/prelab_lvs.png

Note: Our transistors have a width of 6um in the schematic but we have physically drawn them to be 12um. Typically, the LVS compares only logical netlists.
The NSCU library we use has a feature that allows the LVS to also compare the FET parameters.
Once we enable this option:

prelab/prelab_mismatch.png


Lab

NAND Gate

Here we will design our own NAND gate using 6u/0.6u NMOS and PMOS MOSFETs.

We start by drafting the schematic. A NAND gate is composed of 2 NMOS and 2 PMOS transistors.

lab/NAND/sch.png

We draw the commonly used ANSI symbol for the NAND gate.

lab/NAND/sym.png

We can now proceed to the layout. We DRC after.

lab/NAND/layout.png    lab/NAND/drc.png

Extraction and LVS with FET comparision.

lab/NAND/extracted.png    lab/NAND/lvs.png

We can now simulate our NAND gate. A NAND gate is the complement of the AND gate. A NAND gate outputs logic 1 unless both inputs are 1.

lab/NAND/sim.png    lab/NAND/plot.png

We can notice from the above simulations some spikes in the output. These occur during changes in the inputs. The transistor is in an undefined state as it is neither 0 nor 1.


XOR Gate

Here we will design our own XOR gate using 6u/0.6u NMOS and PMOS MOSFETs.

We start by drafting the schematic. A XOR gate is composed of 6 NMOS and 6 PMOS transistors.

lab/XOR/sch.png

We draw the commonly used ANSI symbol for the XOR gate.

lab/XOR/sym.png

We can now proceed to the layout. We DRC after.

lab/XOR/layout.png    lab/XOR/drc.png

Extraction and LVS with FET comparision.

lab/XOR/extracted.png    lab/XOR/lvs.png

We can now simulate our XOR gate. A XOR gate outputs logic 1 if either, but not both, inputs, are 1.

lab/XOR/sim.png    lab/XOR/plot.png

We can notice from the above simulations some spikes in the output. These occur during changes in the inputs. The transistor is in an undefined state as it is neither 0 nor 1.



Full Adder

Here we will design our own Full Adder using 6u/0.6u NMOS and PMOS MOSFETs.

We start by drafting the schematic. Our Full Adder is composed of 3 NAND gates and 2 XOR gates. Therefore, it requires a total of 18 NMOS and 18 PMOS transistors.
Instead of instantiating and connecting 36 individual transistors, we can use the NAND and XOR symbols we just made.

lab/FULL_ADDER/sch.png

We draw the commonly used symbol for the Full Adder.

lab/FULL_ADDER/sym.png

We can now proceed to the layout. Terminal pins can be placed on metal 1 or metal 2. I choose metal 1 with a via if needed. Metal 3 can be used for long interconnections. We DRC after.

lab/FULL_ADDER/layout.png    lab/FULL_ADDER/drc.png

Extraction and LVS with FET comparision.

lab/FULL_ADDER/extracted.png    lab/FULL_ADDER/lvs.png

We can now simulate our Full Adder. A full adder simply adds 2 inputs. Since the output, S, is only 1 bit, the result will overflow and be 0 when the inputs, A and B, are 1. Therefore, a carry out, Cout, should be generated. We add this as another output. As we can see, there are now 3 inputs that can be added, so we add another input, Cin, which could be any value, or just the Cout from the last addition. Now if all 3 inputs are 1, then both S and Cout are 1 and we have enough bits to represent any combination. This idea can be expanded into an n-bit Full Adder.

As seen below, the simulations match the generic truth table of a Full Adder.

lab/FULL_ADDER/sim.png    lab/FULL_ADDER/plot.png

We can notice from the above simulations some spikes in the output. These occur during changes in the inputs. The transistor is in an undefined state as it is neither 0 nor 1. We can go ahead and ignore the glitches and just assume the value before and after the glitch remains constant.





Backups:

As demonstrated in Lab 1, I run ./backup.sh from the Cadence server and download the 'Backup' folder containing the compressed archives of my CMOSedu and entire home directories.
All files pertaining to this lab report already exist and are directly edited from another folder that also gets synced.
I run sync_to_gcp.bat from my computer which makes my GCP Storage bucket identical to my local directory.

backup_cadence

backup-labs

Return to EE 421L Labs