Lab 5 - ECE 421L 

Authored by, Vincent Ibanez

Email: ibanez.troy.e@gmail.com

Today's date 10/05/2014

  


PreLab:   


Tutorial 3 – Design, layout, and simulation of a CMOS inverter

 

In this third tutorial I've drawn the schematic, symbol, and layout of a CMOS inverter.
I also simulated the DC behavior of the inverter.

 

I answered the following questions that were asked in the PreLab

 

1.     What does the Bindkey q do?

        Opens up the properties of a selected object

2.    Which two Cell Views are used when doing an LVS?

        Extracted and Schematic View

3.    What is the difference between the nmos and nmos4 schematic cells?

        In nmos, the body is assumed to be tied to ground whereas in nmos4, it does not have the assumption.

4.    How do you select the MOSFET models in the ADE window? What does ADE stand for?

        Select setup>Model Libraries

5.    What is the difference between moving and stretching?

        Moving moves the selected object to a new location whereas stretching changes the size of the selected object.

6.    How do you layout a rectangle on the metal1 layer?

        Press R while you have the metal 1 layer selected.

7.    What does the ! indicate at the end of gnd! and vdd!

        It is a global variable.

8.    What do the acronyms LSW and CIW stand for?

        Layer Selection Window, Command interperter Window

9.    How is the ruler used? Cleared?

        Press K, Shift+K

 

Let’s start out, assuming Virtuoso has been started in the CMOSedu directory, by copying the Tutorial_2 library to a library named Tutorial_3.

Ensure the new library is placed in $HOME/CMOSedu

 

1.PNG

 

Next create a schematic Cell View called inverter.

 

2.PNG

 

With this new schematic view open also open the schematic view of NMOS_IV.

What we are going to do is copy the NMOS symbol from the NMOS_IV cell into the inverter cell.

To do this we need to have both windows open (no clipboard that we can copy items to).

Press the copy Bindkey c (or use the menu) then click on the nmos4 symbol and drag over into the inverter window (and click the left mouse button to instantiate).

 

3.PNG

 

Close the NMOS_IV window and open the PMOS_IV window.

Repeat for the pmos4 cell to get the following.

 

4.PNG

 

Instantiate vdd and gnd supply nets.

 

5.PNG

 

Finally, wire up the inverter and add pins as seen below.

The A pin should have an input direction and pin Ai should have an output direction.

 

6.PNG

 

Next use the menu items to Create -> Cell View -> From Cell View to create the symbol for the inverter.

Check and Save the schematic view of the inverter (and then close this window).

Delete everything in the inverter’s symbol view except for the pins.

Draw the inverter symbol seen below (Create -> Shape -> Line/Circle)

Since we aren’t showing the pin names select the pin and verify that it’s in the right location (A is an input Ai is the inverter’s output)

 

7.PNG

 

Check and Save the inverter symbol.

Next Create the layout view for the inverter.

 

8.PNG

 

Add the following cells (nmos, pmos, ntap, ptap, and m1_poly) to this layout view as seen below (you can copy as before but here we will instantiate cells).

Ensure the nmos is 6u/0.6u and pmos is 12u/0.6u and the ntap and ptap use two columns.

 

9.PNG

 

Next align the cells until you get something similar to what is seen below.

DRC your layout to ensure no errors (fix as needed).

Save the layout.

 

10.PNG

 

Add rectangles on poly and metal1 as seen below.

DRC and save your design.

 

11.PNG

 

12.PNG

 

Next add pins on metal1 for gnd!, vdd! (both have a direction of inputOutput), A (input), and Ai (output).

DRC and save the design.

 

13.PNG

 

Next run extraction on the layout.

 

14.PNG

Finally, run the LVS on the inverter.

 

15.PNG

 

16.PNG

 

Okay, we are ready to simulate the operation of the inverter.

 

Create a cell called sim_inverter_dc (File -> New -> Cell View)

Draft the following schematic.

The symbol on the right is the no-connection symbol (in the basic library, Misc -> noConn) We add this symbol to be different and to avoid getting the warnings

related to floating pins/nets that we ignore via the menu items Check -> Find Marker -> ignore, ignore

 

17.PNG

 

Start the ADE and select the model files (Setup -> Model Libraries located in /$HOME/ncsu-cdk-1.6.0.beta/models/spectre/standalone)

 

18.PNG

 

Next select Analyses -> Choose

Note that the input vdc is named V0.

 

19.PNG

 

Next go to Outputs -> To Be Plotted -> Select On Schematic (select in and out)

 

20.PNG

 

Save the state in the cellview.

 

Netlist and Run the simulation (hit the green button).

We get the results seen below.

Note how the output is zero!

Well, we didn’t specify a vdd! anywhere so it should be zero. Let’s fix this.

 

21.PNG

 

Let’s add vdd symbol as seen below.

 

22.PNG

 

Check and Save the schematic.
Next, in the ADE, select Setup -> Stimuli and the parameters seen below (after hitting the Apply button).

 

23.PNG

 

Save the state (Cellview) so we don’t have to do this again next time we run the simulation.

Hit OK and run the simulation.

The results are what we expect the inverter voltage transfer curves to look like.

 

24.PNG

 

Let’s go ahead and simulate the extracted layout at this point (Setup -> Enviornment and add extracted in front of schematic as discussed in the last tutorial).

 

25.PNG

 

Which gives the same results as the schematic.

To verify we are simulating the extracted view and not the schematic view go to Simulations -> Netlist -> Display

 

26.PNG

 

Save and close everything. This concludes Tutorial 3.


Main Lab:
27.PNG28.PNG
     
      29.PNG30.PNG
       

31.PNG32.PNG

    

33.PNG34.PNG

     

35.PNG36.PNG

   

37.PNG
38.PNG
39.PNG
40.PNG
41.PNG
         
42.PNG
43.PNG
44.PNG
45.PNG
46.PNG
             
47.PNG
48.PNG
49.PNG
50.PNG
51.PNG
52.PNG
53.PNG
54.PNG
   
       

Finally, we backed up our design lab5vi.zip directory and other files for future study.



Return to labs