SKILLCAD Reference Menu

Transcription

SKILLCAD Reference Menu
SKILLCAD Reference Menu
For Version 3.2
WWW.SKILLCAD.COM
Content
About This Menu ................................................................................................................ 1
Supported Platforms............................................................................................................ 1
Installation........................................................................................................................... 2
License Management .......................................................................................................... 5
Setup ................................................................................................................................... 7
Step 0: Setup Form.......................................................................................................... 7
Step1: Tech Layers ....................................................................................................... 10
i) TechLib.................................................................................................................. 10
ii) Routing Layers ..................................................................................................... 11
iii) Special Metals ..................................................................................................... 13
iv) Label Layers ........................................................................................................ 14
v) Base Layers........................................................................................................... 15
vi) Implant Groups .................................................................................................... 16
Step 2: Equivalent Layers ............................................................................................. 19
Step 3: Rules ................................................................................................................. 20
i) General rules:......................................................................................................... 20
ii) Metal Rules........................................................................................................... 23
iii) Via Rules ............................................................................................................. 26
iv) Base Rules ........................................................................................................... 29
Step 4: Keepouts ........................................................................................................... 30
Step 5: Cost ................................................................................................................... 31
Step 6: Slot .................................................................................................................... 33
Step 7: Compile............................................................................................................. 35
AutoLoad ...................................................................................................................... 38
SKILLCAD Feature List................................................................................................... 41
SKILLCAD User Quick Reference(IC5).......................................................................... 43
SKILLCAD User Quick Reference(IC6).......................................................................... 44
QuickLabel.................................................................................................................... 45
Net Names ..................................................................................................................... 46
Pin Browser/Placer........................................................................................................ 50
i
Via Module ................................................................................................................... 54
Create Via by Cols and Rows ................................................................................... 54
Edit Standard Via (IC6 Only) ................................................................................... 59
Update UniVia ... (IC5 only) .................................................................................... 70
Free Jumper ................................................................................................................... 72
Path Jumper ............................................................................................................... 72
Bus Jumper................................................................................................................ 78
ShieldBus .................................................................................................................. 82
Step Router.................................................................................................................... 84
Path Router................................................................................................................ 85
Matched Path Router................................................................................................. 94
Bus Router ................................................................................................................ 97
Matched Bus Router ................................................................................................. 99
Bus Joint...................................................................................................................... 101
Slot Path ...................................................................................................................... 104
Create Slot Path....................................................................................................... 104
Convert Path to Slot Path ........................................................................................ 106
Update SlotPath Instance… .................................................................................... 107
UniFill ......................................................................................................................... 108
GetNet ......................................................................................................................... 113
Select Net ................................................................................................................ 113
Extract Net .............................................................................................................. 114
Layer Handler ............................................................................................................. 119
V-Editor ...................................................................................................................... 122
BusAdjust................................................................................................................ 123
BusGrow ................................................................................................................. 129
V-Stretch ................................................................................................................. 135
V-Move ................................................................................................................... 144
BusTap .................................................................................................................... 147
Bridge...................................................................................................................... 150
Detour ..................................................................................................................... 153
Align BusEnd .......................................................................................................... 155
ii
Break Bus ................................................................................................................ 158
Change Layer .......................................................................................................... 160
Dent Corner............................................................................................................. 162
GateCont ................................................................................................................. 164
ViaChain ................................................................................................................. 168
CombRouter ............................................................................................................ 175
FixMinArea ............................................................................................................. 179
Kits .............................................................................................................................. 181
Pin Cover Shape...................................................................................................... 182
Calculate Area/Perimeter ........................................................................................ 186
Fix OffGrid ............................................................................................................. 189
Create Inst Label ..................................................................................................... 191
Sky View................................................................................................................. 194
Flip Within BBox.................................................................................................... 198
Full Selection .......................................................................................................... 200
Select Net Objs ....................................................................................................... 202
nCopy ...................................................................................................................... 204
Align/Distribute Pins (Objs) ................................................................................... 206
Manhattan Edge (Conic) ......................................................................................... 211
Cover Pins/Shapes .................................................................................................. 214
CreateSpiral............................................................................................................. 216
Fill Holes................................................................................................................. 218
User Preference ........................................................................................................... 220
Appendix A --- FAQs on SKILLCAD License Management ........................................ 225
iii
About This Menu
This menu contains the instructions of
•
Installing SKILLCAD tools,
•
Managing SKILLCAD license,
•
Setting up SKILLCAD technology rules
•
Using SKILLCAD Tools
It is a reference menu for CAE and Layout Engineers.
Supported Platforms
Since SKILLCAD tools run within the Cadence Virtuoso layout environment, all
Cadence Virtuoso supported platforms will eventually be supported by SKILLCAD.
For SKILLCAD version 1.2, supported platforms are:
•
LINUX 64bit (RHEL 3,RHEL4, RHEL5)
•
LINUX 32bit (RHEL 3,RHEL4, RHEL5) and
•
SUN Solaris 64bit.
Recommended Hardware configuration:
2G+ memory, 2.4G+ CPU speed.
Supported Cadence Virtuoso Versions:
•
Version 5.1 or above for CDBA database.
•
Version 6.1 or above for OA database.
SKILLCAD will maintain the compatibility to new Cadence releases.
1
Installation
The following procedures are for the installation of SKILLCAD module into Cadence
Virtuoso platform
i) Download Software
SKILLCAD software if free to down load from
http://www.skillcad.com
The default file name is “skillcad_version.tar.gz”.
ii) Unpack SKILLCAD
After download, unpack the “skillcad_version.tar” file with the command:
tar –xvzf skillcad_version.tar.gz
You will get two files: “readme.txt” and “stepRouter.tar”.
“readme.txt” contains the instructions on SKILLCAD installation and license
management.
iii) Define SKILLCAD_PATH environment variable.
Assuming you are going to install skillcad under “/tools/skillcad”, you are required to
define SKILLCAD_PATH environment variable in .cshrc for all SKILLCAD users:
setenv SKILLCAD_PATH /tools/skillcad/
2
iv) Unpack stepRouter.tar
Open a new shell terminal. Make sure $SKILLCAD_PATH is defined and you have
write permission on the directory. It is strongly recommended to install SKILLCAD tools
in an empty directory.
mv stepRouter.tar $SKILLCAD_PATH
cd $SKILLCAD_PATH
tar –xvf stepRouter.tar
The installation is done, make sure there are four directories under $SKILLCAD_PATH:
bin/
doc/ lic/
source/
v) Auto load the SKILLCAD software
To auto load the skillcad module when you start Cadence Virtuoso platform, add the
following line at the end of the .cdsinit file:
when( getShellEnvVar(“SKILLCAD_PATH”) &&
isReadable(strcat( getShellEnvVar(“SKILLCAD_PATH”) “/source/skillcad.il”))
load( strcat( getShellEnvVar(“SKILLCAD_PATH”) “/source/skillcad.il”))
)
vi) Test Installation
Now you can start Cadence Virtuoso platform. If the installation is correct, you should
see the "SKILLCAD" pulldown menu in a layout window, as show in FIG. 1 in the
following pages. You will get a message in the CIW telling you the SKILLCAD setup is
not loaded since the SKILLCAD tools have not been setup for the project.
If you did not see the "SKILLCAD" pulldown menu, please check the above installation
procedures, and check the CDS.log file if there are error messages while loading your
.cdsinit file.
3
SKILLCAD
Pulldown Menu
FIG. 1 SKILLCAD Pulldown menu after installation.
4
License Management
SKILLCAD uses FLEXnet (Version 11.4, a product of Microvision Inc.) licensing tool.
FLEXnet is the de facto standard license management tool in the EDA industry. Please
refer to the Microvision’s FLEXnet licensing end user guide (you can download from
www.microvision.com or www.skillcad.com/doc/LicensingEndUserGuide.pdf ) to learn
the details of Flexnet licensing management.
Here is an example of a typical SKILLCAD license file:
#SKILLCAD LICNESE FILE
#FLEXnet version 11.4
#
#----action 1:
#replace $ServerHostName$ with the real hostname of your license server
#replace $SKILLCAD_DEAMON_PATH$ with:
#For Linux platform:
#{skillcad installation path}/bin/linux/
#For sun platform:
#{skillcad installation path}/bin/sun/
#
#----action 2:
#Add this file to the beginning of LM_LICENSE_FILE environment
variable(Recommended)
#or define a new environment variable SKILLCAD_LIC_FILE to this file
#
#----action 3:
#use the following lmgrd (flexlm version 11.4 or up) to start the license
# for linux platforma
# $SKILLCAD_PATH/bin/linux/lmgrd
# for sun platform
# $SKILLCAD_PATH/bin/sun/lmgrd
5
#######################################################################
SERVER $ServerHostName$ 001c23afac78 5888
VENDOR SKILLCAD $SKILLCAD_DEAMON_PATH$/SKILLCAD
USE_SERVER
FEATURE stepRouter SKILLCAD 1.0 31-jul-2008 5 DUP_GROUP=UHD \
ISSUED=17-jun-2007 SIGN="01C5 0256 AA24 D07B 0F4D FAEC B14F \
3E9C 2830 B115 B600 5ACA AB81 8DB3 0052 5E0B F8FB 63A7 66ED \
47FB 73EF"
You are recommended to follow the actions in the comments to change the license file
first and start the daemon. If you know well about FLEXlm license management, you can
also start the license daemon in your own way.
License Check-out/Check-in
SKILLCAD license (feature: stepRouter) will be checked out at the first time when you
use SKILLCAD tools to draw layout. Same user at the same machine and same display
will use one (DUP) license. Once checked out, the license status will be checked
(heartbeat) every 5 mins. The license will NOT automatically be checked-in at the idle
time. The license will be checked-in when you exit Virtuoso. You can also check in
license from “SKILLCAD” pulldown menu-> “Check in License”.
Since DUP feature is enabled, you may need to do license check-in for all sessions you
are running on that machine. The checked-in licenses will be available in the licenses
pool in about 30 seconds (license linger time).
By the way, a valid Cadence Virtuoso Layout Editor license is required when you using
SKILLCAD tools to draw layout, since Skillcad tool runs as an add-on module in
Virtuoso platform. There is no affect or conflict between SKILLCAD commands and
normal Cadence Layout Editor commands.
Please refer to the appendix A for the FAQs of SKILLCAD license management.
6
Setup
SKILLCAD tools require one time setup for each technology. Once the setup is
completed, it can automatically be loaded and be used by all users. Normally, setup
should be done by a senior layout staff who is familiar with the design rules and process
or a backend CAE staff. At the end of this section, several ways will be introduced to
automatically load the setup rules and user preferences when you start Cadence tool.
First, start Cadence layout tool (icfb, layout, layoutPlus, virtuoso) from an existing
working directory of that technology. Make sure the technology library is defined in the
Cadence “cds.lib” or “lib.defs” (for Cadence Version 6.1+) file.
Then, open a layout window, and start SKILLCAD setup from the “SKILLCAD”
pulldown menu. If you did not see the “SKILLCAD” pulldown menu, please refer to the
previous “Installation” section.
Step 0: Setup Form
Click the pulldown menu SKILLCAD -> Set Up...; The “SKILLCAD Setup Form” will
pop up as shown in FIG. 2. The “Help” button will open this user reference menu.
“Template File:” expects a full path file name where you can save the current settings or
load the saved settings.
“?” Button will pop up an information box telling how to automatically load the template
files. It will be discuss in details at the end of this setup section.
“…” button will invoke the “Skillcad File Browser”; you can set the “Template File” by
selecting an existing file from the file browser.
7
“Load” button will load the saved settings as current settings from the given template
file.
FIG. 2 SKILLCAD Setup Form.
Step “Tech Layers”.
Sub step “TechLib”
“Check” button will check the correctness and completeness of the current settings.
Note: The program only checks if some rules are obviously wrong or have not been
setup, it is unable to check whether a given rule is in line with the foundry document.
“Save” button will save the current settings to the given template file.
“CheckSave” button will first check the correctness and completeness of the current
settings, then save the current settings to the given template file.
“Rule Categories”: The setup is capable to handle multiple categories of design rules.
8
Click the “?” button, the following message box will tell you more about the rule
categories.
FIG. 2a Message Box for Multiple Rule Categories
For example, if you want to add a “Recommended” rule category, first type in
“Recommended” in the Rule Category combo box, then click the “Add” button. Now,
you can start setup the “Recommended” rules. You can first copy the “Recommended”
rules from the “Default” rules by selecting “Copy From:” categories to “Default”, and
clicking the “Copy From:” button, and then modify the copied rules to meet the
“Recommended” rules.
To delete a rule category, first set the right rule category name in the combo box, then
click “Del” button. You can rename a rule category with the combination of “Add”
“Copy From:” and “Del” operations.
9
There are seven main steps to set up the Skillcad tools, namely, “Tech Layers”,
“Equivalent Layers”, “Rules”, “Keepouts”, “Cost”, “Slot” and “Compile”.
Since the contents of the later steps are dependent on the settings in the previous steps, it
is required to do the setup sequentially starting from “Tech Layers”.
Step1: Tech Layers
Keep referring to FIG. 2, there are 6 sub steps to setup “Tech Layers”, namely,
“TechLib”, “Routing Layers”, “Special Metals”, “Label Layers”, “Base Layers” and
“Implant Groups”. They should be setup sequentially starting from “TechLib”.
i) TechLib
“Technology Library” is the technology library to which your project library is attached.
All the layers used in your project have to be defined in this technology library.
If this is the 1st time you setup SKILLCAD for this technonlogy, you can use the button
“Get Basic Initial Setup From Virtuoso Tech File” to get routing layers info and basic
rules to save time in the setup. The program will get Routing Layers info from
“prRoutingLayers” and “viaLayers” in the technology file, and get“minSpacing”
“minWidth” “minEnclosure” “mfgGridResolution” rules for these layers. Please note
this button is just for your convenience in SKILLCAD setup, you still need to follow the
setup steps to input and check all rules. Do NOT use this button to update the rules if you
already setup SKILLCAD for the technology.
“Layout Grid”: is the smallest snap grid you want to set for the layout of this
technology. In most cases, the layout grid is the same as the manufacturing grid.
“DB Unit/um” defines the Database unit per micron. It is dependent to Cadence version.
Before Cadence version 6.1, it should be 1000.
10
“Use Standard Via Defined in Viatuoso Techfile”: This option is only available for
IC6. SKILLCAD supports standard OA vias in IC6. You are strongly recommended to
check this option in IC6, and the setup will also easier with this option is on.
“Brief Description for the Setup of This Technology:” is a text field where you can
add informative notes such as the feature size of the technology, the number of metals. So
the user can clearly know the process information when setup file is loaded.
ii) Routing Layers
As shown in FIG. 3. The form will dynamically be updated when you change the
“Number of Routing Layers”. The program itself has no limitation in number of routing
metals, although, for practice, the maximum number is pre-set to 16 in the setup from.
You need to select the correct layer names for each “metal” and “via” layer, and input
the “thickness” of each layer, and the “dielectric constant” of the oxide (isolation)
material at the corresponding layer level. Normally you can find such information from
foundry documents. The accuracy of “thickness” and “dielectric constant” is not so
important. Only StepRouter requires these numbers when optimizing results by parasitic
capacitance. If you cannot find the correct number of the “thickness” and “dielectric
constant”, just accept the default given number.
11
FIG. 3 SKILLCAD Setup Form.
Step “Tech Layers”
Sub step “Routing Layers”
If there are multiple isolation materials with different dielectric constant at one layer
level, you can set an equivalent dielectric constant that can be derived with the equations
of series or parallel capacitors. The thickness and dielectric constant information will be
used for parasitic capacitance calculation by the stepRouter.
12
“Metal1 to Substrate Distance” is the distance from the bottom surface of metal1 to the
top surface of substrate.
“Contact” is the cut layer connecting metal1 to base layers, such as poly and diffusion.
iii) Special Metals
The setup form for “Special Metals” is shown in FIG. 4.
This form will also be
dynamically updated based on the “Number of Special Metals”.
FIG. 4 SKILLCAD Setup Form.
Step “Tech Layers”
Sub step “Special Metals”
The “Upper Via Layer” is the via layer connecting the corresponding special metal to an
upper level metal layer. The “Lower Via Layer” is the via layer connecting the
corresponding special metal to a lower level metal layer.
For a certain special layer, at least one via layer can connect it to one of the routing
metals. The via layers specified in the form must be one of the via layers specified in the
“Routing Layers” form.
13
The thickness of special metal layers and via layers will be referenced by the stepRouter
in the parasitic capacitance calculation. The thickness of a via layer will also determine
the order of via connection to the corresponding metal layer or special metal layer. For
example, FIG.3 shows the thickness of “VIA56 drawing” between “METAL6” and
“METAL5” is 0.8um, and FIG.4 shows the thickness of “VIA56 drawing” between
“METAL6” and “CTM5” is 0.5um, so “VIA56” will connect to CTM5 first.
iv) Label Layers
FIG. 5 SKILLCAD Setup Form.
Step “Tech Layers”
Sub step “Label Layers”
Typically, the pin label layers for different metal layers are often different. The form
shown in FIG. 5 at previous page offers an interface to set the LVS label layer (such as
for Calibre LVS) and physical pin layer (For VXL or Assura LVS) for the corresponding
14
metal layer. The layer map information will be used by quickLabel program. The LVS
Label Layer and Shape Pin Layer can be different. The general-purpose label layer will
be used to create notes, temporary marks (such as the cross “+” mark in the stepRouter)
etc.
After you set the proper purpose names for the LVS label and Shape pin layer, click the
“Apply” button, the program will fill the corresponding field with same metal name and
given purpose name. You can also change them one by one if the layer or purpose name
is not consistent.
v) Base Layers
FIG. 6 SKILLCAD Setup Form.
Step “Tech Layers”
Sub step “Base Layers”
In this step, you will setup the poly and diffusion layers of the technology.
15
The Poly or Diffusion “Distance to Metal1” value will be used for parasitic capacitance
extraction during StepRouting to optimize C or RC. Meanwhile, A “Poly” layer will
shield the overlapped area of a “Diffusion” layer from the metal layers in the parasitic
capacitance calculation.
For the case of multiple poly layers, the order of the poly layers in the list box determines
the order to connect contact layers for the “GetNet” functions. In the case as shown in
FIG. 6, if a contact overlaps both “Poly1 drawing” and “Poly2 drawing” layer, the
contact will be connected to “Poly1 drawing”. You can change the order of poly layers
with combination of “Del” and “Add” buttons.
Do not add implant layers here as diffusion layers. The order of diffusion layers does not
matter since the program does not apply ordered connection for diffusion layers.
vi) Implant Groups
This step can be skipped in IC6 when “Use Standard Via Defined in Virtuoso
Techfile” option at the beginning of setup (“TechLib”) is on.
16
In IC5, this step is required.
FIG. 6a SKILLCAD Setup Form.Step “Tech Layers” , Sub step “Base Layers”
You can create different kinds of symbolic contact first, so you can refer to these contact
types and get the implant enclosure of base layer from those symbolic contacts.
“Base Layer:” Select a Poly or diffusion layer here.
To add a base/implant layer
combination, for example, substrate tap --- which consists of diffusion layer and p+
implant layer, first, select the base layer to “DIFF drawing”, then, select the implant layer
to be “PIMP drawing”, set the “PIMP drawing” enclosure of “DIFF drawing” rule (i.e.
0.08um here ), and click “Add” button near the implant layer to add the implant
information to the listbox at the right side; Then give a nickname for the base/implant
17
layer group. A good nickname should be short and have a clear meaning. In FIG.6, the
nickname of this “DIFF drawing” and “PIMP drawing” group is “ptap”. At last, click the
lower “Add” button to add the base/implant layer combination to the listbox at the
bottom. If you want to modify a base/implant layer combination, you have to first delete
it from the listbox and then add it back after modification.
You can add multiple implant/well layers for a layer combination, such as “ntap_nw”,
which consists of diffusion, n+ implant and nwell layer. The nickname must be unique
for each layer combination.
Each base layer should have a fixed distance to the bottom of the metal layer. That is, you
are not able to specify different distance to metal1 for the same base layer in different
layer combinations. The base layer combination will be used by uniVia program.
You are required to recompile (Step 7) the uniVia pcell if the nickname list of the
base/implant layers is changed.
The bottom metal(metal1) and the first base/implant nickname(ptap) will be the default
from/to layers of the “uniVia” pcells and in other uniVia forms. So, it is recommended to
set something like “ptap” or “ntap” as the first base/implant combination.
18
Step 2: Equivalent Layers
FIG. 7 SKILLCAD Setup Form.
Step “Equivalent Layers”
Equivalent layers are only available for routing metals. A routing metal may have
multiple equivalent layers. Most likely, the equivalent layers have the same layer name
and different purposes, in such case, you can just select an equivalent purpose name and
click “Add Equivalent Purpose For All Metals:”, the corresponding layer purpose will
be added as equivalent layer for all metals. However, it is allowed to have an equivalent
layer with a different layer name, and then you need to use “Add Equivalent LPP for
Selected Metal” one by one for each metal. Leave the “Equivalent Layers:” empty if
the corresponding metal layer has no equivalent layer.
Incorrectness in equivalent layers may result in short or DRC violations during
stepRouting. For example, if you did not set “METAL1 pin” as an equivalent layer of
“METAL1 drawing”, the stepRouter will not treat any existing “METAL1 pin” as
“METAL1 drawing” blockage, thus, “METAL1 drawing” may be routed over or too
close to existing “METAL1 pin”.
19
Step 3: Rules
In this step, we will set up physical design rules including general rules,
metal rules, via rules, and base rules.
i) General rules:
FIG. 8 SKILLCAD Setup Form.
Step: “Rules”
Sub Step: General Rules
As shown in FIG. 8 in the previous page, in this step, you will setup 4 parameters:
“Max Cap Coupling Distance”: The program will calculate the coupling capacitance
between the polygons of the same metal layer on fly during stepRouting to minimize the
20
capacitance or RC in the routing result. Metal edges within the specified coupling
distance from the routing metal will be taken into account in the parasitic capacitance
calculation, and metal edges out of this coupling range will have 0 coupling capacitance
to the routing metal. So, a big coupling distance will improve the accuracy of the
parasitic capacitance, but will increase the routing time.
A recommended coupling
distance is ~10X of the minimum metal spacing.
“Max Levels of Cap Combination”: In practice, the routing speed will possibly be too
slow if area capacitance of all metal combinations is calculated, especially there are many
(6+) metals in the technology. This parameter defines the level of metals the program
should look up and down from the routing metal level during area capacitance
calculation. For example, if the “Max Levels of Cap Combination” is set to 2 for a
technology with 6 routing metal layers, one capacitor bottom plate metal below metal6
(CTM5), one poly layer and one diffusion layer.
For metal1 routing layer, the following area capacitance will be taken into account:
Metal1 to base layers (poly and diffusion),
Metal1 to substrate,
Metal1 to metal2,
Metal1 to metal3;
All other metal combinations will be ignored.
For metal3 routing layer, the following area capacitance will be taken into account:
Metal3 to metal2
Metal3 to metal 1
Metal3 to base layers (poly and diffusion),
Metal3 to substrate, metal1 to metal2, and metal1 to metal3;
Metal3 to metal4,
Metal3 to metal5,
Metal3 to CTM5,
All other metal combinations will be ignored.
21
For metal6 routing layer, the following area capacitance will be taken into account:
Metal6 to CTM5
Metal6 to metal5,
Metal6 to metal4,
Metal6 to substrate.
A recommended value for the “Max Levels of Cap Combination” is 2 or 3.
“Max Via Stack Levels”: For a non-stackable technology, this value has to be 1, and you
need to define other vias/contact as “Keepouts” for a certain via/contact. For a stackable
process, this parameter allows you to set a user-preferred limit on the number of jumping
levels at one point during stepRouting. The user can further specify the preferred via
stack levels (smaller than this “Max Via Stack Levels”) for a specific connection in the
command form of freeJumper and stepRouter.
If the distance of two vias at successive levels is smaller than the specified value of
“Min. Distance for Non-stack Vias”, they will be treated as stacking vias.
“Do not use VXL license to Calculate Via Parameters” (IC6 Only):
Recommended
to check this option (To avoid using Cadence API: lxComputeViaParams which requires
VXL seats ).
“Default Metal Enc Via Mode”(IC6 only): To set the default way of obtaining metal
enclosure of Via rule. “ViaDef”: the metal enclosure rule is from the standard via
definition in the virtuoso techfile. “minRule”: the metal enclosure rule is from the
“minOppExt” rule in the virtuoso techfile. If no “minOppExt” rule is defined, it will
use the same rule as “ViaDef”.
22
ii) Metal Rules
IC6:
FIG. 9 (IC6) SKILLCAD Setup Form.
Step: “Rules”
Sub Step: METAL Rules
23
IC5:
FIG. 9 (IC5) SKILLCAD Setup Form.
Step: “Rules”
Sub Step: METAL Rules
The form as shown in FIG. 9 is for setup design rules for the metal layer selected in the
left listbox. The form allows you to specified width dependent spacing rules, and width
dependent enclosing rules.
For example, in the foundry document, the METAL1 spacing rules are defined as:
M1_Sp:
Minimum METAL1 to METAL1 space
0.23um
24
M1_Sp_B: Minimum METAL1 to METAL1 space
0.28um
when METAL1 width ≥ 10um
M1_Sp_E: Minimum metal path End to other metal space 0.28um
When metal path width < 1um
To set up the above rules, make sure that the “METAL1 drawing” is selected in the left
list box. The first category of metal width is always 0, so you set
“When Width >= ” : 0,
“Space:” 0.23,
“Path End to other Metal Space”: 0.28
Then click the “Add” button.
Next set the rules for the case of metal width >= 1um,
“When Width >= ”: 1,
“Space:” 0.23,
“Path End to other Metal Space”: 0.23
Then click the “Add” button
For the rules of metal width > = 10 um, set
“When Width >= ”: 10, “Space:” 0.28,
“Path End to other Metal Space”: 0.28
Then click the “Add” button
Similarly, you can set the width dependent metal enclosure of Via rules (not required
when using standard via in IC6).
“Side Enc” is for the rule of the side edges of a metal path enclosing of a via.
“End Enc” is for the rule of the starting or end edges of a metal path enclosing of a via.
TIPS: In case a rule is defined using “When width >” instead of “when width >=”,
you can add a minimum layout grid to alternate the rule.
To speed the setup, when one metal has the same or similar rules as another metal, you
can copy the rules from that metal directly or with little modification.
25
iii) Via Rules
IC6:
FIG. 10a SKILLCAD Setup Form (IC6).
Step: “Rules”
Sub Step: VIA Rules
“Available Vias”: all standard viaDefs for via layer in the virtuoso techfile.
“Valid Vias”: viaDefs to be used (pick from “Available Vias” and click “Add”). You
can set difference valid vias for different rule category.
26
“CutClass”: pick a cutClass(if defined) to control the via size to be used. SKILLCAD
will automatically adjust via size to optimize the via fill if there are multiple cutClass and
“Any” is selected.
If the rule (“Layer1 Enc X” etc) is “Default”, the actual value will be obtained from
ViaDef/minOppExt/minWidth depending on the environmental and command form
options. If it is a number (Not Default), the corresponding rule in viaDef or minOppExt
will be ignored.
IC5:
FIG. 10b SKILLCAD Setup Form(IC5).
Step: “Rules”
Sub Step: VIA Rules
27
The interface allows you to setup the array-side dependent via spacing rules. For
example, in the foundry document, via spacing rules are:
V1_Sp :
Min VIA12 to VIA12 space
0.26
V1_Sp_B: When both columns and rows of via array >= 3
Min VIA12 to VIA12 space
0.32
Max VIA12 to VIA12 space
0.34
To set up “V1_Sp”, make sure that the “VIA12 drawing” is selected in the left list box.
The first category of Via Array size is always 0, so you set
“When Array Col and Row >= ”: 0, “Minimum Space:” 0.26, and leave “Maximum
Space”: 0, then click the “Add” button.
For rule V1_Sp_B, just set
“When Array Col and Row >= ”: 3, “Minimum Space:” 0.32, and “Maximum
Space”: 0.34, then click the “Add” button.
To speed the setup, when one via layer has the same or similar rules as another via layer,
you can copy the rules from that via layer directly or with little modification.
28
iv) Base Rules
Skipped this step when using standard OA via in IC6.
The form for base rules is shown in FIG. 11. Please refer to the metal rules to set up the
base layer enclosing contact layer and base layer spacing rules. The same base layer can
have different physical design rules in the different implant layer combinations.
FIG. 11 SKILLCAD Setup Form.
Step: “Rules”
Sub Step: Base Layer Rules
29
Step 4: Keepouts
FIG. 12 SKILLCAD Setup Form.
Step: “Keepouts”
The interface allows you to define simple keepouts for routing metals and vias.
Each layer can have multiple keepout regions. A keepout region can be the Boolean
result of two layers. The supported Boolean operations are: And, AndNot, Or and Xor.
“=>” means treating the selected layer directly as keepout region without any Boolean
operation.
You can also specify a minimum space from the rule layer to the keepout region.
In a case of via non-stackable process, such as “Cont” to “VIA12” space 0.6um, and
“VIA12” to “VIA23” space 0.6um. You can define both “Cont” and “VIA23” as the
keepout of “VIA12”.
In IC6, SKILLCAD can handle OA layerBloakages hierarchically.
30
Step 5: Cost
This step defines the cost of each metal layer in its preferred and non-preferred routing
directions. You can swap the preferred routing direction of each layer by clicking the
“Swap Preferred Dir” button.
FIG. 13 SKILLCAD Setup Form.
Step: Cost
31
If the cost value is set to “Forbidden” for a metal layer in a routing direction, that layer
will not be used for routing in that direction. However, the “Forbidden” cost value does
not prevent routing layer jumping cross this metal. For example, if you set “METAL2”
X dir cost to be “forbidden”, the tool will not use metal2 for interconnection in X
direction, but METAL1 to METAL3 layer jumping at one point is still allowed in X
direction. “45 Degree Cost” is not applicable in this release.
Please follow the recommendations shown in the form. The cost table will be referenced
when routing with optimization on layer directions.
32
Step 6: Slot
FIG. 14 SKILLCAD Setup Form.
Step: Slot
This step sets up the slot rules for each routing metal.
The “Slot Mode” can be either “Cut Holes on Metal” (default) or “Draw Slot Shapes”.
In “Cut Holes on Metal” mode, the slot holes will be generated on the metal path, and
the metal path becomes complex polygons after slot generation.
33
In “Draw Slot Shapes” modes, the slot shapes will be created in the “Slot Shape Layer”
along the metal path. The metal path is kept as a path object. The real slot holes will be
generated by Boolean operations before tapeout, or during making metal masks.
If “Slot Corner?” is not checked, there will be not slot created at the turns (corners) of a
metal path.
A recommended value for “Min Corner Slot Length” (H) is the half of the “Slot
Length” (D).
Most likely, slot rules for different are the same. Once you setup the slot rules for one
metal, you can just copy them to other layers.
“Stagger Space” defines the alignment offset of two neighboring parallel slot holes.
34
Step 7: Compile
No “Compile” is required when using standard via in IC6. Just Save the rule to a template
file and load it back to finish the setup.
FIG. 15-IC6 SKILLCAD Setup Form.
Step: Compile
FIG. 15-IC5 SKILLCAD Setup Form.
Step: Compile
35
This setup will create two pcells. Make sure that you have write permission in the
specified Pcell library. It is recommended to use the default “Lib Name” (the technology
library” and the default cell names “uniVia” and “slotPath”. If really necessary, you can
change the default settings by turning on “Edit/Lib/Cell/View Names”.
Only when the routing layers or the base/implant combinations or number/names of the
Rule Categories are changed, it is required to recompile the two pcells.
So far, we have finished the SKILLCAD setup for one technology. Please do Check and
Save to a template File. Before release the SKILLCAD settings to a real project, it is
strongly recommended to draw a test layout to make sure that all the settings/rules
are correct.
If, for some reason, you did not pick to use standard OA vias at the beginning, you can
compile uniVia to OA customVia object.
FIG. 15b SKILLCAD Setup Form.
Step: Compile
36
When you select “Use As OA customVia Obj”, you need to input a via name for each
via. You are recommended to accept the default via names. After compile, the program
will automatically add these individual vias to the “customViaDefs” in the technology
file.(if they have not been defined or need to be updated) You should never define the
UniVia pcells itself as a customVia, since the fromLayer and toLayer in UniVia are
variables which is not supported by OA via Obj.
Once you select to use uniVia as customVia Obj, you can still use “Create Instance” form
to create uniVias, they will be automatically converted to customVia objects after being
instantiated. But in case of stacked vias, SKILLCAD will use multiple stacked via objs
instead of a single pcell instance.
SKILLCAD recommends using standard OA via in IC6.
37
AutoLoad
The program will automatically load the setup rules in the following 3 ways. Click the
“?” button near the “Template File” on the setup form, an information box shown as
below will tell you briefly how to automatically load the setup rules.
i) Set a variable “_scdTechFile” in the .cdsinit file before you load the Skillcad
program. For example, if the following is defined in the .cdsinit file.
_scdTechFile = “/pdk/tsmc13/skillcad.rul”
The skillcad setting saved in “/pdk/tsmc13/skillcad.rul” (You may use strcat,
getShellEnvVar here to get the file path/name ) will automatically loaded when
starting a new cadence session.
ii) Set a “_scdTechFile” control parameter in the technology file.
To add a control parameter in the technology file, you can first dump out the
technology file, and then Open the dumped ASCII technology file with your
favorable text editor to add the following bold line to the “techParams” of the
“controls” session, load back the technology file after editing, and save the new
technology file.
38
;********************************
; CONTROLS
;********************************
controls(
techParams(
;( parameter
;( ---------( _scdTechFile
value
-----
)
)
"/pdk/tsmc13/skillcad.rul" )
...
In the next time you start cadence session, the Skillcad’s settings will be automatically
loaded from the value "/pdk/tsmc13/skillcad.rul" (You can use strcat, getShellEnvVar here to
get the file path/name ) defined by the techParams “_scdTechFile”
iii) Create a “_scdTechFile.txt” file in the working directly where you start cadence
session. This file will automatically loaded by Skillcad if method i) and ii) are not used.
The priority order of the 3 ways is i, ii and iii. If two or more ways are setup, the method
with high priority will be effective.
Once the setup is finished or loaded correctly, SKILLCAD tool bars will be shown as
FIG. 16a for IC 5.1 or FIG. 16b for IC 6.1 in the next page. The actual icons may be
different as new functions/icons are added in new release. Now SKILLCAD Tools are
ready to use. Please refer to the user quick reference at page I and user preference at the
end of the menu to learn the usage and options of the SKILLCAD icon (tool) bar.
39
FIG. 16a SKILLCAD icon bar in IC 5.1
FIG. 16b SKILLCAD tool bar in IC 6.1
40
SKILLCAD Feature List
SKILLCAD
Feature Family
Featured tools
Stretch
Edit Via (OA) Stretch Enc
Set Params
ViaStretch
V-Editor
BusAdjust
Adjust bus/net space/width
BusGrow
Add more bits (or shield lines) along the existing bus/net
V-Stretch
Stretch by V-Line
V-Move
Move by V-Line
Bridge
Change layers for part of bus/net
Detour
Make turns on bus
BusTap
Create taps on bus by V-Line
changeLayer
Change Metal layer and meanwhile update connected vias
Break Bus
Break Bus with given (minimum) space
Align Bus End
Align Bus To reference layer/point/line
GateCont
Create Gate contact
ViaChain
Create Via on pins
CombRouter
Connect pins to Trunk (Ridge)
FixMinArea
Fix minimum Area
Path Router
User guided single Path Router
StepRouter Bus Router
User guided Bus Router
Matched Router
User guided matched Path/Bus Router
Path Jumper
Interactive Path Stitcher
FreeJumper Bus Jumper
BusJoint
Description
Stretch standard Cadence via
Stretch via enclosure
Edit Via params ( cutClass, via variants)
Stretch standard Cadence vias/via objs
Interactive Bus Stitcher
Shield Bus
Interactive Shield Bus Stitcher
BusJoint
Irregular bus to bus connector
Create Via
Create Standarr OA via or UniVia Instance
Draw MPP
Create regular MPP
Draw Rect Ring
Create Rectangle Guardring
Draw Polygon Ring Create Polygon Guardring
Modify Mpps
Change Mpps
Grow From Obj/layer Create Ring By Sizing Selected Obj
UniVia
OA Via
Draw Rect UniVia
Fill Via in a rectangle region
Draw Polygon UniVia Fill Via in a polygon region
Fill selected regions Fill Via in selected regions
Fill Overlap by Click Fill Via in overlaps of specified two layers
Fill overlap of Any
Auto detect overlapping layers and fill proper Via
two layers By Click
Fill Overlap of Same
Drop Via on the overlap regions based on VXL net
VXL net
41
LayerHandler
SlotPath
GetNet
UniFill
QueryLayer
Get hierarchical Layer info under point/box/cellview
LayerSet
Programmable Buttons to save/retrieve layer settings
Draw SlotPath
Draw slot path (pcells)
Convert To Slot Path
SelectNet
ExtractNet
HilightNet
uniFill
Convert select path(s) to slot paths (pcells)
Select metals/vias of the net
Hierarchically extract net to a separate cell view
Hierarchically highlight a net
Universal Dummy Pattern Fill
TrackRouter
Nano Track
Wire Track
Router
Wire offset
Create wires on predefined tracks
Pin Browser/Placer
QuickLabel Pin Label
Note
Pin Cover Shape
Browse pins/labels, auto place pins, bubble up pins.
Create Labels/pins
Create Multi-line text labels
Expand pins to shapes/Create power grid pins.
KITS
Create/update wire tracks
Create/update wire offset
Area/perimeter
Hierarchical area/perimeter calculator
offGird
Fix Offgird
Create Inst Label
Create label (CellName/Instance Name) on Instances
SkyView
Create Sky View for instances of a frog cell
Flip Within Box
MX/MY/R180 flip within original bBox
Full Selection
Partial ->full, Full bus selection
Select Net Objs
Select Metal/Via by Net Name
nCopy
Align/Distribute Pins
Manhattan Edge
(Conics)
Cover Pins/Shapes
Create Spiral
Fill Holes
copy selected objs n times
Align/Move/Snap/adjust space Pins/Objs
Convert all edges(ellipse shapes) to Manhattan Shapes
Cover pins or shapes by “drawing” (or other) layer with sizing
Create Spiral Shapes (inductors)
Fill holes meeting given size or area.
42
SKILLCAD User Quick Reference(IC5)
Icon
Click to toggle between SKILLCAD icon bar and CADENCE icon bar
Switcher
Create Via Instantiate a uniVia instance (As if you are creating a normal Pcell instance).
Click “Draw Multipart Path”/ “Draw Rect Ring”/ “Draw Polygon Ring” button and draw such
shape in the layout window to create MPP; Click “Grow From Selected Objects” button to create
Mpp/Ring MPP ring around selected objects. Select a MPP and Click “Change Selected MPPs” to update it.
Fill Via
Path
Jumper
Bus
Jumper
Shield
Bus
Bus
Joint
V-Editor
Path
Router
Bus
Router
Layer
Handler
GetNet
Pin/Label
Browser
Quick
Label
Draw
Slot Path
Click a button in the form and click or draw on the current layout window as prompted.
Click to draw path/bus/shieldBus.
Key 1,2,3… to jump the drawing metal to m1, m2, m3… at next mouse click,
Key “Backspace” to go back (undo) to previous point.
Click
Click to draw a box over starting bus headers, and click to draw another box over ending bus headers
The advanced V-Editor module for bus/net editing, combRouter.
Click to create auto routing. Click backwards to retreat routing of current segment.
Key “Backspace” to go back (undo) to previous point.
Key “ESC” to select one of multiple routing results or cancel the routing.
For matched routing: Click “Sel…” button and click the starting point of a matched path. Then click
to create matched routing.
View layers within a region. View layers by groups. Programmable buttons.
Includes: Select Net, Extract Net, Hilight Net etc. Click on a net to extract the entire net through all
hierarchies to a separate cell view, with option to use Assura or DIVA for big nets.
Auto Place Pins. Align pins to prBoundary. Change Pin Shapes/Layers
Create pins/labels/text displays by a Click and a Line. Auto Snap to prBoundary.
Recreate pin Labels,
Click as if you are drawing a normal path.
Convert to Slot
Select
Path
UniFill
(Coverage)
Kits
button and draw a rectangle box over a bus to continue the bus.
one or multiple big paths first and click “OK” or “Apply”.
Click “OK” or “Apply” after setting up the form.
Other useful functions: Cal Area/Perimeter, Sky View, Fix Grid ….
43
SKILLCAD User Quick Reference(IC6)
Create Via
Edit Standard
Via
MPP/Ring
Fill Via
Path
Jumper
Bus
Jumper
Shield
Bus
Bus
Joint
Create Standard Vias
Stretch Via array; Stretch Metal Enclosure; Define Via variants; Modify Via Parameters.
Click “Draw Multipart Path”/ “Draw Rect Ring”/ “Draw Polygon Ring” button and draw such
shape in the layout window to create MPP; Click “Grow From Selected Objects” button to create
MPP ring around selected objects. Select a MPP and Click “Change Selected MPPs” to update it.
Click a button in the form and click or draw on the current layout window as prompted.
Click to draw path/bus/shieldBus.
Key 1,2,3… to jump the drawing metal to m1, m2, m3… at next mouse click,
Key “Backspace” to go back (undo) to previous point.
Click
button and draw a rectangle box over a bus to continue the bus.
Click to draw a box over starting bus headers, and click to draw another box over ending bus headers
V-Editor
The advanced V-Editor module for bus/net editing, combRouter.
Nano Track
Router
Draw bus/path on wire tracks. (Requires setup of wireConfig )
Path
Router
Bus
Router
Layer
Handler
GetNet
Pin/Label
Browser
Quick
Label
Draw
Slot Path
Click to create auto routing. Click backwards to retreat routing of current segment.
Key “Backspace” to go back (undo) to previous point.
Key “ESC” to select one of multiple routing results or cancel the routing.
For matched routing: Click “Sel…” button and click the starting point of a matched path. Then click
to create matched routing.
View layers within a region. View layers by groups. Programmable buttons.
Includes: Select Net, Extract Net, Hilight Net etc. Click on a net to extract the entire net through all
hierarchies to a separate cell view, with option to use Assura or DIVA for big nets.
Auto Place Pins. Align pins to prBoundary. Change Pin Shapes/Layers
Create pins/labels/text displays by a Click and a Line. Auto Snap to prBoundary.
Recreate pin Labels,
Click as if you are drawing a normal path.
Convert to Slot
Select
Path
UniFill
(Coverage)
Kits
one or multiple big paths first and click “OK” or “Apply”.
Click “OK” or “Apply” after setting up the form.
Other useful functions: Cal Area/Perimeter, Sky View, Fix Grid ….
44
QuickLabel
FIG. 17 Skillcad quickLabel form to create Pins/Labels
45
Net Names
If “Pick netNames from Schematic” is checked, the net names in the specified
schematic view will be displayed in the bottom left listbox. If the layout is generated
from a schematic using Virtuoso XL “generate from source…”, the program will
automatically get the source schematic information, otherwise the program will try to
find the source schematic under the same cell of the editing layout view.
Most likely, we will not create a layout label for a default net name like “net10”, “net11”
etc. These default net names will be filtered when “Exclude default netNames” is
checked. Further, only pins (terminals) and global signals will be listed if “Pins only” is
checked.
The user can manually input net names through the “Input Labels:” field (click on the
entry box, type in one or more net/bus names, move the mouse out of the entry box and
the entered names will be parsed into the right list box), or pick the net names from a
source schematic in the left listbox and then click “==>” button, or “Use the VXL Net
Name” (just directly click on a metal layer, the program will get the VXL net name of the
metal and create label/pin on it).
Multiple net names and bus names like a<1:4>,
data<0:9:2> etc. can be entered in one time. The program will resolve the bus names to
the individual net names. All net names for creating labels are orderly listed in the right
list box. If you want to remove some names, select the names in the right list box and
click “<==” button. “Reset” button will remove all net names.
Labels will be created one by one in sequence as they listed in the right list box.
Meanwhile, a prompt in the layout window like, “Enter the point for Net Label: XXX”,
tells you which label is going to be created after you click at a point (where will be the
origin of the label) in the editing cellview window.
46
Ways to set the label layer: “Auto”: The program will check metal layers under the label
origin, and automatically set the label layer if the origin of a label overlaps only one
metal layer, the program will immediately create the label with the right label layer for
this metal (refer to the “Label Layers” in the setup). If multiple metal layers are under the
label origin, you will be asked to pick a metal layer from the overlapped metals, and the
program will create the label in proper label layer for the picked metal layer. If there is no
metal layer under the origin, you will be asked to pick a layer from all routing metals.
The user can set the layer visibility in LSW and “Find metal down to level” to filter out
those invisible or lower level metals under the mouse point.
Options “Create Rectangle Pin Also” and “Align Label/Pin to Center” etc. are only
enabled when the label layer is “Auto”. When option “Create Rectangle Pin Also” is
on, a geometrical pin will also be created together with the label, and the label will be
attached to the corresponding pin shape. If “Create Label As Pin Display” is set, the
label will be created as pin textDisplay object, so that it will automatically change with
the associated pin name. When “Align to Metal Shape” is set (not “N/A”), the pin/label
will be placed to specified side of the existing metal shape, aligned to the center of the
shape and the pin size will match the width of the shape.
If general text layer is set, the program will no longer check the overlapping metal layers
under the label origin. All labels will be created with the “General Purpose Label Layer”
(refer to Setup, Label Layers) “Current LSW layer”: the program will no longer check
the overlapping metal layers under the label origin. All labels will be created with the
current entry layer in the LSW. If individual Metal layer is set, the program will no
longer ask you to pick a layer is there are multiple or no metals under the point.
The program will automatically set the pin size to match the existing metal width.
“Default Pin Size” will be used if no metal is under the target coordinates.
The form also allows you to set the “Height”, “Font”, “Orient” and “Justification” of a
label.
47
“Recreate labels for all selected pins”: will re-create labels for selected (or all in none is
selected) pins. If the pin label already exists, the label will be updated to match the
settings in the command form.
There are three modes to create pins/labels: “Single” means create pin/label one by one
by mouse click. “Line” mode enables the user to create multiple pins by drawing a line
segment. The program will create a pin/label sequentially on each metal intercrossed by
the line. “All” means all labels in the listbox will be created in one click, and the labels
will be evenly distributed in accordance with the given “Delta X” and “Delta Y”.
However, the label layer for each label is dependent to the corresponding metal layers
under the origin of that label as if it is created individually.
FIG. 17a. An example of bus labels created in one click
If you want to create the previous net name one more time, click “Use the previous
Label Again” button. If you don’t want to create the label for the current net name
specified in the prompt, click the “Skip the Current Label” button. “Undo All” will
remove all the labels created after you invoke this quickLabel form. “Undo Once” will
remove the label most recently created. You can repeatedly click this button until all the
labels are removed.
If the label name is different from the VXL net name of the metal underneath, the
program will pop up a message asking you to confirm. Furthermore, all pins/labels will
be attached to the corresponding master objects (top level metals or instances).
48
“Snap to Boundary”: if is on, the pin shape will be automatically snap to the
corresponding side of prBoundary (or the closest side of prBoundary if it is “Auto”).
The justification of the pin label will be optimized according to the snapping side, so that
the pin label will not be stick out of the prBoundary.
Note
FIG. 17b Skillcad quickLabel form to create note
The note can be multiple lines. The note will be created with the “General Purpose
Label Layer” or “Current LSW Layer”(refer to the “Label Layers” in the setup).
The form also allows you to set the “Height”, “Font”, “Orient” and “Justification” of a
note.
“Save As Default”: The program will save the current setting in the form (to
~/.scdEnv.$techLibName ), so that all these optional settings will have the user preferred
values when the from pops up. The given “Notes” will not be saved for this form. All
SKILLCAD command forms have this feature.
49
Pin Browser/Placer
This function offers a convenient way to find/place pins/labels either at the editing cell
level or from a lower level instance.
FIG 17c Pin/Label Browser/Placer
50
The command is to auto place pins/labels to a proper location. It is often used
immediately after a new layout is “Generated All From Source” in VXL.
If “On layer” is other than “any”, for example “METAL1” or “METAL1 pin”, then only
those “Pins” or “Labels” with layerName == “METAL1” or with LPP == (“METAL1”
“pin”) will be listed in the box.
The user can select to list pins/labels at the current “Editing Cell View” or those in the
“Selected Instance” (You need to select the instance first, and click “Refresh” Button)
Each item in the list box contains the information of Pin/Label name, Pin/Label layer and
Pin center/label origin. By clicking (selecting) items in the list box, the program will
zoom to the first Pin/Label in the selected list. You can change the “Zoom Factor” to
adjust the zoom region.
“List Floating Pins/Labels only”: A pin/label is regarded as “floating” if the pin/label is
not placed on a shape with the same layerName as the pin/label layer name. Such as, a
(“M1” “pin”) pin/label is regarded as a floating pin/label if the pin shape or the center of
the label is not on a shape with layerName ==“M1”. When this option is on, only
floating pins/labels will be listed in the box.
“Auto Place Selected (ALL) Pins”: By clicking this button, the program will auto
replace those pins selected in the listbox to proper place (Or all pins if nothing is selected
in the listBox). The priority to find a pin place is:
i)
A metal shape on the same net located at the cell prBoundary. If multiple
shapes were found, the shapes on uppermost metal will be the place to put the
pin.
ii)
A metal shape on the same net at the current cellview. If multiple shapes were
found, the shapes on uppermost metal will be the place to put the pin
iii)
InstTerms connected to the same net, if multiple instTerms were found, the
one on the uppermost metal will be the place to put the pin
51
Pin Shape can be:
"Auto" --- Auto match the size of the pin metal shape
"As Is" --- keep its original size
"Square" ---- Square shape matching the width of top metal.
And Pin Layer can be:
"Auto" --- pin will be on the layer of the top metal in the net
"As Is”: --- keep its original layer
"Entry Layer" ---- all pins will be on the current LSW Entry Layer.
If the original pin has label or textDisplay, the new relocated pin will also have
label/textDisplay. The orientation of the new label is decided based on
i)
New pin located at the edge of cell prBoundary
ii)
Bbox of the new pin shape
If the new pin is in square shape, then the label be horizontal.
Click “Next” or “Previous” button will zoom to the next or previous pin/label in the list
box. The information of the total number of Pins/Labels is listed at under the list box, the
number of “Unique Names” counts only once for those pins/labels with the same name.
When browsing Pins/Labels of the “Editing Cell View”, the corresponding object will
also be selected, so that you can do editing (such as move, change property or even
delete) it conveniently. Remember to click “Refresh” whenever the source cell view
(instance) is changed.
“Change Selected Pins”: will update selected pin to the new layer/width/height/location.
The pin size will match the width of the shape underneath when “W(um)”/ “H” is
“Auto”
52
FIG 17d Pin/Label Browser (Selected Instance)
When browsing pins/labels in “Selected Instance”, you can “Copy (raise) Selected
Pins/Labels to the Current Level” from the lower instance level. The copied pins/labels
are placed at the same location as (overlap) the lower level pins/labels, and meanwhile
they are attached to the instance. Other pins on the same terminal will be deleted after
this pin rising if “Delete Other Pins on Same Terminal” is on,
53
Via Module
SKILLCAD offers three convenient ways to create via/contact:
by Cols and Rows, by filling an area and by drawing MPP.
Create Via by Cols and Rows
IC6:
FIG. 18a create standard OA Via (using create instance interface)
When using standard via in IC6, Cell “zz_Scratch_via_YourLoginName” is a temporary
cell to enable the command create standard OA vias from normal create instance form.
“My Variant”: to select a pre-defined Skillcad via variant so that the via variant rule will
be applied to the vias to be created. Please refer to command “Edit Standard Via” for
more info.
54
“Enc Via Mode”: “ViaDef”: the metal enclosure rule is from the standard via definition
in the virtuoso techfile. “minRule”: the metal enclosure rule is from the “minOppExt”
rule in the virtuoso techfile. If no “minOppExt” rule is defined, it will use the same rule
as “ViaDef”. Other parameters are the same as those in uniVia pcells (explained below).
IC5:
FIG. 18b Skillcad uniVia: creating Via by Cols and Rows
This is actually the normal Cadence “Create Instance” form. The Library, Cell and view
name of the uniVia will automatically filled in when you start the command from
SKILLCAD icon bar or pulldown menu. (You may see that at the very first time of
55
invoking the create instance form, the uniVia information is not automatically there, just
cancel the form and repeat the command).
UniVia is actually a pcell which enables the user to create almost all kind of via instances
from one via pcell.
If you have multiple rule categories, you are able to select which rule category to be used
to create vias.
“From Layer” specifies the bottom (top) layer of a via instance.
“To layer” specifies the top (bottom) layer of a via instance.
“Specify Array of Via” decides the way to specify the size of the via array. “Bottom”:
The user can specify the cols, rows and space of the bottom via layer. Other via array size
will be derived from the bottom via array. “Top”: The user can specify the cols, rows
and space of the top via layer. Other via array size will be derived from the top via array.
“All”: the user can specify cols and rows for each via layer individually. “Details”: not
only the cols and rows of each via can be specified, but also the via width, length, via x
space, y space, x offset and y offset can be specified for each via layer.
“Align Metal Edge”: The edges of all metals will be aligned if there is no DRC
violations. “End Enclosure on Side” and “Min Stack Via Cur. Cap:” will be disabled
when this option is on. This option is especially useful for thick top metal when the top
via has way different rules (size, space, metal enclosure) from other vias.
“End Enclosure on Side” specifies which side the metal end enclosure of via rule will be
applied. “Preferred” means the end enclosure rule will be applied to the preferred
routing direction of each metal. “X” means the end enclosure rule will be applied to X
direction for all metals. “Y” means the end enclosure rule will be applied to Y direction
for all metals. “All” means the end enclosure rule will be applied to both X and Y
56
direction for all metals. “NP” means the end enclosure rule will be applied to the nonpreferred routing direction of each metal.
FIG. 19 Variations of metal enclosing via
“Minimum Area Fix Mode” is useful for stack vias when the middle metal layers have
minimum area issue.
“Square”: (to fix minimum area) by a squarish shape.
“Preferred Dir”: by extending each layer in its preferred direction.
“Non-Preferred Dir”: by extending each layer in its non-preferred direction.
“X Dir”: by symmetrically extending all layers in east and west direction
“Y Dir” ”: by symmetrically extending all layers in south and north direction
“Left”: by asymmetrically extending all layers in west direction
“Right”: by asymmetrically extending all layers in east direction
“Up”: by asymmetrically extending all layers in north direction
“Down”: by asymmetrically extending all layers in south direction
“Manually Fix”: leaving the problem for manually fixes.
FIG. 20 UniVia “Minimum Area Fix Mode”
57
In case of multiple via level in a via instance, different via array have different current
capacity. Especially for the case of thick top metal, the top via is normally much bigger
than other vias. “Min Stack Via Cur. Cap:” let you specify the minimum ratio of the
current capacity of a via layer to the maximum via current capacity.
The uniVia pcell will be stretchable when the “Enable Stretch” parameter is on. Make
sure to display the stretch handles in the layout display options. The array-dependent via
spacing rules and width dependent metal enclosure of via rule will be obeyed on the fly
during stretching.
58
Edit Standard Via (IC6 Only)
This command offers 3 ways to edit standard vias:
“Stretch Array”: Change via arrays by drawing a line cross the vias.
The line can be any angle. Vias (stacked vias) crossed by the stretching will be stretched.
The program will calculate new columns and rows, and adjust via space and metal
enclosure rule based on new via array size. Minimum metal enclosure rule and at least
1x1 array will be maintained. Turn on “keep via Center” so that the center (origin,
most likely) of via array will not be moved.
If you want to stretch multiple vias at same time, turn on option “On Selected Vias”,
selected those vias, and draw a line cross one of selected via. When multiple via sizes
(cutClass) are set in the rule category, the program will automatically adjust via size to
maximize via filling area if “Keep cutClass” option is turned off.
59
“Stretch Array”: Change metal enclosure of via by drawing a line cross the vias.
The line can be any angle. Vias (stacked vias) crossed by the stretching will be stretched.
Minimum metal enclosure rule will be maintained. If you want to stretch multiple vias at
same time, turn on option “On Selected Vias”, selected those vias, and draw a line cross
one of selected via.
You have options to stretch “Both” layers, “Layer1” (lower metal layer), “Layer2”
(upper metal layer) and “Align” (extend both metal to via boundary)
On Layer: “Both”
“Symmetrical Enclosure” on
On Layer: “Layer1”
“Symmetrical Enclosure”: off
60
On Layer: “Align”
“Set Params/Variants”: Edit via by changing via parameters directly.
Input via columns/rows, via space rules and metal/implant layer enclosure rules as you
wanted. Then click on vias one by one (or click “Apply to selected Standard Vias”
button), the input rules will be applied on those (selected) vias.
You can also input can incremental number, for example, Via Columns: “As Is” + 1, the
via columns will increase by 1 for each click on the via.
If these values will be used frequently, you’d better save it to a variant:
61
Just input a new “My Variant Name” and click “Save”. The variant info is saved to
~/.MyViaVariants.YourTechLibName
So, different users and different technologies can have different via variants.
These via variant info will be loaded by Skillcad when you start Virtuoso next time, so
that the via variants will be available for all cellviews and all projects in the same
technology. The via variants will also be used by SKILLCAD “Create Via” command.
You can pick a previously defined via variant from the “My Via Variants” pulldown list
box. The parameters will be reset to the same as the info saved in the via variant.
“As rule”: all the parameter values will be reset to “As Rule”
“As Is”: all the parameter values will be reset to “As Is”
“As Variant”: all the parameter values will be reset to the same the info saved in the
picked via variant.
62
Fill Via
If you have multiple rule categories, option “Use Rule” enables you to select which rule
category to be used in creating vias.
IC6
IC5
FIG. 21 Skillcad uniVia: creating Via by Filling an Area
“Enc Via Mode”(IC6 only): “ViaDef”: the metal enclosure rule is from the standard via
definition in the virtuoso techfile. “minRule”: the metal enclosure rule is from the
“minOppExt” rule in the virtuoso techfile. If no “minOppExt” rule is defined, it will use
the same rule as “ViaDef”.
“Space” (IC6 only): to control via space mode: distributed or minimum.
“Flat Via for Polygon Region” (IC6 only): option for using the standard via array in
filling a polygon area (VXL preferred) or a flatten via shape instance (Better filling
result).
63
“From:” specifies the bottom (top) layer of the via instance.
“To:” specifies the top (bottom) layer of the via instance.
“Align Metal Edge”: The edges of all metals will be aligned if there is no DRC
violations. “Use End Enclosure Rule” will be disabled when this option is on. This
option is especially useful for thick top metal when the top via has way different rules
(size, space, metal enclosure) from other vias.
FIG. 22a “Fill Overlap Area” with Align Metal Edge “off” for left side and “on” for right side
For a Big Non-Rectangular filling region, the program will take a long time to fill.
Consequently, it will take a long time in streaming out or opening the cell view later on.
So it is strongly recommended to flatten those big non-rectangular UniVias after filling.
Option “Tile Filling for Big Non-Rectangular Regions” will separate a Big NonRectangular Region into tiles first, and then fill uniVias tile by tile, and the final result
will be saved into one flat cell. The tile filling mode is much faster than the default
uniformly filling mode. If both “Tile Filling for Big Non-Rectangular Regions” and
“Make Flat Cells for Big Non-Rectangular Regions” are off, the filling results will be
kept as UniVia pcells (convenient for further modification, but may meet slow issue in
streaming out or opening later on).
The “Auto” “CellName” for flattened uniVias are $cellname_flat_uniVia_1,2,3….”
($cellname is the editing cellname). You can specify your own unique cellname (for
single filling region) or prefix for multiple filling regions at one time.
64
When the boundary area of “A Non-Rectangle Region” is > 600u^2, the program will
treat it as a “Big Non-rectangular Region”. UniVias filled in small polygon regions will
be kept as pcells.
When “Check same VXL net name when filling overlaps” is on, the program will
check the vxl net names of the overlapping metals. If they are on different net, no via will
be filled.
By clicking the “Fill Rect” button, the user will be prompted to draw a rectangle box in
the current layout window. A via array from the “From” layer to the “To” layer will be
created to fill the given rectangle area. Vias created by filling an area are uniVia
instances, which are also stretchable.
By clicking the “Fill Polygon” button, the user will be prompted to draw a polygon in the
current layout window. A via array from the “From” layer to the “To” layer will be
created to fill the given polygon area.
The program is able to fill non-Manhattan
polygons.
You have to select one or multiple regions first before clicking the “Fill Selected
Region” button. A via array from the “From” layer to the “To” layer will be created to
fill each of the selected regions.
“Fill Overlap By Click” button enables you to fill uniVias in the overlapping area of
two conductive layers simply by a click on the overlapping region.
FIG. 22b
Creating Via by Filling an area.
65
“Fill From and To Layer Overlaps Within A Rect Region” button enables you to fill
multiple overlaps between the specified “From” layer and “To” layer by drawing a
rectangle box over them. This command normally works together with option “Check
same VXL net name when filling overlaps”. As shown in FIG. 22c, after drawing a
selection box AB, uniVias are filled at the overlaps of two metals of the same net. No
vias are filled at the overlaps between the two metals of the different net.
B
A
FIG. 22c Creating Vias by Filling overlaps in rectangle region AB.
“Fill Metal Overlaps of Same VXL Net Within A Rect Region” requires the cellview
in VXL mode. It will find all overlaps of metals at same VXL net and fill proper vias to
connect them if they are not connected yet. Note, the program use connectivity info from
VXL, and will not re-extract the connection based on physical geometry. Not any shape
without net info will be treated as a shape at different net and will not be connected.
66
MPP/Ring
FIG. 23a Skillcad uniVia: creating MPP
Multipart Paths (MPP) are often used to create guard rings and body taps. If you are new
to MPP, please refer to the Cadence layout editor user menu.
If you have multiple rule categories, you are able to select which rule category to be used
to create vias.
“Enc Via Mode”(IC6 only): “ViaDef”: the metal enclosure rule is from the standard via
definition in the virtuoso techfile. “minRule”: the metal enclosure rule is from the
67
“minOppExt” rule in the virtuoso techfile. If no “minOppExt” rule is defined, it will use
the same rule as “ViaDef”.
The program offers 4 ways to set the width of MPP.
“Bottom Via”: the user can set the number of bottom vias/contacts, and other layer
width/via number information will be derived from the bottom via.
“Bottom Layer”: the user can set the width of the bottom layer, and other layer
width/via number information will be derived from the bottom layer.
“Top Via”: the user can set the number of top vias/contacts, and other layer width/via
number information will be derived from the top via.
“Top Layer”: the user can set the width of the top layer, and other layer width/via
number information will be derived from the top layer.
“Set Starting/Ending Enclosure” option is to adjust the starting/ending end enclosure
over via/cont. This option is especially convenient to T-shape joint MPPs.
“Via Space in Path Dir” specifies the space of via placement along the direction of path
centerline. “Via Space in Width Dir” specifies the space of via placement along the
direction perpendicular to the path centerline.
“Distribute:” each via layer will be evenly distributed.
“Min”: minimum via space will be used for each via layer.
“Specify”: all via layers will follow the same space as specified.
“Fix Min Width”: If is on, the layers in MPP will be grown to minimum width when it is
smaller than minimum width.
The user can create MPP in 5 ways:
“Draw Multipart Path”, after click this button, the user will be prompted to input the
points of a MPP path. The MPP path will be create along the user input coordinates.
68
“Draw Rect Ring”, after click this button, the user will be prompted to input a rectangle
box. A rectangle MPP ring will be created along the box. The beginning offset and
ending offset for all metal and via layers are adjust properly to form a ring.
“Draw Polygon Ring”, after click this button, the user will be prompted to input the
points of a polygon. A polygon MPP ring will be created. The beginning offset and
ending offset for all metal and via layers are adjust properly to form a ring.
“Grow from selected objects”, the user can further specify the grow amount, that is the
distance from the selected objects to the inner, center or outer edge of the MPP. If
“Grow From:” is set to “Layer”, you can set a reference layer such as “DIFF drawing”
to grow from. “Grow to Rectangle”: the result will be in rectangle ring created from the
bounding box of the sized shapes.
“Change Selected MPPs”: first select the MPPs need to be modified, then change the
settings in the command form and click this button, all the selected MPPs will be changed
to the new settings.
FIG 23b Creating via By MPP
The Via/cont MPPs are stretchable and the metal layers are choppable.
When “Save MPP as Cell Name (Prefix)” is on, the created MPPs will be save as cell
with the given cell name prefix. The “Auto” (default) cell name prefix is the editing
69
cellview name concatenated with “_MPP”. This option is to avoid the slowness caused
by big MPPs.
There are two SKILLCAD environmental variables to control the MPP via/contact
spacing mode and save MPP as cell.
Again, “Save As Default”: The program will save the current setting in the form (to
~/.scdEnv.$techLibName ), so that all these optional settings will have the user preferred
values when the form pops up.
However, the above two environmental variable will overwrite each user’s default setting
for the corresponding field in ~/.scdEnv file.
Update UniVia ... (IC5 only)
If via related design rules are changed, you can update all existing uniVia instances/Objs
to follow new design rules after you update the skillcad setup. This update feature is also
very useful in the case of migrating layout database from one technology to another
technology.
FIG. 24a Update Univia FIG.
24B Update Univia Form
70
You can update uniVias for the “Current Cellview” or for an “Entire Library” (for all
cellviews with view name “layout*”).
Please note if a parameter value was specified by the user (such as via space or via size)
instead of using the default value, the specified value will be kept after updating.
UniVias created by Cols/Rows (or filling by a rectangle area) will have same Cols/Rows
after updating (The via boundary box may change). UniVias created by filling a nonrectangle area will be updated using the new rules to fill the same area ( The number of
filling uniVias may change).
In IC6, SKILLCAD also provides to convert between uniVia instances and customVias.
Be sure to be consistent in your design env after conversion.
71
Free Jumper
Free jumper offers a convenient way to change drawing metal layers, add vias with
specified minimum number during path wiring.
Path Jumper
FIG. 25 Skillcad FreeJumper: Path Jumper
72
D
A
E
C
B
FIG. 26. A connection created with Path Jumper
With FreeJumper, the path shows in FIG.26 can be created through the following
continuous operations:
0) Start the Path Jumper command. If the current entry in not metal1, hit key 1,
otherwise, this step can be skipped.
1) Set “Fixed Wdith” 0.3um, and Set the label of “Create Note Labels Along Path”
to “gnd!”, and Set “Min Via Number” 2.
2) Click at A,
3) Hit key 2 (Or use mouse to set the “Jump to Layer” value to “METAL2 drawing”)
4) Click at B (the current entry layer will be METAL2 now)
5) Click at C
6) Hit key 3 (to jump to the routing METAL3 after next click)
7) Click at D (the current entry layer will be METAL3 now)
(The corner via alignment can be adjusted here)
8) Point at E and hit Return key.
TIPS: Use key “Backspace” to undo and return to the previous point.
There are three modes to set the path width:
73
“Min Width”: the minimum width of each metal will be used. Since different metals
may have different minimum width, the width of different metal may also be different in
this mode. “Fixed Width”: all metal layers will have same width as specified. Note, the
given width should not be smaller than the minimum width of each metal layer. “Fixed
Current”: The program will calculate the path width for each metal layer based on the
given current value and metal current capacity. The result will not be smaller than the
minimum width of the corresponding metal. If “As Starting Path” is on, the program
will auto set the drawing layer and path width as the existing layer under the first mouse
click. If there are multiple metals underneath, the user can further select to the metal layer
on a small popup form to continue.
“Current Entry Layer” tells the user in which metal layer is currently used for drawing.
The “=” or “||” button next the “Current Entry Layer” illustrates the preferred routing
direction of the current Entry Layer. “=” means the preferred routing direction of the
current layer is horizontal, and “||” means the preferred routing direction is vertical.
“Jump to Layer”: specifies the metal layer to which the user wants to jump after next
click. The “=” or “||” button next the “Jump to Layer” illustrates the preferred routing
direction of the next entry layer. “=” means the preferred routing direction of the next
entry layer is horizontal, and “||” means the preferred routing direction is vertical. By
default, the program defines a bindkey for each routing metal. The user can just type key
“1” to change the routing layer to metal1 after next click, Type “2” to change the routing
layer to metal1 after next click, and so on. You can check or modify the pre-set bind keys
in the Skillcad user preferences form.
You can also use multiple metals to create a path. For example, “MultiLayers” = 2,
“Layer Intervals”= 1, then you can draw path/bus with two metals such as m1/m2
m2/m3 .... So that you can avoid using wide path to handle big current. If
“MultiLayers” = 2, “Layer Intervals” = 2, then you can draw path/bus with two metals
74
such as m1/m3 m2/m4 ... So that you can avoid non-preferred direction routing. In
multilayers case, the “Jump To” layer is regarded as the bottom layer of the multilayers.
If a block layout will be placed with 90-degree rotation at upper level, the user can turn
on the “Swap Preferred and Non-Preferred Dir” while doing the block level layout.
A uniVia instance will automatically be placed at the point of layer jumping. The via
instance will meet all the user specified constraints, such as “Min. Via Number”, “Min.
Area Fix Mode” (refer to uniVia section).
The user can also specify the “Max. Via
Stack Levels” for the current drawing connection. The “Max. Via Stack Levels” should
be smaller that the value in the general rules in the technology setup. If the layer jumping
levels exceed the “Max. Via Stack Levels”, a warning message will popup.
If “Use Squarish Via Array” is set, the program will always use squarish via arrays
during layer jumping as shown below, otherwise only corner vias will be squarish. This
option is useful to reduce via resistance.
FIG 27a. Example of “Use squarish Via Array”
“Corner Via Align” enable the user to adjust the via alignment at corner. The corner can
be placed at “X” direction or “Y” direction, and can be aligned to the edge of the corner
or to the center of the corner.
“Create Note Labels Along Path”, if checked, the program will create the given label in
general purpose label layers (ref: Label Layers in the setup) for each segment of the path
connection, so that the user can easily trace the created path later. In Virtuoso XL(VXL)
environment, if “Use VXL Net Name” selected, the program will automatically get the
net name from the starting point as the label name.
75
If “Alert if Metal in Non-Preferred Dir…” is checked, a warning message will pop up
if the routing length in the non-preferred direction of a metal is longer than the specified
threshold.
“Extend Path At Layer Jumping” means the starting or ending offset of the metal path
will be adjusted to cover the same metal in the via instance if the path metal is wider than
the same metal layer in a via instance. It will avoid “minimum jog” length violation in
nanometer technology. The difference is demonstrated in FIG 27b.
FIG 27b. Example of “Extend Path At Layer Jumping”
“Convert Non-orthogonal Path to Polygon on Grid” will solve the offgrid problems
for non-orthogonal paths (ref FIG. 27c). “Merge with Starting Path” will merge with
the starting path if the starting path is on the same hierarchical level as the drawing path
when “As Starting Path” option is on for “Path Width Mode” (ref FIG. 27c).
FIG 27c. Example of “Merge With Starting Path” and “Convert Non-orthogonal Path to Polygon on Grid”
“Rule Assistant” will check the space violations on fly and if possible, automatically
push the drawing object locally to avoid space violations. The tool can handle width
dependent spacing rules, width dependent metal path end space rules. As shown in FIG.
27d. The left-side connection was created by changing layers and clicking at A B C and
D without Rule assistant. Obviously, there are metal space violations or shorts at the
76
FIG 27d. Difference between with/without Rule Assistant.
pointed locations. The right-side connection was created in a similar operation by
changing layers and clicking at A B C and D with Rule assistant, the tool automatically
pushed the vias and paths to avoid space violations. By selecting “Use My Min. Space
Rule”, you can also set your minimum space rule to temporarily overwrite those
minimum space rules in the rule category, if the technology minimum space rule < the
given space rule, the given space will be used by rule Assistant; If the technology
minimum space rule >= the given space rule, the technology space will be used by rule
Assistant. In this release, rule assistant does not fully working for “MultiLayers” cases.
“Align Starting/Ending to Center”: The starting/ending point will be aligned to the
center of the path/polygon to which the starting/ending path is connected.
“Auto Pan Window” will pan the layout window to the last entry point. “Probe the
Drawing Net” will highlight the polygons on the current drawing net, so the user can
easily identify the connection. This feature only works properly in virtuoso XL
environment.
“Metal Display:” if the checkbox “Current Level –1 to + 1” is on, the display of metal
and via layers will be dynamically updated when you change the current drawing metals,
only the metal/vias in-between the specified levels will be visible. Click the “ALL”
button to display all metals and Vias. Click the “None” button to make all metals and
vias invisible.
77
Bus Jumper
Most options in the Bus jumper form shown in FIG. 28 are the same as the path Jumper.
In bus jumper, the user needs to specify “No. of Paths” and path Pitch. And there is no
net probing feature in bus jumper, since there are multiple nets during bus connection.
FIG. 28 Skillcad FreeJumper: Bus Jumper
78
The “Continue” button enables the user to continue an existing bus. Click this button
can draw a rectangle selection box over the existing bus (ref FIG. 29a), the program will
automatically set the starting layer, bus width, bus number and pitches according to the
existing bus in the selection box. If there are multiple buses on different layers, the user
will be asked to further select a metal layer.
FIG. 29a The bus info in the selection box will be extracted for the from settings.
The user can continue (part of) an existing bus.
The “?” button will pop up a dialog form as down in FIG.29b explaining how to input
labels for a bus.
FIG. 29b Information on how to input labels for a bus
79
If “Reverse Bus order at Corner Layer Jumping” is checked, the bus order will be
reversed when changing metal layer at corner, as shown at Corner “C” in FIG. 29c.
FIG. 29c A bus connection created by Bus Jumper. Bus reverses the order at corner C.
The bus showed in FIG. 30a can be created by the following operations:
0) If the current entry in not metal1, hit key 1, otherwise, this step can be skipped.
1) Set the Bus Jumper form as shown in FIG. 28
2) Click at A
3) Hit key 2 (to jump to the routing METAL2 after next click)
4) Click at B (the current entry layer will be METAL2 now)
5) Hit key 3 (to jump to the routing METAL3 after next click)
6) Click at C (the current entry layer will be METAL3 now)
7) Check “Reverse Bus Order on Turn” in the bus jumper form
8) Point at D and hit Return key.
80
Tips: you can Use key “Backspace” to undo and return to the previous point.
Tips: The user can change the bus pitch at a corner when changing routing layers.
Together with the options of the corner via alignment, you can avoid space
violations during layer jumping as shown in FIG. 29d.
FIG 29d Corner via Spacing violations can be avoided by adjusting bus pitch and corner
via alignment.
TIPS: The Rule Assistant can handle unlimited hierarchy levels. It “sees” all DRC
related objects in all levels. In “Edit-in-Place” mode, Rule Assistant sees not only
the related objects within the editing cell level, but also the related objects in the
upper levels.
“Save As Default”:
The program will save the current setting in the form (to
~/.scdEnv.$techLibName ), so that all these optional settings will have the user preferred
values when the from pops up. A common field of pathJumper and busJumper has a
common default value. The setting of “Jumper to Layer” and the given labels along the
path will not be saved.
81
ShieldBus
FIG 30a. Shield Bus Command Form
Most options in the Shield Bus Command form are the same as Path Jumper or Bus
Jumper. “Rule assistant” is not available for the Shield Bus, and the path width mode is
always “Fixed Width”. But the “Current” info of the signal path is showed in the form.
82
“Number” is the number of signals paths. “Path Space” is the edge-to-edge space
between two signal paths. “Path Space” field is disabled when “Middle” shielding is on
because it can be derived from “shielding path width” and shielding path “To Signal
Path Space”. The number of shielding paths is depended on the option of the “Middle”
shielding. The program will automatically connect the top/bottom shielding shapes to
the vias in the left/right/middle shielding paths. “Number” of Signals should not be
changed in the middle of drawing. “Path Space”, “Signal Path Width”, “Shielding
Path Width”, and shielding path “To Signal Path Space” can be changed in the middle
of drawing, but it is recommended to change them only at turns and when jumping
routing layers.
“Create Note Labels Along Path” is only for signal paths, not for shielding paths.
FIG 30b, Examples of a shield bus
83
Step Router
In the full custom layout, to make a connection, the layout engineer has to repeatedly:
i) Select a drawing metal layer and set properties, such as width of the drawing metal.
ii) Draw the metal along the routing plan until there will be DRC/LVS or layout quality
issues if further extending the drawing metal.
iii) Add via, and adjust via array size and orientation. In cases of multiple levels layer
jumping, this step will be repeated for each level of via layers, and an extra minimum
area issue of the intermediate metals needs to be attended.
Of course, DRC has to be constantly attended throughout the entire editing process.
Hence implementing a DRC clean interconnection is quite tedious and time consuming,
especially when there are many metal levels and/or the existing layout is already
considerably complex.
SKILLCAD stepRouter automates the above manually editing steps. It automatically
adds vias and jumps routing layers to create a DRC clean connection along the user-given
path. The connection also meets constraints such as minimum array size (columns/rows)
of vias and maximum stack levels of vias. Further, the connection is optimized based on a
cost value. The cost value can be a function of layer routing directions (for maximum
routability), resistance (for minimum resistance), capacitance (for minimum capacitance)
and RC (for minimum delay).
Based on what is created, the router can be Path Router, Bus Router, Matched Path
Router and Matched Bus Router.
84
Path Router
FIG. 31 Skillcad StepRouter: Path Router
The way to set path width in path router is similar to that in path jumper:
“Min Width”: the minimum width of each metal will be used. Since different metals
may have different minimum width, the width of different metal may also be different in
this mode. Option “As Starting Path” is not applicable to this mode.
“Fixed Width”: all metal layers will have same width as specified. Note, the given width
should not be smaller than the minimum width of each metal layer that will be used for
routing. If “As Starting Path” is checked, the program will automatically extract the
85
width information of the path of the starting metal under the starting point. If there is no
path object of the starting metal, the given value of the field “Width(um)” will be the
path width.
“Fixed Current”: The program will calculate the path width for each metal layer based
on the given current value and metal current capacity. The result will not be smaller than
the minimum width of the corresponding metal. If “As Starting Path” is checked, the
program will automatically extract the current capacity information of the path of the
starting metal under the starting point. If there is no path object of the starting metal, the
given value of the field “Current(mA)” will be the path current.
The fields of “Use Layers From” and “To” specify what metal layers can be used for
routing. For example, if the user set
The program will only use “METAL1 drawing”, “METAL2 drawing” and “METAL3
drawing” for routing.
“Start/End Layer” defines the starting/ending layer selection mode.
“Pick From Layers Under Point”: If there is only one metal level at the starting
(ending) point, this metal layer will be the starting (ending) layer. If there are multiple
metal levels at the starting (ending) point, the user will be prompted to pick one metal
layer out of them to be the starting (ending layer). If there is no metal layer at the starting
(ending) point, the user will be prompted to pick one metal layer out of all available
routing metals to be the starting (ending layer).
“Always Ask”: the user will be always asked to pick one metal layer out of all available
routing metals to be the starting (ending layer). The program will not look what metals
86
are under the starting (ending) point for user to pick from. The selection of the starting
layer can affect the path width if “As Starting Path” is checked.
The routing result can be optimized in 4 ways.
“Layer Dir”: a total cost value will be calculated for each possible connection based on
the cost table in the setup form, and the connection with lowest cost will be the result
shown on the layout window. In this mode, the routing layer will be automatically
changed to avoid metal routing in non-preferred direction, and maximum routability will
be kept for other connections. This mode is suitable for the layout of digital circuits or
non-critical analogue circuits.
“R”: a total resistance value will be calculated for each possible connection, and the
connection with lowest resistance will be the result shown on the layout window. Most
likely, the routing result has minimum layer jumping (vias). This mode is suitable for
creating connections with minimum resistance.
“C”: a total parasitic capacitance value will be calculated for each possible connection,
and the connection with lowest capacitance will be the result shown on the layout
window. Since only the parasitic cap is concerned in this mode, the result may contain
many layer jumping (vias). This mode is suitable for creating connections with minimum
parasitic capacitance when resistance is not an issue.
“RC”: the product of total resistance and total capacitance will be calculated for each
possible connection, and the connection with minimum RC will be the result shown on
the layout window. Since the product of RC will be affected by the resistance and
capacitance from the existing devices or polygons, you can set an initial resistance in
“Init R” and initial capacitance in “Init C” to reflect the pre-existing R and C of the net.
In the case of a big initial R and a small initial C, this mode is equivalent to optimize “C”
only. On the other hand, in the case of a big initial C and a small initial R, this mode is
equivalent to optimize “R” only. “RC” mode is suitable for creating a connection with
minimum delay time for a signal passing through it.
87
The program runs quite fast in optimizing “Layer Dir” cost or “R”. However, the
routing time may be noticeable in optimizing “RC” or “C”, since calculating parasitic C
takes way more time than calculating parasitic “R” or “Layer Dir” cost, especially for a
long connection on a complex layout.
The tool uses the following model as shown in FIG. 32 to extract the parasitic
capacitance of a metal path. 4 types of parasitic capacitance will be calculated.
C_Top
C_Left
C_Right
C_Bottom
FIG. 32 Parasitic capacitance model used by stepRouter
C_Top: the capacitance from the top surface of the metal to the bottom surface of upper
metals; C_bottom: the capacitance from the bottom surface of the metal to the top
surface of lower metals, poly, diffusion and/or the substrate; C-Left: the capacitance
from the left surface of the metal to the right surface of other polygons in the same metal
level; C-Right: the coupling capacitance from the right surface of the metal to the left
surface of other polygons in the same metal level.
The fringe capacitances to the polygon in the different metal levels are ignored. C_Top
and C_Bottom are dependent on the value of “Max Levels of Cap Combination” in the
setup of general Rules, while C-Left and C-Right are dependent on the value of “Max
Cap Coupling Distance” in the setup of general rules.
88
“Min. Via Number” defines a constraint that the number of vias in a via array used for
connection has to be equal or more than this minimum via number.
“Max. Via Stack Levels” defines a constraint that the layer jumping levels cannot be
bigger than this number. This “Max. Via Stack Levels” should be smaller that the value
in the general rules in the technology setup. The stepRouter will not jump routing metal
levels exceeding the “Max. Via Stack Levels”.
If “Use Squarish Via Array” is set, the program will always use squarish via arrays
during layer jumping as shown below, otherwise only corner vias will be squarish. This
option is useful to reduce via resistance (ref FIG. 27a).
By selecting “Use My Min. Space Rule”, you can also set your minimum space rule to
temporarily overwrite those minimum space rules in the rule category, if the technology
minimum space rule < the given space rule, the given space will be used by rule
Assistant; If the technology minimum space rule >= the given space rule, the technology
space will be used by rule Assistant.
If option “Add Note Labels Along Path” is on, the program will add labels of the given
net name in proper label layer for each path segment along the created connection. In
Virtuoso XL(VXL) environment, if “Use VXL Net Name” selected, the program will
automatically get the net name from the starting point as the label name.
“Swap preferred and non-preferred routing direction” is only applicable for the case
of optimizing “layer Dir”. This option will be useful if you the current editing layout cell
will be placed at the top level with a 90 degree rotation.
“Adjust Path Extension at Layer Jumping” is an option to adjust starting or ending
offset of the metal path to cover the same metal in the via instance if the path metal is
wider than the same metal layer in a via instance. Please refer back to FIG. 27b in the
freeJumper section. “Merge with Starting/Ending Path” will merge with the
89
starting/Ending path if the starting path is on the same hierarchical level as the drawing
path when “As Starting Path” option is on for setting path width (ref FIG. 27c).
“Align Starting/Ending Point to Center”: If the starting (ending) point connected to an
pre-existing path, the starting(ending) ponit will be automatically aligned to the center of
the path. The point before the last point may also adjusted to avoid non-authorgonal path.
“Probe the Drawing Net” will highlight the polygons on the current drawing net, so the
user can easily identify the connection. This feature only works properly in virtuoso XL
environment. “Auto Pan Window”: The layout window will be automatically panned as
the user clicks the routing points, so that the user does not need to adjust the display in
the layout window.
“Create Matched Paths” will show the extra fields for matched path routing.
For example, the connection shown in FIG.33 is created by StepRouter. The user only
needs to click at points A, B, C and finally move the cursor at point D and hit the “return”
key (or double click).
D
B
C
A
FIG. 33, StepRouter creates an optimized connection along the user given coordinates A, B, C and D.
90
FIG. 34 shows the 4 different connections from point A to B, by optimizing layer
directions, resistance, capacitances and RC respectively. Here, METAL1, METAL3
preferred routing direction is X. METAL 2 preferred routing direction is Y. METAL3 has
lower sheet resistance than METAL2, and METAL2 has lower sheet resistance than
METAL1.
METAL3
METAL1
METAL2
FIG. 34, Four Optimization Ways: layer directions, resistance, capacitances and RC respectively
In case the router cannot make a connection successfully, the router will create the
connection to the farthest point it can reach and then popup a dialog form telling the user
the connnection cannot be made successfully. The user can continue the routing from this
status by change the routing coordinates.
A temporary layout cell view named “zz_tmp_$username_SkiLLCad” is created during
stepRouting. The router does the intermediate layer operations on this cell view so that
the original layout data will not be messed up. You do not need to save this cellview
when exiting Cadence session. It can be deleted after you finish a skillcad command.
91
Tips for StepRouting:
1) Do not change the settings in the form in the middle of routing. Otherwise the
current routing will stop.
2) You can use “Backspace” key to go back to the previous routing point. Or just
click back to retreat the routing path.
3) The StepRouter can handle unlimited hierarchy levels. It “sees” all DRC or
electrical related objects in all levels. So the user can do routing when some layers
are set to invisible, or without showing the contents of block level cells. In “Editin-Place” mode, StepRouter sees not only the related objects within the editing
cell level, but also the related objects in the upper levels.
4) “Esc” key will stop the routing. However, before quitting from the stepRouter, the
user can either select a possible routing result (without shorting to the layers
under the ending point) based on the cost value or cancel the connection from the
popup the dialog as shown in FIG. 35a.
FIG.35a Choices to stop route when the user hit “Esc” key
92
1) Vias on the starting point or ending point are always in same direction as the path,
in order to place the starting via or ending via correctly, the user can make an
extra short turn to change the via alignment, as shown in FIG. 35b: It is
recommended to connect the two S/D terminals along the path B. The router may
be unable to make a connection along the straight line “A” since there may not be
enough to place via arrays horizontally.
FIG.35b Extra turns at the starting/ending point to control via alignment
2) Except length of segments and complexity of the existing metals, the
stepRouting speed is also related to the following factors:
i)
Number of metals to be used for routing.
ii) The complexity of metal spacing rules and keepout settings.
iii) Optimizing method ( “Layer Dir” or “R” is faster than “C” or “RC”)
iv) The (total) width of a bus/path.
For example, if you want to stepRoute cross a dense digital block, there is
probably no space for metal1, so you’d better exclude “metal1” from the layers to be used
for routing. And If there is no wide metal shapes along you routing path, you can use a
rule category with simple metal spacing rules.
93
Matched Path Router
FIG. 36 StepRouter: Matched Path Router
94
In analog designs, some wires are often required to match others. The actual matching
requirements may vary with different situations, such as two paths having the same or a
certain ratio of capacitance or resistance.
In this tool, “matched path” means two or more paths are exactly the same after
transformation (displacement, rotation and/or mirror).
When “Create Matched Paths” of the path Router form (FIG. 31) is checked, the form
will be extended as shown in Fig 36. Enabling the user to input the starting points of the
matched paths. The user can click “Sel…” button and then click a point in the layout
window to input a starting point of a match path. Multiple points are allowed for each
matching category.
As the user input the routing points, identical paths will be created starting from the given
starting points with the corresponding matching relationship such as MY, MX, R180…
Note, the matched paths are not allowed to intersect with each other.
MY
+
+
2
C
D
3
1
4
A
B
+
MX
R180
FIG. 37 1, 2 3 and 4 are Matched Paths created by matched path router
95
You can create the matched paths showed in FIG. 37 by the following operations:
1) Click the “Sel…” button of “MY” matched paths starting points, then click at
point MY, the coordinate of MY will be listed in the “MY” matched paths starting
points, and meanwhile a “+” label will be created at that point.
2) Follow the same method to get the starting points for “MX” and “R180” matched
paths.
3) Click at the point A, B, C and D to create the path 1. You will see the identical
paths 2, 3 and 4 are created at the same time as you click A, B, C and D.
The stepRouter sees all the related objects of each matched path, and change routing
layers properly to create a path matching all design rules.
This example demonstrates the user can easily create cross-matched connection easily.
The user first create the 4 identical connections as in the example, then manually creates
a cross connection for them. That is, there are two steps to create to a cross-matched
connection, use the stepRouter to create matched paths, and then manually create the
cross.
Of course, the program enables you to create all other kinds of matched paths. Keep in
mind that the matched paths cannot self-intersect or intersect each other.
“Save As Default”: The program will save the current setting in the form (to
~/.scdEnv.$techLibName ), so that all these optional settings will have the user preferred
values when the from pops up. A common field of pathRouter, matched path Router,
busRouter and match busRouter has a common default value. The given labels along the
path and the match paths starting points will not be saved.
96
Bus Router
Most options in the “Bus Router” form as shown in FIG. 38a are the same as the “Path
Router” (FIG. 31). In bus jumper, the user has to specify “No. of Paths” and “Path
Pitch”. And there is no net probing feature in bus jumper, since there are multiple nets
during bus connection. “Auto Align” are only enabled when the number of paths is an
odd number since the centerline of the bus does not overlap any of its sub-paths when the
bus has even number sub-paths.
FIG. 38a StepRouter: Bus Router
97
The “Continue” button enables the user to continue an existing bus. Click this button
can draw a rectangle selection box over the existing bus (ref FIG. 29a), the program will
automatically set the initial routing layer, bus width, bus number and pitches according to
the existing bus in the selection box. If there are multiple buses on different layers, the
user will be asked to further select a metal layer.
The operation to create a bus routing is the same as that in creating a path routing.
The bus routing shown in FIG. 38a can be created with the following steps:
1) Set “Width(um)” = 2, “Number of Paths” = 8, “Path Pitch(um)” = 3
2) Click at Point A. The program will pop up a form asking you to select the starting
layer. Select “METAL1 drawing” as the starting layer.
3) Click at point B,
4) Click at point C
5) Move cursor to point D and hit the “return” key. StepRouter will ask you to
select an ending layer. Select “METAL1 drawing” as the ending layer.
C
A
D
B
FIG. 38b A bus routing created with StepRouter
All tips in path routing are applicable to bus routing.
98
Matched Bus Router
When “Create Matched Paths” of the “Bus Router” form (FIG. 38a) is checked, the
form will be extended as shown in FIG 38c. Enabling the user to input the starting points
of the matched paths (buses). The procedures to create match buses are the same as those
in creating matched paths.
FIG. 38c StepRouter: Matched Bus Router
99
E
D
1
2
B
MY
+
C
A
FIG 38d. 1 and 2 are matched (identical) paths created by Matched Bus Router
The matched bus shown in FIG 38d can be created with the following steps:
1) Set “Width(um)” = 1, “Number of Paths” = 5, “Path Pitch(um)” = 2
2) Click the “Sel…” button of “MY” matched paths starting points, then click at
point MY, the coordinate of MY will be listed in the “MY” matched paths starting
points, and meanwhile a “+” label will be created at that point.
3) Click at Point A. The program will automatically use “METAL1 drawing” as the
starting layer since it is the only metal under the starting point.
4) Click at point B, C and D
5) Move Cursor to point E, and hit “return” key. StepRouter will ask you to select an
ending layer since there is no metal layers under the point E. Select “METAL1
drawing” as the ending layer.
100
Bus Joint
BusJoint connects a bunch of paths with different layer, space or with to another
bunch of paths with different layer, space or width. StepRouter and FreeJumper
require all paths in a bus with same pitch, layer and width. The user can use BusJoint
to convert a bunch of paths with different layer, spacing or with to a normal bus, then
use StepRouter or FreeJumper to continue routing.
Fig 39a BusJoint Command form
“Use Rule”: specifies which rule category will be used for the vias in the bus joint.
“Reverse Bus Order”: This option is only available for L-Joint, the bus order will be
swapped the bus joint.
101
“Merge With Starting/Ending Path”: if the starting/ending headers are path objects
and at the top level, then it will be merged to the bus joint as one single path when
this option is on.
“Min. Via. Number” etc. options are similar to those in the Free Jumper.
The user will be prompted to draw a selection box for the starting bus headers first,
and then draw a selection box for the ending bus headers. A valid bus header is a
rectangular overlap part between a metal layer and the selection box. The metal layer
can be in any hierarchical level.
If the bus headers are in different metal layers, you will be further prompted to select
valid bus header layers in the form as shown in FIG 39b, so that you can filter out
those objects overlapping the real bus headers.
Fig 39b, Bus Header Layer selection form
Based on the relative position and orientation relationship between the starting headers
and ending headers, there are three types of bus joints: L-Joint, Y-Joint and Z-Joint, as
shown in FIG 40. The user is not requested to specify which type of bus joint to be
created.
102
In Case a bus joint is shorted to any existing polygons or shorted each other when
reversing bus orders, the program will pop up a message giving you a warning. And
merging with starting/end paths will not be executed.
L-Joint
Y-Joint
Z-Joint
FIG 40. Three Types of bus Joint.
Click A and B to draw the selection box, and then click C and D to draw the other selection box
The two sets of bus headers will be joined by BusJoint as showed in the right pictures.
103
Slot Path
Create Slot Path
FIG 41. Create Slot Path Form
The default slot rules are from the setup (refer to the step6: slot in the setup). The user
can change the default slot rules if necessary by turning on the check box “Modify
Default Slot Rules”. The definitions of the rules are illustrated by the picture on the
form, and some of them are further explained in the setup step.
104
“METAL Layer”: The program will use specified metal layer to create slot path. (The
Current LSW layer has no effect on creating slot).
The user can specify one of “Gross Width”, “Effective Width” or “Current” to set the
width of a Slot Path. The number of columns of slot holes and min/max area ratio of slot
holes to the gross path will be dynamically updated.
“Save As Group”: The slot path will be saved as a group.
“Save as slotPath Pcell”(ic5): if checked, the slot path will be placed a pcell which was
compiled at the setup stage. The main advantages of creating slot path as a pcell are:
1) You can move the slot path easily. Otherwise the slot path for fractured polygons.
2) You can modify the slot path by turning on the stretch handler of the slotPath
instance. (Be sure to display stretch handler in the layout display option form).
Non-orthogonal slot holes may be off-grid based on the given rules, you can force them
to on grid by checking “Snap Slot Holes To Grid”. If “Auto Adjust Slot Space(E,F)”
is checked, the slot space will be distributed. Otherwise, the slot space will be exactly as
that in slot rules E and F respectively. If “Start X(From Left Edge)” is “auto”, the slot
holes will be in the middle horizontally. If “Start y(From Beginning)” is “auto”, the slot
holes will be in the middle vertically.
You can draw slot paths as if you are drawing a normal path. The program is capable to
create slots on corners and any angle paths as shown in FIG. 42.
FIG. 42 An example of slot path
105
Convert Path to Slot Path
FIG.43 Convert Path to slot path Form
This function converts an existing normal path to a slot path. You should select the metal
paths need to be slotted, then select or set proper slot rules and click OK or Apply button.
You can convert multiple paths to slot paths in one time as long as the slot rules are same
for all selected metal paths.
106
The program is unable to convert a big rectangle shape or polygon shape to a slotted
shape, since a slot hole has to be in the same direction as the current flow. The program is
unable to determine the current flow on non-path shapes.
FIG. 44 Convert path to slot path
The example showed in FIG. 44 converts a exiting METAL1 path to slot path. Slot holes
are drawn in a separate layer (“METAL1 slot”), and the converted slot path is placed as a
slotPath instance which is stretchable.
Update SlotPath Instance…
In case slotting rules are changed, those SlotPaths saved as SlotPath Pcells can be update
to follow the new rules after you update the skillcad setup. This command can be invoked
through pulldown menu: SKILLCAD SlotPathUpdate SlotPath Instance….
It works in the same way as “Update UniVia…”. Please refer to the “Update UniVia…”
section for details.
107
UniFill
This program fills dummy patterns to meet your specified coverage.
FIG. 45a UniFill Form
FIG. 45b UniFill Form
108
“Template File”: The file to which the current settings of the form will be saved after
you click the “Save” button. Or from which the previous saved setting will be loaded
(after you click “Load” button). The “…” button in this line will invoke “SKILLCAD
File Browser” for you to select a template file.
“Fill Dummy Shape of Layer” specifies the layout purpose of the “Filling Pattern”.
“For the Coverage Layer” is the layer whose coverage needs to be adjusted. The filling
layer can be different (layer name and purpose) from the coverage layer. Unless “Ignore
Coverage” option is checked, the program will adjust the filling result by changing the
spacing (up to 10 iterations) to make the final coverage within the range from “Min (%)”
to “Max (%)”.
The program offers two ways to define filling pattern: “Rectangle” or “Cell”.
A rectangle Pattern can be defined by “Width” & “Height”. If “Width & Height” are
fixed, a filling rectangle will be wholly removed if it overlaps or too close to any existing
Coverage Layer or keepout region. If only “Width” or “Height” is fixed, portions of a
filling rectangle will be kept as long as the “Height” or “width” is within the allowed
range. The program does not allow both Width and Height flexible. “Space X” and
“Space Y” defines the array space of the fill patterns. “Min. Space to Existing Shapes
and Keepouts” defines the minimum space between filling patterns to any existing shape
or keepout.
If you want to fill complex shapes, you need to draw the filling shapes as a cell first.
Then use the cell as filling pattern as shown in Fig.45b. A filling cell will always be
entirely removed if it has space violation to any existing shape or keepout. If you setup
the metal slot rules for the SKILLCAD slot path program, this program will subtract slot
layer area from metal area in computing the coverage.
“Keepouts” can be defined by a keepout “Layer” or a keep out “Region”. To define a
keepout layer, for example “CTM5 drawing”, type or select “CTM5 drawing” in the
109
combo box, then click add. To define a keepout region, click “…” button and draw a
selection box over the keepout region in the cellview.
Click “Add Above Run Set” button to add the current defined run set to the run set list
box. You can then define another fill run set (either for same metal with smaller fill
pattern/space or different metal with different fill pattern/coverage). The program will do
the fill for all run sets sequentially. You can review the settings of a run set by selecting
it in the run set list box. Click “Del Selected Run Set” will delete the run set from the list
box.
“Fill Shapes With Region” defines a filling box where is allowed to add fill patterns. It
can be defined by cell boundary sizing down by certain amount, or with a specified box,
or a selected region (any shape). You can click “…” button and draw a selection box
over the cell view to define the filling region. “Area to Calculate Coverage” can be
different from the fill-region because sometimes you may want to add extra area (such as
half of the scribe line) as the total area to compute the coverage. The value of “Grow
Fill-Region By” has to be >=0.
“Save Fill as CellName” if checked, then the result of filled patterns of all run sets will
be saved to the cellname you specified. (In the same library of the current cell view).
The run set for Metal1 settings in Fig.45a is: Fill “METAL1 dummy” layer to make
“METAL1 drawing” layer coverage within 24% to 26%. The filling pattern is any
rectangle with fixed width = 1um, and Height from 1um to 20um. The filling patterns
min X space is 1um, and min Y space is 1um. Min space from a filling pattern to
“METAL1 drawing” or the above keepouts is 1um. Add filling patterns in the area of the
cell boundary (sizing down by 0um), and the total area to calculate coverage is the area of
fill-region (sizing up by 0um). Do not fill under “CTM5 drawing” Layer, and do not fill
in the region defined by the box (11.325:99.455 29.05:116.3). And there is only one run
set defined for this run. The final filled result (together with filled Metal2 Dummy) will
be saved as cell “m1m2_fill”.
110
FIG. 46a. Example of filled results. Pointed regions are keepout regions.
If the coverage is not within the requested range, the program will redo filling iteratively
(up to 10 iterations) make the coverage within the range. The filling results are printed in
the CIW as shown in FIG. 46b.
FIG. 46b. Report of Filling Results.
111
When “Create Matched Fill” is selected, extra fields will be shown as Fig 47a.
FIG 47a. Extra Field for matched Fill
The reference point is the corresponding point of the lower left corner of the filling box.
For example, you want to create a “MY” matched fill for the layout as shown in FIG 47b.
The filling box is defined by Point A and Point B. In this example, the “MY” box
reference point is Point C. You can enter the point C coordinate manually, or click the
“Sec…” button in the same row of ‘“MY” Box reference point’, then click at point C.
FIG 47b. Example to create “MY” matched fill
112
GetNet
There are 4 commands in the “GetNet” module: Select Net, Extract
Net, Hilight Net and Clear All Hilight. This module is aware of the
connection priority of special metals (such as mimcap) and the
relationship of diffusion/poly layers, so that the net will not short
through mimcap or source/drain of a MOS device as the normal
Mark Net does.
Select Net
There is no form associated to this command. After invoke this command, click a metal
layer of the net you want to select as prompted, the top metal shapes (paths/polygons) and
the top level vias connected to the clicked metal shape will be selected. You can then do
copy/delete/move etc. operations on the selected net. This command adds the new
selected objects to the selected set. So you can select multiple nets by using the command
multiple times. For edit-in-place mode, this command selects the net objects in the
editing cellview level.
You can also pick net by Pin or LVS label names, in this mode, multiple nets can be
selected in one time. And nets with same pin/label name will be selected even if they are
not physically connected yet.
FIG. 48a. SelectNet Option form
113
Extract Net
FIG. 48. Extract Net Command form
If you are extracting a big net, and there are valid Assura or Diva license in your env, you
can select to use “Assura” to extract the net which will be faster than using “Skill”.
Using “Skill” is fast enough (actually faster) for small nets and does not require any other
tool’s license. Shapes of the net extracted by Assura is merged (paths become polygon).
Shapes of the net extracted by Skill are still in original data types.
“Connection Mode:” is mainly to change the connectivity definition of base (poly/diff)
layers. There are two options:
“Metal only”: Poly/diff layers are not treated as connective layers in this option. The
final extracted net only contains metal and special metal (if any) shapes.
114
“Metal, Poly and Diff ”: poly/diff layers are treated as connective layers in this options.
The program will extract the effective diffusion regions so that the net will not be shorted
through a MOS device. However, the net will be shorted through a poly or diffusion
resistor. The final extracted net contains all metal shapes and all the poly/diff shapes of
the net.
“Extract Net View Name”: The extracted net will be saved as this given view name
under the editing cell. A recommend view name is the net name of the extracted net, such
as net_vdd, net_clk…. The net name should not contain space or special characters.
“Down to hierarchy level”: The program will only extract the net down to the given
hierarchy level.
You can also “Pick by Net Names/File”, in this mode, multiple nets can be extracted in
one time. And nets with same pin/label name will be extracted even if they are not
physically connected yet. (Similar to virtual connection in LVS). You can also input a
file containing net info to be extracted with the following format:
netName1 metalLayerName coordinate X coordinate Y …(optional other info)
netName2 metalLayerName coordinate X coordinate Y …
….
“Find Narrow Connections” will find the place where metal/via is not more enough (for
specified current). “Exclude Metal1 Ends” for excluding those narrow metal1 leaf ends
(normally those ends are connected to device, instead of inter metal connection)
When “Report Layer info for extracted net” is on, the program will calculate the total
area/perimeter and number of pieces for each layer of the extracted net.
115
Ignore Cells in Extract/Hilite Net
SKILLCAD Extract/Hilite Net commands are enhanced to ignore certain cells (such as
LVS clean cells, resistor cells etc.), so that the program will NOT trace a net in noninterested cells as well as avoid tracing net through resistors.
When using “Skill” or “Assura” to extract nets, there are 3 ways to specify cells to be
ignored:
1) “Cell View Lib:” input cellName viewName and libName separated by a space in the
right string field, and click the “Add” button. Repeat the above to add more cellviews.
Instances of specified cellviews will be ignored in net extraction.
2) “Cell:” just input cellName in the
string field, and click the “Add” button.
Repeat the above to add more
cellNames. All instances with the
matched cellNames will be ignored
during net extraction. This way should
be used if you want to ignore a pcell instance (such as resistors).
3) “Cells in File:” input the path and filename in the string field, and click the “Add”
button, . Repeat the above to add more files. Cells listed in the given files will be
ignored.
Example of such files (one line for one cellname or one cellview):
CellName1
CellNameA viewNameA libNameA
CellNameB viewNameB libNameB
CellName2
…
116
If a line just contains a cellName, it is equivalent as input a cellName as way 2). If a line
just contains a cellName viewName and libName separated by a space, it is equivalent as
input a cellview as way 1).
When using “Diva” to extract net, you can specify an inclusionLimit value to ignore
instances/cells have a high ivIncludeValue property (refer Diva menu for more info).
In the layout is in the edit-in-place mode, this command will extract the net for the
window cell view instead of the editing cell view.
FIG. 49a shows a simple example for extracting net. FIG 49b shows the 3 different
results for the different connection modes.
FIG. 49a. Example to Extract GND Net
A
B
FIG 49b. Extract net for Connection Mode:
A: “Metal,Poly and Diff”,
B: “Metal Only”
117
Hilight Net
The command option form is as shown in FIG 50.
FIG. 50. Extract Net Command form
Please refer to the extract net command for the meaning of “Connection Mode” and
“Down to Hierarchy Level”.
The net will be highlighted as the display color set in “Hilight Net Using Display”. In
the layout is in the edit-in-place mode, this command will extract the net for the window
cell view instead of the editing cell view.
Clear All Hilight
Use this command to clear all highlighted nets.
Refer to the ExtractNet section for ignoring cells and pick nets by Pin/label Names in
Hilight Net command.
118
Layer Handler
Layer Handler helps users to query layer information and set layer visibility and
selectability quickly using the programmable buttons in the command form.
Current Entry Layer Info
Click the button To Update
Layer Query
Functions
Layer/Purpose Filters
Pre-defined
layer groups
Set Layer Visible/Selectable
Programmable
Buttons
Layer List Box
FIG 51. SKILLCAD Layer Handler Form
Click “Import LSW Layers==>” Button, the LSW layers will be listed in the “Layer
List Box” with the same visibility and selectability as LSW.
“Layer Query Functions” help to get the layer information hierarchically in an entire
cellview or certain area.
Click “Selected Objs” button, the layers of the selected objects in the current layout
window will be listed in the “Layer List Box”
119
Click “Edit CellView” button, the layers in all hierarchy of the editing cell view will be
listed in the “Layer List Box”
Click “Box” button, you will be prompted to draw a box region in the current layout
window. The layers within (or overlapped by) the box will be displayed in the “Layer
List Box”.
Click “Point” button, you will be prompted to click in the current layout window. The
layers under the point will be displayed in the “Layer List Box”.
To enable the “Layer/Purpose filters”, turn on the corresponding Boolean button. Then
you can select to “Keep” or “Ignore” the layers/purposes patterns. For example, after
you import LSW layers, if you want “Keep” metals and vias in the layer list box, you can
input (case insensitive): “met via” (with no quote) in the “Layers:” field. So that only
layers with layername containing “met” or “via” will be kept in the list box. So as to the
purposes filter.
The initial visibility/selectability of the layers in the layer list box will match the
corresponding setting in the LSW. When you change the setting in the layer handler
form, the setting LSW will be updated. However, if you change settings in LSW after the
layerHandler from is displayed, the corresponding setting will not be synchronized to the
layerHandler from.
The “AV” (all visible) “NV” (non-visible) “AS” (all selectable) “NS” (non-selectable)
buttons to change the visible/selectable settings for all layers in the listbox (that is, layer
not in the listbox will be affected by these four buttons). Use the “Turn Other layers:”
“On” and “Off” buttons to toggle the visible settings for the layers not in the listbox.
The layer source (where the layer information is obtained) will be displayed at the bottom
left fields. The total number and the layer number after being filtered is also displayed.
120
Layers in the list box can be sorted by “as LSW”, “Name”, “Priority” and “Purpose”.
By clicking a layer in the layer list box, this layer will be set as the current entry layer.
However, if the entry layer is changed through LSW, this information will be incorrect.
You can click the “Entry Layer:” button to update the display of entry layer info in this
form.
Click a pre-defined group button to show the corresponding layers:
“Metals”: show all metal layers.
“Vias/Cont”: show all via and contact layers.
“Base”: show poly and diffusion layer.
“Show”: show the layers between the given levels. (poly/diffusion = level 0, metal1 =
level 1, metal2 = level2 and so on).
Once you get the wanted layers in the list box, you can save the layer settings to a
programmable button. For example, if only metal layers are in the list box, you can
select a button (such as “1”) and input a name (such as “Metal”), then click the “Set”
button. Button “1” will now be labeled “Metal”. Later on, just click button 1 (Metal
button), you will get all the metal layers with the right visible/selectable settings.
There are total 10 programmable buttons, so that you can save 10 categories of layers.
The buttons can be re-programmed to overwrite the previous info. If you give an empty
“” name, the button info will be cleared.
The information of programmed buttons will be saved as user preference (in file
~/.scdEnv.$techfile), so that it will be loaded back when you start new layout session.
121
V-Editor
SKILLCAD V-Editor is an advanced module for polygon pushing and bus/net editing. It
integrates the separate layout editing steps of shape selecting, pushing and design rule
enforcing into a simple mouse directional stoke. V-Editor can handle entire bus/net
(including all paths and vias) at the same time. V-Editor Supports advanced
width/parallel length dependent spacing rules.
In the V-Editor module, there are 15 major functions: busAdjust, busGrow, V-Stretch, Vmove, busTap, Bridge, Detour, Align BusEnd, Break Bus, changeLayer, Dent Corner,
Gate Cont, Via Chain, combRouter and Fix MinArea.
122
BusAdjust
Function: Modify the width and space of entire bus/bus segment.
Start Command:
a) SKILLCAD ICON BAR  vEditor busAdjust
b) SKILLCAD Menu  vEditor  busAdjust
c) Set your own bind key.
SKILL Function: scdBusAdjustGui()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b”
“scdBusAdjustGui()”)
Usage:
1) Start the command
2) Draw a line (by two clicks: click at starting point
and click at the ending point) cross the bus/segment to be modified.
3) Change the settings in the form
4) Click “Apply” Button in the form
Form Description:
Use Rule: If there are multiple rule categories in the SKILLCAD setup file,
you can pick a rule category to be used in this command. If there is only one rule
category in the SKILLCAD setup file, this field will not be shown in the
command form.
123
Edit:
Bus: In the bus mode, the new width/space/pitch(um) or current(mA) is applied
to the entire bus.
Example: New Width = 2, New Space = “As Oringal”
Starting Bus
Select Bus
Selected Bus
Bus Result
124
Segment: In the segment mode, the new width/space/pitch(um) or current(mA)
is applied to the selected segment. If a path is partially in this segment, the width
of this path will not be changed.
Starting Bus
Select Bus Segment
Selected Bus Segment
Bus Segment Result
125
Layer: In the layer mode, shapes (Pathsegs) on the same layer will be
connectively highlighted, and the new width/space(um) or pitch(um) will be
applied to these shapes only.
Starting Bus
Select Bus Layer
Selected Bus Layer
Bus Layer Result
126
Pick Net on Entry Layer: When the selection line crosses multiple layers (at top
level), you will be prompted to select a layer for editing. When this option is on,
shapes on the current entry layer will be automatically picked for editing.
Options: The options window controls the via metal enclosure mode, the
minimum number of vias, the style of vias and the layer to be used to highlight
the target bus/segment.
Use Spacing Rule Table in Techfile: Use this option if width length based
spacing rule table defined in the Virtuoso Technology file.
Do Not Move: This pulldown menu controls which edge of the first or last wire is
the reference edge.
127
Width Mode: This mode controls whether you will input a new width or to use
the current defined for the wires.
Space Mode: This mode controls whether you will input a new space or pitch for
the wires of the bus.
Edit Individual: This allows you to edit the selected individual width/space of
the wire of the bus.
128
BusGrow
Function: To increase the number of its/paths of a bus, bus segment or bus layer.
Start Command:
a) SKILLCAD ICON BAR  vEditor busGrow
b)
SKILLCAD Menu  vEditor  busGrow
c)
Set your own bind key.
SKILL Function: scdBusGrowGui()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b”
“scdBusGrowGui()”)
Usage:
1) Start the command
2) Draw a line (by two clicks: click at starting
point and click at the ending point) cross the
segment to be modified.
3) Change the settings in the form
4) Click “Apply” Button in the form
Form Description:
Use Rule: If there are multiple rule categories in the SKILLCAD setup file, you can pick
a rule category to be used in this command. If there is only one rule category in
the SKILLCAD setup file, this field will not be shown in the command form.
129
Copy:
Bus: In the bus mode, the new width/space/pitch(um) is applied to the entire bus
and the new number of bits/paths are added.
Starting Bus
Select Bus
Selected Bus
Bus Result
130
Segment: In the segment mode, the new width/space/pitch(um) is applied to the
selected segment.
Starting Bus
Select Segment
Selected Segment
Segment Result
131
Layer: In the layer mode, shapes (Pathsegs) on the same layer will be
connectively highlighted, and the new width/space(um) or pitch(um) will be
applied to these shapes only.
Starting Bus
Select Layer
Selected Layer
Layer Result
132
Pick Net on Entry Layer: When the selection line crosses multiple layers (at top
level), you will be prompted to select a layer for editing. When this option is on,
shapes on the current entry layer will be automatically picked for editing.
Options: The options window controls the via metal enclosure mode, the
minimum number of vias, the style of vias and the layer to be used to highlight
the target bus/segment.
New Width: A new or original width defined for the new wires.
New Space/Pitch: This mode controls whether you will input a new space or
pitch for the new wires of the bus.
No. of New Bits: Input the number of bits/paths that you want to create.
133
To The Side of: This pulldown menu controls which side of the reference wire
the bits are added.
•
Front: The bits/paths will be added before/top of the wire/segment/layer.
•
Back: The bits/paths will be added after/bottom of the wire/segment/layer.
•
Both: The bits/paths will be added to both sides of the wire/segment/layer.
New Bit Names(back to front): Input the names you want to name the new bits
of the bus.
Use Spacing Rule Table in Techfile: Use this option if width length based
spacing rule table defined in the Virtuoso Technology file.
More examples:
Copy: “Bus”
To the side of “Both”
Copy: “Segment”
To the side of “Front”
APPLY
134
Copy: “Layer”
To the side of “Back”
V-Stretch
Function: To stretch shapes/bus segments and meet the given (minimum) spacing rule.
Start Command:
a) SKILLCAD ICON BAR vEditor V-Stretch
b) SKILLCAD Menu  vEditor  V-Stretch
c) Set your own bind key.
SKILL Function: scdVStretchGui()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b”
“scdVStretchGui()”)
Usage:
1) Start the command
2) Set the proper options in the command form.
3) Draw a line (V-Line, see explanation at next page) over shapes in the current layout
window. Shapes under V-line will be stretched properly.
Form Description:
Use Rule: If there are multiple rule categories in the SKILLCAD setup file, you can pick
a rule category to be used in this command. If there is only one rule category in the
SKILLCAD setup file, this field will not be shown in the command form.
135
Stretch:
Bus: In the bus mode, all shapes at the same segment of the bus will be stretched.
Starting Bus
Select Bus
Bus Result
136
Shape: In the shape mode, only the segment of the shapes under the V-Line will
be stretched.
Starting Shape
Shape Select
Shape Result
137
Reference Layer: The reference layer defines the stretching space between the
moving shapes.
Space to Reference Layer(um): the space to be enforced after stretching. If the
space is a negative number, the program will get the actual space rule orderly
from:
1) SpacingRuleTable in the technology file between the moving layer and
reference layer. In this way, the program will get proper spacing rule based
on width and parallel length.
2) Skillcad setup rules if the moving layer is one of metal (routing) layers and the
reference layer is “Same As Picked” (same as moving layer). In this way, the
program will get proper spacing rule based on metal width.
3) MinSpacingRule in the technology file between the moving layer and
reference layer.
Keep Original Space Between Bits: If this option is on, the original shapes will
be stretched as a whole, and space between the original shapes will be kept. If this
option is off, the program will stretch accumulatively stretch each path to meet the
given space rule between neighboring paths (or reference shape).
Use Spacing Rule Table in Techfile: Use this option if width length based
spacing rule table defined in the Virtuoso Technology file.
Pick Net on Entry Layer: When the selection line crosses multiple layers (at top
level), you will be prompted to select a layer for editing. When this option is on,
shapes on the current entry layer will be automatically picked for editing.
138
Explanations on V-Line:
Case 1: V-Line crosses multiple the stretching shapes. There is a shape on the
reference layer under the end-point of V-Line. This shape will
be used as reference shape and not be stretched.
V-Line AB (click at A, release mouse, then click at B) crosses
three paths 1,2,3. The path 3 under the end-point B will be used as
reference shape (If it is on reference layer). Path 1 and 2 will be
stretched along the direction AB to meet given space (assume –1,
minimum space).
Keep Original Space Between Bits: off. Space between path 1
and 2 are minimum after stretching. The stretching distance for
path 1 and path2 is different.
Keep Original Space Between Bits: on. Space between path 1 and
2 are not changed after stretching. The stretching distance for path
1 and path2 is same.
139
Case 2: V-Line crosses the one or more stretching shapes. There is no reference
shape under the end-point of V-Line. In this case, the end-point will be used as
target point, and the shapes will be stretched along the V-Line to the end-point.
V-Line AB (click at A, release mouse, then click at B) crosses two
paths 1,2. The end-point B will be used as target point since there
is on reference shape. Path 1 and 2 will be stretched along the
direction AB
Keep Original Space Between Bits: off. The outmost edge of path2
is stretched to point B. Space between path 1 and 2 are minimum
after stretching. The stretching distance for path 1 and path2 is
different.
Keep Original Space Between Bits: on. The outmost edge of path2
is stretched to point B. Space between path 1 and 2 are not changed
after stretching. The stretching distance for path 1 and path2 is
same.
140
Case 3: V-Line crosses only one stretching shape. And the shape is ender the endpoint of the V-Line. In this case, the edge of the shape crossing the V-line will be
pushed to the end-point.
V-Line AB (click at A, release mouse, then click at B) crosses only one
shape (path 1), and path1 is under the end-point B. The cross edge is a
side edge of a path.
Path 1 segment is stretched along the direction AB to point B. The length
of segment is not changed.
V-Line AB (click at A, release mouse, then click at B)
crosses only one shape (path 1), and path1 is under
the
end-point B. The cross edge is a starting/ending edge of a
path.
Path 1 starting/ending edge is stretched along the direction
AB to point B. The length of segment is changed.
141
Case 4: V-Line crosses polygon shapes (non-path like shapes). The edges of the
polygons crossing the V-line will be stretched accordingly to the end-point or meet
the spacing rule.
Stretch Polygon Edge to meet Min.
Stretch two edges of a
Spacing Rule
Polygon at the
same time
142
More Examples of V-Stretch to change bus segments space in one stroke (V-Line)
New Space: Minimum
Original Space: 1um
Original Space: 1um
New Space: 2um
*** V-Stretch command treats path-like polygons or rectangles as paths internally.
143
V-Move
Function: To Move shapes/bus segments and meet the given (minimum) spacing rule.
Start Command:
a) SKILLCAD ICON BAR  vEditor V-Move
b) SKILLCAD Menu  vEditor V-Move
c) Set your own bind key.
SKILL Function: scdVMoveGui()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b”
“scdVMoveGui()”)
Usage:
1) Start the command
2) Set the proper options in the command form.
3) Draw a line (V-Line, see explanation under V-Stretch command) over shapes in the
current layout window. Shapes under V-line will be stretched properly.
Form Description:
Use Rule: If there are multiple rule categories in the SKILLCAD setup file, you can pick
a rule category to be used in this command. If there is only one rule category in the
SKILLCAD setup file, this field will not be shown in the command form.
144
Move:
Bus: In the bus mode, all shapes of the bus will be moved.
Starting Bus
Bus Select
Bus Stretch Result
Shape: In the shape mode, only the shapes under the V-line will be stretched.
Starting Bus
Select Shape
Shape Move Result
145
Reference Layer: The reference layer defines the stretching space between the
moving shapes.
Space to Reference Layer(um): the space to be enforced after stretching. If the
space is a negative number, the program will get the actual space rule orderly
from:
1) SpacingRuleTable in the technology file between the moving layer and
reference layer. In this way, the program will get proper spacing rule based on
width and parallel length.
2) Skillcad setup rules if the moving layer is one of metal (routing) layers and the
reference layer is “Same As Picked” (same as moving layer). In this way, the
program will get proper spacing rule based on metal width.
3) MinSpacingRule in the technology file between the moving layer and reference
layer.
Keep Original Space Between Bits: If this option is on, the original shapes will
be stretched as a whole, and space between the original shapes will be kept. If this
option is off, the program will stretch accumulatively stretch each path to meet the
given space rule between neighboring paths (or reference shape).
Use Spacing Rule Table in Techfile: Use this option if width length based
spacing rule table defined in the Virtuoso Technology file.
Pick Net on Entry Layer: When the selection line crosses multiple layers (at top
level), you will be prompted to select a layer for editing. When this option is on,
shapes on the current entry layer will be automatically picked for editing.
146
BusTap
Function: Modify the width and space of the existing bus. You are able to adjust the
entire bus, bus segment, or bus segment by layer.
Start Command:
a) SKILLCAD ICON BAR  vEditor busTap
b) SKILLCAD Menu  vEditor busTap
c) Set your own bind key.
SKILL Function: scdBusTapGui()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b”
“scdBusTapGui()”)
Usage:
1) Start the command
2) Draw a line (by two clicks: click at starting point and click at the ending point)
cross the bus segment to be modified.
3) Change the settings in the form
4) Click “Done Editing” Button in the form
Form Description:
Use Rule: If there are multiple rule categories in the SKILLCAD setup file, you can pick
a rule category to be used in this command. If there is only one rule category in the
SKILLCAD setup file, this field will not be shown in the command form.
147
Out With Layer: Defines a specific layer or whether you want
to use the upper/lower metal layer.
Out to: Determine which direction you want the bus segment tap to go to.
Front
Back
Reverse Order: Reverse the order the bus tap starts from..
148
Both
Options: The options window controls the via metal enclosure mode, the minimum
number of vias, the style of vias and the layer to be used to highlight the target
bus/segment.
Tap on the Left Side of Selection Line: Allows you to have the bus tap to the left or
right (default) of the selection line.
Right Tap
Left Tap
Pick Paths: Allows you to tap All/Even/Odd paths to tap to, also allows you to pick at
what level in the hierarchy the bus is in to tap to.
Space(um): Input the space you want between the wires of bus taps.
Width(um): Input the width you want between the wires of bus taps.
Offset(um): Input the offset you want between the wires of bus taps.
149
Bridge
Function: Change layers for a portion of a bus segment/path.
Start Command:
a) SKILLCAD ICON BAR  vEditor Bridge
b) SKILLCAD Menu  vEditor  Bridge
c) Set your own bind key.
SKILL Function: scdNetBridgeForm()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b”
“scdNetBridgeForm()”)
Usage:
1) Start the command
2) Draw a line (by two clicks: click at starting point and click at the ending point)
across the bus segment to be modified.
3) Draw a second line (by two clicks: click at starting point and click at the ending
point) across the bus segment to be modified.
Form Description:
Use Rule: If there are multiple rule categories in the SKILLCAD setup file, you can pick
a rule category to be used in this command. If there is only one rule category in the
SKILLCAD setup file, this field will not be shown in the command form.
Bridge Layer: Define the layer you want to create the bridge with.
On Wires: select creating bridge on All wires, Odd wire or Even wire.
Via Align: Align via center or Edge to the bridge lines.
150
Pick Net on Entry Layer: When the selection line crosses multiple layers (at top level),
you will be prompted to select a layer for editing. When this option is on, shapes on the
current entry layer will be automatically picked for editing.
Example of Bridge:
STARTING BUS
FIRST SELECTION OF BUS
SELECTED BUS
SECOND SELECTION OF BUS
METAL 2 BRIDGE Between 2 lines
151
More Examples:
Set the bridge layer as your wanted, then draw line AB (the bus/net will be highlighted)
and line CD, the portion of the bus between line AB and CD will be bridged (replaced).
Bridge Layer: Metal3
Bridge Layer: Metal2
Bridge Layer: Metal2
On Odd wires.
152
Detour
Function: To Detour a bus/net route.
Start Command:
a) SKILLCAD ICON BAR  vEditor  Detour
b) SKILLCAD Menu  vEditor  Detour
c) Set your own bind key.
SKILL Function: scdBusDetour()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b” “scdBusDetour()”)
Usage:
1) Start the command.
2) Set the notch space and other option.
3) Draw a line (by two clicks: click at starting point and click at the ending point) cross
the bus/segment to be modified.
Form Description:
Notch Space: The span distance of the detoured segment. When given number is
negative), the width of the existing path will be used for notch space.
Pick Net on Entry Layer: When the selection line crosses multiple layers (at top level),
you will be prompted to select a layer for editing. When this option is on, shapes on the
current entry layer will be automatically picked for editing.
153
Example of Detour:
STARTING BUS
FIRST SELECTION OF BUS
BUS DETOUR RESULT
154
Align BusEnd
Function: To align the end of a bus to the desired space from reference object.
Start Command:
a)
SKILLCAD ICON BAR  vEditor Align BusEnd
b)
SKILLCAD Menu  vEditor  Align BusEnd
c)
Set your own bind key.
SKILL Function: scdPushBusEnd()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b”
“scdPushBusEnd()”)
Usage:
1) Start the command.
2) Set the reference layer, path end space and other option.
3) Draw a line (by two clicks: click at starting point and click at the ending point) cross
the bus/segment to be modified.
4) Pick the reference object.
Form Description:
Use Rule: If there are multiple rule categories in the SKILLCAD setup file, you can pick
a rule category to be used in this command. If there is only one rule category in the
SKILLCAD setup file, this field will not be shown in the command form.
155
Reference To: “Shape Under Point”: Click on a reference shape
“Line”: draw a line as reference edge
Reference Layer: The reference layer defines the stretching space between the moving
shapes.
Pick Net on Entry Layer: When the selection line crosses multiple layers (at top level),
you will be prompted to select a layer for editing. When this option is on, shapes on the
current entry layer will be automatically picked for editing.
Example of Align BusEnd (line Mode):
Select Bus Ends
Draw a Reference Line
Result
156
Example of Align BusEnd (Shape Under Point Mode):
STARTING BUS
FIRST SELECTION OF BUS ENDS
REFERENCE OBJECT SELECTION
BUS ALIGN RESULT
157
Break Bus
Function: To break a bus segment.
Start Command:
a) SKILLCAD ICON BAR  vEditor Break Bus
b) SKILLCAD Menu  vEditor  Break Bus
c) Set your own bind key.
SKILL Function: scdBreakBus()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b” “scdBreakBus()”)
Usage:
1) Start the command.
2) Draw a line (by two clicks: click at starting point and click at the ending point) cross
the bus/segment to be modified.
Form Description:
Use Rule: If there are multiple rule categories in the SKILLCAD setup file, you can pick
a rule category to be used in this command. If there is only one rule category in the
SKILLCAD setup file, this field will not be shown in the command form.
Path End Space(um): Input the desired space for the path ends in um after the break.
Pick Net on Entry Layer: When the selection line crosses multiple layers (at top level),
you will be prompted to select a layer for editing. When this option is on, shapes on the
current entry layer will be automatically picked for editing.
158
Example:
STARTING BUS
SELECT BUS
BREAK BUS RESULT
159
Change Layer
Function: To change the layer of a bus segment/net.
Start Command:
a) SKILLCAD ICON BAR vEditor changeLayer
b) SKILLCAD Menu  vEditor  Change Layer
c) Set your own bind key.
SKILL Function: scdChangeLayer()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b” “scdChangeLayer()”)
Usage:
1) Start the command.
2) Select layer you want to change bus segment/net to.
3) Draw a line (by two clicks: click at starting point and click at the ending point) cross
the bus/segment to be modified.
Form Description:
Use Rule: If there are multiple rule categories in the SKILLCAD setup file, you can pick
a rule category to be used in this command. If there is only one rule category in the
SKILLCAD setup file, this field will not be shown in the command form.
Change To Layer: Select the layer you want to change the bus segment/net to.
160
Pick Net on Entry Layer: When the selection line crosses multiple layers (at top level),
you will be prompted to select a layer for editing. When this option is on, shapes on the
current entry layer will be automatically picked for editing.
Example of Change Layer:
STARTING BUS
SELECT BUS
BUS CHANGE LAYER RESULT
161
Dent Corner
Function: To modify the corner of a bus.
Start Command:
a) SKILLCAD ICON BAR vEditor Dent Corner
b) SKILLCAD Menu  vEditor  Dent Corner
c) Set your own bind key.
SKILL Function: scdChopBusCornerGUI()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b” “scdChopBusCornerGUI()”)
Usage:
1) Start the command.
2) Draw a line (by two clicks: click at starting point and click at the ending point) cross
the corner diagonally of a bus/segment to be modified.
Form Description:
Convert non-orth Path to polygon on Grid: Convert a non-orthogonal path to a
polygon.
Pick Net on Entry Layer: When the selection line crosses multiple layers (at top level),
you will be prompted to select a layer for editing. When this option is on, shapes on the
current entry layer will be automatically picked for editing.
162
Example of Dent Corner:
STARTING BUS
SELECT BUS
DENT CORNER RESULT
163
GateCont
Function: To add contacts to the gate(s) of a transistor to any layer of metal.
Start Command:
a) SKILLCAD ICON BAR  vEditor  Gate Cont
b) SKILLCAD Menu  vEditor  Gate Contact
c) Set your own bind key.
SKILL Function: scdGateCont()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b”
“scdGateCont()”)
Usage:
1) Start the command
2) Change the settings in the form
3) Draw a line (by two clicks: click at starting point
and click at the ending point) cross the transistor
gate edge to be modified.
Form Description:
Use Rule: If there are multiple rule categories in the SKILLCAD setup file, you can pick
a rule category to be used in this command. If there is only one rule category in the
SKILLCAD setup file, this field will not be shown in the command form.
164
Cont: Select one type of poly to metal1 contact to be used (If there are multiple)
Connect Poly To Metal: Select the metal layer that you want the poly to connect to.
Pick Poly On Net Name: Choose the net you want the poly gate contact to go on.
Valid Filter: Choose in what manner you want to filter the placement of poly gate
contact (All/Even/Odd) to be placed on.
Align: Choose the pattern of alignment for the poly gate contacts.
Columns: Input the number of gate contacts you want in the column.
Rows: Input the number of gate contacts you want in the row.
Contact To Diff Distance: Input the space/distance from gate contact to diffusion on the
transistor. If this distance is bigger than the poly gate end cap, extra poly will be drawn
to connect the contact to the gate.
165
Connect Conts By: Select what you want the contacts to be connected by
(Metal, Poly or both).
Metal connected poly contacts
Poly connected poly contacts
End Enclosure on Side: Choose which side you want the metal or poly enclosure to end
on. (X, Y or All)
Via Enc Mode (IC6 only): Choose which rule you want the via enclosure to
follow(viaDef or minRule) that is defined in the techfile.
Create Group: This allows you to put the vias you created into a group using the
Cadence group function.
Example:
Even gate contact
166
Odd gate contact
Group gate contact
167
ViaChain
Function: To add a row/column of via(s) from the desired Metal layer to the desired
Metal layer(Chain Layer) on wires and transistors.
Start Command:
a) SKILLCAD ICON BAR  vEditor  Via Chain
b) SKILLCAD Menu  vEditor  Via Chain
c) Set your own bind key.
SKILL Function: scdViaChain()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b”
“scdViaChain()”)
Usage:
1) Start the command
2) Change the settings in the form
3) Draw a line (by two clicks: click at starting point and click at the ending point) cross
the metal path to be modified.
Form Description:
Use Rule: If there are multiple rule categories in the SKILLCAD setup file, you can pick
a rule category to be used in this command. If there is only one rule category in the
SKILLCAD setup file, this field will not be shown in the command form.
168
Chain Layer: Set to the layer you want the Via Chain to end on.
Draw Chain: Select to draw the metal layer you end on to connect the via chains.
Offset(um): Set the amount of offset in um.
Width: Set the width of the top via layer(Chain Layer).
Connect To Pins (Shapes):
•
On Metal Layer: Select desired metal layer you want the vias to connect to.
•
On Net Name: Input the desired net name to connect to.
•
Down to Hierarchy Level: Set to the desired hierarchy depth to connect the pin shapes.
•
Valid Filter: Choose in what manner you want to filter the placement of vias
(All/Even/Odd) to be placed on transistor pins. (Note: if using on metal paths, this will
need to be set to All.)
169
Pin Via:
•
Cols: Input/Select the number of column via(s).
•
Rows: Input/Select the number of row via(s).
•
Cover Pins: Increase the metal coverage the pins.
•
Via Range:
o Met Overlap: Create via on the overlap area of the chain metal and pin metal.
o Whole: Set to have via(s) cover the entire pin.
o At Line: Set to place via(s) centered at the drawn line.
o Half1: Set via(s) to cover top half of transistor pins.
o Half2: Set via(s) to cover bottom half of transistor pins.
o From Line: Set via(s) to cover from drawn line to top of transistor pins.
o To Line: Set via(s) to cover from drawn line to bottom of transistor pins.
Via Enc Mode: Choose which rule you want the via enclosure to follow(viaDef or
minRule) that is defined in the techfile.
Create Group: This allows you to put the vias you created into a group using the
Cadence group function.
170
Examples:
Starting Transistor
Draw line across transistor
171
Whole: Full Via Coverage
At Line: Via(s) centered on drawn line (Cols 1, Rows 3)
Half1: Via(s) cover top half of transistor
172
From Line: Via(s) cover from drawn line to top of transistor
Half2: Via(s) cover bottom half of transistor
To Line: Via(s) cover from drawn line to bottom of transistor
173
Create Group: Placed via chain in a group
More examples:
Slanted Line. Via Range: “To Line”
Via Range: “Met Overlap”
174
CombRouter
Function: To add a row/column of via(s) from the transistor and route to the metal path.
Start Command:
a) SKILLCAD ICON BAR vEditor 
combRouter
b) SKILLCAD Menu vEditor  Comb Router
c) Set your own bind key.
SKILL Function: scdCombRouter()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b”
“scdCombRouter()”)
Usage:
1) Start the command
2) Change the settings in the form
3) Select the metal path you want to connect to
4) Draw a line (by two clicks: click at starting point and click at the ending point) cross
the metal path to be modified.
Form Description:
Use Rule: If there are multiple rule categories in the SKILLCAD setup file, you can pick
a rule category to be used in this command. If there is only one rule category in the
SKILLCAD setup file, this field will not be shown in the command form.
175
Set Teeth:
•
Teeth Layer: Set to the metal layer you want paths to be routed
in to the selected path.
•
Width(um): Input the width of the teeth layer to be routed.
Connect To Pins (Shapes):
•
On Metal Layer: Select desired metal layer you want the vias to connect to.
•
On Net Name: Input the desired net name to connect to.
•
Down to Hierarchy Level: Set to the desired hierarchy depth to connect the pin
shapes.
•
Valid Filter: Choose in what manner you want to filter the placement of vias
(All/Even/Odd) to be placed on transistor pins. (Note: if using on metal paths, this
will need to be set to All.)
Ridge Via:
•
Cols: Input/Select the number of column via(s).
•
Rows: Input/Select the number of row via(s).
•
Offset(um): Set the amount of offset in um.
176
Pin Via:
•
Cols: Input/Select the number of column via(s).
•
Rows: Input/Select the number of row via(s).
•
Cover Pins: Increase the metal coverage the pins.
•
Via Range:
o Met Overlap: Toggle the metal overlap of the via(s).
o Whole: Set to have via(s) cover the entire pin.
o At Line: Set to place via(s) centered at the drawn line.
o Half1: Set via(s) to cover top half of transistor pins.
o Half2: Set via(s) to cover bottom half of transistor pins.
o From Line: Set via(s) to cover from drawn line to top of transistor pins.
o To Line: Set via(s) to cover from drawn line to bottom of transistor pins.
Via Enc Mode: Choose which rule you want the via enclosure to follow(viaDef or
minRule) that is defined in the techfile.
Create Group: This allows you to put the vias you created into a group using the
Cadence group function.
177
Examples:
Starting Configuration
Select path to route to
Draw line across transistor
Comb Router result
Note: See Via Chain command for examples of Pin Via and Create Group.
178
FixMinArea
Function: To fix shapes violating minimum area rules.
Start Command:
a) SKILLCAD ICON BAR vEditor Fix MinArea
b) SKILLCAD Menu  vEditor Fix MinArea
c) Set your own bind key.
SKILL Function: scdFixMinArea()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b” “scdFixMinArea()”)
Usage:
1) Start the command
2) Draw a line (by two clicks: click at starting point and click at the ending point) cross
the metal path to be modified.Change the settings in the form
3) Select the layer you want to fix
Form Description:
Min Area: Input the min area rule you want to use.
New:
•
W: New width for the layer you want for the area fix.
•
H: New height for the layer you want for the area fix.
179
Fix Mode:
•
X Dir: Fix min area by extending metal layer in the x direction of selected object.
•
Y Dir: Fix min area by extending metal layer in the y direction of selected object.
•
Left: Fix min area by extending metal layer to the left of selected object.
•
Right: Fix min area by extending metal layer to the Right of selected object.
•
Up: Fix min area by extending metal layer above the selected object.
•
Down: Fix min area by extending metal layer below the selected object.
•
Find Shapes Down To Level: Set to the desired hierarchy depth to fix min area.
Valid Filter: Choose in what manner you want to filter the shapes (All/Even/Odd) to fix
min area.
Example:
Start Via
Via X Dir
Via Y Dir
Start Transistor
Via Left
Right
Up and Even
Down and Odd
180
Kits
SKILLCAD Kits is a collection of modules for hierarchical editing, pin placement and
information collecting. It integrates separate layout editing steps into compact functions
that reduces the amount of time spent doing ECO’s.
In the V-Editor module, there are 14 functions: Pin Cover Shape, Calculate Area
Perimeter, Fix Offgrid, Create Inst Label, Sky View, Flip Within BBox, Full Selection,
Select Net Objs, nCopy, Align/Distribute Pins(Objs), Manhattan Edge (Conic), Cover
Pins/Shapes, Create Spiral, Fill Holes.
181
Pin Cover Shape
Function: Create/Modify a pin to cover the desired shape/net.
Start Command:
a) SKILLCAD ICON BAR  Kits Pin Cover Shape
b) SKILLCAD Menu  Kits  Pin Cover Shape
c) Set your own bind key.
SKILL Function: scdPinCoverShape()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b”
“scdPinCoverShape()”)
Usage:
1)
Start the command
2)
Selecting pins or objects:
•
Selecting Pins:
i) Select the desired pin for modification.
ii) Set the options on the form.
iii) Press the “Expand Selected Pins to Shapes Underneath” button.
•
Selecting Objects:
i) Select the desired object(s) for modification.
ii) Set the options on the form and input the desired Pin name.
iii) Press the “Create Pins On Shapes in Select Objs” button.
182
Form Description:
Find Shapes Within Hierarchy Level: Set to the desired level you want to modify.
New Pin Label:
•
TwoEnd: Select to place labels at both ends of the newly created pin.
•
Left: Select to place label on the left edge of the newly created pin.
•
Right: Select to place label on the right edge of the newly created pin.
•
Center: Select to place label in the center of the newly created pin.
•
Top: Select to place label on the top edge of the newly created pin.
•
Bottom: Select to place label on the bottom edge of the newly created pin.
Label Height: Define the height of the newly created pin.
Orient: Define the rotation of the pin label.
Pin Name1: Define the pin name you want for the selected shape/object.
Pin Name2: Define the pin name you want for the selected shape/object.
On Layer: Define layer you want the pin to be on.
183
Example:
Expand Pin:
Starting Select Pin
Selected Pin
Result: Pin Expanded to entire shape
184
Create pins from shapes (Objs):
Starting Object
Selected Object
Select Object Result
185
Calculate Area/Perimeter
Function: Calculate the Area and perimeter of each shape physically connected to the
selected shape or selected shape.
Start Command:
a) SKILLCAD ICON BAR  Kits Calculate Area Perimeter
b) SKILLCAD Menu  Kits  Calculate Area Perimeter
c) Set your own bind key.
SKILL Function: scdCalAreaPeriEnterPoint()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b”
“scdCalAreaPeriEnterPoint()”)
Usage:
A: To return area and perimeter calculation of all
shapes on same layer physically connected through
the hierarchy to selected shape.
1) Start the command
2) Press “(hier-merged) Shape Under Point” button
3) Select shape
B: To return area and perimeter calculations of selected shape(s) on same layer.
1) Start the command
2) Select shape(s)
3) Press “Each Selected Shape” button
186
Form Description:
Merge Shapes on Different Purpose: Toggle on to report all shapes on same layer with
different purpose as one calculation. Toggle off to report only shape purpose selected.
Hilight Merged Region With: Select the hilight you want displayed for physically
connected shapes (through the hierarchy) that is calculated from selected shape.
Reset: Press to clear reported calculations of area and perimeter results.
Layers of Interest: Input the desired layer(s) to be filtered for selection.
Calculations: Displays calculated area and perimeter results.
Current Calculation Results: Current area and perimeter results of shape directly
Each Selected Shape: Press to return area and perimeter results of each selected shape.
(hier-merged) Shape Under Point: Press and then select shape to return all shapes on
same layer physically connected through the hierarchy.
Example:
Each Selected Shape
187
Shape Under Point
(merged area of same layer in all
Hierarchy levels)
188
Fix OffGrid
Function: Fix off grid shapes/objects in the design and place them to the desired grid.
Start Command:
a) SKILLCAD ICON BAR Kits Fix Offgrid
b) SKILLCAD Menu  Kits Fix Grid
c) Set your own bind key.
SKILL Function: scdFixGridForm()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b”
“scdFixGridForm()”)
Usage:
1) Start the command
2) Select desired shapes/objects
3) Select desired options
4) Press “Apply” or “OK”
Form Description:
For:
•
Selected Objs: Select to perform off grid fix on selected shapes/objects.
•
Current Cellview: Select to perform fix on any shapes/objects that are off grid in
current cellview.
•
Library: Select to perform fix on any shapes/objects that are off grid in desired
library.
189
Library Name: Input desired library name to perform Fix OffGrid function on.
Grid Value(um): Input desired grid value in microns to snap shapes/objects to.
Convert Conics, Non-orthogonal Paths To Polygons: Select to convert conics, nonorthogonal paths to polygons.
Keep Diagonal (45 Degree) Turns: Select to keep 45 degree turns.
Example:
Start 45 Degree Path
Fix Off Grid Result turning 45 Degree Path to Polygon
190
Create Inst Label
Function: Create labels as instance name or cell name on instances in the current cell
view.
Start Command:
a) SKILLCAD ICON BARKits  Create Inst Label
b) SKILLCAD Menu  Kits  Create Inst Label
c) Set your own bind key.
SKILL Function: scdCreateInstLabelGui()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b”
“scdCreateInstLabelGui()”)
Usage:
1) Start the command
2) Select desired options on the form
3) Select desired instances (If you only want to create or remove labels on specific
instances)
4) Press “Apply” or “OK”
Form Description:
Height: Input desired height of label.
Orientation: Select desired rotation of label.
Font: Select desired font for label.
Label Layer: Select desired layer label is to be created on.
191
Label Name:
•
Auto: Function will use CellName for non-pcell instances
And InstName for pcell instances.
•
InstName: Select to create the InstName as the label.
•
CellName: Select to create the CellName as the label.
•
None: Select to have label removed.
ignore prefix |: Select to ignore the instance prefix of “|” in the instance name for the
label.
Example:
Starting Instances
Auto ( instName for Pcells)
192
InstName
CellName
None: Removed label from selected instance
193
Sky View
Function: Create an extracted view containing environmental/overlapped shapes of a
cell instance placed multiple times in the parent cell.
Start Command:
a) SKILLCAD ICON BAR  Kits Sky View
b) SKILLCAD Menu  Kits  Sky View
c) Set your own bind key.
SKILL Function: scdSkyViewGui()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b”
“scdSkyViewGui()”)
Usage:
1) Edit in Place desired cell instance
2) Start command
3) Select desired options on the form
4) Press “Apply” or “OK”
Form Description:
Browse Sky Cell: Opens the library browser window to select Sky Cell.
•
Lib: Input the Library name or select in the browser.
•
Cell: Input the Cell Name or select in the browser.
•
View: Input the View Name or select in the browser.
194
Frog Cell: See Browse Sky Cell.
Save to: See Browse Sky Cell.
For Each Frog Instance: Select to perform function for each frog instance.
OverSize: Input the amount you want the environmental/overlap objects past the instance
boundary to be displayed in the sky view.
Available Layers: Select from the available layers to make them cloud layers.
+Met: Adds metal drawing layers as cloud layers.
+Via: Adds via layers as cloud layers.
==>: Adds layers from “Available Layers:” to “Cloud Layers:”
<==: Removes layers from “Cloud Layer:”
Cloud Layers: Layers that are looked for that overlap the instance placements of the
child cell in the parent cell view.
Sky View Utilities:
•
Zoom to the (Next) Frog Instance in the Sky Cell: Zooms you to the next frog
instance in the sky cell.
•
Update current SkyView: Updates the current sky view after changing the frog cell.
•
Re-Create All: Recreate all sky views.
195
Example:
Parent Cell View (Sky Cell)
Edit In Place Child Cell (Frog Cell)
196
SkyView Form Setup
SkyView of Child Cell
197
Flip Within BBox
Function: Mirrors or rotates the selected shapes/objects in the same bounding box of the
selected shapes/objects.
Start Command:
a) SKILLCAD ICON BAR  Kits  Flip Within BBox
b) SKILLCAD Menu  Kits Flip Within BBox
c) Set your own bind key.
SKILL Function: scdFlipGui()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b” “scdFlipGui()”)
Usage:
1) Start the command
2) Select desired shapes/objects
3) Select desired button in form
Form Description:
MX: Mirrors the selected object along the X axis.
MY: Mirrors the selected object along the Y axis.
R180: Rotates the selected object 180 degrees.
198
Example:
Starting Shapes/Objects
MX Shapes/Objects
MY Shapes/Objects
R180 Shapes/Objects
199
Full Selection
Function: Select a path/shape by edge/vertex, click or drawing a box across a portion of
the path/shape.
Start Command:
a) SKILLCAD ICON BAR Kits  Full Selection
b) SKILLCAD Menu  Kits  Full Selection
c) Set your own bind key.
SKILL Function: scdSelFullGui()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b”
“scdSelFullGui()”)
Usage:
A: Partial To Full
1)
Select the vertex/edge of path/shape.
2)
Press “Partial To Full” button to select the path/shape.
B: Full Select By Click
1)
Press “Full Select By Click” button.
2)
Select the path/shape to select.
C: Full Select(bus) By Box
1)
Press “Full Select(bus) By Box” button.
2)
Draw a bounding box across desired paths/shapes to select.
200
Form Description:
Partial To Full: Selects full path/shape from a selected edge/vertex.
Full Select By Click: Selects path/shape by click.
Full Select(bus) By Box: Select by drawing a bounding box across the bus/path/shape.
Example:
Partial To Full:
Vertex/Edge Selected Shapes
Selected Shapes
Full Select(bus) By Box:
Draw Box Across Shapes
Selected Shapes
201
Select Net Objs
Function: Select shapes/objects of a net.
Start Command:
a) SKILLCAD ICON BAR  Kits Select Net Objs
b) SKILLCAD Menu  Kits  Select Net Objs
c) Set your own bind key.
SKILL Function: scdBoxSelNet()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b”
“scdBoxSelNet()”)
Usage:
1) Start the command
2) Input the desired net and select the desired options
3) Draw a bounding box across the desired shapes/objects
Form Description:
NetNames: Input the desired net name for selection.
Shapes Of: Select the desired shapes to hilight.
Vias of: Select the desired vias to hilight.
Deselect Others: Select to deselect previous selected shapes/vias.
Zoom To Sets: Select to zoom in on selected sets of shapes/vias.
202
Example:
Starting Shapes
Drawing Bounding Box
Selected Shapes
203
nCopy
Function: Copies selected shape/objects by defined space/pitch in the X and/or Y axis.
Start Command:
a) SKILLCAD ICON BAR Kits nCopy
b) SKILLCAD Menu  Kits  nCopy
c) Set your own bind key.
SKILL Function: scdnCopyGui()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b” “scdnCopyGui()”)
Usage:
1) Start the command
2) Select the desired shapes/objects
3) Select desired options
4) Press “Apply” or “OK”
Form Description:
Copies of the Selected Objects: Input the total number of shapes/objects after copy.
Space Mode:
•
Space: Select this mode to specify dx/dy are space values.
•
Pitch: Select this mode to specify dx/dy are pitch values.
dx: Input the desired space/pitch in the X axis.
dy: Input the desired space/pitch in the Y axis.
204
Make Cell: Select to make a new cell of the selected shapes/objects after copy.
Example:
Starting Shape/Object
nCopy Result
205
Align/Distribute Pins (Objs)
Function: Select desired pins to be aligned/moved..
Start Command:
a) SKILLCAD ICON BAR  Kits Align/Distribute Pins(Objs)
b) SKILLCAD Menu  Kits  Align/Distribute Pins(Objs)
c) Set your own bind key.
SKILL Function: scdAlignMoveObjs()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b”
“scdAlignMoveObjs()”)
Usage:
1) Start the command
2) Select the desired pins
3) Select desired options
Form Description:
Deselect:
•
Odd: Press to deselect odd pins.
•
Even: Press to deselect even pins.
Align Selected: Select the arrows to align the pins to the
left/right/up/down or the
for center.
206
Move By: Input the desired value in um and use the
left/right/up/down arrows or
to pick with the cursor.
Snap To prBnd: Press Left/Right/Top/Bottom button to snap selected pins.
Auto Adjust Pin Label: Select to automatically adjust the label justification so that the
label will not stick out of prBoundary.
Align To Line: Press to align pins to drawn line.
Align To Edge: Press to align pins to picked
pin/shape/object edge.
Ref: Select Auto/Center/Left/Right/Top/Bottom to align the pins to drawn line or
pin/shape/object.
Offset: Input the distance from line/pin/shape/object for alignment of pins.
Set Space: Press to align pins.
•
sp_x: Input the space/0/align in the X axis.
•
sp_y: Input the space/0/align in the Y axis.
Distribute In: To distribute pins in the current
selected pin
range.
•
Current Range: Press to align pins to lower left pin in the range of selected pins.
•
New Range: Press to align pins to range of drawn line. Pins are aligned to lower left
pin.
207
Example:
Selected Pins (Objs)
Align to Left
Align To Line
Start
Align To Line
Drawn
208
Align To Line
Result
Align To Edge
Align To Edge
Start
Pick Shape/Object
Set Space
Set Space
Start
Result
Align To Edge
New Range
Start
209
Result
New Range
Result
Current Range Start
Current Range Result
Move to Right
210
Manhattan Edge (Conic)
Function: Puts non-orthogonal shapes/objects edge on grid with Manhattan edges.
Start Command:
a) SKILLCAD ICON BAR  Kits Manhattan Edge (Conic)
b) SKILLCAD Menu  Kits  Manhattan Edge (Conic)
c) Set your own bind key.
SKILL Function: scdCreateStepEdgeForm()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b” “scdCreateStepEdgeForm()”)
Usage:
1) Start the command
2) Select desired objects
3) Select the desired options
4) Press “Apply” or “OK”
Form Description:
Layout Grid: Input the desired layout grid in um.
Min Edge Length: Input the desired minimum edge length in um.
Allow Diagonal: Select to allow diagonal shapes to remain diagonal.
211
Example:
Selected Ellipse
Manhattan Edge Result
212
45 Degree Path
Manhattan Edge Result
213
Cover Pins/Shapes
Function: Places the desired layer purpose over the pins or selected pins/shapes.
Start Command:
a) SKILLCAD ICON BAR  Kits  Cover Pins/Shapes
b) SKILLCAD Menu  Kits Cover Pins/Shapes
c) Set your own bind key.
SKILL Function: scdCoverPinsGui()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b”
“scdCoverPinsGui()”)
Usage:
1) Start the command
2) Select the desired options
3) Select desired object(s)
4) Press “Cover All Pins” or “Cover Selected Pins/Shapes”
Form Description:
Cover All Pins: Press to cover all pins with the desired layer purpose.
Cover Selected Pins/Shapes: Press to cover the selected pins/shapes with the desired
layer purpose.
214
By [Layer] Purpose: Input the desired layer purpose pair like
Nwell draing
Or just the purpose name (The layerName will be the same as selected objects) like
drawing
Size By: Input the amount you want to size the layer purpose by from the pin/shape size.
Example:
Start Pins
Cover Pins/Shapes Result
215
CreateSpiral
Function: Creates spiral structures used for inductors.
Start Command:
a) SKILLCAD ICON BAR  Kits Create Spiral
b) SKILLCAD Menu  Kits Create Spiral
c) Set your own bind key.
SKILL Function: scdCreateSpiral()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b”
“scdCreateSpiral()”)
Usage:
1) Start the command
2) Select the desired options
3) Select point in layout window
4) Modify desired options
5) Press “Done Editing”
Form Description:
From: Select to define the beginning drawing layer of the spiral.
To: Select to define the final drawing layer of the spiral.
Width(um): Input the desired width of the layer in the spiral.
No of Circles: Input the number of circles to create.
Space(um): Input the desired space between circles in um.
Sides/Circle: Input the desired number of sides per circle created.
216
Inner R(um): Input the desired inner resistance in um.
Rotate: Select desired rotation of spiral.
Done Editing: Press to finish Create Spiral function.
Here is an example spiral shape created by the command:
217
Fill Holes
Function: Fill holes calculated by bounding box on selected objects.
Start Command:
a) SKILLCAD ICON BAR Kits Fill Holes
b) SKILLCAD Menu  Kits  Fill Holes
c) Set your own bind key.
SKILL Function: scdFillHoles()
Bind Key Example:
hiSetBindKey(“Layout” “CtrlShift<Key>b” “scdFillHoles()”)
Usage:
1) Start the command
2) Select desired objects
3) Select the desired options
4) Press “Apply” or “OK”
Form Description:
Fill holes with:
•
Width: Select to use width of the holes calculated by bounding box.
•
Area: Select to use area of the holes calculated by bounding box.
From: Input the starting size number for width/area.
to: Input the ending size number for width/area.
218
Example:
Select Slot Shapes
Fill Holes by Width (compare yellow arrows with area red arrows)
Fill Holes by Area (compare red arrows with width yellow arrows)
219
User Preference
This user preference from shown in FIG. 52 (in Virtuoso version 5.1) and FIG.53 (in
Virtuoso version 6.1) and can be invoked from the pulldown menu:
SKILLCAD  Preference…
FIG 52. User Preference(IC 5)
220
FIG 53. User Preference(IC 6)
221
“Template”: is where you can input a file name to save the current user-preference
settings or to load existing settings. The user can have different preferences for different
technologies. The Skillcad program will automatically load the user preference saved in
the “~/.scdEnv.$TechLibName”. If you save the user preferences to other filenames,
you need to load it manually. Click the “?” button will pop up the following information
box telling you how to set the defaults in the command forms and how to enable
automatically loading the default settings.:
The default values of command forms can be set through the “Save As Default” button in
the corresponding form.
During StepRouting and FreeJumping. The program will check the routing status on fly
and inform the user if there are DRC errors, malformed paths/bus, invalid coordinates or
unable to finish routing etc. These informative popup messages may be interruptive for a
experienced user. You can turn off the popup box by clicking “Do Not Show this Dialog
Box again” on the form or disable/re-enable the popup message by checking/unchecking
the corresponding box in the user preference form. The program will print the same
information to the CIW instead of a popup message if the box is checked.
222
If you like the SKILLCAD command forms to be displayed always at a preferred location
on the screen, you can check the “Set SKILLCAD Command Forms Position”, then
input the screen coordinate for the top-left corner of the command forms. You can set this
coordinate by mouse after you click “By drawing a small box on screen”
If “Set Bindkeys 1,2,3 … for FreeJumper” is on, the user can easily use key 1,2,3… to
change the drawing layers to metal1, metal2, metal3… on fly for FreeJumper. If you
already set bindkeys for these keys, they will still work as is except during the
FreeJumper command. When this option is off, the user original bindkeys (if any) for
key 1,2,3 … will be recovered, and you have to use Mouse to change “Jump To:” layers
in the FreeJumper command form to change the drawing layers.
Click “Set My BindKey” button will popup the following information telling you how to
set up your own bindkeys to change drawing layers in FreeJumper.
If “Set Skillcad Icons ad Default Icon Bar” (ic 5.1) is checked, SKILLCAD icon bar
will be displayed when you start a layout session. (Make sure the Cadence user
preference of window icon bar is not set to “None”, CIW Optionsuser preferences)
223
“Probe the Drawing Net with Color” enable you to cycle or set a fixed color for net
probing when “Probe The Drawing Net” option is on during the “Path Jumper” or “Path
Router” command in layout XL.
The user preferences will be effective in the current session after you click “Apply” or
“OK” button. The preference will also be effective after successfully loading an existing
template file, or saving the current setting to a template file.
224
Appendix A --- FAQs on SKILLCAD License Management
1) Q: How many license features in the SKILLCAD tool suite?
A: There is only ONE license feature (“stepRouter”) for all SKILLCAD modules.
2) Q: When will the license be checked out?
A: SKILLCAD license will not be checked out until when the user starts using SKILLCAD tools. Once
a license is checked out, the heartbeat interval is 10 Mins. The license status will also be checked
irregularly while the program is running. The user may irregularly see “Checking out SKILLCAD
license…” message in the CIW while using SKILLCAD commands.
3) Q: Will the license automatically checked in after certain idle time?
A: Yes, it will be automatically checked if the idle time is more than 14 hours.
The license can also be manually checked in at anytime from the “StepRouter” pulldown menu,
“Check in License”
4) Q: If the user opens multiple Cadence sessions, will he/she checkout multiple SKILLCAD licenses?
A: No. The user will only checkout one SKILLCAD license.
The DUP policy of SKILLCAD license is UHD, that is, same user at same machine and same display
port will only checkout one SKILLCAD license.
5) Q: What will happen if checking out license fails? (Such as server down, no more licenses)
A: If the user attempts to use SKILLCAD functions during such event, the program will try to request
and wait for the license server’s response for a maximum time about 4 Mins.
There is no effect of SKILLCAD license failure on Cadence (as long as Cadence license is OK) or
other third party’s tools.
6) Q: Will the SKILLCAD pcells still work properly after license expiration?
A: No license is required for using SKILLCAD pcells (uniVia, SlotPath). As long as SKILLCAD code
and the SKILLCAD setup rules are still loaded, the user can create new uniVia/slotPath instance and
modify/update old SKILLCAD pcell instances. Even if the SKILLCAD code or the SKILLCAD
setup rules are NOT loaded, the old SKILLCAD pcell instances will still be evaluated correctly, but
the user cannot create new uniVia/slotPath instance or modify/update old SKILLCAD pcell
instances.
However, the license is required to compile the SKILLCAD pcells, so you cannot create SKILLCAD
pcells for a new technology through SKILLCAD setup interface after the license expires.
225