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 navigator screen should look something like this:




After Pyxis Project Manager starts, and before you create a project, specify the Technology Library to be used (the library comes as part of a 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 folder (note upper case CMRF8SF), which is a technology library, and Click OK.























The window below will appear. (the Destination is grayed out, that is ok).













Click OK if the path to the design kit is ok. Then the following window should open:


No changes needed here, default is ok. Click OK

Create a Project



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 at /home/classes/ee434. Single click on CMRF8RF to highlight it:























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 you should see this:



























Click OK.

The next step is to create a project library. 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:

(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 the add Instance Icon





In the Object window, expand CMRF8SF > cmrf8sf > nfet and double click the nfet symbol in the right window. Click OK and place symbol on the schematic.





























Pressing escape terminates component placement. Note that a newly placed component is white which indicates that it is selected. Shift F7 unselects all components.

Repeat for the pfet.

Again clicking on Instance, select generic_lib (near bottom on the list), 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. Press F2 to unselect everything.

Hover over the input or output port, press Shift+F7, and change NET to unique names such as IN and OUT accordingly.

The following box should appear at the bottom of the schematic. Don’t change the Property Name but do change Property Value

Original



After Change



For most components, hovering and using Shift+F7 or first selecting the component (by clicking on it) and then clicking on the icon from the left tool bar opens the Edit Object window in which you can change the Net Name, parameters such as transistor size, etc:

Change the width of the transistors to the desired values. For an inverter, typically the P transistor width will be twice that of the N transistor.

The final schematic should look something like the one below.

Click the Check and Save button on the right hand pallet (or use Ctrl+S) to check for errors and save your design. Then proceed to simulation.

Simulation of the Transient Response of the Inverter

On the right hand pallet left click on Simulation. In the window that opens 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 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 such as 2.5 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.

In the Setup Simulation window click on Outputs. Most of the values can be defaulted except for Task. PLOT should be selected for Task. Click Add and then.




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.

Author: George Bakirtzis

Created: 2014-09-11 Thu 10:21

Emacs 24.3.1 (Org mode 8.2.7c)

Validate

() [] {} 