Académique Documents
Professionnel Documents
Culture Documents
Table of Contents
Chapter 1 Introduction..................................................................................................................... 6
1.1. Typographic Conventions ................................................................................................... 6
1.2. Installation .......................................................................................................................... 7
Chapter 1 S-Edit Introduction .......................................................................................................... 8
Chapter 2 Getting Started with S-Edit .............................................................................................. 9
2.1. Loading a design ................................................................................................................. 9
2.2. Viewing the Design ........................................................................................................... 10
2.3. Navigating the Design Hierarchy....................................................................................... 11
2.4. Elements of a Symbol View............................................................................................... 12
2.5. Elements of a Schematic View .......................................................................................... 16
Chapter 3 Evaluated Properties ..................................................................................................... 20
3.1. Annotate Port Properties .................................................................................................. 21
Chapter 4 Callbacks ........................................................................................................................ 24
Chapter 5 Saving Designs ............................................................................................................... 27
Chapter 6 Creating a New Schematic Cell ...................................................................................... 28
6.1. Placing Instances ............................................................................................................... 28
6.2. Making Connections ......................................................................................................... 31
6.3. Placing Input and Output Ports......................................................................................... 33
6.3.1. Moving Instances with Rubberbanding ...................................................................... 35
Chapter 7 Creating a New Symbol ................................................................................................. 37
7.1. Automatic Symbol Generation and Update...................................................................... 37
7.2. Editing the Symbol ............................................................................................................ 37
Chapter 8 Checking the Schematic................................................................................................. 39
Chapter 9 Highlighting Nets ........................................................................................................... 41
Chapter 10 Simulating the Design .................................................................................................. 43
10.1. Simulating a design ........................................................................................................... 43
10.2. W-Edit ............................................................................................................................... 46
10.3. Probing Voltages, Currents, and Charges ......................................................................... 50
Chapter 11 Viewing Voltages, Currents, and Charges on the Schematic....................................... 58
11.1. Viewing results on the schematic ..................................................................................... 58
2
Table of Contents
3
Table of Contents
4
List of Exercises
List of Exercises
Exercise 1 - Load an existing S-Edit Design ...................................................................................... 9
Exercise 2 - Setting up and simulating a design in S-Edit ............................................................... 43
Exercise 3 - Viewing results in W-Edit ............................................................................................ 47
Exercise 4 - Working with Traces in W-Edit ................................................................................... 56
Exercise 5 - Load an existing L-Edit Design .................................................................................... 65
Exercise 6 - Zooming and Panning ................................................................................................. 67
Exercise 7 - Investigating the Design Navigator ............................................................................. 68
Exercise 8 - Opening a cell ............................................................................................................. 70
Exercise 9 - Selecting and editing objects and edges..................................................................... 72
Exercise 10 - Drawing Objects........................................................................................................ 76
Exercise 11 - Editing Objects .......................................................................................................... 79
Exercise 12 - Show/Hide Objects ................................................................................................... 81
Exercise 13 - Show/Hide Layers ..................................................................................................... 83
5
Chapter 1 1.1 Typographic Conventions
Introduction
Chapter 1
Introduction
Tanner Tools is a complete flow for IC design including schematic capture, analog simulation,
physical layout and verification. In this tutorial you will learn about:
Bold Indicates elements that are a part of L-Edit, such as toolbars, menus, and buttons.
Italics Indicates elements that are part of the tutorial design, such as cell names,
instance names, and properties.
6
Chapter 1 1.2 Installation
Introduction
1.2. Installation
The first time you run L-Edit after installation, the following dialog appears, asking if you wish to
setup the examples and tutorial.
If you installed the tutorial when you first installed L-Edit, then the tutorial can be found in the
location that you specified for the tutorial files. The default location for the tutorial on XP is My
Documents\Tanner EDA\Tanner Tools v16.0\L-Edit\Tutorial. The default location for the
tutorial on Vista and Windows 7 is Documents\Tanner EDA\Tanner Tools v16.0\L-Edit\Tutorial.
Tutorial and example files may be installed at any time by invoking Help > Setup Examples and
Tutorial from L-Edit, or by invoking All Programs > Tanner EDA > Tanner Tools v16.0 > Setup
Examples and Tutorial from the Windows start menu.
After running the tutorial, modified tutorial files can be replaced with a fresh copy of the
tutorial files by invoking Help > Setup Examples and Tutorial, and choose Repair, when asked
to select between Modify, Repair, or Remove.
7
Chapter 1 1.2 Installation
S-Edit Introduction
Chapter 1
S-Edit Introduction
S-Edit is a schematic capture tool for use by circuit design engineers. In this tutorial you will
learn about:
Opening a design
Elements of a symbol
Elements of a schematic
Saving designs
Highlighting nets
8
Chapter 2 2.1 Loading a design
Getting Started with S-Edit
Chapter 2
Getting Started with S-Edit
Step 1. Invoke File > Open > Open Design…, press the Browse button, ( ), in the Open
Design dialog, and browse to the RingVCO.tanner file in the RingVCO folder of the
tutorial folder. The default location for the this design is My Documents\Tanner
EDA\Tanner Tools v16.0\Designs\RingVCO, although you may have installed it in
another location. Press OK in the Open Design dialog.
The RingVCO tutorial will load into S-Edit, and look like this. On the left side of the application
window, we have the Library Browser, on the bottom, we have the Command/Log window,
and on the right, we have the Properties Browser. In the center is the top level schematic of
our design.
9
Chapter 2 2.2 Viewing the Design
Getting Started with S-Edit
Properties
Library Browser
Browser
List of Schematic
cells Window
Symbol
preview Command /
Log Window
This project consists of a design called Ringvco, which references several libraries. The libraries
referenced are Devices, Misc, SPICE_Commands, and SPICE_Elements. The design is shown in
black, and libraries are shown in blue in the list of libraries in the top pane of the Library
Browser.
10
Chapter 2 2.3 Navigating the Design
Getting Started with S-Edit Hierarchy
You can right-click anywhere on the Library Browser and toggle on/off
display of the Preview Pane.
Let’s pan and zoom around the design.
Use the +/- keys to zoom in and out of the design.
Scroll the mouse wheel to zoom in and out of the design, centered at the
cursor.
Use the arrow keys to pan up/down/left/right.
Press and release the Z key, then click and drag the left mouse button over
a region to zoom into that region (“create a zoom box”).
Use the Home key to fit the entire contents to the window.
Views can also be opened by double clicking on a cell in the cell list. The
view opened (symbol, interface, or schematic) will be of the same type as
the last opened view. Double click on cell NFET in the list of cells to open
the symbol view of NFET. If multiple views exist, a list will be displayed to
select the desired view.
You can also select a cell and press the Open button in the Library browser
to open a cell. This behaves the same way as double click. Select the
DiffCell cell in the cell list, and press the Open button to open its symbol
view.
11
Chapter 2 2.4 Elements of a Symbol
Getting Started with S-Edit View
Pressing the drop down arrow next to the Open button lets you pick the
specific view of the selected cell you wish to open. Open the schematic view
of the control cell in this manner.
Lastly, views may be opened using the Cell > Open View command. Use
this method to open the schematic view of cell RingVCO_TestBench in this
manner.
When opening a view, you can force the new view to open in a new window
by holding the Ctrl key down when opening the new view.
You can use the View Symbol ( ) and View Schematic ( ) toolbar
buttons to open the Symbol or Schematic view that corresponds to the
currently active window. Close all windows, and open the schematic view of
DiffCell. Press the View Symbol button to see the symbol for DiffCell.
Pressing the “?” key will toggle between symbol and schematic views of a
cell. Close all open views.
The Back and Forward buttons ( ) on the Standard toolbar can be
used to navigate to previous and next views. The forward button is only
enabled after backing up using the back button. Open the Schematic view of
RingVCO_TestBench. Double click on the symbol for RingVCO to open the
schematic for RingVCO. Now double click on one of the symbols of DiffCell
to open its schematic. Now use the Back and Forward buttons to navigate
back and forward to previous views and to next views. Now close all views.
12
Chapter 2 2.4 Elements of a Symbol
Getting Started with S-Edit View
Port
Symbol
Graphics
Properties
Labels: Text labels can be added to a symbol, and are visible when the
symbol is instanced.
Ports: Ports define the connection points that can be made to the symbol
when the symbol is instanced. In the figure above, these are the S, D, G, and
B shown in purple. When instanced, ports do not show their text, but appear
as an open circle “hot spot” for connecting a wire.
Properties: Properties are name-value pairs that are usually used to describe
some characteristic of a device, such as a transistor length, width, or
Source/Drain areas and perimeters. Properties can also be used for other
purposes, such as controlling the SPICE statements written for a device.
Properties on a symbol provide the default values when that symbol is
instanced, but may be overridden on an instance-by-instance basis.
13
Chapter 2 2.4 Elements of a Symbol
Getting Started with S-Edit View
The Electrical toolbar for creating Ports and Properties: Ports may be of type
In, Out, In/Out, Other, and Global.
14
Chapter 2 2.4 Elements of a Symbol
Getting Started with S-Edit View
The properties on a symbol are default properties that are used when the
symbol is instanced.
You can easily change the value of any property by placing the cursor in the
value entry of the property grid and entering a new value. Properties can
also be added using the Add button on the toolbar, and deleted using the
Delete button.
Properties can be an explicit value, can reference another value, and can be
an expression. For example, the value of L is 0.25u and the value of W is
2.5u. Property TW, the total width of the PMOS is an expression which
references the value of properties M and W using the “$” as a reference.
When the PMOS is instanced, the value of TW will get resolved to TW =
M*W. If the values of M and W are not locally overridden on the instance,
then TW = 1*2.5u = 2.5u.
Properties AD, AS, PD and PS use expressions with the “if (expr, expr,
expr)” function to calculate the source and drain areas and perimeters based
on the length “L”, the width “W”, the multiplicity “M”, and the
GatePerimeterFactor. Note that Calc.Odd and Calc.OuterArea are sub-
properties of property Calc. Sub-properties are referenced using a period as
separator between levels.
A property on a symbol can be made visible, hidden, or only the value visible
when the symbol is instanced. Click on the (+) next to the AD property, and
see its Display value is set to Hidden. Click on the grid on the word Hidden
and Click the drop down control to see the possible choices Hidden,
Visible, and ValueOnly. Close the properties for AD by pressing the (+)
next to AD, and inspect the Display property for L, see its Display property is
Visible. Hidden and Visible/Value Only properties are rendered in slightly
different colors on the screen to easily distinguish which are visible and
which are hidden. The Display property specifies how the property is
displayed when in evaluated mode. The DisplayWhenNotEvaluated property
sets how the property is to be displayed when not in evaluated mode.
Inspecting the properties on the symbol for PMOS, we see that W, L, and M
have their Display set to Visible, ANNOTATE.Drain, ANNOTATE.Gate, and
ANNOTATE.Source have their Display set to ValueOnly, and all other
properties have their display set to hidden.
Properties may also be edited in place, without the properties grid. Double
click on property W to get the following dialog to edit its value. Press Cancel
to dismiss the dialog.
15
Chapter 2 2.5 Elements of a Schematic
Getting Started with S-Edit View
Properties
Symbol
Instance
Port
Net
16
Chapter 2 2.5 Elements of a Schematic
Getting Started with S-Edit View
17
Chapter 2 2.5 Elements of a Schematic
Getting Started with S-Edit View
Notice that only those properties that were designated as Visible or Value
only on the symbol of NMOS are visible on the instance N1 in the schematic
window.
Values may be overridden on an instance-by-instance basis. Property
values that are only on an instance and not on the symbol, or are overrides
over symbol values are shown in black in the properties browser, property
values that are inherited are shown in blue. For instance N1, notice that
property L has a value of 2.0u, which overrides the value of 0.25u on the
symbol.
You can revert an overridden property value back to its symbol value by
selecting that property and pressing the Reset button (blue up-arrow) on the
property browser. Select the L property of instance N1 in the property
browser, and press the reset button. See the value changes from 2.0u (and
18
Chapter 2 2.5 Elements of a Schematic
Getting Started with S-Edit View
black, meaning local override) to 0.25u (and blue, meaning inherited). Press
Ctrl-Z to undo the change.
You can modify the values of multiple instances at once. Select the
instances N1 and N2, the bottom two NMOS instances in the schematic.
The property browser displays those values that are the same for all
selected instances, and leaves blank those property values that are different
for the selected instances. Change the value of L to 10u. Select each
instance individually and see that each now has the new values. Change the
values back to 2.0u.
You can use the Library browser to easily select all instances of symbol and
then change properties on all of them. Select an instance in the schematic.
Note that the selection in the list of cells in the Library browser is updated to
correspond to the selected symbol. Select an instance of cell PMOS on the
schematic or select PMOS directly in the list of cells. Now press the Find
button and all instances of cell PMOS will be selected in the schematic. You
can now change properties on all the selected symbols, or do any other
operation on the selections.
Properties may also be edited in place, without the properties grid. Hold
down the Ctrl key, and double click on a property a dialog to edit its value.
Press Cancel to dismiss the dialog.
Properties may also be moved to different locations. Hold down the Ctrl key
and right click on a property to select it, and then hold the middle mouse
button to move the property.
Close all views, and open the schematic view of RingVCO_TestBench.
19
Chapter 3 2.5 Elements of a Schematic
Evaluated Properties View
Chapter 3
Evaluated Properties
20
Chapter 3 3.1 Annotate Port Properties
Evaluated Properties
and push into the RingVCO. You can also push into a cell by double clicking
on its symbol with the cursor in selection mode. Push into the third from the
left DiffCell instance, Xa3.
When you push in context into a cell, S-Edit will display the hierarchical path
on the title bar of the schematic window. In our example we started in cell
RingVCO_TestBench, pushed into instance X1 of cell RingVCO, and then
into Xa3 of cell DiffCell, so the title bar of the schematic window will display
RingVCO_TestBench/X1/Xa3.
To display the values of evaluated properties, press the Display Evaluated
21
Chapter 3 3.1 Annotate Port Properties
Evaluated Properties
Now select Net in the Display Evaluated Properties dropdown to make the
annotate properties display the hierarchical net names, Vdd, X1/Vb1,
X1/Vb2, X1/Xa3/N_1, and X1/Xa3/N_20:
You can also choose None to display nothing for the annotate properties.
22
Chapter 3 3.1 Annotate Port Properties
Evaluated Properties
23
Chapter 4 3.1 Annotate Port Properties
Callbacks
Chapter 4
Callbacks
Callbacks provide the ability to call a tcl command upon changing a property value. The
callback command is usually a user written function. Typical uses of callbacks are to perform
validity checking of the input or to modify other properties that should change in order to
maintain consistency with the modified property.
Open the symbol view of the 4 terminal PMOS, and in the property grid,
expand property “L” and see that it has a callback function named
CheckSpecificDimension.
The function CheckSpecificDimension checks that the value the user
has entered is in a specified range, is snapped to a specified grid, and
returns an error message if these conditions are not met.
Open the schematic view of cell DiffCell, and select P1 (near the top of
the schematic). Note that it has values L=0.25u. Now change the value of L
to 0.25 (remove the u) and see the following message:
24
Chapter 4 3.1 Annotate Port Properties
Callbacks
if { $sProcName != "" } {
eval $sProcName
}
}
The callback functions must be defined in S-Edit before they can be called.
This is done either by dragging the file containing the callbacks into the
25
Chapter 4 3.1 Annotate Port Properties
Callbacks
command window, or by placing the file in one of the folder locations from
which scripts get automatically loaded:
Scripts placed in a folder scripts/open.design in the design folder will get
automatically loaded when the design is opened. We have placed the file
GeneralCallbacks.tcl in this location in the Devices library.
Other locations from which scripts are automatically loaded are:
To load script when any C:\Documents and Settings\<username>\Application Data\Tann
er EDA\scripts\open.design
design is opened, place script
in:
To load script when S-Edit is C:\Documents and Settings\<username>\Application Data\Tann
er EDA\scripts\startup
started, place script in:
To load script when S-Edit is C:\Documents and Settings\<username>\Application Data\Tann
er EDA\scripts\shutdown
shutdown, place script in:
26
Chapter 5 3.1 Annotate Port Properties
Saving Designs
Chapter 5
Saving Designs
Before we proceed with the tutorial, let’s learn how to save the design, so we can save the
modifications we will be making in the next section. The File > Save menu is shown below:
27
Chapter 6 6.1 Placing Instances
Creating a New Schematic Cell
Chapter 6
Creating a New Schematic Cell
Now let’s learn how to create our own schematic. If you wish to skip the steps to create the
inverter cell, we have provided a completed cell called InverterFinished.
First, create a new cell called Inverter. Invoke Cell > New View. We want to
create the new cell inside the design Ringvco, so enter the following into the
New View dialog:
Design: Ringvco
Cell: Inverter
View type: schematic
View name: view_1
Interface name: view_1
After pressing OK, you will get an empty drawing area for a new schematic
view.
28
Chapter 6 6.1 Placing Instances
Creating a New Schematic Cell
Drag
instance with
mouse, click
to place.
Change
property
values before
placing an
instance
using the
Instance Cell
dialog.
29
Chapter 6 6.1 Placing Instances
Creating a New Schematic Cell
Change instance
name.
Select cell NMOS in the Instance Cell dialog, change the instance name to
N1, make sure the Interface and Symbol View are NMOS4, and place the
NMOS below the PMOS by clicking on the schematic view at the location
you wish to place the instance.
Now place an instance of the Gnd connected to the bottom (source) port of
the NMOS and an instance of Vdd connected to the top (source) port of the
PMOS. The Gnd and Vdd symbols are in the Misc library.
Notice that ports on symbols are displayed with an unfilled red box when
they are not connected. When connected either directly to another symbol,
or with a wire, the box becomes filled, indicating that a connection has been
made.
Exit instance mode by either pressing the right mouse button, pressing the
ESC key, or pressing the Done button on the Instance Cell dialog.
The placed instances should appear as follows:
30
Chapter 6 6.2 Making Connections
Creating a New Schematic Cell
Vdd
PMOS
NMOS
Gnd
31
Chapter 6 6.2 Making Connections
Creating a New Schematic Cell
Connect
gate ports
together
Connect
drain ports
together
Now connect the source and bulk ports of the PMOS to Vdd and connect the
source and the bulk ports of the NMOS to Gnd.
32
Chapter 6 6.3 Placing Input and Output
Creating a New Schematic Cell Ports
Connect PMOS
bulk to Vdd
Connect
NMOS bulk to
Gnd.
Place In
port
33
Chapter 6 6.3 Placing Input and Output
Creating a New Schematic Cell Ports
After clicking the left mouse button to place the port, a dialog will appear to
set the port name, and size and justification parameters. Give the port the
name “A” and set Orientation to “West”, and press OK.
Connect port A
34
Chapter 6 6.3 Placing Input and Output
Creating a New Schematic Cell Ports
Now place a port named “Y” of type Out as shown, and connect it to the wire
that connects the two drains. Use the Out port button ( ) to start. Give the
Out port Right alignment.
Place and
connect port Y
35
Chapter 6 6.3 Placing Input and Output
Creating a New Schematic Cell Ports
Now press and hold the middle mouse button while dragging the mouse up
or down to move the two instances without breaking any connections.
You can move instances, forcing them to detach from connected wires by
invoking Draw > Force Move (ALT-M shortcut key) before performing the
move operation. Invoke force move, then select the PMOS instance by right
clicking on it, then press and hold the middle mouse button and drag the
mouse to move it. See that the instance moved, breaking away from its
connections. Invoke Edit > Undo (Ctrl-Z) to return the instance to its original
position.
36
Chapter 7 7.1 Automatic Symbol
Creating a New Symbol Generation and Update
Chapter 7
Creating a New Symbol
After pressing OK, you will get an empty drawing area for a new symbol
view
If the symbol view is empty, Update Symbol will create simple graphics and
place ports corresponding to those on the schematic. It will also place text
labels corresponding to each port. If a symbol already exists with graphics or
ports, Update Symbol will add the new ports from the schematic to the
symbol view, but will not modify the graphics or remove any existing ports.
37
Chapter 7 7.2 Editing the Symbol
Creating a New Symbol
draw a path, select the Path drawing button on the toolbar, ( ), then select
the All Angle button on the segment toolbar, ( ), then click the left mouse
button to place the first vertex, subsequent clicks with the left mouse button
will place additional vertices. Clicking the right mouse button ends the wire
without placing a vertex, and double clicking the left mouse button will end
the path with placing a vertex at the double click location.
Draw a circle at the right vertex of the triangle by pressing the circle drawing
button on the toolbar. Press the left mouse button at the center of the
desired circle, and drag the mouse to create the circle.
Delete the box that was placed by Update Symbol. Press the Select button
on the toolbar ( ), click on the box to select it (it will highlight when
selected) and press the delete key to delete the box.
Move the ports and labels onto the new graphics you have drawn, as shown
below. When in selection mode, you can drag a region with the mouse to
select all objects in the region. Then hold the middle mouse button and
move the mouse to move objects. You can also change the text size of the
ports and labels using the properties browser.
Your completed symbol should look like this:
38
Chapter 8 7.2 Editing the Symbol
Checking the Schematic
Chapter 8
Checking the Schematic
S-Edit’s Design Check tool can check the schematic for many of the common mistakes made
during the schematic creation process. These are categorized into errors, which will prevent a
proper connectivity from being formed, and warnings, which do not prevent connectivity
extraction but may be unintended mistakes by the user. Some of the common items the design
checker will check for include:
Dangling wires – wires with unconnected ends.
Dangling ports – ports on instances with no connection
Instances with no name or non-unique name.
Nets have at most one output port reference connected to them.
Ports with the same name have the same type.
Now let’s place our inverter in the RingVCO_TestBench and check for errors. If you skipped the
steps to draw the inverter, you can use the inverter_finished cell provided.
Open the schematic of RingVCO_TestBench and place an instance of
Inverter to the right of the schematic.
Place
instance of
Inverter
39
Chapter 8 7.2 Editing the Symbol
Checking the Schematic
Draw a wire to connect net Out to the input of the Inverter. However, we will
intentionally leave a gap in the connection for the design checker to catch
later. Place an instance of PrintVoltage and connect to the output of the
inverter, as shown below. Next, we aim to place a net label called Buffered
on the net from the output of the inverter to the PrintVoltage, however lets
misplace it slightly off the net.
Leave gap in
connection.
Misplace
netlabel
off the
wire
Now, invoke Tools > Design Checks, or press the Check view and
hierarchy button ( ), to perform a schematic check. The design checker
will report warnings for the unconnected wire end, the unconnected symbol
port, and the unconnected net label. The following warnings appear in the
log window:
# CHK Warning: Cell: RingVCO_TestBench, Port "A" on instance "inv1" is dangling.
# CHK Warning: Cell: RingVCO_TestBench, Wire: Out is dangling.
# CHK Warning: Cell: RingVCO_TestBench, netlabel: Buffered is dangling.
# CHK Warning: Cell: RingVCO_TestBench, Net: "Buffered" in schematic: is not connected to any port.
# SED Design check complete. Design: RingVCO and 0 libraries, 5 cells and 10 views have been checked. 0
errors and 4 warnings were found.
Click on the link “A” to pan and zoom the schematic to the unconnected port
on the inverter.
Fix the connection from net Out to the inverter, and move the netlabel
“Buffered” onto the net from the inverter to the PrintVoltage instance.
The design checker will find errors and warnings in the active schematic
view, and in any schematic view in its hierarchy.
40
Chapter 9 7.2 Editing the Symbol
Highlighting Nets
Chapter 9
Highlighting Nets
Select
netlabel “In”
Double click on the RingVCO, and see that the net is highlighted as you
push into an instance.
Double click on the rightmost DiffCell, instance Xa9, and see that the net
continues to be highlighted as you navigate down the hierarchy.
41
Chapter 9 7.2 Editing the Symbol
Highlighting Nets
Now click on port Outp, and pop up a level of hierarchy using the Pop
context button ( ), and see that nets can be traced both up and down
hierarchy.
In schematic of RingVCO, select port Outm on the right. Highlight the entire
net Outm within the current schematic view by invoking Tools > Highlight
Net, or press the Highlight Net toolbar button ( ). See the selected net is
highlighted. You can select any object on a net and invoke Highlight Net to
highlight a net.
You can also highlight nets by name. In the Command Window, type find
net VTune, and see the VTune net is highlighted.
42
Chapter 10 10.1 Simulating a design
Simulating the Design
Chapter 10
Simulating the Design
Now let’s run SPICE simulation using the T-Spice engine. First let’s examine the simulation setup.
In this section you will navigate the design hierarchy and learn different ways to open a cell.
Step 1. Close all windows and open the schematic view of RingVCO_TestBench.
Step 2. The schematic view of RingVCO_TestBench has been setup with 2 DC voltage source
as inputs to the circuit. Print commands have been placed on the input net, and on the
output net. These designate the nets for which voltages will be plotted in the waveform
viewer during simulation.
Step 3. Press the Simulation Setup button on the toolbar to invoke the Simulation Setup
dialog. We have selected to run a DC Operating Point Analysis, a Transient Analysis,
and a parametric sweep.
43
Chapter 10 10.1 Simulating a design
Simulating the Design
Step 4. Arguments for each type of simulation may be set by selecting that simulation type in
the list. Click on different types to see their parameters. For our transient analysis, we
have set a Stop time of 100ns, and a step time of 100ps. We also selected Powerup
as our Startup mode. Power-up will ramp up the DC voltage sources from 0 to their
values during the first 1ns of the simulation. The default power-up length is 2ns but in
this simulation we have set it to 1ns.
44
Chapter 10 10.1 Simulating a design
Simulating the Design
Step 5. We have setup a parameter sweep of the Cap parameter which sets the parasitic
capacitance on the output of the RingVCO.
Step 6. Click the Run Simulation button in the Simulation Setup dialog.
Results will appear in W-Edit, displaying the voltage waveforms for the nodes we
indicated with the PrintVoltage commands.
45
Chapter 10 10.2 W-Edit
Simulating the Design
10.2. W-Edit
Simulation
Navigator Traces
Navigator
Variation
Navigator
The Simulation Navigator lets you open and close chartbooks, and add and remove simulations.
Each new simulation gets added to the simulation navigator with the latest simulation being at
the end/bottom of the list.
The Variation Navigator lets you turn on or off the display of different variations (sweeps, alter,
etc.) in the simulation and also set dependent variables so they can be assigned display
characteristics.
The Traces Navigator is used to manage which traces are displayed in a chart. The traces from
all open simulations are loaded in the navigator list. You can filter the traces to easily find the
traces you want to plot. The Traces Navigator supports flat or hierarchical browsing of signals,
and you can filter by signal name, by type (V, I, Q) and by analysis in multi-analysis simulations.
Traces are colored in the Traces Navigator to indicate their type as follows:
Black – not currently loaded to a chart.
Brown – used in the active chart and originally from a simulation, including scalars.
46
Chapter 10 10.2 W-Edit
Simulating the Design
Red – present in database but not from simulation and not arithmetic.
Blue – arithmetic traces.
Gray – hidden traces.
Green – scalars.
You can drag and drop a trace from the navigator list to load and display it in a chart. When a
scalar is the result of a sweep, then the drag and drop operation into a DC/Parametric chart will
plot the scalar versus the sweep variable.
You can also right-click anywhere within the traces navigator to access Add to Active Chart, as
well as a variety of other trace commands.
Shift+dragging and dropping a measurement scalar into a chart creates a dynamic text label
with the value “name=[measure calc name]” which will display the measurement result from T-
Spice.
Step 1. To change the color for each variation of a sweep, first change the Variable 1: in the
Variation Navigator to the sweep variable Cap.
Step 2. Open the Setup – Trace Styles dialog using Setup > Trace Styles.
Step 3. Change the Color dropdown to use Variable1 for the different colors and click
Close.
47
Chapter 10 10.2 W-Edit
Simulating the Design
Step 4. To view only a single variation of the simulation, right click on the variation in the
Variation Navigator, and select Hide all But Selected Variations.
Change the Trace Styles back to Traces to color each trace with a different color.
Step 5. Open the Setup – Trace Styles dialog using Setup > Trace Styles.
Step 6. Change the Color dropdown to use Traces for the different colors and click Close.
Step 7. To view a measurement versus a sweep variable, first create a DC/Parametric plot
using Chart > New Chart.
48
Chapter 10 10.2 W-Edit
Simulating the Design
Step 8. Select the DC/Parametric type for the chart and give it a title.
Step 9. Click the exclude other traces filter button ( ) on the Traces Navigator to
only display those traces that are valid for the active chart’s type.
Step 10. Drag and drop RingFreq from the Traces Navigator to the plot.
49
Chapter 10 10.3 Probing Voltages,
Simulating the Design Currents, and Charges
We can also probe results down the hierarchy. Using the voltage probe tool,
double click on the VCO symbol (instance named X1) to push in context into the
instance of that symbol.
50
Chapter 10 10.3 Probing Voltages,
Simulating the Design Currents, and Charges
Double click
on instance
of ringvco
with Voltage
probe tool
Click on the bottom net (labeled Outp) to probe the voltage on that net.
Click to probe
net Outp
Using the probe tool again, push into the third instance from the left of
DiffCell (instance named Xa3). To push into an instance, you can also select
the instance with the probe tool, then press the Push into context button (
) on the toolbar. To pop back up the hierarchy, press the Pop context
button, ( ).
51
Chapter 10 10.3 Probing Voltages,
Simulating the Design Currents, and Charges
Click on
net to
probe
voltage
Probe the voltage on the internal node as shown above. Results will display
in W-Edit.
52
Chapter 10 10.3 Probing Voltages,
Simulating the Design Currents, and Charges
You can probe Currents into the port of a symbol by selecting the Probe
Current button, ( ), then clicking on the port you wish to probe.
Click on the red square showing the connection to the gate of instance N1,
as shown below, to probe the current into that gate.
53
Chapter 10 10.3 Probing Voltages,
Simulating the Design Currents, and Charges
Click on a
port to
probe
current
54
Chapter 10 10.3 Probing Voltages,
Simulating the Design Currents, and Charges
55
Chapter 10 10.3 Probing Voltages,
Simulating the Design Currents, and Charges
You can select a trace by click on trace in the plot the with the left mouse button or by
clicking on its name in the trace legend.
Step 1. Click on the trace name Out:V(Cap=5f) in the trace legend to select that trace in the
plot. The cursor will turn to a hand when you can select the trace name.
You cannot click on the box before the trace name select a trace. The box indicates
the color of the trace in the plot.
Notice the selected trace is displayed in Yellow and its name becomes the last name in
the Trace Legend.
56
Chapter 10 10.3 Probing Voltages,
Simulating the Design Currents, and Charges
Step 2. You can expand the select trace into a new plot using the expand plot button ( ). If
no traces are selected, then it will expand each trace into its own plot.
You can also collapse the plots into a single plot by selecting traces in each plot and
57
Chapter 11 11.1 Viewing results on the
Viewing Voltages, Currents, and Charges on schematic
the Schematic
Chapter 11
Viewing Voltages, Currents, and Charges on the Schematic
58
Chapter 11 11.1 Viewing results on the
Viewing Voltages, Currents, and Charges on schematic
the Schematic
59
Chapter 12 11.1 Viewing results on the
Busses and Arrays schematic
Chapter 12
Busses and Arrays
S-Edit supports arrays, busses and net bundles. First let’s describe nets, buses, bundles, and
arrays, then we’ll look at some examples. A net is the fundamental single unit of connection. A
bus is a set of connections with the same name and a numerical identifier and increment, and a
bundle is collection of nets and busses.
An array is created by assigning an instance with an instance name
containing array syntax.
Naming an instance array_name<n1:n2:step> creates an array of
instances named array_name<n>, where n starts at n1, ends at n2, and
increments by step. Step is 1 by default, and may be omitted. The
instance name U<0:7> defines an array of instances, with elements U<1>,
U<2>,…U<7>. Two-dimensional arrays may be created by naming an
instance U<n1:n2:step1><n3:n4:step2>. The second range increments
first. The instance name U<0:7><0:3> creates an array of instances
named
U<0><0>, U<0><1>, U<0><2>, U<0><3>,
U<1><0>, U<1><1>, U<1><1>, U<1><3>,
U<2><0>, U<2><1>, U<2><1>, U<2><3>,
…
U<7><0>, U<7><1>, U<7><1>, U<7><3>
A bus is created by assigning a net a name using bus syntax.
Similarly to arrays, naming a wire, using the net label tool,
bus_name<n1:n2:step> creates a bus of nets named bus_name<n>,
where n starts at n1, ends at n2, and increments by step. Step is 1 by
default and may be omitted. The name A<0:7> creates an 8 bit wide bus,
with nets A<1>, A<2>, … A<7>. Two-dimensional buses may be created
by naming a wire bus_name <n1:n2:step1><n3:n4:step2>. As with arrays,
the second range increments first.
Now we will look at our tutorial example.
Cell RingVCO_ArrayBus is a redesigned copy of cell RingVCO, using an
array and buses. Close all windows and open the schematic view of cell
RingVCO_ArrayBus. See how we have redesigned the ringvco using an
array of diffcells.
60
Chapter 12 11.1 Viewing results on the
Busses and Arrays schematic
61
Chapter 13 11.1 Viewing results on the
Customizing the setup schematic
Chapter 13
Customizing the setup
Settings for various configuration parameters are available in the Setup menu.
The following is the list of settings that are available:
Colors – Sets the colors of objects in the schematic, such as wires,
symbol graphics, ports, labels, etc.
Grids – Sets the Major, Minor, and Snap grids.
Units – Sets the Units (mm, cm, meter, inch) and the size of an internal
unit.
Validation – Sets the tcl procedures to call for validating cell names,
instance names, view names, port text and net labels.
Protection – Set the Allow Edit option.
General – Sets windowing behavior, to reuse windows or open a new
window each time a view is opened.
Selection – Sets Selection options
Text Editor and style – Sets Text Editor options.
Invoke Setup > Technology >Schematic Colors
Select different colors for Wires, Graphics, and various other elements. Note
that your changes take effect immediately. To save the new settings to the
design folder so they will be automatically present next time you load the
design, select {project setup folder} in the To/From folder, and press the
62
Chapter 13 11.1 Viewing results on the
Customizing the setup schematic
Save button. If you do not save the settings, they will be in effect until you
close the design, but will not be there when you reload.
Try changing some other settings on other pages in the Setup dialog.
63
Chapter 14 11.1 Viewing results on the
L-Edit Introduction schematic
Chapter 14
L-Edit Introduction
L-Edit is an easy-to-use, high performance layout editor combining the fastest rendering
available with powerful features that exceed the needs of the most demanding user. This
leading analog/mixed signal IC design tool enables you to get started with minimal training. You
can draw and edit quickly, with fewer keystrokes and mouse clicks than other layout tools.
In this tutorial you will learn about:
64
Chapter 15 15.1 Loading a design
Getting Started with L-Edit
Chapter 15
Getting Started with L-Edit
This chapter guides you through some typical L-Edit viewing and editing operations used to
design IC layouts. You will create a new layout database file, navigate a design’s hierarchy, and
view layout.
This chapter covers:
Loading a design
Select Operations
Step 1. Open the design database for the tutorial using File > Open.
Step 2. In the Open Design dialog, browse to the file Tutorial.tdb in the RingVCO folder
of the tutorial folder.
65
Chapter 15 15.2 Introduction to L-Edit’s
Getting Started with L-Edit User Interface
Step 3. Press the Open button in the Open dialog and the design will load into L-Edit.
End of Exercise
The Layer Palette displays the layers for the active design.
The Design Navigator shows all cells in a design in a hierarchical display that includes
information about parent and child cells.
The Mouse Button Bar displays the current function of each mouse button
66
Chapter 15 15.3 Zoom and Pan Operations
Getting Started with L-Edit
The Aerial View shows the position of the current viewing window relative to the cell
boundary.
The Details Button creates a text file containing a textual description of the selected objects.
Step 1. Open cell RingVCO_Completed using the Cell > Open command.
Step 2. Press the Home key on your keyboard. This will magnify the cell view such that all the
objects in the cell are shown.
Step 3. Use the + or – keys on your keyboard to zoom in and out from the current view.
Alternately, you can use Ctrl+Mouse wheel to zoom in and out.
Step 4. Select a specific object in the cell by clicking on the object with the right mouse button
RMB and then hit the W key. This will zoom to the selected object.
Step 5. Use the X key to toggle between the current view and the previous view.
Step 6. Use the arrow keys on your keyboard for panning. Shift+Mouse wheel will pan
the view horizontally. The mouse wheel will pan the view vertically.
Step 7. Select an object and use J and K keys to pan to the left/top or Right/bottom of the
object, respectively.
Step 8. Click File > Close to close Tutorial.tdb without saving.
End of Exercise
67
Chapter 15 15.4 Navigating the design
Getting Started with L-Edit hierarchy
The Design Navigator displays cells within the file similar to the way Windows
Explorer displays the files on your hard drive.
Pressing the F10 key arranges Design Navigator on the left and all layout and text windows on
the right.
If the layout window was originally maximized, pressing the F10 key toggles the
windows in L-Edit from normal mode to maximized mode.
Step 1. Open the design database for the tutorial using File > Open.
Step 2. In the Open Design dialog, browse to the file Tutorial.tdb in the RingVCO folder
of the tutorial folder.
Step 3. Click on the + button next to the DiffCell cell in the Design Navigator.
This will expand the hierarchical structure of the DiffCell and show all the sub-level
cells that are instanced in DiffCell. The number beside the cell name in brackets
indicates the number of times the cell has been instanced in the active cell.
68
Chapter 15 15.4 Navigating the design
Getting Started with L-Edit hierarchy
The cells with link icon ( ) are XRefCells that are linked to a cell in another TDB
file. The cells with the lock icon ( ) are locked cells.
Step 4. Click on the view type dropdown in the Design Navigator and change it to Top down
– non-instanced.
An instance is a reference to another cell. This allows you to reuse parts of your layout
to make the design more modular, to layout the design more quickly and to make
updating the design easier. The Top down - non-instance filter will show only those
cells that are not instanced (referenced) anywhere in the design.
When a GDSII file is imported into L-Edit, the Top down- non instanced filter will
usually allow you to quickly find the top level cell of the design.
Step 5. Expand the + sign next to the RingVCO_Completed cell to see its hierarchical
structure.
The numbers in brackets indicate the number of times the lower-level cell has been
instanced in the parent cell.
Step 6. Click on the view type dropdown in the Design Navigator and select Bottom up –
all cells.
In this mode, cells are listed in terms of where they are instanced. When a cell is
instanced in other cells it is marked with a + and the cells which contains it as an
instance are listed below it. This allows you to look up the hierarchy so if you change a
cell, you can see which other cells will be affected.
Step 7. Click on the view type dropdown in the Design Navigator and select Top-down all
cells.
In this view, cells are hierarchically listed showing the instances they contain. This
allows you to look down the hierarchy.
End of Exercise
When a cell has been modified and not saved, it is written in bold letters in the
Design Navigator. When a cell or a file has been modified and not saved, an asterisk
symbol appears next to the cell name and file name in the title bar of the layout
window or application.
69
Chapter 15 15.4 Navigating the design
Getting Started with L-Edit hierarchy
In this section you will navigate the design hierarchy and learn different ways to open a cell.
Step 4. Expand the + sign for Diffcell and select the subcell NMOS_Auto_2u_2.5u_1.
Step 5. Open the cell using the Cell > Open command.
This will open the T-Cell auto generated NMOS layout cell (NMOS_Auto_2u_2.5u_1) in
a new layout window.
Step 6. Close the NMOS_Auto_2u_2.5u_1 cell window.
Note that the focus returns to the Design Navigator.
Step 7. Click on the title bar for the Control cell window or anywhere in the Control cell
layout to move the focus to the layout window.
Step 8. Select the Cell > Open command and select the NFET cell .
This will display the NMOS T-Cell code in a text window.
Step 9. Select the File > Close command to close the T-Cell text window.
End of Exercise
70
Chapter 15 15.5 Select Operations
Getting Started with L-Edit
In selection mode, you can select objects and edges. You can also use your right
mouse button (RMB) to select objects and edges in any other drawing mode.
If several objects overlap each other, you can select a specific object by cycling through the
selections. This is done by continuing to click on the object without moving the mouse. It will
select next object after each click and the last click in the cycle will be no selection and then the
cycle repeats.
When cycling through selections, it is best to watch the status bar in the lower left
of the application to see which object is currently selected in the cycle.
Add to Selection
G+ (RMB)
Select Edge
F+ (RMB)
71
Chapter 15 15.5 Select Operations
Getting Started with L-Edit
Add Edge
F +G + (RMB)
Remove Edge
F +E + (RMB)
The ESC key (L) will cancel a drawing or editing operation. Pressing L again will
switch to the selection tool.
By default, selected objects are displayed with a black outline. Use the Setup >
Layers command (Rendering tab) to change the manner in which selected object’s
are displayed on a specific layer.
We will now select single and multiple drawn objects, in order to edit them.
Step 1. Open cell Exercise 5.
Step 2. Place the mouse cursor inside the green box.
Step 3. Click with right mouse button (RMB) to select the box.
Step 4. Hold the G key down and click with RMB on the red box to add the box to
selection. Make sure you are not over both the red and purple box.
Step 5. Drag the middle mouse button (MMB) to move the selected objects by a small
distance.
When multiple objects are selected, editing operations such as Rotate, Flip, Slice,
Move By, etc. will affect all of the selected objects.
Step 6. Now click anywhere in the cell to deselect the selected objects.
We will now practice multiple edge selection and editing.
72
Chapter 15 15.5 Select Operations
Getting Started with L-Edit
Step 7. Hold down the F key and using the RMB , click and drag starting at the top
center of the green box dragging horizontally to include the entire purple box and let
go when you get to just outside the lower left corner of the red box. See the diagram
below.
Step 8. You should have selected two edges and an entire box. While still holding down the
F key, use the MMB to click and drag to the right of the red box in order to
stretch the two edges and move the purple box.
This is very useful when the gates of MOSFETs need to be stretched to make room for
extra contacts.
73
Chapter 15 15.5 Select Operations
Getting Started with L-Edit
Step 9. While still holding down theF key, use the MMB to click on the edge of the all
angle blue polygon to select its edge.
When holding down the F key, you will notice that the middle mouse function
changes to ARC, indicating that the MMB can be used to create a curved edge.
The middle mouse button operation changes to ARC when the F key is down,
only when the drawing mode is set to All Angle & Curves in Setup > Application –
General tab and the selected object is a polygon (not a box).
Step 10. With F key pressed, drag the selected edge using the MMB to create a
concave or convex arc as shown below.
74
Chapter 15 15.5 Select Operations
Getting Started with L-Edit
Step 11. Deselect the selected edge by clicking anywhere in the cell where there are no
objects.
Step 12. Select the left edges of the red and green box as shown below:
Step 13. To select multiple edges, select the first edge by holding the F key down and
clicking with the RMB .
Step 14. Then select the next edge by holding the F+G key down and clicking with the
RMB .
75
Chapter 15 15.6 Drawing and Editing
Getting Started with L-Edit Operations
Step 15. Select Draw > Move By to move the edges by 5 um in the horizontal direction.
This will stretch both the objects 5um from their current position.
End of Exercise
By default, L-Edit starts up in All Angle mode. All Angle & Curves mode can be changed by
going to Setup>Application- General tab and changing the Drawing mode in the Toolbars
group. You can also change it by right-clicking on the Drawing toolbar and selecting the mode
at the bottom of the context sensitive menu. When in All Angle mode, you cannot draw curved
objects. When in All Angle & Curves mode, you can draw curved objects and convert edges to
curves.
Step 1. Click Cell > New to open the Create New Cell dialog.
Step 2. Type the cell name as _Temp and press the OK button.
76
Chapter 15 15.6 Drawing and Editing
Getting Started with L-Edit Operations
Step 4. Select the Box drawing tool by clicking on box icon in the Drawing toolbar.
Step 5. Draw a box of any size by using left mouse button (LMB) .
To turn on mouse tooltips, use the Setup > Application – Mouse tab and set the
option to Both Text and Pictures to show mouse button function under the mouse
cursor. This can help new users learn the different mouse functions more quickly.
Step 6. Now select the Orthogonal Polygon tool ( ) and draw an orthogonal polygon. To
draw the polygon, use LMB to place each vertex and use the RMB to
complete the polygon.
Step 7. Now draw an object using 45 degree polygon tool( ) and the all-angle
polygon tool ( ).
77
Chapter 15 15.6 Drawing and Editing
Getting Started with L-Edit Operations
Step 8. Now draw a wire by using the orthogonal wire tool. To draw the wire, use the LMB
to place each vertex and use the RMB to complete the wire.
The default wire width for each layer is defined in Setup > Layers – General tab.
Step 9. Draw another wire using the 45 degree wire tool ( ) and use the drop down list
The ESC key (L) can be used to abort the drawing operation and to return to
selection mode ( ).
End of Exercise
78
Chapter 15 15.6 Drawing and Editing
Getting Started with L-Edit Operations
You can edit objects graphically, using your keyboard or mouse. You can move, resize and
reshape objects, stretch edges, add vertices to polygons or wires, rotate, slice, merge, or nibble
(cut) objects.
These functions are available in the Draw menu or you can use the Editing toolbar (shown
below) to edit selected objects.
The icons in the Editing toolbar are enabled only when one or more objects are
selected in the active cell.
Step 1. Select an orthogonal polygon you drew in the previous exercise by clicking on it with
the RMB .
When the mouse cursor is inside or outside a selected object(s), the MMB can be
used to move the object. For a two-button mouse, you can simulate the MMB by
79
Chapter 15 15.6 Drawing and Editing
Getting Started with L-Edit Operations
holding down the E key and using the LMB . For a two-button mouse with a
Step 2. With your mouse cursor inside the selected object, use your MMB to drag the
object and move it.
When the mouse cursor is on or near the edge of an object, dragging the MMB
will stretch the edge of that object.
Step 3. Place your mouse cursor on the edge of the selected object (until you see the Mouse
Button status bar MMB indicate Edit rather than Move) and use your MMB to
stretch it.
80
Chapter 15 15.7 Reviewing the Layout
Getting Started with L-Edit
Step 4. Select any object and click on the Rotate icon ( ) in the Editing toolbar.
This will rotate the object by 90 degrees in the counter clock wise direction.
Step 5. Similar to Step 4, flip the object by using one of flip icons.
Step 6. Select objects and try other functions in the Editing toolbar.
End of Exercise
L-Edit has the ability to do implicit object selection. If no objects are selected, pressing and
holding the MMB over an object will begin a move operation. If the cursor is near an
object’s edge (within the selection range) then pressing and holding the MMB begins an
edit or stretch operation. This can really streamline the editing process because you don’t have
to explicitly select objects or edges in order to modify them. Note that implicit selection is
governed by the values set for selection range and deselection range in the Setup > Design –
Selection tab.
You can have L-Edit highlight objects when you are within the selection range to
show implicit selections by setting the Highlight implicit selections option on the
Setup > Application – Selection tab. You can also turn off implicit selections on this
tab.
81
Chapter 15 15.7 Reviewing the Layout
Getting Started with L-Edit
Step 2. Right-click on the Box tool ( ) and uncheck the Show option.
This will hide any boxes drawn in the active cell. You can also use the icons on the
Drawing toolbar to toggle the hidden state of a particular object type by positioning
the mouse cursor over the desired object’s toolbar icon and clicking the middle mouse
button.
Step 3. Click the middle mouse button on the Orthogonal polygon tool ( ).
This will hide all polygons drawn in the active cell.
Drawing tools such as Orthogonal Polygon, 45-Degree Polygon, All Angle Polygon,
Pie Wedge and Torus are grouped together such that a MMB click on anyone of
these tool icons will show/hide all the tools in this group.
Step 4. Now show all objects by right-clicking on any of the drawing tools and selecting
the Show All option.
When all objects are shown, to hide all objects except for a particular object type, position the
mouse cursor directly over the desired object icon in the Drawing toolbar and hold the F key
Observe the Mouse button status bar for functionality associated with each mouse
button when the cursor is over a Drawing toolbar icon.
End of Exercise
82
Chapter 15 15.7 Reviewing the Layout
Getting Started with L-Edit
To show and hide layers, you can check/uncheck each layer with the Setup > Layers command.
The Layer Palette and its major parts are shown below.
Step 3. Now click the MMB on the Poly layer in the Layer Palette.
This will show objects on the Poly layer in the active cell. Metal 1 will also be showing
because we showed that layer in step 2. You can also show or hide a layer by checking
or unchecking the box in the Hidden column ( ) for each layer in the Layer Palette.
83
Chapter 15 15.7 Reviewing the Layout
Getting Started with L-Edit
The layer name in the Layer Palette will be filled with gray color when that layer is
hidden.
Step 4. Now show all objects on all layers by right-clicking on any layer and selecting
the Show > Show all option. The Show/Hide operation can be performed on multiple
layers at one time.
Step 5. Switch the Layer Palette filter to In Use in Cell + Hierarchy.
Step 6. Click on the layer header icon to sort the layers in alphabetical order.
Step 8. Hold the G key down and select the Keepout-Metal3 layer.
Step 9. Right-click on the selected layers and select the Hide > Hide Selected option.
84
Chapter 15 15.7 Reviewing the Layout
Getting Started with L-Edit
Step 10. Right-click on any layer and select Show > Show All.
With the F key pressed down, click with the MMB on the layer name to
show/hide all layers except the one you are clicking on.
End of Exercise
85
Chapter 16 15.7 Reviewing the Layout
SDL Introduction
Chapter 16
SDL Introduction
SDL is a schematic driven layout add on to L-Edit. In this tutorial you will learn about:
Automatic routing
Ripping up nets
86
Chapter 17 17.1 Opening the design
Getting started with L-Edit Schematic Driven
Layout (SDL)
Chapter 17
Getting started with L-Edit Schematic Driven Layout (SDL)
Step 2. The RingVCO tutorial will load into L-Edit, and look like this. On the left side of the
application window, we have the Layer Palette. In the center left is the Design
Navigator, which provides a tree view of the cells and the hierarchy of the design and
in the center right is the layout for a portion of our design.
87
Chapter 17 17.2 Setting up cell blocks for
Getting started with L-Edit Schematic Driven SDL
Layout (SDL)
Layer
Palette
Design
Navigator
Layout
Window
Mouse
Buttons
Aerial
View
This project consists of a design called RingVCO, which contains T-Cells named NMOS
and PMOS, Contact Cells named Cnt_Active, Cnt_NTAP, Cnt_Poly,
Cnt_PTAP, Via_M1M2, Via_M2M3, and Via_M3M4. Additionally, the design
contains cell blocks named Control and DiffCell.
Double-click the Control cell in the Design Navigator to open the cell layout if
it is not already open.
Each device that is listed in your netlist should be a cell with pre-defined layout or
as a T-Cell prior to running SDL. The device name in the netlist must match the
cell name in your TDB file for that device to be instantiated during SDL from your
netlist. Cells that do not exist or do not match by name may be optionally
generated upon importing of the netlist for later layout.
2. First, let’s look at the ports that are used in the block.
88
Chapter 17 17.3 Importing a netlist using
Getting started with L-Edit Schematic Driven SDL
Layout (SDL)
There are seven ports in the layout. Ports Vdd and Gnd are placed on the
Metal1 layer, Port Abut is placed on the Icon/Outline layer, and Ports Vb1, Vb2,
Vbias, and Vtune are placed on the Metal2 layer.
Each I/O port must be placed on a routing layer for the SDL router to connect to it
and should be placed such that it is near the edge of the cell or can be easily
accessed with routes. If they are placed too close to one another, the SDL router
may not be able to connect to all the I/O ports. Ideally, the ports should be
placed on a specific routing grid so that the SDL router can directly access the
ports without having to branch off-grid.
The dimensions of the ports will define the width of the routes that will connect to
that port. In this example, all the ports are box ports. In this case, the smaller
dimension of the port will determine the route width. If the smaller dimension is
less than the minimum specified route width, the minimum route width will be
used. For example, assuming the minimum route width specified for Metal1 and
Metal2 is 0.35u, Vdd and Gnd will be connected to using a 1.00u wire, as their
smallest dimension is 1.00u. Likewise, Vb1, Vb2, Vbias, and Vtune will be
connected to using a 0.65u wire. If two ports with different dimension are to be
connected together, the smaller of the two dimensions will be used.
Unhide the objects previously hidden by CTRL+middle-mouse clicking the
Switch to drawing ports icon or by right-clicking the Switch to drawing
ports icon and selecting Show All.
3. Next, let’s look at the keepout region defined for the Control cell.
Hide all layers with the exception of the keepout layers by selecting both
Keepout – Metal2 and Keepout – Metal3, right-clicking, and invoking Hide >
Hide all but selected.
One keepout layer for each routing layer may be defined in the layout. The
keepout layer defines the region(s) where the routes may not go. In this
example, the routes may not pass over the active region of the transistors.
Unhide the layers previously hidden by right-clicking any layer and invoking
Show > Show all.
4. Now, we need to make sure that there are contact cells defined
Open cell RingVCO by double-clicking the cell name in the Design Navigator.
89
Chapter 17 17.3 Importing a netlist using
Getting started with L-Edit Schematic Driven SDL
Layout (SDL)
Invoke Tools > SDL Navigator > Show SDL Navigator or right-click on the
toolbar and select SDL Navigator.
Select the Load Netlist icon on the SDL Navigator toolbar to open the
Import Netlist dialog.
Select to
open Import
Netlist dialog
Press Edit to
view netlist.
Browse to
locate netlist.
90
Chapter 17 17.3 Importing a netlist using
Getting started with L-Edit Schematic Driven SDL
Layout (SDL)
Press Edit… to view the netlist. Scroll to the middle of the netlist to view the
subcircuit definition for RingVCO. The devices listed inside the subcircuit will be
instantiated into the RingVCO cell upon importing the netlist using SDL. Notice
there is one Control block and nine DiffCell blocks.
SDL may be run on multiple blocks using the same top-level netlist file. If the
subcircuit name in the netlist does not match a cell name identically, the top-level
schematic will be used from the netlist.
Close the netlist window.
Select the Load Netlist icon again on the SDL Navigator toolbar to open the
Import Netlist dialog.
Select the following Modify layout and Create New Ports settings in the Import
Netlist dialog as shown.
91
Chapter 17 17.4 Using flylines to place
Getting started with L-Edit Schematic Driven devices
Layout (SDL)
Change Modify
layout settings as
shown.
Change Create
New Ports
settings as
shown.
Press OK to import
the netlist
Press OK to import the netlist.
Close the resulting log file.
The devices are automatically placed next to each other in the layout and are all
selected.
The SDL Navigator will contain the checklist of all nets in the layout that need to
be routed.
To ensure all devices in the RingVCO cell are selected, press CTRL+A to select
all. There should be 6 ports and 10 instances selected.
To view the flylines for all nets, select the Command Menu icon on the SDL
Navigator toolbar and invoke Add Selection Flyline. Colored flylines should
appear on the layout for each net segment as shown below.
92
Chapter 17 17.4 Using flylines to place
Getting started with L-Edit Schematic Driven devices
Layout (SDL)
Select
Command
Menu
followed by
Add
Selection
Flyline.
Select and drag each port or instance to create the shortest routing paths
possible for the design. The flylines will update as you move the ports and
instances.
If you prefer to work with one or two nets at a time during placement, clear the
flylines by selecting the Remove All Markers icon on the SDL Navigator
toolbar. Select the net(s) in the SDL Navigator checklist that you want to work
with, and press the Flyline icon on the toolbar. Alternately, you may right-
click the net name(s) and invoke the Flyline selection.
To toggle the flylines off and on, select the Toggle Markers icon on the SDL
Navigator toolbar. To clear the flylines, select the Remove All Markers icon
.
You can view cell RingVCO_Placed for one example of how the instances and
ports may be placed.
93
Chapter 17 17.5 Tagging geometry on
Getting started with L-Edit Schematic Driven manually placed routes
Layout (SDL)
9. Manually placed routes should be tagged with their net name so that all geometry
associated with the net segment can be ripped up if needed.
In this cell, the Vdd net segment was connected by overlapping the Vdd rails on
all instances. Therefore the Vdd checkbox is checked to indicate the completion
of routing for that net segment. No geometry was placed; therefore the net
segment does not need to be tagged.
Geometry was added to the Gnd rail at the top of the layout to connect the XXC1
Control block to the XXa9 DiffCell block. To view the geometry already
placed and tagged, right-click net segment Gnd in the SDL Navigator checklist
and invoke Select Net. There should be 3 boxes and 2 instances selected and
all are tagged with the net name “Gnd”, as can be viewed in the Status Bar at
the bottom left of the L-Edit window.
10. Let’s complete the routing of the Gnd net segment and tag the geometry we place.
Expand the symbol to the left of the Gnd net segment in the SDL Navigator to
view the pins associated with that net segment. Notice that XXa1/Gnd and
XXC1/Gnd are the only pins not checked off.
Select the Gnd net segment in the SDL Navigator and press the Flyline icon
on the toolbar. This shows the connection that needs to be made between the
top and bottom Gnd rail.
We want to make a wide metal (1.00u) connection between the rails on Metal1
along the left side of the layout. To do this, select the Metal1 layer from the
Layer Palette and the Switch to drawing orthogonal wires icon on the L-
Edit toolbar.
Select the dropdown from the toolbar to set the wire width and select 1.000.
94
Chapter 17 17.5 Tagging geometry on
Getting started with L-Edit Schematic Driven manually placed routes
Layout (SDL)
Enable object snapping to Midpoint by selecting the Setup Object Snap icon
on the L-Edit toolbar.
Select
Command
Menu
followed by
Add
Selection
Flyline.
Right-click the Gnd net segment in the SDL Navigator and select Active Net.
Alternately, you can click on the Gnd net segment in the SDL Navigator with the
middle-mouse button to activate the net. The net name font will change to italics
to indicate that it is the active net. All geometry placed while the net is active will
be tagged as the Gnd net segment.
Activate the
Gnd net to
tag
geometry.
95
Chapter 17 17.6 Setting up the automatic
Getting started with L-Edit Schematic Driven router
Layout (SDL)
Draw a wire connecting the upper Gnd rail to the lower Gnd rail.
Draw the
Gnd net
segment
using a 1.00u
wide wire.
Turn off the active net by clicking on the Gnd net segment in the SDL Navigator
with the middle-mouse button.
If geometry for a net segment is placed without first activating the net for tagging,
the geometry can still be tagged with the net name. Just make the desired net
the active net using the steps shown above, select the geometry you would like
to tag, and invoke the Command Menu icon on the SDL Navigator toolbar
followed by Tag Selections with active net.
Check off the Gnd net segment checkbox in the SDL Navigator to indicate that
the entire net segment has been completed.
Select the Routing Region layer from the Layer Palette and the Switch to
drawing boxes icon on the L-Edit toolbar.
Draw a box covering the entire layout. This will allow the router to place routes
outside of the minimum bounding box of the I/O ports.
96
Chapter 17 17.6 Setting up the automatic
Getting started with L-Edit Schematic Driven router
Layout (SDL)
Draw a
routing
region using
the Routing
Region
layer.
12. Prior to using the SDL automatic router, some routing information must first be
defined.
Open the Setup Router dialog by selecting the Command Menu icon on the
SDL Navigator toolbar and invoking Setup Router….
Verify the following settings in the Setup Router dialog:
97
Chapter 17 17.7 Automatic routing
Getting started with L-Edit Schematic Driven
Layout (SDL)
For this example, we will be routing in Metal2 and Metal3 as can be seen via the
Setup Router dialog Route checkboxes. The first routing layer will generally be
used to route in the horizontal direction and the second will be used in the
vertical direction.
The Poly and Metal1 layers are not used as routing layers but are specified in
order to define parameters for connecting routes to those layers. They are used
mainly to define which via or contact cell should be used for connection to ports
on that layer.
The Width field defines the minimum width to be used for routes on that layer.
As mentioned earlier in the tutorial, the size of the port box will define actual
width of the route to be used. If connecting to a point port, the width in this dialog
is used. If connecting to a line port, the width of the line port is used unless the
line port is smaller than the width specified in this dialog. When connecting to
box ports, the smaller dimension of the box port is used unless that dimension is
smaller than the width specified in this dialog.
The Spacing field defines the minimum spacing to be used between objects
placed on that layer. Routes will also be spaced away from any object on the
same layer that is present at the current level of hierarchy that is being routed.
The Keepout layer defines the area in which each routing layer should not route.
Keepout – Metal2 and Keepout – Metal3 were defined in the lower level cells
and cover the active region of the transistors. This keeps the routes from
crossing over the transistors.
Via cell defines via cell to use for the specified layer when transitioning to the
next layer. The last routing layer does not require a via cell to be defined as it
does not have a subsequent layer it needs to connect to.
Same-net via pitch defines the center-to-center spacing to be used when
placing vias on wide metal traces or on the same net.
Routing extent polygon on layer defines the layer that defines the area in
which the router is allowed to place routes. Here we selected the Routing
Region layer that we previously created.
X Spacing, Y Spacing, X Offset, and Y Offset are all used to define a custom
grid for routing. In this case, all are set to a value of 0 allowing the router to
automatically calculate the grid to use.
Select OK in the Setup Router dialog to accept any changes.
In cell RingVCO_Placed, select the Route All icon in the SDL Navigator to
automatically route the remaining nets. Nets that have been checked off in the
checklist will not be touched by the router.
98
Chapter 17 17.7 Automatic routing
Getting started with L-Edit Schematic Driven
Layout (SDL)
A warning will appear stating the number of nets that were routed and indicating
that a net segment was unable to be routed.
All geometry that was placed by the automatic router has been tagged with the
name of the its net.
The SDL Navigator view will automatically change from viewing By Net to
viewing By Unrouted Segment.
Switch to view By Net and notice that each net segment is marked with a visual
indication of whether the route completed or failed. To change the SDL
Navigator view, select the Netlist view icon and select to view By Net, By
Instance, or By Unrouted Segment. Completed nets are marked with and
uncompleted are marked with .
Make sure the view is switched back to view By Unrouted Segment.
Expand the symbol to the left of the Outp net segment in the SDL Navigator
to view the coordinates of the portion of the net that could not be routed.
Expand the
+ to view
coordinates.
99
Chapter 17 17.7 Automatic routing
Getting started with L-Edit Schematic Driven
Layout (SDL)
Click in the layout to deselect all the routes that were added.
Select the coordinates and press the Marker icon to view the connection that
could not be completed.
Select
coordinates
and press
Marker
The marker may be different than the flyline if a portion of the net segment was
routed but not completed. Notice in this case that the marker indicates a missing
route between a port and a wire.
Marked
segment
that was
unable to be
routed
Instead of routing all nets at once, a single net or selected nets may be routed by
selecting the net(s) in the SDL Navigator, right-clicking the net name and
invoking Route.
Make sure to check off the nets that are completed so that subsequent automatic
routing does not affect those completed routes.
100
Chapter 17 17.8 Ripping up nets
Getting started with L-Edit Schematic Driven
Layout (SDL)
Close cell RingVCO_Placed and reopen cell RingVCO. Select the Load Netlist
icon on the SDL Navigator toolbar to open the Import Netlist dialog.
Select to
open Import
Netlist
dialog
101
Chapter 17 17.9 Importing an Engineering
Getting started with L-Edit Schematic Driven Change Order (ECO)
Layout (SDL)
Browse to
locate ECO
netlist.
Select
Compute
and display
differences
from the
current
netlist.
Notice that renamed nets are indicated with both the new net name and the old
net name. In this case, net segment N_10 was renamed to N_Rename.
102
Chapter 18 18.1 Creating a mosfet with T-
T-Cell Builder: Automatically Construct T-Cells Cell Builder
Chapter 18
T-Cell Builder: Automatically Construct T-Cells
The T-Cell Builder features, accessed from the Cell > T-Cell... menu, allow T-Cell code views to
be automatically generated from layout views. The resulting T-Cells are parameterized, and
contain geometry elements whose appearance can depend on these parameters. Because the
user does not need to write any UPI code directly, this feature is very useful for those users
who are unfamiliar with UPI programming.
The code view is constructed by executing the Cell>T-Cell>Construct T-Cell... command. This
command analyzes the geometry of the current cell, and creates a code view for that cell. An
existing code view will be (optionally) overwritten. Geometry in the layout view will be
generated by the code view. Optionally, geometry elements can be stretched, moved or
repeated according to the T-Cell's parameters, and they can be optionally included and/or have
their layers set (again, as a function of the T-Cell's parameters).
103
Chapter 18 18.2 Stretching Elements And
T-Cell Builder: Automatically Construct T-Cells Defining Parameters
Invoke Cell > T-Cell > Construct T-Cell… to create a T-Cell from the above layout. L-Edit will
open the following dialog.
After you construct the T-Cell, you can instance it into layout by invoking Cell > Instance…
(shortcut I). In the following example, we will change the default width to a width of 20.
104
Chapter 18 18.2 Stretching Elements And
T-Cell Builder: Automatically Construct T-Cells Defining Parameters
105
Chapter 18 18.3 Choose Layer
T-Cell Builder: Automatically Construct T-Cells
Invoke Cell > T-Cell > Construct T-Cell… to create the T-Cell, or to regenerate the T-Cell code if it
had been previously created. Now when you the mosfet T-Cell, with Width = 20, you will get the
layout shown below.
106
Chapter 18 18.4 Define Conditional
T-Cell Builder: Automatically Construct T-Cells Inclusion
Now when we instance the mosfet, SelectLayer is a parameter to the T-Cell. We can change
from P Select to N Select.
107
Chapter 18 18.5 Select T-Cell Objects
T-Cell Builder: Automatically Construct T-Cells
Now when the T-Cell is instanced, HighVoltage is a parameter to the T-Cell. Selecting True will
include the object on that layer when the T-Cell is generated, selecting false will exclude it.
Conditional exclusion can also be based on a logical expression by entering an expression such
as width >10. Here width is a parameter that may be previously defined by ports on the layout.
In this case the default value is not relevant. If the condition is true then the object is included.
108
Chapter 18 18.6 Creating a resistor with T-
T-Cell Builder: Automatically Construct T-Cells Cell Builder
This example illustrates a resistor device generator. The boxes on Poly are part of a repeat
group, as shown in the figure below.
109
Chapter 19 19.1 Running HiPer PX
HiPer PX Quick Start Guide
Chapter 19
HiPer PX Quick Start Guide
HiPer PX is driven from L-Edit, and requires a space tech setup. The tech setup typically
includes layer derivations, device recognition, connectivity descriptions, as well as
physical parameters such as resistivity, dielectric constants, layers thickness and edge
geometry, etc.
The creation of a tech setup is beyond the scope of this document, but the basic
required files are:
space.def.s – human readable tech setup source file
space.def.p – extract preferences
110
Chapter 19 19.3 Exporting Layout Data
HiPer PX Quick Start Guide
The process path is the name of the folder containing the space technology setup
(space.def.s, space.def.p, etc). This field can be an absolute path (ie
C:\path\to\tech\setup) or a relative path. If a relative path is specified, it will specify the
tech folder’s relationship to the folder containing the design file.
If the tech setup has already been compiled, click Apply to set this design’s tech folder
path. If you have modified the space.def.s file, or this is the first time you have used this
tech setup, you will need to compile it. Clicking on Create will generate the following
files in the process folder:
space.def.t – the compiled form of space.def.s, used by PX to perform extraction
maskdata – the list of design layers that will be exported to space. Layers
included in this file are drawn layers in L-Edit which have a GDS number defined
and are mentioned in the space.def.s file. For compatibility with space.def.s, all
characters in the layer’s name except letters and numbers will be replaced with
underscore (‘_’).
default_lambda – the manufacturing grid for this process.
111
Chapter 19 19.4 Extracting Layout
HiPer PX Quick Start Guide
The path to the database can be absolute, or relative to the design file.
Choosing to export “All data” will cause the database folder to be completely deleted
and rebuild before each extract run. This is incompatible with incremental extract and
selective resistance extraction (described below). Exporting “Modified cells only” is
recommended. In this mode, L-Edit will check each cell in the PX database, and if it has
been changed in the L-Edit design file, it will be overwritten.
Pressing OK will create the database path if necessary and export the current cell and its
hierarchy to the PX database.
112
Chapter 19 19.4 Extracting Layout
HiPer PX Quick Start Guide
Output file – the extracted spice netlist. If a file exists with this name, it will be
overwritten. The path can be absolute or relative to the design file.
Hierarchy – Flat or Hierarchical – In Fast (2D) mode, the hierarchical extraction
mode is available. In this mode, the design will be extracted based on the layout
hierarchy. This mode requires careful design practices, since interactions
between hierarchy levels are limited to ports. If a short is created outside of a
port, it will extract as an open. Also, parasitic coupling capacitances between
layout features of different cells don’t fit in a hierarchical circuit description. It is
recommended to verify that a design passes LVS using an extract without
parasitics before relying on simulations from a hierarchical extract.
Within the hierarchical mode, the incremental mode will use existing extractions
of sub-cells rather than re-extracting them if the layout has not been modified.
This allows mixed mode extract, since a sub-cell can be extracted in Accurate
mode and combined with a higher level cell extracted in Fast mode.
113
Chapter 19 19.4 Extracting Layout
HiPer PX Quick Start Guide
Capacitance extraction
o No extraction – no parasitic capacitors will be extracted
o Fast – uses a 2D interpolated model to extract parasitic capacitors
o Accurate – uses a 3D boundary element model to parasitic capacitance
o Types of parasitic capacitors extracted
Capacitances to substrate – only parasitic (area and fringe)
capacitance to the substrate will be extracted.
Cap(acitance)s to substrate & vertical coupling cap(acitance)s –
parasitic capacitance to the substrate will be extracted, as will
crosstalk capacitance between overlapping interconnect layers.
(Fast mode only)
Cap(acitance)s to substrate, vertical & lateral coupling
cap(acitance)s – all parasitic capacitance will be extracted,
including capacitance to the substrate and crosstalk capacitance
between nearby interconnect nodes.
Interconnect Resistance Extraction
o No extraction – no interconnect resistance will be extracted
o Fast – uses an efficient finite-element method to extract interconnect
resistances
o Accurate – uses a similar finite-element method, but applies a mesh
refinement which increases the accuracy and relevance of the extracted
interconnect resistors. See “Mesh Refinement Application Note”
(an0309.pdf) for details of the algorithm.
o Limiting resistance extraction by node - If desired, the user may specify
nodes for which interconnect resistance is, or is not performed. These
nodes are specified by coordinate and layer in a file named sel_con and
placed in the database folder (<database_path>\<tdb file
name>\sel_con). The format of the file ’sel_con’ is as follows. On each
line, an x position, an y position and a layername is specified. When an
interconnect has the specified layer on the specified layout position, that
interconnect is specified in the file. Coordinates are specified in ½
manufacturing grid units. (Ex. “ 200 150 cpg “ specifies st4 node in the
Oscilx.tdb file. Since the manufacturing grid is 0.05u, the coordinates in
micros is x=10u, y=7.5u)
Note that, this file should be added to the folder after exporting layout
data. Then you should change it “Modified cells only”, otherwise it will
be deleted.
Circuit reduction – complex RC networks on large designs can be slow on some
simulators. HiPer PX provides an algorithm to reduce the complexity of the RC
networks without sacrificing accuracy. When extracting resistances together
with capacitances, the extractor will add lumped capacitances to the nodes of
the initial resistance network to model the distributed capacitive effects. In that
case, the node reduction will proceed such that the Elmore time constants
114
Chapter 19 19.4 Extracting Layout
HiPer PX Quick Start Guide
between the nodes in the final network are unchanged with respect to their
value in the fine RC mesh. This can be done in a frequency independent method,
or a more aggressive method which is accurate up to a user-specified frequency.
The higher the value of max frequency the more nodes will be retained in the
final network,
115