Guide To TannerEDA For VLSI
Guide To TannerEDA For VLSI
Guide To TannerEDA For VLSI
constraint imposed on circuit board, semiconductor LVS stands for Layout vs Schematic. It is one of
device, and integrated circuit (IC) designers to ensure the steps of physical verification; the other one
their designs function properly, reliably, and can be being DRC (Design Rule Check). While DRC only
produced with acceptable yield. Design rules for checks for certain layout rules to ensure the
production are developed by process engineers based design will be manufactured reliably, functional
on the capability of their processes to realize design correctness of the design is ensured by
intent. Electronic design automation is used LVS.Layout vs Schematic (LVS) compares the
extensively to ensure that designers do not violate design layout with the design schematic/netlist to
design rules; a process called design rule checking tell if the design is functionally equivalent to
(DRC). DRC is a major step during physical verification schematic. For this, the connections are
signoff on the design, which also involves LVS (layout extracted from layout of the design by using a set
versus schematic) checks, XOR checks, ERC of rules to convert the layout to connections.
(electrical rule check), and antenna checks. The three These connections are, then compared if they
basic DRC are : 1.width, 2. Spacing, 3. Encloser match with the connections of the netlist. If the
connections match, the LVS is said to be clean.
Tanner EDA is a suite of tools for the design of integrated circuits. These tools allow you to enter
schematics, perform SPICE simulations, do physical design (i.e., chip layout), and perform design rule
checks (DRC) and layout versus schematic (LVS) checks. There are 3 tools that are used for this process:
b) You want to create a directory for all of your Tanner EDA projects. You also will need to
download and unzip a set of library & model files from the course website that will be used
for your simulations.
c) Go to the course website and download the zip file called “Tanner_Libraries.zip”. Unzip it
into your Tanner Projects directory. This group of files contain the necessary information
to enter components into S-edit (circuit symbols), perform SPICE simulations (models),
and do physical layout (layer definitions, DRC, LVS)
a) Start S-Edit:
- Start – All Programs – Tanner EDA – Tanner Tools v12.6 – S-Edit v12.6
A dialog will appear asking for a design name and location. When you give the name, S-
edit will create a folder of that name in the directory that you provide that will contain all
of the design files. You should give a descriptive name that represents each simulation
you will be running.
- Click “OK”
A “cell” is a design element. A cell can contain multiple views such as schematics and
180nm refers to the smallest available channel length of a cmos device for that 2
semiconductor process.
Drain Characteristics :- Id v/s Vds
Transfer Characteristics:- Id v/s Vgs
symbols. Cells can be instantiated in other cells. When performing a simulation, we will
typically call the cell “TOP”. When we are testing a circuit, for example an inverter, the
Transconductance is the
inverter will have its own cell that contains a schematic of the devices and a symbol. The
ratio of output current to inverter cell is instantiated in the TOP cell that contains ideal elements such as voltage
the input voltage. So in sources and probes that are only used for simulation. This allows us to separate the cells
NMOS it is:
gm = Id/Vgs
that are actually going to be implemented on the die versus cells that are only used for
simulation. Starting with the main difference between the
technologies – 180 nm, 90 nm etc., the numbers
represent the minimum feature size of the transistor
Using the pull down menus, create a new cell view: (PMOS or NMOS). The minimum feature size means that
during the fabrication process of a transistor, how closely
can the transistors be placed on a chip to be used for
- Cell – New View: various purposes. The smaller this size is, the larger
number of transistors can be fabricated on the chip.
- enter the cell name “TOP”. Ensure the design name is “HW03_NMOS_IV_Part1” and
click OK. You can leave the interface and view names “view0”.
A blank schematic page will appear. It is a good idea to save this right now.
First, you need to include a library which contains the symbols for all basic circuit
elements such as resistors, NMOS, capacitors, etc… The libraries for all the basic
symbols are in the Tanner_Libraries.zip file you downloaded and unzipped.
- On the left side of the S-edit screen you’ll see a Libraries window, click on the “Add”
button.
3
e) Setup the SPICE Models for the Generic_025 kit.
The libraries that you just added have symbols for NMOS and PMOS transistors.
However, all non-linear components such as MOS transistors require a model to describe
their behavior. If you simply enter an NMOS symbol in your schematic, SPICE will not
know what to do since each NMOS transistor fabricated in a different technology behave
differently.
- In the dialog that appears, you should highlight “General” on the left.
- On the right, click in the “Library Files” field. This is where you will specify
any SPICE models you will be using in your simulations. Browse & select
“Generic_025_Kit\ Generic_025_SPICE_Models_Level1.lib”
- On the right, click in the “SPICE File Name” field. This is where you specify the
name and location of the SPICE Netlist output. Browse to your design directory
“EELE414_VLSI_Fall2011\Tanner_Projects\HW03_NMOS_IV_Part1” and enter
the filename “TOP.sp”.
- On the right, click in the “Simulations Results File Name” field. This is where
the results of the simulation will be written. This file is what the waveform
viewer will look for when you go to plot your results. Browse to your design
directory “EELE414_VLSI_Fall2011\Tanner_Projects\HW03_NMOS_IV_Part1”
and enter the filename “TOP.out”.
- Before you can exit this window, you will need to select an analysis type. We
will setup the details of the analysis later, but for now, just check the “DC Sweep
Analysis” and click “OK” to close the setup window.
4
Part 3: Enter the Schematic to simulate the IV behavior of an NMOS Transistor
- On the left, click on “Devices” in the upper window. This will display all of the symbols
available in this group. You should see all of the components that you can implement on a
CMOS integrated circuit.
- On the bottom left window, click once on “NMOS”. You should see the symbol of the
NMOS transistor show up in the symbol viewer window at the bottom.
- To place the NMOS, you will click on the “Instance” button. Two things happen when
you click on this button. First, a dialog will appear that will allow you to setup the
parameters for the NMOS. Second, the symbol will attach to your mouse. We will place
the NMOS in the schematic first and then set its properties later. This is an easier way to
enter the device. Click in the schematic window to drop an instance of the NMOS. Hit
the “Esc” button to end the insert-mode.
5
The NMOS is now in the schematic.
A note on zooming:
- To setup the NMOS, click on the NMOS symbol. You will see the properties of the
device on the left. We want to setup the following:
- Name: M1. The SPICE designation for MOS transistors is to have the
name start with an “M”. S-edit automatically appends an M to the
name is the final name will be “MM1” in the TOP.sp file. But it is
good practice to name all MOS transistors with M’s.
- Using the same process you used for the NMOS symbol, enter a
“SPICE_Elements:VoltageSource”. This is a generic voltage source symbol that is
configured as a DC, TRAN, PWL, etc.. in its properties dialog.
- Click on the voltage source and enter the following:
- MasterInterface: DC (this is the default but this is how you would change it to
something else.
- Using the same process as above, enter a DC source for VGS with the following:
- MasterInterface: DC (this is the default but this is how you would change it to
something else.
- Name: VDS_Source
-V “VDS_param”
A note on zooming:
7
d) Enter Grounds
e) Enter Wires
- You can enter wires by clicking on the “wire” icon at the top
- Enter wires by clicking on a symbol node and then dragging. Enter corners by clicking
once where you want to turn.
- You can label nets using the “Net Label” icon at the top
8
f) Enter a Current Probe to monitor IDS
Device: MM1 (this is the name of the device. Notice that we called it M1,
but S-edit automatically appends another M to the name. You will
only see this once you run the Netlist.
Part 4: Setup the Parameters that will be used during the DC sweep analysis
When we entered the VGS and VDS sources, we set their values to “VGS_param” and “VDS_param”.
We now need to setup these parameters.
- On the right, click on the “Add Parameters” button (it is in the upper right corner next to the red X)
9
We will overwrite these values during our sweep, but the parameters need to exist first.
- On the right, enter the following for Source (this is what will be swept)
- On the right, enter the following for Source (this is what will be swept)
NOTE: The first parameter you setup in this dialog will be plotted on the independent axis.
- Tools – Design Checks (any warnings or errors will be shown at the bottom)
The T-Spice window will appear. If everything is OK, the waveform viewer will also
appear. If everything worked, your waveforms should look like this:
10
c) View the Netlist:
- In the T-spice window, right click on the file at the bottom and select “Show Netlist”
This will bring up the TOP.sp Netlist that was created and used by the spice engine. This
is a good place to look when you get errors. This is the text based description of what you
entered in S-edit.
- If the windows viewer did NOT automatically appear, you can click on the file in the T-
spice window and select “Show Waveform”
11
Example: Transient Analysis of a CMOS Inverter & Symbol Creation
a) In this example, we will create a CMOS inverter and simulate its transient response. We
will create an inverter design that contains a symbol and then instantiate it in another
schematic to stimulate the circuit.
Symbols are handled by adding another view to a design. We will start by creating a
design called “Inverter” and then create a schematic view. This schematic will contain an
NMOS and PMOS wired as an inverter. We will add “Ports” for the Input, Output, VDD,
and VSS. We will then add a symbol view to this design. The symbol will contain the
inverter shape and the corresponding pins for Input, Output, VDD, and VSS.
We will then create a separate schematic called TOP that will be used to test the inverter.
We will instantiate the inverter symbol in TOP. We only want to put items into the
inverter design that can be fabricated. TOP will contain the ideal voltage sources to
provide the input waveform, the power supplies, and a mock load. In this way, when we
go into physical design (i.e., layout), we only drive forward the isolated circuits.
- Start S-Edit
- Create a new Cell called “TOP” using the Pull Down Menus
Name = TOP
View Type = schematic
- Highlight the General Tab of the Setup SPICE window and set the following:
12
- Check the “Transient/Fourier Analysis” box on the left and set the following:
- Click “OK”
Name = Inverter
View Type = schematic
Name = M1
L = 0.25u
W = 2.5u
Model =NMOS
13
- Entering the PMOS:
Name = M2
L = 0.25u
W = 5.0u
Model =PMOS
Ports are entered using the icons on the top of the S-edit window.
Enter the following:
Exporting a SPICE Netlist is a good idea in order to verify that you have entered the
schematic correctly. Also, this Netlist will be used later when performing a “Layout
versus Schematic (LVS)” check. We want to export a Netlist at the Inverter schematic cell
level so that a Netlist of just the inverter exists for LVS. When we conduct the simulation
of this inverter, we will create a TOP level schematic that will have a Netlist containing
ideal voltage sources. This Netlist can’t be used for LVS since it contains components that
won’t be fabricated.
With the schematic open, use the pull down menus to perform:
- Browse to your design directory and give the file name “Inverter.spc”.
- Click “OK”
If you open the Inverter.spc with a text editor, you will see the following:
14
d) Create the Inverter Symbol
Symbols can either be created manually by creating a new symbol view or automatically
by S-edit. We will use the automatic symbol generation. This will create a new symbol
view from the schematic, create the ports for the symbol, and make a symbol shape. While
the shape of the symbol is rarely what we ultimately want, it will do a lot of the work for
us.
- With the schematic view open, use the pull down menus to create the symbol view:
A new window will come up with a square symbol and 4 ports with the same names you
entered in the Inverter:schematic view (i.e., IN, OUT, VDD, VSS). You should edit the
shapes until you have created a symbol that looks like an inverter:
15
A note on drawing:
The “Path” icon will put you into a mode where you can draw lines that are not wires.
The “Circle” icon will allow you to enter the inversion bubble.
The ports can be rotated by selecting and pressing the “r” button
Remember to save.
- Click on “Inverter” and you will see your symbol show up in the symbol viewer.
- Click on the “Instance” button and place your symbol in the TOP schematic.
16
b) Enter the following circuit in order to power and stimulate your inverter:
- Enter the Pulse Voltage Source. All voltage sources are the same component in the
SPICE_Elements library. The default is DC, but this can be changed to any other type of
source in the properties dialog.
Name = Vin_Source
MasterInterface = Pulse
Period = 1ns
PulseWidth = 0.5ns
VHigh = 2.5v
VLow = 0v
RiseTime = 10ps
FallTime = 10ps
Name = Cload
C =50fF
Name = VDD_Source
MasterInterface = DC
V = 2.5v
- Tools – Design Checks (any warnings or errors will be shown at the bottom)
The T-Spice window will appear. If everything is OK, the waveform viewer will also
appear. If everything worked, your waveforms should look like this:
18
Using L-Edit (IC Physical Design Tool)
________________________________________________________________________
L-edit is an integrated circuit physical design tool from Tanner EDA. This tool allows you to draw the
layout of an IC, look at cross-sections, perform DRC (design rule check), and generate a Netlist of your
layout so that you can perform LVS (layout versus schematic) using a different tool.
a) Log onto a computer in the digital lab (601 Cobleigh) and launch L-edit using:
Start – All Programs – Tanner EDA – Tanner Tools v12.6 – L-Edit v12.6
- File – New
- select “Layout”
- under “Copy TDB…”, browse to:
\Tanner_Projects\Generic_025_Kit\Generic_025.tdb
- Click “OK”
When you copy in the Generic_025.tbd files, it loads all of the layer definitions for the
0.25um process and the design rule information. On the left, you should see a set of layers
for this technology that can be used to create devices.
- Setup – Design
19
Now you want to setup the grid. Click on the “Grid” tab. Since we are using a 0.25um
grid, let’s put our major grid and snap grid at 0.125um. Then we will put our minor grid
at 0.05. Enter the following:
20
Now let’s configure the ruler settings. When you draw polygons to implement your
circuitry, you will continually be measuring your shapes to make sure they are what you
want. You can place items called “rulers” that will show how large your shapes are.
Click on the “Drawing” tab and configure the “Display Text” to “Centered”.
- Now you can click “save” and give your design a descriptive name and location.
(i.e., \Tanner_Projects\HW07_INV_Layout_Part1”
The design rules for this kit were loaded when you specified the Generic 0.25um design kit. L-edit will
check for violations in the design rules using a process called Design Rule Check (DRC). To see the
rules, use the pull down menus:
- You’ll see that the “DRC Standard Rule Set” is selected. Highlight this (if it isn’t already) and click the
“Edit” Button:
21
At this point, the only rule that makes much sense is the minimum gate length. If you click on Rule 3.1.
Poly Minimum Width, you’ll see that a DRC error will occur if you draw a shape on the Poly layer that is
less than 0.25um in width. As you can also see, there are rules that govern all of the layers in the design
kit.
- Once you look at the rules, click “OK” to go back to the “Setup DRC” dialog and check the “Pop up
message box” so that you can see the results of the rule checking.
22
Part 3: Create your layout for the CMOS inverter
Let’s create a CMOS inverter with Ln=Lp=0.25um, Wn=2.5um, Wp=5um. This will match the inverter
that you created in the second example in this tutorial and will allow us to perform an LVS check.
NMOS
The process that we are using is N-well CMOS. This means that the blank screen you see a p-type silicon
substrate. We explicitly draw active regions on the screen to open up the field-oxide to insert diffusion
regions. This means you can think of the screen as p-type silicon with FOX everywhere on it to begin
with. In order to create the NMOS structure, we use three layers:
N-Select - This layer tell where the field-oxide should be opened up for the active regions.
An N-select rectangle must be slightly larger than the shape defining where the
implants go.
Active - This tell the process where to implant the n-type ions (P or As). Remember that
we want to implant into the Poly to reduce its resistance. The “Width” of the
N-Select dictates the width of the transistor (Wn)
Poly - This specifies the gate of the device. Under the poly will be thin oxide forming
MOS structure. The “Length” of the Poly dictates the length of transistor (Ln).
Display Notes
- You can setup the default units to use (micron vs. lambda) in the upper corner of the screen. If you are
getting confusing measurements, make sure that this box is in the units you want.
- You can setup the grid display and snap using the “Setup – Design” menu and “Grid” tab. Doing this on
the fly sometimes helps you draw faster.
Entry Notes:
- You enter a rectangle by first selecting the layer and then clicking on the square icon.
- You can enter rulers in your design to measure your rectangles as they are entered. You can set the
display options of the ruler on the “Setup – Design” menu on the “Drawing” tab.
23
b) Run DRC to make sure your dimensions are not violating any design rules
- Click on the DRC button in the upper left corner of the screen (little green play arrow). If
everything checks out, you should a pop up that says it passed DRC.
24
c) Enter the Body Diffusion point for the NMOS
- In order to enter a body contact, we need to tell the tool that we are going to create a p+
diffusion region. We do this using the active and P-select layers. We again use the Active
layer to represent that ion implantation will be needed. Put a substrate diffusion region next to
your NMOS as follows using P-Select and Active:
- we do this using the Active Contact layer. We want to put as many as possible without
violating DRC.
25
e) Enter Metal 1 to connect the Source and Body of the NMOS together. Also add metal from
this connection down to a VSS rail (named later). Put Metal1 over the Drain contact to
connect to later.
- Click on the “Switch to Drawing Ports” icon (it looks like a little square next to an “A”).
- Now that you are in the Port naming mode, click on the VSS rail and a dialog will appear.
26
- You will first need to provide the Generic 0.25um process definition file (*.xst). Browse to
“..\Generic_025_Kit\Generic_025.xst”
- You will then need to specify where you want to take the cross-section. Click the “Pick”
button and then click on one of the upper active contacts:
- Click “OK”
PMOS
A PMOS device is made in a similar manner as the NMOS except that we need to specify the N-well and
use P-select instead of N-select. Enter a PMOST as follows:
a) Enter the PMOS N-well, P-select, Active, Poly, Active Contact, and Metal 1 as follows:
27
b) Take a cross-section to verify everything is OK
You should clearly see the N-well used to create the PMOS substrate.
Metal and Poly are connected together by simply drawing rectangles that are adjacent to or overlap
another rectangle of the same type (i.e., M1 to M1, Poly to Poly).
- Connect the gates together using Poly and then route the signal up to Metal 1 using a
Poly Contact
28
Perform a Final DRC on the Design
29
Extract a SPICE Netlist of your Layout
- Tools – Extract
You will need to provide an extraction file for this process (*.ext)
- Browse to “..\Generic_025_Kit\Generic_025.ext”
You will want to provide a SPICE output file. Browse to your design directory for this example
and provide the name “Inverter_Post_Layout.spc”
- Click “Run”
Notice that the extraction tool found two transistors (PMOS and NMOS) with the sizes that we
intended.
30
Using LVS (Layout versus Schematic Checking Tool)
________________________________________________________________________
We always want to ensure that the layout we have created is what we intended in the schematic. LVS will
compare the Netlist exported from S-edit and the Netlist exported from L-edit.
- Start – All Programs – Tanner EDA – Tanner Tools v12.6 – LVS v12.6
- File – New
- In the dialog that appears, browse to the Netlist you exported from S-edit for your Inverter
(Inverter.spc)
- In the dialog that appears, browse to the Netlist you exported from L-edit for your Inverter
(Inverter_Post_Layout.spc)
- Click the “Run Verification” icon (little creen arrow) to perform LVS.
- If everything matches, you will see a report window that says “Circuits are equal” in red. If it
does NOT match, you will be given a report showing what is wrong.
31
32