Cadence Tutorial 2

The following Cadence CAD tools will be used in this lab: Please revisit Tutorial 1 before doing this new tutorial.

Running the Cadence tools

Please setup your environment then go to your cadence directory and start icfb:

. cdscdk2003
cd cadence
icfb &

For more information on the various Cadence tools I encourage you again to read the corresponding user manuals. You can open the on-line manuals by typing:

cdsdoc &

You can also get to the manuals by pressing Help -> Cadence Documentation button on any Cadence window (e.g. CIW). Spend some time browsing the manuals to understand what is available. During the semester you will have to look for information in the on-line manuals to complement the (limited) info given by the tutorials.

Now the Tutorial library that you created previously should still appear in the Library Manager window. You can use this same library for now. Before we start we need to add three more (existing) libraries to our Library Manager. Go to Tools -> Library Path Editor in the CIW. Add the following 3 libraries:

analogLib
basic
sample

with paths:

$CDS/ic/tools/dfII/etc/cdslib/artist/analogLib
$CDS/ic/tools/dfII/etc/cdslib/basic
$CDS/ic/tools/dfII/samples/cdslib/sample

Your Library Path Editor window should look like this:

pathedit

Now click on File -> Save , then Exit in the Library Path Editor window. Let's start our second schematic!

SCHEMATIC CAPTURE

Start by clicking on the Tutorial library once, then go to File -> New -> Cell View and fill in with inverter as the cell name, schematic as the view name, and Composer - Schematic as the tool, then click OK.

invinstance

You should get the Composer schematic capture window. Spend some time analyzing the window. On the left side you have various shortcuts to common used commands such as: placing component instances (looks like an IC), drawing wires, placing ports, stretching, copying, zooming in and out, saving, etc. You also have access to these commands (and others) from the menu. It is not possible here to describe all the functionality of Composer so you are strongly encouraged to read the on-line user manual in openbook.

Let's start our second schematic which will be used to simulate a simple CMOS inverter.
Use what you learned in Tutorial 1 to capture the following schematic. The big difference from Tutorial 1 is that we are no longer using explicit power supplies. We are going to use input, output and bidirectional ports instead. You can place these either by pressing the PIN button on the left or by going to Add -> Pin... First add one nmos4 transistor and one pmos4 transistor (see Tutorial 1), a gnd and a vdd symbol (from the Supply_Nets directory in the NCSU_Analog_Parts library) and then an input port IN and and output port OUT. Make sure you choose input for IN:

inpin

and output for OUT:

outpin

Now connect everything with wires as an inverter and change the transistor properties (see Tutorial 1) such that the ratio of pmos to nmos is the "rule of thumb = 2", i.e. make the pmos 3um in width. Don't forget to connect the transistor bodies to the proper voltages (gnd for nmos and vdd for pmos). Your final schematic should look like this:

inv

Check and save and make sure you don't get any errors or warnings. Assuming there are no errors we are now ready to start simulation!

SIMULATION

First we will perform a transient simulation to see that our inverter works correctly. In the schematic window go to Tools -> Analog Environment. The design should be set to the right Library, Cell and View.

As in Tutorial 1 we first need to set up the right simulator (spectre), then set the two model library files for the nmos and pmos (please revisit Tutorial 1 for the details). We also need to set up inputs and power supply since we don't have explicit voltage sources as in Tutorial 1. Go to Setup -> Stimuli. Initially you have the Inputs chosen, you should have only one (IN). Click on Enabled, Function pulse, Type Voltage, Voltage1 0, Voltage2 5, Rise time 0.1n, Fall time 0.1n, Pulse width 1n, Period 2n, Source type pulse, and click on Apply. The input should turn from OFF to ON. CAUTION Cadence is very fragile concerning this dialog box, make srue you enter the numbers exactly as above (i.e. no space between the digit and n, etc.). If you get syntax errors later in simulation they are most likely because of this.

insetup

Now we need to setup the global sources (power supply). Click on the Global Sources, you should have only one (vdd!). Click on Enabled, Function dc, Type Voltage, DC voltage 5, Source type dc, and click on Apply. The vdd! should turn from OFF to ON. Click OK.

globsetup

Now you need to choose the type of simulation, go to Analyses -> Choose... In this case we will choose tran which is the default, 4n as the Stop time (2 periods) and moderate as the accuracy default.

invchoose

Now go to Outputs -> Save All and click on allpub for signals to save (default) and all for device currents. Click OK. CAUTION In general, once you have a big schematic, you will want to only save a few signals for simulation, this will make your simulation faster. For small circuits as we have now it doesn't make a big difference though.

Now we can finally simulate! Click on the Netlist and Run button (looks like a green light) on the right or go to Simulation -> Netlist and Run. Click OK on the Welcome to Spectre window which should start the simulation. In case you have errors you will need to go back and correct them. This can be tricky! You may need to do Simulation -> Netlist -> Recreate if you change the schematic. CAUTION Each time you change the schematic you have to do Check and Save!. Assuming there are no errors you can now admire the simulation results. Go to Results -> Direct Plot -> Transient Signal which will pop-up your schematic window. Now you have to click on the signals you want to see. Since this is a transient analysis we want to see the input and output voltages. In order to do this you have to click on the input and output nets, then the ESC key. You should finally get the desired simulation results, 2 glorious periodic signals as expected from an inverter.

invfinal

We are now almost done, before we finish let's try to also plot the VTC for the inverter. For this we first need to replace the IN pin by another vdc power supply from the analogLib library as in Tutorial 1. Change its DC voltage property to 5

invvdc

Check and Save (make sure you get no errors). Now go to Analyses -> Choose, dc and Component Parameter, Select Component (as in Lab1), then the voltage source in the schematic, then choose 0 as Start, 5 as Stop and 0.2 as step.

invchoo

Now click on the old tran analysis and then go to Analyses -> Delete so that you are left with only one Analysis.

invana

Finally do Netlist and Run. If you don't have any errors you can now go to Results -> Direct Plot -> DC and click on the output net and the ESC key to get a glorious inverter VTC as in the textbook.
ATTENTION: The different screen capture files for this tutorial are from an older tutorial using another technology, please make sure you fill the values as in the text, not as in the screen shots!

invvtc

It is a good idea to save your state before exiting the simulator in case you want to redo some of the simulations you can start by loading a saved state. Congratulations, this is the end of Tutorial 2.