Lab 6 - ECE 421L 

Authored by Giang Tran

10/04/2015

trang@unlv.nevada.edu

 

Lab description:

-Design, layout, and simulation of a CMOS inverter.
Pre-Lab
-First, we'll copy the library, Tutorial_3, into a new library and name it Tutorial_4. Remember to update instances.
-Copy the inverter cell into a new cell call nand2.
-Open up the nand2 cell, we'll draft the following schematic. This is easier if we use bindkey c and copy the PMOS and VDD.

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/Pre1.PNG

-Check and Save our schematic, make sure there's no error.
-Proceed to make our symbol of the circuit.

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/pre2.PNG

-Make a new cell call sim_nand2.
-Draft the following circuit.
http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/pre3.PNG

-The properties of our vpulse is as follow.

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/pre3-1.PNG

-Check and Save our circuit, run ADE.
-Set models like below

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/pre3-2.PNG

Run the simulation, we will get the following waveform

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/pre4.PNG

Next up, open the layout cellview for our inverter. We'll make some adjustments to the layout.

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/pre5.PNG

Delete metal1 contacts and ground pin on our inverter.

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/pre6_delete_metal1.PNG

-Copy our PMOS

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/pre7_copyPMOS.PNG

-Line up the PMOS so that they're overlapping. Expand our ntap cell and align them up like below.

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/pre8.PNG

-Do the same for our NMOS and ptap. Create pins for vdd!, gnd!, B and AnandB.

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/pre9.PNG

-DRC check our layout.
-Extract layout when finish.

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/pre10.PNG

-LVS check our schematic and extracted view. Make sure net-list match!

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/pre11.PNG

Post-Lab
-We'll create another nand gate using 6u/600n PMOS instead of 12u/600n  in our prelab. DRC check our schematic as always.

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/post1.PNG

-Create cellview from schematic.

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/post2.PNG

-Next up, let's build our xor gate. We'll need 6 pmos and 6 nmos that are 6u in width and 600n in length. Connect them accordingly to the schematic below. Use bindkey l to set proper connection to our wires.

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/post4.PNG

If we look at our xor schematic, we'll be able to point out that our xor gate is made out of 2 inverters and 2 nand gates. Hence, to make our lives easier, we'll use our premade inverter and nand gate layouts to design our xor gate.
It is important that we give extra room in the between of our nmos and pmos since metal line connections will become an issue later on.
It is also worth noting that we must flatten our layers before making changes to our layout.

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/post6.PNG

DRC is very important and very time consuming if we don't keep track of. LVS our layout afterward, make sure it matches.

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/post7.PNG

Create a new schematic call sim_gates. Draft the following circuit to test our 3 gates (inverter, nand, and xor).

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/post8-1.PNG

Let's derive our truth table for all gates.
Inverter
InputOutput
01
10

Nand
ABOut
001
011
101
110

Xor
ABOut
000
011
101
110

Let's simulate our circuit. We'll get the following waveform.

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/post8.PNG

Next up, create a new schematic call fulladder. We'll draft our fulladder schematic in. We'll need 2 xor gates and 3 nand gates. There are 3 inputs and 2 outputs.

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/post9.PNG

DRC our circuit, make sure there's no error.
Create a cellview from schematic.

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/post10.PNG

Next up, drafting the layout of our fulladder.
We'll use our premade gates again. This time, we'll need 3 nand gates and 2 xor gates.
I found it easier to have 2 xor gates laying side by side and 3 nand gates laying side by side right next to our xor gates.

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/post11.PNG

Remember when I insist that we leave some room for wiring? This is where it comes in handy.
DRC our layout, make sure there's no error. Then LVS our layout make sure it matches!

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/post12.PNG

Create a new schematic call sim_fulladder. We'll draft a circuit that can test our fulladder.

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/post13.PNG

Check and save, set up our simulation for the following output.

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/post14.PNG

Here's our truth table for fulladder. It matches our waveform!
Fulladder
abcinscout
00000
00110
01010
01101
10010
10101
11001
11111

Let's take it a step further by doing simulation using our extracted view. We should get very similar waveform.

http://cmosedu.com/jbaker/courses/ee421L/f15/students/trang/Lab6/post15.PNG

-If we look at our s and cout waveforms, there are glitches in the outputs of our gates. The glitches happen during rising and falling edge of our inputs (01,10). This is because the time it takes for our voltage source to go from 5 to 0 or from 0 to 5 is not ideally 0. The short time delay causes the glitch in our gates. 


Saving My Work!!!

All files and images are backed up in a folder on my desktop,

I'll then send a copy to my email as a backup. 

Return to main page here