I. Transistor-level Design and Functional Simulation with Pyxis
Table of Contents
Introduction
In this tutorial we will use the Mentor Graphics Pyxis Design Suite to construct an inverter. The transient response and the dc switching characteristics of the resulting schematic will be simulated to verify the correct operation of the inverter.
This tutorial was initially developed by George Bakirtzis collaborating with Dr. R.H. Klenke at Virginia Commonwealth University. Thank you to Dr. Klenke for allowing WWU to use their work. Modifications have been made to fit the WWU computing environment.
Useful Shortcuts for Pyxis Schematic
F2
:
Deselect everything.
ESC
:
Terminate the current operation – use to quit adding wires or
elements.
DEL
:
Delete a selected element.
u
:
Undo previous actions.
q
:
Accesses the properties of the element hovered over by the
cursor.
Shift+F7
:
Change text hovered over by the cursor – used to change net
names, port names, and widths.
Shift+F8
:
Zoom to fit window.
Numeric
Pad +
: Zoom in.
Numeric
Pad -
: Zoom out.
Page
Up
: Move window up (e.g., object down).
Page
Down
: Move window down (e.g., object up).
CTRL+Page
Up
: Move window left (e.g., object right).
CTRL+Page down
: Move window
right (e.g., object left).
Starting Pyxis Project Navigator
Open a terminal window (Applications >
System Tools > Terminal
). Create a folder for your
project using mkdir. The example name used below is vlsiproject,
but choose a meaningful name . Make that the current directory
using cd and then start Pyxis Project Navigator.
$ cd ~ $ mkdir vlsiproject $ cd vlsiproject $ pyxis_ibm
Prepare your Workspace
The
initial Pyxis Project Manager screen looks something like this:
After Pyxis Project Manager starts, install the process design kit (PDK). From the tool bar select File > Install > Process Design Kit. This window should open:
Click
on the navigator button to the right of Design Kit and navigate to
/home/classes/ee434. Select the CMRF8SF .tar.gz file. Click OK.
Then
navigate and select the destination which should be your project
folder.
Click
OK. The Install PDK window should look something like that below.
Click OK.
A
new pop-up window may open that looks something like this:
Accept the defaults by clicking OK.
In the Pyxis Project Navigator go to File > New > Project . In the Project Path box navigate to make the project folder the proper path and type in a file name (i.e. the desired name of your project). Click OK.
Under technology, navigate to choose the CMRF8SF library located in your project folder. Click on CMRF8RF and then click OK:
Your new project window should now look something like this:
Click
OK.
A manage External/Logic Libraries window will open. Click Add Standard Libraries and then OK.
On the top tool bar, Select File > New
> Library
. Name the new library projlib
and press OK
.
If you look at the directory you created before starting Pyxis (vlsiproject in the examples above) you should see a couple directories (folders) and a couple of “attribute” files:
CMRF8SF/ CMRF8SF.mgc_tech_lib.attr myProject/ myProject.mgc_project.attr
Shown above are two directories plus two files with file extension .attr which mean that the file is a Mentor Graphics attribute file associated with a directory (i.e. folder). The attribute file defines the related directory to be a design object and contains information about it.
The navigator window should look something like this (on the next page):
(Note:
the CMRF8SF entry at the same level as the myProject entry may not
be present, but CMRF8SF should be a part of the project when you
click on myProject. See next illustration).
Clicking on the myProject object should show a hierarchy something like this:
Right click on projlib
libary then
select New > Cell
. Name the new
cell per the leaf cell you are creating, such as inv1, and press
OK
.
Creating a Schematic of a CMOS Inverter
Right click on inv1
then select
New > Schematic
. Name the
schematic inverter
and press OK
.
This will open Pyxis Schematic with an empty sheet.
At the left of the schematic drawing area is a vertical tool bar like this:
On the left tool bar Click on I, add Instance. In the Object window, expand CMRF8SF > cmrf8sf > nfet and click the nfet symbol in the right window. Click OK and place symbol on the schematic.
Pressing escape unselects the currently selected component.
Repeat for the pfet.
Again clicking on Instance, select generic_lib, find the components for ground, Vdd, portin, and portout, and place them on the schematic. Each component has one or more pins where connections are made. Don’t place a pin of one part right over the pin of another part. There needs to be wire between pins.
Add wires by pressing w
and
choosing the starting node. Route the wire to the desired ending
node clicking at each point a turn is needed. After you choose the
ending node you might need to press ESC
to stop the Add Wire
function.
Hover over the input and output ports and press Shift+F7
.
Change the names to IN
and OUT
accordingly.
Also change the width of the transistors to the desired values.
The final schematic should look like the one below.
Check and save the sheet (Ctrl+S
),
fixing any errors, before you proceed to the simulation.
Simulation of the Transient Response of the Inverter
Go back to the IC Library to the right and left click on
Simulation
. In the next window just
click on OK
. You should now be in
simulation mode. The bar at the top of the schematic area should
be green.
Before we run the simulation we will need to perform a little setup work for the simulator to operate properly.
First select the circuit nets to which an input voltage needs to be applied. For the inverter this is the Vdd net and the in net. Click on the first net, then hold down the shift key and click on other nets to highlight more than one at a time.
Next, on the left tool bar is an icon with abbreviations AC DC TRAN. Click on it to open the Setup Simulation window:
Here is the simulation setup window that opens:
Under Analysis Selector click the TRAN box and the following screen should be visible. Start and Stop times, print interval, and max step time need to be specified. The values shown below are ok for this demo circuit.
The Libraries, Includes, and Options items can be left with default values. Next, click on Forces in the simulation panel. When this window opens the lower pane will be blank rather than showing the two forces seen below. The forces first have to be defined.
To define a force, click on one of the nets in the “Selection from Schematic” list. Then click the Source Type desired. For example, in the figure above the IN net is selected. Clicking on PULSE in the Source Type box will open another dialog as shown below:
Note that the logic low and high voltages must be defined and the various times. You can use the values shown above for now. Then click the Add button and the force should show up in the lower pane. Repeat for Vdd but select DC as the Source Type and enter a voltage in the Magnitude box. Again click Add.
Go back to the schematic view. Press function key F2 to clear the selected nets. Then click on the output net to select it. Then in the Setup Simulation window click on Outputs. Most of the values can be defaulted except for Task. PLOT should be selected for it.
BELOW THIS POINT, DOCUMENT NOT UPDATED FOR WWU.
You should now see the forces on your schematic in simulation mode as shown below.
Click on the input branch and navigate to Setup
> Probes
add the input signal to be plotted in the
simulation. Similarly add the output signal. The resulting setup
should look like the one below.
Finally run the simulation by clicking Run
ELDO
under Schematic Sim > Execute
(note that ELDO is the name of the simulator). The results of the
simulator will open in a separate application EZwave. If EZwave
doesn't launch automatically, navigate to Schematic
Sim > Results
and left click on View
Waves
.
In the event that the voltages didn't plot correctly close that
window inside EZwave and navigate to Tutorial_1_default
> DC
. Choose both V(IN)
and
V(OUT)
, right click and choose Plot
(Stacked)
.
Select File > Print
in EZwave
to print your simulation results that verify the correct operation
of the inverter. Then close EZwave.
Remark: If you do not see the waveforms shown above
close EZwave and in Pyxis Schematic navigate to Schematic
Sim > Results > ASCII Files
then click on View
Complete Log
. This will open a notepad window containing
the log file of the simulation and it's parameters. You can read
the log file to locate errors. Correct your errors and run the
simulation again.
Simulation of the Switching Characteristics of the Inverter
Now we will simulate the DC switching characteristics of the
inverter. You will program the simulator to sweep the input
voltage from 0 V to 2.5 V and plot the resulting output voltage.
This plot of
vs.
will show the switching threshold and noise margin of the design.
First you will need to remove the forces and the probes that were created to simulate the transient response of the CMOS inverter.
Delete each force by navigating to Schematic
Sim > Forces/ICs > Manager
. Select each force and
press DEL
.
Delete each probe by navigating to Schematic
Sim > Setup > Probes
. Select each probe and press
DEL
.
Navigate to Setup > Analyses ...
.
Deselect the Transient
and select DC
.
Navigate to Parameters - Sweeps
.
Remove the t_sweep
parameter by left
clicking and hitting DEL
.
Add a dc_sweep
parameter that will
define the voltage range and the step of the sweep. The values
should be from 0 V to 2.5 V with a step of 0.01 V.
Choose the VDD branch and navigate to Schematic
Sim > Forces/ICs > Manager
and add a DC force of
value 2.5 V.
Add a DC force of value {dc_sweep} to the input signal.
The resulting schematic with the added forces should look like the one below.
Navigate to Schematic Sim > Probes...
and left click on Probe All Voltages
.
Left click on Run Eldo
as before.
EZwave should open automatically.
As before we want to plot the input and the output of the
inverter. In this case it makes more sense to plot both signals on
the same plot since it's the convention for viewing transfer
characteristics. If the voltages didn't plot correctly close that
window inside EZwave and navigate to Tutorial_1_default
> DC
. Choose both V(IN)
and
V(OUT)
, right click and choose Plot
(Overlaid)
.
In the beginning of the tutorial we changed the width of the NMOS
transistor. This was done in order to create a balance between the
PMOS and NMOS. Henceforth, the above graph has a crossover of
and
that is, within error,
.
It is of importance to realize that if this fundamental change
wasn't made initially
vs.
would look different.
Close EZwave
and change the NMOS
transistor width back to 2 μm in simulation mode.
Run a DC analysis once again. You should now notice that
occurs earlier than before.