0% found this document useful (0 votes)
542 views

Skipper User Guide

This document is a user guide for the Skipper layout tool version 2021.06.sp2 from Empyrean Technology Co., Ltd. It provides an overview of Skipper, instructions for installation and getting started, descriptions of the tools interface including toolbars, layers palette, cells dock and more. It also covers menus for file operations, views, settings and help functions. The guide is intended to help users understand and utilize the key features and functions of the Skipper layout tool.

Uploaded by

truingdreamer
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
542 views

Skipper User Guide

This document is a user guide for the Skipper layout tool version 2021.06.sp2 from Empyrean Technology Co., Ltd. It provides an overview of Skipper, instructions for installation and getting started, descriptions of the tools interface including toolbars, layers palette, cells dock and more. It also covers menus for file operations, views, settings and help functions. The guide is intended to help users understand and utilize the key features and functions of the Skipper layout tool.

Uploaded by

truingdreamer
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 394

Skipper User Guide

Product Version 2021.06.sp2

Dec. 10th, 2021

Empyrean Technology Co., Ltd.


www.empyrean.com.cn
Copyright and Proprietary Information

Copyright©2009-2021 Empyrean Technology Co., Ltd. All rights reserved.

Trademarks: Skipper is the trademark of Empyrean Technology Co., Ltd. All other
trademarks are the property of their respective holders. For queries regarding
Empyrean’s trademarks, contact our company at the address shown below or call
+8610-84776888.

Contact Information
Empyrean Technology Co., Ltd.
Address: 2F Building A, Wang Jing Hi-Tech Park, No.2, Lizezhonger Road,
Chaoyang District, Beijing, 100102, P. R. China
Email: [email protected]
Telephone: +8610-84776888
http://www.empyrean.com.cn

Disclaimer: The manual is the exclusive and confidential information of Empyrean


Technology Co., Ltd. Unauthorized reproduction, transmission and/or translation of the
manual is prohibited. The manual does not represent the future development of related
EDA tool. The right to modify and improve the manual is reserved by Empyrean
Technology Co., Ltd. Any direct or indirect losses are caused by use of the manual has
nothing to do with Empyrean Technology Co., Ltd.

I
.................................................................................... 1

Preface.......................................................................................................10
About This Manual ............................................................................................................... 10
Organization of This Manual ................................................................................................ 10

1 Overview............................................................................................. 11

2 Getting Started ....................................................................................12


2.1 Supported Platforms ......................................................................................... 12
2.2 Installation Procedure and License Startup ...................................................... 12
2.3 Getting Started .................................................................................................. 13
2.4 Skipper Command ............................................................................................ 14
2.5 Using Extension Scripts.................................................................................... 15

3 Tools Interface ....................................................................................20


3.1 Toolbars ............................................................................................................ 20
3.1.1 Default and Basic Toolbar ................................................................................ 20

3.1.2 Select Filter by Object Type ............................................................................. 21

3.1.3 Brightness ......................................................................................................... 21

3.1.4 Gravity .............................................................................................................. 22

3.1.5 Coordinates Bar ................................................................................................ 24

3.1.6 Command Line ................................................................................................. 25

3.1.7 Detail ................................................................................................................ 25

3.2 Layer Palette ..................................................................................................... 26


3.2.1 Pull-Down Setting Menu .................................................................................. 28

3.2.2 Customized Menu ............................................................................................. 31

3.2.3 Layer Group...................................................................................................... 32

3.3 Cells Dock ........................................................................................................ 33


3.4 Summary Lib .................................................................................................... 35
3.5 Cell Search List ................................................................................................ 36
3.6 Layout Viewer .................................................................................................. 37
3.7 Bird View ......................................................................................................... 37

4 Menus .................................................................................................39

II
4.1 File Menu.......................................................................................................... 39
4.1.1 File->New Layout............................................................................................. 39

4.1.2 File->New Overlay ........................................................................................... 40

4.1.3 File->Open ........................................................................................................ 44

4.1.4 File->Open From Shared Layout ...................................................................... 49

4.1.5 File->Open History ........................................................................................... 56

4.1.6 File->Import LEF/DEF ..................................................................................... 57

4.1.7 File->Layout Server .......................................................................................... 57

4.1.8 File->Reload ..................................................................................................... 58

4.1.9 File->Save......................................................................................................... 58

4.1.10 File->Save As ................................................................................................... 59

4.1.11 File->Close Layout ........................................................................................... 66

4.1.12 File->Load Technology and Display File ......................................................... 66

4.1.13 File->Reset Technology and Display File ........................................................ 67

4.1.14 File -> Layer Settings ->Save Layer Group ..................................................... 67

4.1.15 File -> Layer Settings ->Save Layer................................................................. 68

4.1.16 File -> Layer Settings ->Load Layer Group ..................................................... 69

4.1.17 File -> Layer Settings ->Load Layer ................................................................ 69

4.1.18 File ->Load Image ............................................................................................ 69

4.1.19 File->Read Only ............................................................................................... 72

4.1.20 File->ScreenShot .............................................................................................. 72

4.1.21 File->Exit .......................................................................................................... 73

4.2 View Menu ....................................................................................................... 73


4.2.1 View->Previous View ...................................................................................... 73

4.2.2 View->Next View............................................................................................. 73

4.2.3 View->Fit ......................................................................................................... 74

4.2.4 View ->Fit To Edit ........................................................................................... 74

4.2.5 View->Zoom In ................................................................................................ 74

4.2.6 View->Zoom Out ............................................................................................. 74

4.2.7 View->Redraw.................................................................................................. 74

4.2.8 View->Open Cell.............................................................................................. 74


III
4.2.9 View->Hide Instance Cells ............................................................................... 74

4.2.10 View->Goto ...................................................................................................... 75

4.2.11 View->View Transform ................................................................................... 76

4.2.12 View->Display Depth ....................................................................................... 78

4.2.13 Show/Hide Grid ................................................................................................ 78

4.2.14 View->Open Slave Window ............................................................................. 78

4.2.15 View->Docks .................................................................................................... 82

4.2.16 View->Toolbars ................................................................................................ 83

4.2.17 View-> Summaries ........................................................................................... 84

4.3 Create Menu ..................................................................................................... 84


4.3.1 Create->Create Rectangle ................................................................................. 84

4.3.2 Create ->Create Polygon .................................................................................. 84

4.3.3 Create->Create Path.......................................................................................... 85

4.3.4 Create ->Create Instance .................................................................................. 86

4.3.5 Create ->Create Label ....................................................................................... 88

4.3.6 Create ->Create Text Polygon .......................................................................... 89

4.3.7 Create ->Create Circle ...................................................................................... 90

4.3.8 Create ->Ellipse ................................................................................................ 91

4.3.9 Create ->Layer Generation ............................................................................... 92

4.3.10 Create ->Size .................................................................................................... 93

4.4 Edit Menu ......................................................................................................... 94


4.4.1 Edit->Undo ....................................................................................................... 94

4.4.2 Edit->Redo ....................................................................................................... 94

4.4.3 Edit->Property .................................................................................................. 94

4.4.4 Edit->Stretch..................................................................................................... 99

4.4.5 Edit->Move..................................................................................................... 100

4.4.6 Edit->Copy ..................................................................................................... 101

4.4.7 Edit->Delete.................................................................................................... 102

4.4.8 Edit->Merge.................................................................................................... 102

4.4.9 Edit->Chop ..................................................................................................... 102

4.4.10 Edit->Yank ..................................................................................................... 103


IV
4.4.11 Edit->Paste ..................................................................................................... 103

4.4.12 Edit->Convert To Polygon ............................................................................. 103

4.4.13 Edit->Align ..................................................................................................... 103

4.4.14 Edit->Flip ....................................................................................................... 108

4.4.15 Edit->Rotate.................................................................................................... 108

4.4.16 Edit->Reshape ................................................................................................ 108

4.4.17 Edit->Split Array ............................................................................................ 111

4.4.18 Edit->Cells->New Cell ................................................................................... 111

4.4.19 Edit->Cells->Delete Cell ................................................................................ 112

4.4.20 Edit->Cells->Rename Cell ............................................................................. 112

4.4.21 Edit->Cells->Duplicate Cell ........................................................................... 113

4.4.22 Edit->Cells->Transform Cell .......................................................................... 113

4.4.23 Edit->Layers->Add Layer .............................................................................. 114

4.4.24 Edit->Layers ->Copy Layer............................................................................ 115

4.4.25 Edit->Layers ->Move Layer ........................................................................... 116

4.4.26 Edit->Layers ->Delete Layer .......................................................................... 116

4.4.27 Edit->Select .................................................................................................... 117

4.4.28 Edit->Select->Select All ................................................................................. 117

4.4.29 Edit-> Select->DeSelect All ........................................................................... 117

4.4.30 Edit->Select->Select ....................................................................................... 117

4.4.31 Edit->Select->Line Select............................................................................... 117

4.4.32 Edit->Select->To Object................................................................................. 117

4.5 Hierarchy Menu .............................................................................................. 118


4.5.1 Hierarchy->Edit In Place ................................................................................ 118

4.5.2 Hierarchy->Descend ....................................................................................... 120

4.5.3 Hierarchy->Return .......................................................................................... 120

4.5.4 Hierarchy->Return To->Return One Level .................................................... 120

4.5.5 Hierarchy->Return To->Return One Level with Instance Selected ............... 120

4.5.6 Hierarchy-> Return To->Return To Top ........................................................ 120

4.5.7 Hierarchy->Show EIP Tree ............................................................................ 121

4.5.8 Hierarchy->Flatten Instance ........................................................................... 121


V
4.5.9 Hierarchy->Make Cell .................................................................................... 122

4.5.10 Hierarchy->Clone Master ............................................................................... 122

4.5.11 Hierarchy->Hierarchy Delete ......................................................................... 123

4.6 Query Menu .................................................................................................... 123


4.6.1 Query->Tap .................................................................................................... 124

4.6.2 Query->Probe Object ...................................................................................... 125

4.6.3 Query->Ruler .................................................................................................. 128

4.6.4 Query->Delete Rulers ..................................................................................... 129

4.6.5 Query->Clear All Rulers ................................................................................ 129

4.6.6 Query ->Measure ............................................................................................ 129

4.6.7 Query ->Dimension ........................................................................................ 131

4.6.8 Query->Figure Measure ................................................................................. 132

4.6.9 Query->Find ................................................................................................... 133

4.6.10 Query->Geometry Statistic ............................................................................. 138

4.6.11 Query->Marker ............................................................................................... 141

4.6.12 Query->Mark Cell .......................................................................................... 145

4.6.13 Query->Summary Cell ................................................................................... 146

4.6.14 Query->Trace/Short ........................................................................................ 149

4.6.15 Query->P2P .................................................................................................... 149

4.7 Tools Menu ..................................................................................................... 164


4.7.1 Tools->Layout vs. Layout .............................................................................. 165

4.7.2 Tools->Multi-Boolean Operations.................................................................. 173

4.7.3 Tools->3D view .............................................................................................. 181

4.7.4 Tools->FIB ..................................................................................................... 184

4.7.5 Tools->FIB Measure....................................................................................... 200

4.7.6 Tools->Switch Cell/IP Merge ......................................................................... 201

4.7.7 Tools->Pad Report.......................................................................................... 209

4.7.8 Tools->IP->IP Scan ........................................................................................ 211

4.7.9 Tools->IP->IP Tagging................................................................................... 213

4.7.10 Tools->Replace Text ...................................................................................... 215

4.7.11 Tools->Sealring Sizing ................................................................................... 215


VI
4.7.12 Tools->Check Chip Boundary ........................................................................ 217

4.7.13 Tools->Locate Bit Cell ................................................................................... 218

4.7.14 Tools->Density ............................................................................................... 219

4.7.15 Tools->Area .................................................................................................... 224

4.8 Verify Menu ................................................................................................... 225


4.8.1 Verify->Run Argus->Run Argus pve ............................................................. 225

4.8.2 Verify->Run Argus->Run Argus drc .............................................................. 232

4.8.3 Verify->Run Argus->Run Argus lvs .............................................................. 232

4.8.4 Verify-> DRC Results .................................................................................... 232

4.8.5 Verify->Clear Annotations ............................................................................. 235

4.8.6 Verify->Run Socket Only ............................................................................... 235

4.9 Options Menu ................................................................................................. 236


4.9.1 Options->Preference ....................................................................................... 236

4.9.2 Options->Key Mapping .................................................................................. 249

4.10 Help Menu ...................................................................................................... 250


4.10.1 Help->Contents............................................................................................... 251

4.10.2 Help->Release Note ........................................................................................ 251

4.10.3 Help->Visit Us................................................................................................ 251

4.10.4 Help->Contact Us ........................................................................................... 251

4.10.5 Help->About ................................................................................................... 251

4.11 Ext................................................................................................................... 252


4.11.1 Ext->LabelsFromEdText ................................................................................ 252

4.11.2 Ext->Crosstalk ................................................................................................ 253

5 Layout Operations ............................................................................254


5.1 Select Command ............................................................................................. 254

6 Trace Net/Short .................................................................................255


6.1 Trace Net/Short In GUI .................................................................................. 255
6.1.1 Open Trace Widget ......................................................................................... 255

6.1.2 Set Tracing Rule ............................................................................................. 257

6.1.3 Set Tracing Options ........................................................................................ 261

6.1.4 Trace Net ........................................................................................................ 264

VII
6.1.5 Trace Short ..................................................................................................... 280

6.1.6 Check History ................................................................................................. 286

6.2 Trace Net/Short Using db Command ............................................................. 287


6.2.1 Clear Input Points and Options ....................................................................... 288

6.2.2 Set Tracing Rule ............................................................................................. 288

6.2.3 Set Target Cell ................................................................................................ 288

6.2.4 Set Tracing Options ........................................................................................ 288

6.2.5 Trace Net ........................................................................................................ 290

6.2.6 Trace Short ..................................................................................................... 293

6.2.7 View Results In GUI ...................................................................................... 294

6.2.8 Save Results.................................................................................................... 294

6.2.9 Example of Tracing Net Using db Commnad ................................................ 295

6.2.10 Example of Tracing Short Using db Command.............................................. 296

6.3 How To Prepare Tracing Rule ........................................................................ 296


6.3.1 Extract Tracing Rule from Tech File .............................................................. 297

7 Layout Integration ............................................................................303


7.1 How to run merge ........................................................................................... 303
7.2 Merge mode and options ................................................................................ 303
7.3 Layout merge Appendix I. Defined cell and undefined cell ........................... 323
7.4 Layout merge Appendix II. Merge Examples ................................................ 324
7.5 Layout merge Appendix III: “Switch Cell/IP Merge” In Online Mode ......... 326

8 Layout Comparison ..........................................................................329


8.1 Layout Comparison Using ski-flashlvl ........................................................... 329
8.1.1 Batch Mode..................................................................................................... 329

8.1.2 GUI Mode ....................................................................................................... 333

8.2 Layout Comparison Using dbCompare & dbCompareMp ............................. 344


8.2.1 dbCompare...................................................................................................... 344

8.2.2 dbCompareMp ................................................................................................ 346

9 Digital Signature ...............................................................................349


9.1 How to create digital signature ....................................................................... 349
9.2 Match digital signature ................................................................................... 349

10 Logic Operation ................................................................................351


VIII
10.1 Layer Boolean Operation Using dbLayerOp .................................................. 352
10.1.1 Create Rule File .............................................................................................. 352

10.1.2 Run dbLayerOp .............................................................................................. 361

10.2 Layer Boolean Operation Using dbLayerLogicOp......................................... 361


10.2.1 Set target layout .............................................................................................. 361

10.2.2 Set regions or points ....................................................................................... 362

10.2.3 Define and run Boolean operation .................................................................. 362

10.2.4 Operation Description..................................................................................... 363

10.2.5 Example of Tcl Script ..................................................................................... 367

10.3 Layer Boolean Operation Using dbLayerMultiBoolean ................................. 368


10.3.1 Create Rule File .............................................................................................. 368

10.3.2 Run dbLayerMultiBoolean ............................................................................. 377

10.4 Fig Boolean Operation by dbFigBoolean ....................................................... 377


10.4.1 Prepare Operand Figs ..................................................................................... 378

10.4.2 Define and Run Boolean Operation ................................................................ 378

10.4.3 Operation Description..................................................................................... 379

10.4.4 Example of Tcl script ..................................................................................... 383

11 Appendix...........................................................................................384
11.1 The Precision in Layout Database and Skipper .............................................. 384
11.2 Unsupported Layout Features ......................................................................... 384
11.2.1 GDSII Features ............................................................................................... 384

11.2.2 OASIS Features .............................................................................................. 389

IX
Preface
About This Manual

Skipper is a powerful and extremely fast chip-finishing layout platform for ultra-large,
nano-meter scale, integrated circuit designs, provides the basic creation and editing
features to work with layout designs, offer seamless integration with leading layout and
verification tools, all this makes it easy to fit into your existing environment and flow.
Skipper also provides full support for all the popular database formats, including GDSII
and OASIS.

In this manual, the basic creation, viewing and editing capabilities for GDSII, OASIS
will be described. After working through this manual, you should be familiar with all
these features and be able to use them in your designs easily and effectively.

Organization of This Manual

This manual contains the following chapters and appendixes:


Chapter 1, Overview, describes the Skipper’s overview of function.
Chapter 2, Getting Started, describes the installation and license preparing before
getting started.
Chapter 3, Tools Interface, describes the tools interface of Skipper layout design
platform.
Chapter 4, Menus, describes the contents of Skipper command menus.
Chapter 5, Layout Operations, describes actions of layout operation about
“selection”.
Chapter 6, Trace Net/Short, describes how to trace net or short.
Chapter 7, Layout Integration, describes how to run merge.
Chapter 8, Layout Comparison, describes how to do layout comparison.
Chapter 9, Digital Signature, describes how to create and match the Signature.
Chapter 10, Logic Operation, describes how to do logic operation in command line.
Chapter 11, Appendix, describes the database precision query and the operation
procedure of “Switch Cell/IP Merge” in online mode.

10
1 Overview
Skipper is a layout viewing and editing tool, especially for super large layout database.
Layout database with GDS/OASIS format can be imported and exported with a super
high speed in this platform. It provides creation and editing functions to modify the
layout, and other features such as LVL, IP merge, trace net to help designers finish their
tasks during chip finishing period.

It allows creating a new layout or editing an existing layout, and also provides the
interface for Argus® PVE to back-annotate DRC errors in the layout.

In Skipper layout design system, several external layout data types can be imported,
such as GDSII, OASIS and layout .gz file format. When importing data, you may
specify the layer map file for the layout at the same time. After importing data, you may
load the technology file according to the layout process to get a suitable layout viewing.

When layout viewing, editing and physical verifying are finished, the layout database
can be exported to GDSII (compressed .gz format) or OASIS format.

Skipper Chip-finishing Layout Platform

/3D view editing operation:


Argus PVE/DRC/LVS /trace net & short
The 3th Party DRC/LVS/PE
/multi-window view /create/copy/move
/switch cell & IP merge
/cell overlapping display /stretch/merge/chop

Technology File /LVL layer operation:


/PAD information report
Layer Map File /on-line DRC/LVS/PE /reshape/size
Layer Display Resource File /IP information scan &tagging
/DRC results back-annotation /add/copy/move/delete

layout GDS layout OASIS layout GDS gz


file format file format file format

Figure 1 Skipper Layout Design System

11
2 Getting Started
Before installing Skipper, please verify that the system hardware configuration meets
the following requirements:
2.0GHz or faster CPU
1.0GB RAM
10GB or more free disk space

2.1 Supported Platforms

The current version of Skipper supports the following operating system platforms:
RedHat Linux Enterprise 4_64bit
RedHat Linux Enterprise 5_64bit

2.2 Installation Procedure and License Startup

Complete the following steps to install the Skipper software:

Create an installation directory for the software.


% mkdir <SKP_INST_DIR>

Copy the installation package to this directory and change to the installation directory.
% cd <SKP_INST_DIR>

Decompress the installation package file under the installation directory.


% tar -xvf skipper_<vxxxx_platform>.tar

Source the setup file under the directory.


% source setup.csh

Startup license.
Under the bin folder after decompressing the tar ball, there are some license
management commands. User can start up skipper license by following command:
% lmgrd -c license_file_path/license_file_name

12
2 Getting Started

2.3 Getting Started

To start the Skipper with layout view in a terminal window, please type:
% skipper

Or start Skipper without the terminal window, please type:


% skipper –noterm

The graphical user interface of Skipper will appear as below.

Figure 2 Skipper graphical user interface

Note that all editing operations executed in Skipper will be saved to an editing
command log file in ~/.skipper/cmd/cmds.tcl.

Skipper also provides ski-db mode to support running tcl script in batch mode without
opening GUI. The options of ski-db command are listed below:
script.tcl
Make command-line arguments available in the Tcl variables 'argc'
and 'argv'. If the first argument doesn't start with a '-' then
strip it off and use it as the name of a script file to process.
-init init.tcl Source init.tcl before startup.
-v Display version.
-cmdout Generate command log file. By default, there is no log file generated
when start ski-db.

To start the Skipper in ski-db mode, please type:


% ski-db

13
2 Getting Started

To execute tcl script “run.tcl” in ski-db mode, please type:


% ski-db run.tcl

In this User Guide, we mainly focus on the Skipper mode with layout view.

2.4 Skipper Command

The options of Skipper command are listed below:

-i FILE1.gds [[-type1Tech <tech.tf> -type1Disp <display.drf> [-type1LayerMap


<type1.layermap>] |
[-type2Tech <tech.tf> -type2Disp <display.drf> [-Type2LayerMap
<type2.layermap>]] |
[-skiDisp <tech.layers>] ]
[-layerMap <mapFileName> [-mappedOnly] ]
[-dispCell <cell>]
[-drcResult resultFileName] [...]
Open the GDS files.
-type1Tech/-type1Disp accept type1 technology file and display file.
-type2Tech/-type2Disp accept type2 technology file and display file.
-skiDisp accept a skipper defined display file.
It cannot be used with -type1Tech/-type2Tech together.
-layerMap accept a layerMap file with 4 columns as
{layerNo1/ dataType1/ layerNo2/ dataType2}.
-mappedOnly only load those layers defined in the layerMap file.
-dispCell accept the cell name to display after opening the layout.
-drcResult accept a DRC result file from Type3 in ASCII format.
-viewer
Start Skipper in viewer mode.
-dbPrecision <value>
Set the database precision for the layout. The value is
100/200/1000/2000/4000/8000/10000/20000/25000, which is how many database
units are used to represent one um.
-init init.tcl
Source init.tcl before Skipper startup to load user defined initial file. Support
multiple tcl scripts when start skipper or ski-db with option –init. For example:
skipper -init ./init1.tcl -init ./init2.tcl
-option optionFile
Load option file that saved by the tcl command of 'skiSaveSetting' when Skipper
startup.

14
2 Getting Started

-width <value>
Specify width of startup window.
-height <value>
Specify height of startup window.
-into <windowID>
Give an X window identifier (a decimal integer), Skipper will parent its top-level
shell widget to that window.
-pipe <pipeID>
Skipper will write some information to the pipe after 'Save & Exit'.
-noterm
Not open a new terminal when start up Skipper.
-h|-H|-help
Display this information.
-v
Display tools version.
-waitLicense <value>
Wait for the available license in the specified minutes.
-cmdout
Generate command log file. By default, there is no log file generated when start
skipper.

Environment Variables
SKI_EXT_PATH, the gui-extion path, a gui_ext.tcl will be load from it.
SKI_CMD_LOG_DIR, the command log diretory.
SKI_ARGUS_PATH, specifying the Argus package path of other version that used
in Skipper.

2.5 Using Extension Scripts

Sometimes, user wants to customize Skipper, e.g. to set the preference values, to add or
remove a menu in the Skipper main window for their special requirements.

For extension purpose, script file “gui_ext.tcl” will be sourced when Skipper is started.
The “gui_ext.tcl” script files will reside in three directories:
$INSTALL_PATH/tools/skipper/conf/library/gui_ext.tcl
$HOME/.skipper/ext/gui_ext.tcl
$SKI_EXT_PATH/gui_ext.tcl.

If there are conflict settings between files with the same name, Skipper gives
precedence to settings in $SKI_EXT_PATH over settings in $HOME and to settings in
15
2 Getting Started

$HOME over settings in the $INSTALL_PATH. This order of precedence allows user
to set generic settings in the home directory and specific design-related settings in each
design directory.

Figure 3 custom-defined menu in Skipper

An example of the “gui_ext.tcl” has been listed below:

# use this to add a gui-ext

set confPath $env(SKI_CONF_HOME)


#source $confPath/conf/library/hello_ext.tcl
#skiExt -add -procName "skiFormDummyRemove -show" -menuName "Dummy
Remove..."

source $confPath/conf/library/ipmapnreplace_ext.tcl
#source $confPath/conf/library/marker_ext.tcl
source $confPath/conf/library/label_from_edtext.tcl
source $confPath/conf/library/traceopenshort_ext.tcl
source $confPath/conf/library/genTableFromSum.tcl
source $confPath/conf/library/dspfgui.tcl
#source $confPath/conf/library/tb_demo_ext.tcl

puts “Done!”

In the latest version, a script named as “tool_box.tcl” has been added under
“$INSTALL_PATH/tools/skipper/conf/library/”directory. By sourcing this script in user
defined ext script, it is capable of creating tool box for customized functions. The flow
of creating tool box is as following:
1. Source the “tool_box.tcl”.
2. Define customized function procedures. Defining the procedures in an isolated tcl
script and sourcing the script are strongly recommended.
3. Define function items. If specifying multiple function items at the same time, each
function item should be defined in a {} group. In the {} group, multiple key and
16
2 Getting Started

value pairs could be defined. The format is :

set functionItmes {
{ fname fvalue
[name value]

[name value]
}

{ fname fvalue
[name value]

[name value]
}
}

For 1st line of function item, “fname” should be the tool name. The “fvalue” should
be function procedure name defined in Step2. Both “fname” and “fvalue” are
obligated. Procedure for help could be appended to “fvalue” to print help
information. If not defined, the default help procedure named as “help_${fname}”
will be searched.
For example,
“Create Logo” {create_logo my_help}

From 2nd line, “name” and “value” could be the parameter name and definition
which are optional. The valid “value” values are:
a) “VT_STR”: declare the value is a string. The default value could be specified
after “VT_STR”. For example, set the default value of “Logo Prefix” to “logo”
as following,
“Logo Prefix” {VT_STR logo}

b) “VT_DIR”: declare the value is a directory. The default value could be


specified after “VT_STR”.
c) “VT_OPEN_FILE”: declare the value is to read a file. The default file name
could be specified after “VT_OPEN_FILE”.
d) “VT_SAVE_FILE”: declare the value is to save a file. The default file name
could be specified after “VT_SAVE_FILE”.
e) “VT_BOOL”: declare the value is a Boolean value. The default value could be
specified after “VT_BOOL”. For example, set the default value of “Is Top” to
1.
“Is Top” {VT_BOOL 1}

f) “VT_POINT”: declare the value is coordinate of a point. The default


coordinate could be specified after “VT_POINT”. For example, set the default

17
2 Getting Started

coordinate of “Pos” to {100 200}.


“Pos” {VT_POINT {100 200}}
g) “VT_LAYER”: declare the value is layer number and data type pair. The
default value could be specified after “VT_LAYER”. For example, set the
default layer of “LAYER” to {1 0}.
“Layer” {VT_LAYER {1 0}}

h) “VT_BOX”: declare the value is the bounding box of a rectangle. The default
value could be specified after “VT_BOX”. For example, set the default bbox
of “Area” to {100 100 200 200}.
“Area” {VT_BOX {100 100 200 200}}

i) “VT_POINT_LIST”: declare the value is a point list. The default value could
be specified after “VT_POINT_LIST”. For example, set the default point list
of “Point List” to {100 100 200 200 300 300}.
“Point List” {VT_POINT_LIST {100 100 200 200 300 300}}

j) “VT_ENUM”: declare the value is enum type. The valid value range needs to
be specified after “VT_ENUM”. The default value could be specified after the
valid value range. For example, the value range of “Color” is {red green blue}.
The default color is red.
“Color” {VT_ENUM {red green blue} red}

k) “VT_VALUE”: declare the value is a number. The default value could be


specified after “VT_VALUE”.

l) “VT_INT”: declare the value is an integer. The value range and default value
could be specified after “VT_INT”.
For example, set the default “Length” value to 5.
“Length” {VT_INT 5}
Set the value range of “Length” to 0~100.
“Length” {VT_INT {0 100}}
Set the value range and default value both.
“Length” {VT_INT {0 100} 5}
m) “VT_FLOAT”: declare the value is a floating number. The value range and
default value could be specified after “VT_FLOAT”.

Create the tool box for the defined function items by running “create_tool_box”
procedure and add the ext menu to Skipper by executing “skiExt” command. Here
is an example. “Tool Box Demo” is the tool title. $functionItems are the items
defined in Step3.
skiExt –add –procName {create_tool_box “Tool Box Demo” $functionItems}
skiExt -update

18
2 Getting Started

A reference script named as “tb_demo_ext.tcl” has been put under


“$INSTALL_PATH/tools/skipper/conf/library/” directory. If sourcing it in “gui_ext.tcl,
the tool named “Tool Box Demo” will be added to Ext menu as shown in Figure 4.
Click “Tool Box Demo”. The tool box is shown in Figure 5.

Figure 4 “Tool Box Demo” tool in Ext menu

Figure 5 “Tool Box Demo” too box

19
3 Tools Interface
The components of Skipper graphical user interface are shown as follows:

Figure 6 Skipper graphical user interface with layout design

Note: Layout Design Window, Layer Selection Window (Layers), Library Browser
Window, Cell Search List, and World View Window will appear after the layout is
imported.

3.1 Toolbars

Skipper has default and basic toolbar (command icon, window box, status, etc.) which
can be invoked from menu view->toolbars. The toolbar in the GUI provides easy access
to frequently used commands.

3.1.1 Default and Basic Toolbar

“Default Toolbar” and “Basic Toolbar” collect a list of frequently used commands and
shows them as icons. The corresponding command name and usage tips will appear
beside the icon and in the status bar while putting the mouse over an icon.
20
3 Tools Interface

Figure 7 Default Toolbar

Figure 8 Base Toolbar

3.1.2 Select Filter by Object Type

Figure 9 Select Filter

Click “Select Filter” icon to active objects selectable mode.

Table 3-1 Select Filter by Object Type

Select Filter Description


Instance to specify the “Instance” selectable
Text to specify the “Text” selectable
Path to specify the “Path” selectable
Polygon(Node) to specify the “Polygon” selectable
Rectangle(Box) to specify the “Rectangle” selectable
Circle to specify the “Circle” selectable

3.1.3 Brightness

Figure 10 Brightness
Click brightness pull-down menu to stretch the scroll bar to adjust brightness. Click on
brightness button, it grey out and the layout brightness grey out.

21
3 Tools Interface

Click Button

3.1.4 Gravity

Figure 11 Gravity Specify

Click “Gravity” icon to active auto snap mode.

Table 3-2 Auto Snap Mode

Auto Snap Description


Vertex to auto-snap the vertex of rectangle and polygon:

Edge to auto-snap the edge of rectangle, polygon and path:

22
3 Tools Interface

Auto Snap Description

Center to auto-snap the center point of rectangle and polygon:

Center Line to auto-snap the center line of path:


(Path)

Mid-Point to auto-snap the edge middle point of rectangle, polygon


and path:

Aperture the mouse will be snapped automatically by this specified


distance.

23
3 Tools Interface

3.1.5 Coordinates Bar

“Coordinates Bar” shows the coordinate of current cursor position, to record the moving
map during 'Move', 'Copy', etc.
entry the coordinates, press enter shows the coordinate of current
to add a marker at this position. click to remove the marker cursor position

The field of “Coordinates Bar” is editable, user can edit x/y-coordinate in this field (X,Y:
x-coordinate, y-coordinate) and press ENTER key, then layout window will pan to this
point as the center, a marker and its x/y-coordinate will be added at this position at the
same time.

Button can be used to remove the marker.

a marker and x/y-coordinate


value added at this position

The range of entry value for point coordinates is ' -2147483.648 ' to' 2147483.648 '.

24
3 Tools Interface

3.1.6 Command Line

“Command Line” shows the activated command and its operating instructions. The
current command and prompt messages will be illustrated. User can take it as a quick
hint on how to execute a command.

3.1.7 Detail

There are two modes to specify filter size. Choose “Filter out objects by pixel” to
specify filter value. Otherwise use “Display Quality” mode.

Figure 12 Display Filter

The “Filter” value range is from “0” to “30”, the larger this value is, the more objects
are hidden, setting “Filter” to “0” means to display all objects in the layout viewer.
There are four modes for display quality control: Best/Good/Normal/Fast. The control
file which defines display quality options is:
$INSTALL_PATH/tools/skipper/conf/library/procs_ski.tcl
The picture below shows an example of setting the “Filter” value to “5” and “0”:

25
3 Tools Interface

3.2 Layer Palette

Figure 13 Layer Palette

Layer Palette allows user to set layer displaying status, to make layer visible/invisible,
selectable/unelectable in the current layout.

By default, layers are sorted by number and displayed in ascending order. You can
change the layer display order by clicking the column buttons.

: to show layers in default.

: to show layers by layer number.

: to show layers by layer purpose.

: to specify layer visible/unvisible.

: to specify layer selectable/unselectable.

26
3 Tools Interface

: to show text on this layer.

: to display shapes which are small using cross.

: to blink all shapes on that layer.

: to show the layout number.

: to show the layer number. Choose this option, purpose column will change
to be Datatype.

: to show the instance in layout canvas.

: to show labels only on top level.

: to entry keyword to search layer, it supports wildcard search in default.

: to entry keyword to filter layer, it supports wildcard search in default.

: to clear the keyword.

: to search/filter layer using regular expression.

Users can change the layer display status by File->Load Tech and Display File,
File->Layer Settings->Load Layer Group, File->Layer Settings->Load Layer
command, etc.

The relation between layer status and layer setting will be illustrated below:

Figure 14 Layer status in Layer Palette

27
3 Tools Interface

In Layer Palette region, click layer icon to activate Display Editor form, in which
users can modify layer settings such as line color, fill color and fill stipple style.
Unify: to set the fill and line color of layer at the same time.
Edit Immediately: to display the fill&color in layout immediately.
System colors: enable this option to use system colors, disable this option to use
technology defined colors. The option is grayed out when didn’t load technology file.
Default: to reset the layer color&patten to default.

Figure 15 Layer display editor

3.2.1 Pull-Down Setting Menu

The pull-down setting menu can be used to specify the status of layers, such as
‘Add new layer’, ‘Delete selected layers’, ‘Edit’, ‘Sort by number’, ‘Visible layers in
top’, ‘Selectable layers in top’, ‘Show layer name and number’, ‘Show purpose name
and number’, ‘Toggle AV’, ‘Toggle AS’, ‘Toggle V’, ‘Toggle S’, ‘Save layers’, ‘Load
layers’, ‘Save layer groups’, ‘Save layer group’, ‘Load layer group’, ‘Show mask color’,
‘Reset system layers’ and ‘Refresh’.

28
3 Tools Interface

Figure 16 “Setting” menu in Layer Pattern

Add new layer: create a new layer in the current library by specifying the name and
number for the new layer and purpose

Delete selected layers: delete all objects on the selected layers. When clicking on this
command, a message window pops up that reminds user undo is not available, ‘Yes to
All’ means to delete all objects with selected layers, ‘Current Cell’ means to delete all
objects with selected layers only in the current cell.

29
3 Tools Interface

Edit: modify the name of layer and purpose, double click ‘Layer Name’ and ‘Purpose
Name’ to edit, parameters used in ‘Tools->3D View’ (such as 3D Thickness, 3D Color)
can be defined in the form also.

Sort by number: sort the lsw by layer number. By default, the lsw is sorted by the order
in display file. To sort by layer number, user needs to switch to sort by layer.

Visible layers in top: listing visible layers in top of LSW, visible/ invisible layers sort
dividually.
Selectable layers in top: listing selectable layers in top of LSW, selectable/
unselectable layers sort dividually.
Show layer name and number: enable to show layer name and number.
Show purpose name and number: enable to show purpose name and number.
Toggle AV: specify all layers visible or invisible.
Toggle AS: specify all layers selectable or unselectable.
Toggle V: specify current layer visible or invisible.
Toggle S: specify current layer selectable or unselectable.

30
3 Tools Interface

Save layers: save layer displaying setup to a ASCII file.(.layers)


Load layers: load into a layer displaying setup file.(.layers)
Save layer groups: save layer group setting to a TEXT file.(.layergroup)
Load layer groups: load into a layer group setting file.(.layergroup)
Reset system layers: reset the system layers.
Refresh: refresh the lsw.

Besides of user’s customized layer group, Skipper provides several layer groups by
default. It includes:
Layers in tech: All layers defined in tech file.
Layers in lib: All layers used in current library.
Layers in cell: All layers in current cell.
Layers in view depth: When user changes the display depth, the LSW only lists the
visible layers according to current display depth.
System layers: It includes ten layers for DRC/LVL highlight.

Figure 17 Default layer groups

3.2.2 Customized Menu

Figure 18 Customized Menu


The displayed columns can be customized by right-clicking column button.

31
3 Tools Interface

3.2.3 Layer Group

Figure 19 Layer Group Editor

The pull-down group menu is used to add/edit layer group. Click button to invoke

layer group editor form. Click and type group name to create new group, then

choose layers to add to right tab through .

: to add new group.

: to delete group.

: to add layers to group.

: to delete layers from group.

: to add all layers to group.

: to delete all layers from group.


After adding layer group, they are shown in layer palette. Each group can be specified
display property like layer.

32
3 Tools Interface

Figure 20 Layer Group Palette

3.3 Cells Dock

“Cells Dock” shows a hierarchical structure whose root node is the top cell of the library.
Double-clicking the selected cell in the hierarchical tree will show corresponding layout
in the layout viewer. The starting and ending hierarchical display levels in the layout
viewer can also be set by users.

Referenced instance count

Double click cell to open


it in layout view

Figure 21 Cell Dock

The undefined cells are shown with red color, the marked cells are shown with underline.

33
3 Tools Interface

Figure 22 Undefined cells’ tree

Right click cells to operate cell:


Rename: rename cell
Delete Cell: open delete cell form to delete cell.
Duplicate Cell: duplicate cell to another.
Write out: write gds/cell out.
Create Inst: create a new instance referring to the selected cell.
Hide: open hide instance form to hide cell.
Mark Cell: mark cell with highlight color.
Remove Cell Mark: clear the highlight of marked cell.
Summaries: show all cell summary results and cell tree results in one form.
Summary cell: generate summary of selected cell.
Cell Tree: generate cell tree list of selected cell. Cells can be sorted by clicking
cell tree title.
Traverse Tree: traverse the cell tree of selected cell.

Figure 23 Cell Operation

34
3 Tools Interface

3.4 Summary Lib

Figure 24 Summarize Lib


Right click library to operate the library, The Summarize Lib will generate the
summary of the library. User can specify the contents of summary report.
General: if it is checked, it will list the general information of the library, such as file
path, file size, precision, format, cell number and level, etc.
Layers: list all layers existing in the library
Cells information: list the all cells existing in the library
Cells info: list the all defined cells existing in the library
Undefined Cells: list the all undefined cells existing in the library
Empty Cells: list the all empty cells existing in the library
Sort By Cell Name: an option which is used to control the order of cell name
Ascending: list the cells in report with ascending order
Descending: list the cells in report with descending order

Figure 3-18 Summary library


After setting up the options, click on the OK button, a report window will pop up.

35
3 Tools Interface

Figure 3-19 library summary report

3.5 Cell Search List

“Cell Search List" allows users to search a cell in the library. Wildcard “*” is supported.
It also enables users to sort all cells in alphabetical or reverse order. Double-clicking
the selected cell in the list will show the corresponding layout in the layout viewer.

sort

Figure 3-19 Cell search list

36
3 Tools Interface

3.6 Layout Viewer

Layout Viewer is the main window of Skipper. The layout data in GDSII format, OASIS
format, saved library/cell structure opened by users is displayed in the window.

Figure 25 Layout design window

3.7 Bird View

Bird view locates on the loft-bottom of layout view, which show the major frame of

layout. In common, it hides on the right-bottom of layout with icon . Click it to


open bird view. Draw box with right-click to zoom layout. Click draw box and move it
to switch zoom area.

37
3 Tools Interface

Figure 26 Bird View

38
4 Menus
Skipper has eleven pull-down menus (File, View, Create, Edit, Hierarchy, Query,
Tools, Verify, Options, Help and Ext), contains a list of commands used to manipulate
layout views. The details description of these commands will be introduced as follows.

4.1 File Menu

File menu mainly be used for import/export design and the operation of library, contains
New Layout, New Overlay, Open, Open From Shared Layout, Open History,
Import LEF/DEF, Layout Server, Reload, Save, Save as, Close Layout, Load Tech
and Display File, Reset Tech and Disp, Layer Settings, Load Image, Read Only,
ScreenShot and Exit command items.

4.1.1 File->New Layout

New Layout can be used to create new library with a new cell.

39
4 Menus

Figure 27 New Layout

4.1.2 File->New Overlay

overlay display:
layout2 layout3 layout2 & layout3

Figure 28 Cells overlay displaying

This command is used to put multiple cells in one library, the cells can be from the same
or different library. All cells can be overlay displayed in one library.

When you activate File->New Overlay, all opened library will be listed in the overlay
command form, Add File means to add cells from a layout database file, Add means
to add cells from the opened layout cell, Delete means to delete a cell.

double click to modify cell’s displaying

Figure 29 Cells overlay setting


40
4 Menus

In the cells listing form, cell's property, such as 'topcell', 'align', 'x-y coordinates',
'magnify' and 'rotate' can be modified, double click on the items to modify.

All specified details in overlay library can be saved to a text file, or be loaded from a
text also. Save means to save the details to a text file, Load means to load and update
the details from a text file, below is an example of overlay library text file:

/home/test/overlay/n3.gds N_3NEW centerCenter 563.000 564.520 1 R90


/home/test/overlay/pg3.gds p3top lowerLeft -163.830 -163.830 1 R0
/home/test/overlay/top1.gds pgtop Custom -77.800 -77.800 1 MX
/home/test/overlay/Proj1.gds Proj1 lowerLeft 0.125 0.400 1 R0
/home/test/overlay/pad.gds top_PAD lowerLeft 0.000 0.000 1 R0

‘/home/test/overlay/n3.gds N_3NEW centerCenter 563.000 564.520 1 R90’ means to


put cell N_3NEW (n3.gds) align its centerCenter to (563.000, 564.520) in layout
coordinate space, specify the magnify value to ‘1’, rotate value to ‘R90’, etc.

In the following library, three cells are overlay displayed. The first one is placed with
its lowerLeft to (0,0) position, the second one is placed with its centerCenter to (0,0)
position, and the third one is placed with its origin to (0,0) position.

41
4 Menus

Align: Custom

Align: lowerLeft
Align: centerCenter

Figure 30 Specify cell overlay alignment

When cells from different library, the cells may have different DB unit, they cannot be
put in overlay library when DB unit checker option 'Uniform internal db unit per UM'
is not specified, an error information will be printed in this situation:

Figure 31 DB unit checker between different libraries

In overlay library, in order to distinguish layer status between libraries, layers LPP will
be shown and grouped according to the overlay cells.

42
4 Menus

Figure 32 Overlay library layer displaying

Edit Overlay can be used to modify overlay cells.

to modify overlay cells

Figure 33 Edit overlay

43
4 Menus

4.1.3 File->Open

File->Open can be used to open layout database file, supports GDS, compressed
GDS(gz format, by “gzip”), OASIS file. Layer mapping, technology and display files
can be imported at the same time when the data file loading, layer grouping setting,
trace rule files can be imported also. Some layout features in OASIS and GDSII still
haven’t been supported yet. For details, please refer to
“Skipper_Unsupported_Layout_Features.pdf” under the
“$INSTALL_DIR/tools/skipper/doc” directory.

Figure 34 File->Open

File can be used to specify layout database file name.


Ignore properties means to ignore objects properties defined by users when opening.
Ignore texts means ignore texts when opening.
Ignore GDS box records means to ignore objects box records when opening.
Ignore GDS node records means to ignore objects node records when opening.
Convert to path to polygon means to convert the all path in the layout to polygon.
Ignore illegal shapes means to ignore the illegal shapes when importing the layout,
such as polygon with 2 vertices and path with 1 vertice.
With tech and display file means to open layout with the technology file all at once,
supports Type1, Type2 or Type3 technology files when importing layout data.

Figure 35 Load the technology and display file

When open cells with this option With tech and display file, it will be stored and
worked with Reload and Open History commands later.
Show log means to popup a log window, shows the database information such as cells
statistics, objects statistics, layers statistics, etc. An example of log file is shown as
44
4 Menus

below:

In Options tab, user can specify the layers file, layer group file and the layers
connectivity file.

Figure 36 File->Open: Options

45
4 Menus

Layers can be used to set layers property file(binary).


Layer Group can be used to set layers grouping.

An example of a layer grouping file is shown as below:

Trace Rule can be used to set layers trace rule.

An example of a trace rule file is shown as below:

46
4 Menus

Data Layer mapping can be used to specify layer mapping, when clicking Specify
map button, layer mapping form will pop up at once, you can load an existed mapping
file, or editing the mapping immediately. The same layer and datatype pairs can be
mapped to multiple layers, for example, layer1(number=1, datatype=0) can be assigned
to both layer101(number=101, datatype=1) and layer201(number=201, datatype=1).

Figure 37 Layer mapping


Specify map, in Layer Map region, you can modify the layer map by double click

47
4 Menus

items one by one, Add means to add a new layer map setting, Delete means to
delete the layer map setting.

Figure 38 Load and Edit Layer Map

Browse to open browser window to select a layer mapping file.


Load to load an existed layer mapping file.
Save As to save the current layer map to a file.

An example of layer mapping file is shown as below:

1 0 101 0
2 0 102 0

Only load mapped layers means only load the mapping layer, other layers will be
filtered out when opening.

If some user has already loaded a layout file in Skipper GUI, this layout will be marked
as shared data automatically. When some other users log in the same server and want
to open the same layout by File->Open menu, Skipper will give a prompt that this layout
is already shared. User can choose open the layout from memory by clicking the button
“Load from Shared Memory”, or open it from hard disk by clicking the button “Load
from disk”. If choosing “Load from Shared Memory”, the layout will be opened with

48
4 Menus

ultrafast speed and almost no extra memory consumption on this server.

Figure 39 Open layout from shared data

4.1.4 File->Open From Shared Layout

For the massive layout data, Skipper provided an ultrafast layout loading method which
is called shared layout in memory. In shared layout mode, if the layout file is opened
by any users in the same server, the layout will be loaded directly from memory instead
of from file.

The related settings can be configured in the “Shared layout” page of


“Options->Preference” window. Before starting the shared layout, make sure that the
option “Sharing layout data in memory” is checked.

4.1.4.1 Open Shared Layout

Choose “File->Open From Shared Layout”. In the “Open Shared Layout” dialog box,
you can see all the layouts shared on the server. Select one layout and click Open. The
layout will be loaded from shared memory.

Figure 40 Open Shared Layout window

49
4 Menus

4.1.4.2 Open Shared Layout Remotely

Skipper “Share layout mode” provides lightning layout loading speed. However, it
requires that the layout must have been opened and shared by at least 1 other user in the
same machine. For user who uses distributed cluster system, it’s hard to tell which
machine the layout has been opened. Thus they cannot take advantage of shared layout
function.

For solving the problem that layout cannot be shared between different machines, from
2020.06.sp3 version, Skipper supported checking if layout file has already been opened
in other machine and generating the remote command string for opening layout from
shared memory. User can exit Skipper and reload the layout from shared memory on
other machine by executing the remote command.

There’re 3 prerequisite conditions to enable this function.


1. Enable shared layout mode. Select “Sharing layout data in memory” in
“Application -> Shared layout” page of “Options->Preference” window as shown
in Figure 41.

Figure 41 Enable shared layout mode


2. Enable cache mode. Select “Cache” in “Cache->GDSII/OASIS” page of
“Options->Preference” window as shown in Figure 42.
3. The cache directory should be the same for each machine. Define same cache
directory in “Cache->GDSII/OASIS” page of “Options->Preference” window as
shown in Figure 42.

50
4 Menus

Figure 42 Enable cache mode and define cache directory

For generating remote command, User can define the command format in advanced.
The remote command format can be set in the “Cache->GDSII/OASIS” page of
“Options->Preference” window. New “Remote Command” part has been added to this
page.
There’re 2 keywords which can be defined in the format.
⚫ $host:This keyword will be replaced by the real host name which has shared layout
in final remote command.
⚫ $shmid: This keyword will be replaced by the real id of shared layout in final
remote command.
For example, define the remote command as shown in Figure 43.

Figure 43 Set remote command format

When open layout, if above prerequisite conditions are met and the layout is not shared
in same machine, Skipper will check if the layout has been shared on other machine. If
the shared layout has been found on other machine, Skipper will list the host who shared
the layout and show the command string for opening the shared layout remotely as
shown in Figure 44.

51
4 Menus

Figure 44 Remind user that layout has been opened in other machine

User can execute the generated command to load the shared layout. For example,
% qsub –l hostname=sk04 “skipper –shmid 1”

4.1.4.3 Open Shared Layout in Co-work mode.

Skipper also provided co-work mode to allow multiple users co-edit one shared layout
at the same time. This section introduces how to create a co-work task and co-edit the
shared layout.

⚫ Create Co-work Task

1. Open the layout in Skipper.


2. Choose “File->Open From Shared Layout” in GUI. All shared layouts on the server
are listed. Select the layout opened in Step1, and then choose “Co-work->Create”.

Figure 45 Create co-work task

52
4 Menus

Open: open the layout from shared memory


Cancel: close the “Open Shared Layout” dialog box
Use the shared tech/display settings: use the tech and display file in the shared
memory.
Co-work
Create: create the co-work task for selected layout
Close: close current co-work task
Start daemon: start a daemon for the layout in co-work mode. If started a
daemon for the layout, the layout will still be kept in memory after all users
closed the layout. Users can open it from shared memory next time.
Stop daemon: stop the daemon of layout in co-work mode.

3. In the popped up “Create co-work” dialog box, set the password and write
description, then click “Create” button.
Password: specify the password to open the shared layout to edit.
Description: add comment for the co-work task.
Start daemon process to keep in memory: start the daemon when create co-work
task.

Figure 46 Set password and description


4. After created the task, a button “Open co-work” appears in “Open Shared Layout”
window. The selected layout can be edited by other users in co-work mode.

53
4 Menus

Figure 47 Open layout in co-work mode


⚫ Edit Layout in Co-work Mode
After created the co-work task, the shared layout can be edited by different users at the
same time
1. Open layout in co-work mode
In the “Open Shared Layout” dialog box, click the “Open co-work” button. In the
popped up “Open co-work” dialog box, type the correct password. Then the shared
layout is loaded in Skipper.

Figure 48 Specify password to open layout


2. Edit layout in co-work mode
Different users can edit different cells of the shared layout at the same time. When
edit the shared layout, the co-work mode will follow the below principles:
1) Each cell can only be edited by one user at the same time.
2) When a cell is edited, it will be locked. The below table shows the lock principle
of different editing operations.
3) A user can edit multiple cells at the same time.
4) After the user finishes editing the cell, the lock will be released after commit or
discard.

54
4 Menus

Action Need Need


Lock Hierarchy
Lock
Add cell YES, NO
cell
name
lock
Rename cell YES, NO
cell
name
lock
Delete cell YES YES
Duplicate cell/clone master/ yank/paste YES NO
Shape YES NO
create/delete/move/copy/stretch/merge/chop/align/flip/rotate/reshape/split
array/sealring size/make cell
Hierarchy delete YES YES
Layer generation/size/flatten/multi-boolean/replace text YES YES, when
level option
enabled
Switch cell YES NO
Add cell/duplicate cell/clone master/make cell, need global cell id to create cell.

The Co-work widget is shown in Figure 49. There’re 3 tabs: Versions, Locks and Users.

55
4 Menus

Figure 49 Edit the layout in co-work mode


- Versions
The “Version” tab is used to manage the editing version.
Commit: submit the edited data to shared memory. If the Show all commit logs is
checked, it will list all versions modified by users
Update: update the shared layout to higher edit version. User can specify version
(must be higher than current version) to update. If the version is not specified, it
will update to the latest version.
Discard: discard all operations which haven't been submitted.
Refresh: refresh the version information including version/user/time
Show all commit logs: check this option to display all commit logs in “Details”
window
Save… : save all commit logs into a file
- Locks
“Locks” tab lists all the locked cells in the shared layout. If the option “Cells locked
by current user” is checked, it will only list all cells locked by the current user
- Users
“Users” tab lists all users of current co-work task.

4.1.5 File->Open History

Figure 50 Open History

This command is used to quickly open the database which has been opened earlier.
Those opened files are listed in order and can be opened again quickly. If any opened
file not existing, the open process will fail with a warning message. Update can be used
to reload history records which are in other running Skipper jobs, Clear can be used to
clear all history records. Unsuccessfully opened file will not be added to the list.
56
4 Menus

4.1.6 File->Import LEF/DEF

Import LEF/DEF files.

Figure 51 Import LEF/DEF

DEF files are optional. LEF files can be added through '+' and deleted through '-'. The
position of LEF file can be adjusted by '↑' and '↓'. The imported LEF file can be exported
using Save As.

Pin Labels to specify if import the pin labels.


Label Height to specify the labels’ height after been imported.
Create Routing to specify if create routing for LEF/DEF.

4.1.7 File->Layout Server

Skipper has a layout server technique. Any user can put his current layout to a virtual
layout server, let other user visit this layout data from the virtual layout server. The first
user must publish the layout to virtual layout server first by clicking “Layout
Server->Start Layout Server” as shown in Figure 52. A skipper’s_server directory is
generated under the running directory. Other users point to this directory in “Layout
Server->Open From Server”, then they can see the layouts published in the virtual
layout server as shown in Figure 53. Choose one layout from the list, and click on the
OK button to open the layout. This method does not share the same copy of memory
between users.

57
4 Menus

Figure 52 Start Layout Server

: to refresh server list.

: to close selected server.


Directory: to specify server directory.

Figure 53 Open layout from server

To stop sharing the layout server, click “Layout Server->Stop Current Sharing”.

4.1.8 File->Reload

This command can be used to load the database again.

4.1.9 File->Save

This command can be used to save the present database, overwrite the current library
at the same time.
58
4 Menus

4.1.10 File->Save As

Exports layout database to another GDS file, compressed GDS file(gz file format) or
OASIS file, provides the clip GDS out function.

There are two option tabs in the form, Basic and Advanced.

Figure 54 Save As->Basic

Basic can be used to specify some basic and common options when exports layout
database, such as output file name, output file format, cells and layers information, etc.
File can be used to specify layout database output file name.
Library showing the current library name.
Top cell(s) can be used to specify the top cell name. Several top cells can
exported to the output file simultaneously. These cell names can be specified by
space, comma, or semicolon. Blank space makes all cells exported to the output
file.
Current Cells can be used to get current cell name.
exp1: Cell “buffer” exported to the output file.

59
4 Menus

exp2: Four top cells(buffer, fd1, fd2, fd3) exported to the output file.

exp3: All cells in the library exported to the output file.

Exclude cells is used to filter some cells out when saving. Cell names can be
separated by “,” “;” or “space ”.
Format can be used to specify the output file format.
GDS means to export layout database to GDS file.
OASIS means to export layout database file to OASIS file.
Write with invalid string means to output oasis data with invalid string.
CBLOCK compression means to output oasis data with compressed
CBLOCK name tables means using CBLOCK on OASIS name table.
OASIS has six name tables to map cell name, string, property, label to
index number. That’s one of the reasons why OASIS has smaller file
size. These six name table can be further compressed using CBLOCK if
ticking on this option.
Replace in A-String means to replace invalid character in label with
blank when export oasis
Write with invalid string to export oasis with invalid string, skipper
won’t export oasis if disable this option.
gz file format means to export layout database to compressed GDS file.
Preserve properties means to export layout database with property
preserved.
With view transform setting only works when the layout’s view has been
transformed.
Skip BOX means box will not be output to oasis and report warning
Skip NODE means node will not be output to oasis and report warning
Cells can be used to specify options about cell when outputting.
Skip empty cells but write their references means to skip empty cells
but write their references.
Write empty cells and their references means to write empty cells and
their references.
Skip empty cells and their references means to skip empty cells and
their references. With this option, the empty cells will be skipped when
export layout. In addition, if cell only contains empty instance or
undefined instance, it will be skipped also.
Keep top cells if empty means to keep the empty cell on top level when
saving layout with “Skip empty cells and their references” or “Skip
empty cells but write their references” option selected.
60
4 Menus

Skip switched cells means to skip switched cells.


Replace blank space in cell name means to replace blank space in cell
name.
Layers can be used to specify options about layer when outputting.
All means to export all layers.
Visible means to export visible layers (specified in LPP) only.
Selected means to export selectable layers (specified in LPP) only.
Only write mapped layers means to export the mapping layer only, other
layers will be filtered out.
Data Layer mapping can be used to specify layer mapping, click Specify
map button, the layer mapping form will pop up.

Figure 55 Layer Mapping

In Data Layer Mapping window, user can specify the layer mapping by double
click items. The same layer and datatype pairs can be mapped to multiple layers.
For example, layer1 (number=1, datatype=0) can be assigned to both layer101
(number=101, datatype=1) and layer201 (number=201, datatype=1).
User can load type1’s layer map file, and then output the layout. Such as:
M1 drawing 1 0
M2 drawing 2 0
Also, skipper supports layer map with 6 columns such as:
M1 drawing 1 0 mask1color locked
M1 drawing 1 1 mask2color
In this condition, open data need to set matched layer map to export layer 1.0 and
1.1.

Add button used to add a new layer mapping setting.


Delete button used to delete the selected layer mapping.

61
4 Menus

Browse can be used to open browser window to select a layer mapping file.
Load can be used to load the selected layer mapping file.
Save As can be used to save the current layer mapping to a file.

Figure 56 Load and Edit Layer Mapping

An example of layer mapping file is shown as below:

1 0 101 0
2 0 102 0

62
4 Menus

Advanced can be used to set some advanced options when outputting, such as
Hierarchy, Area and Label Filter, etc.

Figure 57 Save As->Advanced

Hierarchy can be used to specify level when outputting.


All Level means to export layout database with all levels.
From top to a certain level means to export layout database to a certain level.
Flatten means to export layout database with flatten mode. Flatten to oasis can be
speeded up by using multiple threads. You can set the thread number in the
“Options->Preference->Save” window

Write only labels on top means to write labels which in top cell only.
Remove duplicated shapes means to remove the duplicated shapes when
flatten the layout.
Magnify means to shrink or enlarge layout by a factor scale (such as times 2
or divided by 2), the magnify value could be either integers or fractions, for
example, 2, 3, 0.5, 1.5, etc. For polygon, both X and Y dimensions can be
magnified.

63
4 Menus

Figure 58 Magnify by 0.5

Area can be used to export partially layout with specified area(for


current library).

Screen button can be used to export current contents of the screen,


Rectangle/Polygon button can be used to export specified regions, by
drawing a box or polygon in layout cellview or input a coordinates file to
set the area size. Multiple area layout clippings are supported, for example,
user can clip 4 corners and PLL layout module from the design and output
all 5 clippings to one layout.

coordinate of area can be specified


by mouse or the existed file.

Figure 59 Save as->area

The area region can be modified by user.


64
4 Menus

Export part of layout according to the coordinates in the list. Load option
can be used to specify an existed coordinate file, Save option can be used
to save the coordinates to a file, Remove can be used to clear the specified
items in coordinate table, Clear can be used to clear all coordinates in the
list.

An example of coordinates file is shown as below:

(-32.865, 4927.69)(862.925, 4188.145)


(3894.03, 4927.69)(4914.81, 4219.39)
(3810.7, 2677.8)(4727.32, 552.905)
(165.045, 3136.11)(1289.99, 3136.11)(1289.99, 2188.24)(165.045, 2188.24)
(1935.79, 2854.875)(2550.345, 2854.875)(2550.345, 3573.59)(2269.105,
3573.59)(2269.105, 3084.03)(1935.79, 3084.03)

Cut export all objects in the drawing box be exported.


Contain export objects that be contained entirely in the drawing box.
Overlap export objects that be overlapped with the drawing box.
Reverse export objects that beyond the specified areas.

Label Filter can be used to filter out some labels which carry with certain
keywords on selected layer or all layers in all hierarchical levels. (The wildcard “*”
is supported).

Figure 60 Save as->label filter

Label Filter can be used to specify label filter. Click Edit Filter button, label
filter form will pop up, select layers in LSW and click AddSelected button to add
the specify layers, double click this item to modify, if nothing added, all the layers
will be specified.

65
4 Menus

In the following example, labels with “n”, “r*”, “M*” and “UEC*” on two layers
(6.0 and 63.0) will be filtered out:

Figure 61 “Labels not be filtered out” and “Labels be filtered out”

Zero height Label to can be used to change the height value of '0' height labels
during Save As.
Show Log means information of the outputting will be reported in a terminal
window.
DBU to set the library dbu when saving out.
Compare layouts after saving: do LVL with original layout file after save as
layout.

4.1.11 File->Close Layout

This command can be used to close the current layout.

4.1.12 File->Load Technology and Display File

This command allows user to load technology, display and layer map file into layout,
multiple display files can be supported. The last record will be loaded automatically
when invoke “Load tech and display file” form. There’re 3 types of tech file formats
supported in Skipper. If selected “Auto” mode, Skipper will recognize the tech file
formats automatically. For details of the 3 tech file types, please contact Empyrean AE.

66
4 Menus

Figure 62 Load tech and display file

After these files be loaded, Layer Name and Layer Purpose will be updated in LSW,
connectivity information with original layers will be added in “Rules” option of “Trace
Net” in the meantime.
Layer map support keywords 'mask1' and 'mask2' for layer map file. Mask1 means to
display layer with red outline. Mask2 means to display layer with green outline. Such
as:
DNW drawing 102 251
DNW drawing 102 252 mask1
DNW drawing 102 253 mask2

4.1.13 File->Reset Technology and Display File

This command is used to clear the existed technology setting of current layout.

4.1.14 File -> Layer Settings ->Save Layer Group

This command is used to save the layer group setting to a text file.
It is convenient for user to reload the layer group setting in the future.

67
4 Menus

Layer group:metal

Figure 63 Layer group setting

For the layer group setting of above example, the .layergroup file will be saved as:

4.1.15 File -> Layer Settings ->Save Layer

This command is used to save the layer displaying and status to a binary file, including
color, fill, line style and visible, selectable setting.
It is convenient for user to reload the layer displaying setting in the future.

68
4 Menus

Figure 64 Layer displaying and status setting

4.1.16 File -> Layer Settings ->Load Layer Group

This command is used to load a text file to update the layer group setting.

4.1.17 File -> Layer Settings ->Load Layer

This command is used to load a binary file to update the layer displaying and status,
such as color, fill, line style and visible, selectable setting.

4.1.18 File ->Load Image

The “Load Image” command is used to overlay GDS with image. The image could be
in TIF, JPEG, BMP or GIF format. Both GDS and image will reside in one window,
either GDS and image can be turned off.

In image definition list, “Image” list shows the image file name and the image ID
(number in bracket), “Lower-Left” list shows the lower-left corner’s coordinate value
of the image, “Pixel Size” list shows the pixel size of the image, and “Index” list shows
the ID number of the image.

User can modify the image by double click items. “Add” button is used to add a new
image setting, “Delete” button is used to delete the selected image, “Show/Hide” button
is used to set all images be turned on and off.

69
4 Menus

Figure 65 Load Image

Figure 66 Logo image overlay layout.

Sometimes, “Load Image” function can help to view details between layout and chip.
In this way, user can find potential issues in processing, for example:

70
4 Menus

Figure 67 “Metal.drawing” layer and a picture after chip processing.

By overlay GDS with image, user can find the potential shorts and opens in layout.
In the follow figure, potential shorts are marked with “ ”, potential opens are marked
with “ ”:

Figure 68 The potential shorts and opens in layout.

71
4 Menus

4.1.19 File->Read Only

Sometimes, when users open the design, they don’t want the design to be modified,
they only want to review or query the design.
Read Only can be used to specify the design to be read only, all creating and editing
commands such as Create Rectangle, Stretch, Switch Cell/IP Merge… are forbidden:

Table 4-1 Invalid Commands in “Read Only” Mode

Menu Commands
File New Layout, Save.
Create All commands in this menu will be invalid with read only mode.
Edit All commands in this menu will be invalid with read only mode.
Hierarchy Flatten Instance, Make Cell, Clone Master.
Multi-Boolean Operations, Switch Cell/IP Merge, IP Tagging,
Tools
Replace Text, Sealring Sizing.

4.1.20 File->ScreenShot

Sometimes, users want to take snapshot of the design and send it to co-workers in other
place or vice versa, so co-workers can pick up the work when users go home.
This command is used to take snapshot from Skipper layout window, just like take a
screen shot, the design window can be dumped to an images file. Cell name, snap region,
current time will be listed on top of the picture.

Figure 69 Screenshot

72
4 Menus

4.1.21 File->Exit

This command can be used to exit Skipper.

4.2 View Menu

View menu mainly be used for layout and GUI viewing, contains Previous View, Next
View, Fit, Fit To Edit, Zoom In, Zoom Out, Redraw, Open Cell, Hide Instance Cells,
Goto, Set Origin, Display Depth, Open Slave Window, Docks and Toolbars
command items.

4.2.1 View->Previous View

This command is used to return to the previous view.


Skipper keeps the last images you viewed in memory. It will cycle to the last view
when the current view is the first one.

4.2.2 View->Next View

This command is used to go forward to the next view.


Skipper keeps the last images you viewed in memory. It will cycle to the first view
when the current view is the last one.

73
4 Menus

4.2.3 View->Fit

This command can be used to fit the entire cellview in the layout viewer.

4.2.4 View ->Fit To Edit

This command adjusts the layout viewer to fit editing layout in EIP.

4.2.5 View->Zoom In

This command allows users to zoom in the cellview on a specific area.


The default behavior is moving the mouse in lower/upper right direction while pressing
RMB will also execute the command. User can change zoom in/out behavior in
“Options->Preference ->Display->Zoom” window in GUI.

4.2.6 View->Zoom Out

This command allows users to zoom out of the cellview on a specific area.
The default behavior is moving the mouse in lower/upper left direction while pressing
RMB will also execute the command. User can change zoom in/out behavior in
“Options->Preference ->Display->Zoom” window in GUI.

4.2.7 View->Redraw

This command is used to refresh the cellview display area currently shown in the layout
window.

4.2.8 View->Open Cell

This command can be used to choose a cell to open from the pull-down cell list.

Figure 70 View->Open Cell

4.2.9 View->Hide Instance Cells

This command can be used to hide the specified instance cells in cellview.

74
4 Menus

Figure 71 Hide/Show instance cells

4.2.10 View->Goto

This command can be used to paste the pairs of coordinates in the window and go to
the corresponding location in layout.
All pairs of coordinates will be recorded in the command window.

75
4 Menus

Figure 72 Go to the corresponding location in layout.


First, entry the pairs of coordinates; then click Goto to locate the points in layout.
Width means the view size of the location window, Clear All means to clear the record
of all pairs of coordinates, click Current means to specify and locate the center point
of current view.

4.2.11 View->View Transform

Sometimes, user wants to change the origin setting in layout cell view, or rotate the full
chip layout. View->View Transform can be used to achieve that goal
Click on each icon and then click on the Apply button to change layout view.
User can change origin coordinates and scale layout by inputting values for Offset and
Magnify.

Figure 73 Set Origin

76
4 Menus

set origin: lower-left

Figure 74 Set origin to Lower-Left

set origin: center

Figure 75 Set origin to Center

set origin: offset X/Y

Figure 76 Set origin to Offset X:50, Offset Y:30

77
4 Menus

4.2.12 View->Display Depth

These commands can be used to control the displaying depth. The default Max Display
Depth is 200; the default Min Display Depth is 0. Min Edit Display Depth means to
view the minimum display depth according to the current cell’s editing display depth.

Following examples show the layouts of different display depth setting:

Figure 77 Display depth “0” and “200”

4.2.13 Show/Hide Grid

This command is used to control whether to show or hide manufacturing grid.

4.2.14 View->Open Slave Window

This command can be used to display at most four layouts in side-by-side windows.
Users can randomly pick master and slave GDS files in one master window and at most
three slave windows. In the slave window, creating and editing commands will be
forbidden (such as Create Rectangle, Stretch, Copy, etc.). Commands related to
reviewing or querying are valid which are illustrated as follows.

Table 4-2 Valid Commands in Slave Window

Viewing Commands Querying Commands

78
4 Menus

“Zoom In/Zoom Out” by mouse Tap


“Select/Deselect” by mouse Property Object
Set Transform Ruler
Close Delete Rulers
Measure
Dimension
There are two modes provided: multi-window mode and synchronization mode.
In multi-window mode, master and slave windows are not influenced by each other.
In synchronization mode, the layout in slave window follows that in master window
completely, when zooming in or out, the command takes effect for the layout in both
windows.
When viewing LVL differences by PVE, the differences will be back-annotated to both
windows simultaneously.

Firstly, in current cellview, user can open at most three slave window by Open Slave
Window, then in slave windows, select a GDS file (which has been opened in Skipper)
one by one.

slave window 1

slave window 3 slave window 2

Figure 78 Open Slave Window

79
4 Menus

Figure 79 Select GDS files in slave windows

Figure 80 One master window and three slave windows

80
4 Menus

Set Transform can be used to control the transforming of the cellview, such as rotating,
magnification and offset. There are eight orients used in rotating, R0, R90, R180, R270,
MX, MY, MXR90 and MYR90. All rotations are in 90 degree increments in a counter-
clockwise direction around the origin of cellview. Magnify can be used to change the
scale factor of the entire design. The scale factor must be a positive float or integer
number. A number bigger than one will enlarge the layout. A number between zeror and
one will shrink the layout. Offset X and Offset Y can be used to shift the cellview.

Figure 81 Set Transform

Set Synchronization means to specify layout viewing synchronization between main


window and slave window.

Clear All Rulers means to clear all rulers in the slave window.

Switch this slave window layout with master layout。

Use this slave layout it own lsw layer to view instead of master layout lsw。

When users compare two layout database (Layout vs. Layout) to check the differences
between two layouts, or open ARGUS PVE Database (Run Argus PVE) to review
differences, usually they hope the error markers be highlighted in two layout cellviews
simultaneously with the same window region.

81
4 Menus

errors feedback in both window

Figure 82 Markers highlighted in two layout cellviews

Figure 83 Markers highlighted in two layout cellviews

4.2.15 View->Docks

82
4 Menus

The Docks menu can be used to set the dock windows, such as Cells window, Layers
window, Marker command window, Find command window, etc.

4.2.16 View->Toolbars

The Toolbars menu can be used to display the toolbars, such as Basic commands, the
Default layout view settings (contains Display Depth, Select Filter, the Brightness,
Gravity, etc.), and the Command Line.

Figure 84 Toolbars

83
4 Menus

4.2.17 View-> Summaries

This menu is for opening the “Summaries” window. If a cell or library has been
summarized in Cells list, the summary results will be shown in the “Summaries”
window.

4.3 Create Menu

Create menu mainly be used for creating objects, contains Create Rectangle, Create
Polygon, Create Path, Create Instance, Create Label, Create Text Polygon, Create
Circle, Create Ellipse, Layer Generation and Size command items.

4.3.1 Create->Create Rectangle

This command helps user draw rectangle on the current layer. Click left mouse button
and drag the cursor to another vertex of the rectangle, then release mouse button. User
can also click left mouse button on one vertex, then click again on another vertex, a
rectangle is drawn.

4.3.2 Create ->Create Polygon

This command can be used to create polygon.


To press the F3 key on board, Create Polygon form will pop up as shown in below:

84
4 Menus

Figure 85 Create Polygon


The pull down menu helps user to choose the snap mode, Left-Click to start drawing
polygon from first vertex, every time user clicks on left mouse button, a new vertex is
created, Double-Click will connect the last vertex to the first vertex automatically.

4.3.3 Create->Create Path

This command helps user draw path on the current layer. Click on left mouse button
starts the path drawing. A path will follow the mouse cursor. User can change the
direction of the path by clicking the left mouse button during path drawing. Double
click left mouse button terminates the path drawing. When invoking this command the
Create Path APT will appear at toolbar, if user clicks on the button ‘more’ or press the
F3 key on board, Create Path Form will pop up as shown in below.

Figure 86 Create Path

There are some path parameters in this form, such as width, snap mode, justification
mode, offset value and end type. When choosing variable to be end type, the begin
extension and end extension will be defined. User can also convert path to polygon and
pick path property.

85
4 Menus

4.3.4 Create ->Create Instance

This command helps user to create an instance from a library cell list.

Figure 87 Create Instance

Double click the cell name in the cell list, its name will show in the cell blank. The
library pull down menu help user choose cells from different open libraries.

User can create a cell array by inputting the number in the Row and Col blank. The
distance between cells in the cell array is decided by the value in the DX and DY blank.
This input value can be the Space value or Pitch value between adjacent cells. User
can also rotate or mirror original cell by choosing the Rotate option. The created
instance should exist and not be recursive.

Magnify means user can magnify and create instance in accordance with the proportion
of number in blank, if instance is hierarchy, the hierarchical subcell will be magnified
too. If the magnification number does not equal to 1, the color of number will be red.
Align means to specify the cursor position in the created instance when user adds the
instance into layout.
At origin means the cursor position same as the original instance’s origin.
86
4 Menus

Position means to put instance original at the specified point.


Show Content means showing contents during the instance creation.

Figure 88 Create Instance with “magnify” 1, 2 and 4

Figure 89 Create Instance with “magnify” 1, 2 and 4

87
4 Menus

4.3.5 Create ->Create Label

Figure 90 Create Label

In Create Label command form, you can input the label name, to specify the label
properties, such as Height, Rotate type, Font style and Align pattern.

Labels defined in a text file can be created automatically into the current cell at once.

To specify the label’s font size by inputting a number in the Height blank. Rotation and
mirror mode of the label is chosen from the pull down menu besides the Rotate tag.
From the pull down menu besides the Font tag, you can select the font style.

Position means to put label original at the specified point.

The Align region can be used to decide the cursor position in a label when you place
the label in layout, for example, if you want the cursor in the center of the whole label
names, check the center box in the Align window, the results will be shown as below:

Figure 91 Create Label: Align

There is another simple and efficient way to create label, labels defined in the spec file
88
4 Menus

can be created automatically into the current cell at once. The label property have been
specified in the spec file like the following items in order:

<label_name> <x-coordinate>
<y-coordnate>
<label_layer_number_name>
<label_layer_purpose_name>
[-height 0.2] [-orient R0] [-align CenterCenter] [-font Gui]

Below is an example of label spec text file.

iPad_PORIn_n 97.518 1212.247 ME1 drawing -height 40.0 -orient R0 -align CenterCenter -font Gui
iPad_Clk 96.044 1066.789 ME1 drawing -height 20 -orient R0 -align CenterCenter -font Italic
pad41 34.8 866.96 L5 pin

For the optional info, like -height, -orient, -align and -font, if not specified, Skipper
will use the default values.

iPad_PORIn_n 97.518 1212.247


ME1 drawing -height 40.0 -orient
R0 -align CenterCenter -font Gui

iPad_Clk 96.044 1066.789 ME1


drawing -height 20 -orient R0 -align
CenterCenter -font Italic

Figure 92 Create Label: From a Text File

4.3.6 Create ->Create Text Polygon

Sometimes, users want to add the project information of chip, such as all used layers,
modified version, etc. This command can be used to add polygon on chip which is
created from label.

89
4 Menus

Figure 93 Create polygon from text

In Create Text Polygon command form, you can input the label name, to specify the
label properties, such as Height, Rotate type and Align pattern.

To specify the label font size by inputting a number in the Height field.
Space option can be used to specify spacing between labels.
Rotate option can be used to specify rotation and mirror mode of the labels.
Snap To Grid option means all polygon corners will be snapped to grid.
Orthogonal option means all polygon edges will be in orthogonal direction.
Position means to put label original at the specified point.
If user input labels like “string(n:m:step)”, or “string<n:m:step>”, or “string[n:m:step]”,
the “Expand label” option is activated automatically. It means this function will create
a group of polygon text. For example, if user input A(1:5:1), click the mouse button in
the layout, drag your mouse, a group label A1, A2,A3,A4 and A5 is created. The relative
position of each label is decided by the Snap mode and the direction you drag your
mouse. Here, n means the start value of the label, m means the end value of the label.
Step means the step from the start value to the end value. User can input A(5:1:-1) too.
Then the first label would be A5, and A1 would be the last one.
Specify DX/DY is to set the spacing manually.

4.3.7 Create ->Create Circle

This command helps user draw circle on current layer. There are two modes to draw a
90
4 Menus

circle: Center-Radius mode and Boundary mode. The modes can be switched in the tool
bar or by pressing F3 key.

In Center-Radius mode, user could draw circle by clicking left mouse button to select
the center, dragging the cursor to desired radius and releasing mouse.
In Boundary mode, user could draw circle by clicking left mouse button to select the
corner of boundary and dragging the cursor to opposite angles of boundary, and
releasing mouse.

Skipper supports to convert circle to polygon. After clicked “Create->Circle”, an option


“Convert to polygon with edges” will appear in tool bar. If checked this option, the
created geometry will be a circular polygon. The edge number of the polygon is
determined by the value user set in “Convert to polygon with edges” option.

4.3.8 Create ->Ellipse

This command helps user draw ellipse on current layer. After selected this menu, user
could draw ellipse by clicking left mouse button to select the corner of boundary,
dragging the cursor to opposite angles of boundary, and releasing the mouse. The
created geometry is oval-shaped polygon. The edge number of the polygon is
determined by the “Convert to polygon with edges” option in tool bar.

Figure 94 Draw ellipse and set polygon edges

91
4 Menus

4.3.9 Create ->Layer Generation

Figure 95 Layer Generation


Layer Generation form will pop up after clicking on this command. Using this
command, multiple boolean operations on layers can be finished at one time. User can
specify one or more operations in order, deriving layer generated by the previous
operation can be used in the next operation.

The original objects will be unchanged; the result layer will be created on cells top level.
You can perform AND, OR, XOR and NOT boolean operations with two layers in all
cell levels, selected shapes or current cell. The setting of layer boolean operations can
be specified from one to more operations at one time.

Add button means to add a new operation, all operations will be specified and listed in
operation setting region. In All Cells mode, operation layer refers to the top layers
within every cell in current library. In Selected Objects mode, operation layer refers to
the selected layers. In Current Cell mode, operation layer refers to displayed levels or
all levels. Selection Rectangle means operation is effective within a region, defined by
dragging an area in layout, objects that are contained entirely (Contain) or overlapped
(Touch) with the selection box will be effective.

Skip Undo (faster) means not to allow Undo, which will speed up the operation.
Keep shapes means the original objects will be kept after the operation.
The vertices of the result polygon will be limited from '4' to '8000'. This limitation can
be defined in ‘Options->Preference: Maximum Vertices for generating polygon’,
with default value '4000'.

92
4 Menus

4.3.10 Create ->Size

Figure 96 Size

Size form will pop up after clicking on this command. Using this command, you can
perform sizing on layers, expand or shrink polygons on specified input layer. A positive
sizing value expands input layer, a negative sizing value shrinks input layer. The output
of sizing layer will be copied to other layer on cells top level. The original layers will
be kept unchanged if Keep shapes specified.

Customize allows user to specify different sizing ratio in left, right, bottom and top
directions separately. If there’re both negative and positive sizing ratio in different
directions, the tool will grow by positive sizing ratio firstly and then shrink by negative
sizing ratio.

In All Cell mode, output layer refers to the top layers within every cell in current library.
In Selected Objects mode, output layer refers to the selected layers. In Current Cell
mode, output layer refers to displayed levels or all levels. Selection Rectangle means
operation is effective within a region, defined by dragging an area in layout, objects
that are contained entirely (Contain) or overlapped (Touch) with the selection box will
be effective.

Skip Undo (faster) means not to allow Undo, which will speed up the operation.
Keep shapes means the original objects will be kept.
The vertices of the result polygon will be limited from '4' to '8000'. This limitation can
be defined in ‘Options->Preference: Maximum Vertices for generating polygon’,

93
4 Menus

with default value '4000'.

4.4 Edit Menu

Edit menu mainly be used for editing objects, cells and layers, contains Undo, Redo,
Property, Stretch, Move, Copy, Delete, Merge, Chop, Yank, Paste, Align, Flip,
Rotate, Reshape, Split Array, New Cell, Delete Cell, Rename Cell, Duplicate Cell,
Transform Cell, Add Layers, Copy Layers, Move Layers, Delete Layers, Select All,
Deselect All, Select, Line Select and To Object command items.

Figure 97 Edit

4.4.1 Edit->Undo

This command helps user withdraw the last operation.

4.4.2 Edit->Redo

This command executes the command that is just cancelled.

4.4.3 Edit->Property

This command can be used to edit the properties of selected objects, such as objects
layer, path width, instance property, etc.
The common function is used to edit the property of a group of selected objects.
94
4 Menus

Figure 98 View Property

Once one or more objects are selected, this command will trigger the Property form.
The information of the selected objects displayed in the Property form. Content of the
form depends on the type of selected object(s). Skipper currently supports viewing
properties of six types of objects, includes rectangle, path, polygon, circle, label and
instance. Information associated with objects properties has been shown below:

Table 4-3 Objects Properties Information

Information Associated With Objects Properties


bounding box of instance, rectangle, polygon, path and
BBox
label. coordinates of the two corresponding vertex of BBox
Cell Path the editing path from top viewing cell, even in EIP mode.
Ref Lib library that instance belongs to
Cell instance name
rotate type for instance and label, among R0, R90, R180,
Rotate R270, MX, MY, MXR90, MYR90, ANGLE and
FLIPANGLE
Magnify scale factor of instance.

95
4 Menus

the magnify value should be integers or a positive fraction,


for example, 2, 3, 0.5, 1.5, etc.
PositionX/Y original of instance and label
Row/Col rows and columns of cell array
DY/DX distance between instances in cell array
Properties: Type for GDS/OASIS property type
Properties: Attribute property attribute name defined by user
Properties: Value property attribute value defined by user
Layer the layer of rectangle, polygon, path and label
Left/Right/Bottom/Top x-y coordinates of the boundary of the rectangle
Points a set of coordinates that define vertices of polygon
Center-line Points a set of coordinates that define vertices of path center line
Width width of path
End type end type of path
BeginExt/EndExt begin/end extension value for path, if ‘End Type=variable’
Label label text name
Height label text height
Keep size Keep size when changing width and height of rectangle
Center X/Center Y center coordinate of rectangle
Set center enable to set center coordinate
Font label text font
origin position of the label with respect to the label
Align
position

Examples of the property forms have been shown in below, respectively.

Please note, when instance property window is activated, there is an ‘EIP/Descend’ pull
down menu on the right top corner. User can use the menu to enter EIP mode. ‘Descend’
makes the instance fit in the viewer. ‘EIP’ keeps the current view so that user can see
other objects around the instance. If multiple objects are selected, ‘Prev/Next’ buttons
appear on the form and enable users to switch among properties of selected objects.

Switch to Common function by clicking common button after select one or more objects.
User can specify the common property for selected objects.

96
4 Menus

Figure 99 Property&Common of rectangle

Figure 100 Property&Common of path

97
4 Menus

Figure 101 Property&Common of polygon

Figure 102 Property&Common of label

98
4 Menus

Figure 103 Property&Common of instance

4.4.4 Edit->Stretch

This command stretches the edge of a polygon. Click on left mouse button, the chosen
edge will turns to red color. User drags the edge to a new position, double click left
mouse button. Then the stretch is done. Stretch command invokes the Stretch APT at
toolbar, if user clicks on the button more or press the F3 key on board, Stretch form
will pop up as shown in below.

Figure 104 Stretch

When choosing whole objects, stretch operation is similar with move operation.
When selecting the object edges, stretch supports three types of mode, Free, Lock
Angle and Lock Shape.

Free means to drag objects to any direction.

99
4 Menus

Lock Angle means that relevant angle will not be changed.


Lock Shape means that both the relevant shape and the relevant angle will not be
unchanged. Here, ‘relevant’ means those edges and corners that are chosen.

User can also specify the precise movement offset by the moving coordinates value in
the X and Y fields, then click the Stretch! button to perform stretch operation. Snap
option will be ignored in this mode, user cannot change layer or rotate when stretching.

4.4.5 Edit->Move

This command helps user to move a rectangle, polygon, path, text or instance (array).
User can set the reference point for moving. Click on the object and move the cursor,
the chosen object will follow the cursor to the new position, click on left mouse button
again, the move operation is done. Move command invokes the Move APT at toolbar,
if user clicks on the button more or press the F3 key on board, Move form will pop up
as shown in below:

Figure 105 Move

User can choose the Snap and rotation (Rotate) mode in this form.

Offset option (“X Offset” and “Y Offset”) means to shift the moved objects along with
its origin, when inputting number (distance number value) in the X and Y fields then
clicking the Move! button, the selected objects will be moved directly on the precise
offset. In this mode, snap and rotate options will be ignored.

Align Selection Area (“coordinate X” and “coordinate Y”) option can be used to
specify the corner (LowerLeft, LowerRight, UpperLeft or UpperRight) of selection
area to the specified coordinates, when inputting number (coordinate X/Y) in the X and
Y fields then clicking the Move! button, the selected objects will be moved directly on
the precise coordinates. In this mode, snap and rotate options will be ignored.
When the Change layer option is selected, after moving, the selected objects will be
changed to the user specified layer.

100
4 Menus

4.4.6 Edit->Copy

This command helps user to copy (includes copy array) a polygon, a path, an instance
or a cell. After objects be selected, move the cursor to the another place and then click,
a copy of the objects will be placed in the cellview. Copy command invokes the Copy
APT at toolbar, if user clicks on the button more or press the F3 key on board, Copy
form will pop up as shown in below.

Figure 106 Copy

User can choose the Snap mode and rotation (Rotate) type in this form. In Array mode,
Rows and Cols can be specified the row/col number of the array, X-pitch and Y-pitch
means the X-Y pitch of the array. In Auto Arrange mode, user can specify the X-Y
pitch of the array manually.

Offset option (“X Offset” and “Y Offset”) means to shift the copied objects along with
its origin, when inputting number (distance number value) in the X and Y fields then
clicking the Copy! button, the selected objects will be copied directly on the precise
offset. In this mode, snap and rotate options will be ignored.

Align Selection Area (“coordinate X” and “coordinate Y”) option can be used to
specify the corner (LowerLeft, LowerRight, UpperLeft or UpperRight) of selection
area to the specified coordinates, when inputting number (coordinate X/Y) in the X and
Y fields then clicking the Copy! button, the selected objects will be copied directly on
the precise coordinates. In this mode, snap and rotate options will be ignored.

When the Change layer option is selected, after coping objects, the selected objects
will be copied to the specified layer.

101
4 Menus

4.4.7 Edit->Delete

This command helps user to delete a chosen object.

4.4.8 Edit->Merge

This command helps user to merge shapes on same layer.

To merge objects on selected shapes.

Figure 107 Merge

4.4.9 Edit->Chop

This command helps user chop a selected object or a group of objects, the shape of
objects should be rectangle, polygon, path. When invoking the Chop command and
pressing F3 on key board, the Chop form will pop up as shown in below.

Figure 108 Chop

102
4 Menus

Chop Shape has three mode: Rectangle, Polygon and Line. Rectangle and Polygon
mode means to drawing box split the selected objects to inner and outer parts. Line
means to drawing line split the selected objects to left and right parts. In Rectangle and
Polygon modes, if choosing Remove Chop, all in the inner part in drawing box will be
deleted after chop operation.

Treat path as polygon means to path will be converts to polygon after chopping.
Deselect all shapes on command start means to unselect all shapes when starting
Chop command.

4.4.10 Edit->Yank

Yank can be used to yank objects by drawing yank box in layout. Pre-select objects and
then invoke yank command also can accomplish yank operation.

4.4.11 Edit->Paste

After finishing yank operation, invoke paste command to paste the cut objects.

4.4.12 Edit->Convert To Polygon

Convert To Polygon can convert selected pattern to polygon, the flow is as following:
1) Select a pattern in layout
2) Choose the menu Edit->Convert To Polygon

4.4.13 Edit->Align

Align can be used to align objects or shapes in a cellview. You can align objects to
either a point, an edge, or another object.

When aligning objects in a chain, the entire chain gets aligned with the selected
object. You can add objects to an already aligned group.

If nothing is selected in the cellview, the Align command prompts you to select one or
more objects. You can area select or use the Shift + left mouse button to select additional
objects. Use the Backspace key to reselect objects. After selecting objects, you should
specify the reference point/edge within selected objects to align.

Aligning Objects to a Point


Start Align command, select shapes then specify reference point/edge within selected
objects to align to the target reference point. If you specify a spacing value for point
alignment, the first object always overlaps the reference point and the spacing value is
103
4 Menus

used to align the remaining objects. After alignment, all selected shapes are deselected.
If you preselect object, then do align, after alignment, all preselected objects are kept
selected. The detailed steps are as following:
1. Select Eidt->Align.

2. Select point/edge of object or an object.

3. Select reference point/edge within selected objects. You can click Backspace key to
reselect reference.

104
4 Menus

4. Specify the target aligned point. You can click Backspace key to reselect target point.
Except for the point from shape, the target point can be any point in layout.

5. Click on the target point to accomplish align operation. The align result is shown as
following.

105
4 Menus

Aligning Objects to an Edge


Start Align command, select shapes then specify reference point/edge within selected
objects to align to the target reference edge. If you specify a spacing value for point
alignment, the first object always overlaps the reference point and the spacing value is
used to align the remaining objects. After alignment, all selected shapes are deselected.
If you preselect object, then do align, after alignment, all preselected objects are kept
selected. An example is as following:

Aligning Objects to Axis


Selected objects can be aligned to specified Axis. An example is as following:
1. Start Tools->Align command, enter F3 to invoke align command form
2. Click Target Axis to choose Vertical/Horizontal, then move mouse into layout, an

106
4 Menus

yellow axis is appeared. Move the axis to intended where and then left click to
confirm.

3. Select the fingers to align.

4. Specify the reference point/edge within the selected objects and left click on it to
complete align operation.

107
4 Menus

Copy Reference
Start Align command, enable option Copy Reference, and then full select objects to
align. Except for aligned objects, the selected objects are kept at origin as well.

Spacing
If you specify a spacing value for point alignment, the first object always overlaps the
reference point and the spacing value is used to align the remaining objects.

Align All Objects


The object with the reference edge moves to align with the target edge. All the
objects in the reference set move by varying distances to align to the target edge,
exactly as the reference edge. The relative spacing amongst the reference set
objects is lost.

4.4.14 Edit->Flip

Select an object or a group of objects in the layout, using Flip function to flip objects
to X or Y axis.

4.4.15 Edit->Rotate

Select an object or a group of objects in the layout, using Rotate function to rotate
objects clockwise or counterclockwise.

4.4.16 Edit->Reshape

Reshape form will pop up after clicking on this command. Using this command, user
can do AND, OR, XOR and NOT boolean operations with selected shapes and
specified region. In this operation, the original objects can be replaced, or the new
shapes copied to other layers.

108
4 Menus

There are two operation methods: Rectangle and Polygon. The Polygon method also
has a pull-down menu which support five polygon modes: anyAngle, diagonal,
orthogonal, XFirst and YFirst. The result of reshape operation will be stored with two
modes: Replace and New Shape. In Replace mode, the result shapes will overwrite the
original shapes in its layer or specified layer. In New shape mode, the result shapes will
be created in the original layer of shape or in the specified layer.

The vertices of the result polygon will be limited from '3' to '8000', this limitation can
be defined in ‘Options->Preference: Maximum Vertices for deriving polygon’, with
the default value '4000'.

Figure 109 Reshape

Examples of reshape operation with ‘and’, ‘or’, ‘xor’ and ‘not’ are illustrated below:

Example 1: Operation: AND Method: Rectangle

Figure 110 Store: Replace, Layer 32 0

109
4 Menus

Figure 111 Store: New shape, Layer 32 0

Example 2: Operation: OR Method: Rectangle

Figure 112 Store: Replace, Layer 32 0

Figure 113 Store: New shape, Layer 32 0

Example 3: Operation: XOR Method: Rectangle

Figure 114 Store: Replace, Layer 32 0

110
4 Menus

Figure 115 Store: New shape, Layer 32 0

Example 4: Operation: NOT Method: Rectangle

Figure 116 Store: Replace, Layer 32 0

Figure 117 Store: New shape, Layer 32 0

4.4.17 Edit->Split Array

Split Array can be used to split an array into instances.

4.4.18 Edit->Cells->New Cell

New Cell can be used to create a new cell in one library.


Users can choose the library in which you want to create a new cell and entry a valid
name in Cell Name blank.

111
4 Menus

Figure 118 New Cell

4.4.19 Edit->Cells->Delete Cell

Delete Cell can be used to delete cells in one library.


Double click on the cell name in the left column one by one, or click From File button
to designate an existing text file directly, cells in the right column will be deleted after
click Delete button.

Figure 119 Delete Cell

4.4.20 Edit->Cells->Rename Cell

Rename Cell can be used to rename a cell to another in library.

112
4 Menus

Figure 120 Rename Cell

4.4.21 Edit->Cells->Duplicate Cell

Duplicate Cell can be used to copy a cell to another in library. If the duplicated cell
name is already existed in library, the duplicated cell can overwrite the existed cell.

Figure 121 Duplicate Cell

4.4.22 Edit->Cells->Transform Cell

Sometimes, users want to change the cell original, this command can be used to
transform the whole cell all at once, to set the cursor position to the origin point.

original set the cell center to origin final


Figure 122 Set the cell center to origin

113
4 Menus

original

to transform the lower left to origin

final
Figure 123 Set the cell lower left to origin

cell frame

original to transform lower left of frame to origin final


Figure 124 Set the lower left of cell frame to origin

4.4.23 Edit->Layers->Add Layer

This command can be used to create a new layer in the current library:

114
4 Menus

Figure 125 Add Layer

In the ‘Add Layer’ command form, user can choose a new layer number and datatype
number, and specify the new layer name.

4.4.24 Edit->Layers ->Copy Layer

This command invokes the copy layer setup window, as shown in below. It helps user
to copy all the objects in one layer to another layer.

Figure 126 Copy Layer

First, user needs to choose the original layer from From Layer. Then choose the
destination layer from To Layer or entry the final layer in New Layer field. At last,
should specify other options with the copy layer operation.
Copy To can be used to specify how the copy is done.
Origin Cell only copies the object within its original cell.
Current Cell copies those objects into current viewing cell.
All Levels specifies the deepest level in the hierarchical structure will get
115
4 Menus

involved in the copy operation.


Display Level specifies the objects under current display level will not get
involved in the copy operation.

All Cells In The Library can be used to specify copy operation takes effect for all the
cells. This option takes effect with the Cell option together.

4.4.25 Edit->Layers ->Move Layer

This command invokes the move layer setup window, as shown in below.

Figure 127 Move Layer

Options in this widow have the same meaning with those in the copy layer setup window.
It moves all the objects into the destination layer, but do not leave a copy in the original
layer.

4.4.26 Edit->Layers ->Delete Layer

This command deletes all objects on the selected layers.

When clicking on this command, a message window will pop up that reminds user undo
is not available. ‘Yes to All’ means to delete all objects with selected layers. ‘Current
Cell’ means to delete all objects with selected layers only in the current cell.

116
4 Menus

Figure 128 Delete Layer

4.4.27 Edit->Select

Click left mouse key to select object. Press the 'Shift' key and double click left key to
select all the objects which are located at current point. Press the 'Ctrol' key and double
click left key to deselect all the objects which are located at current point.

4.4.28 Edit->Select->Select All

This command selects all the objects in the window.

4.4.29 Edit-> Select->DeSelect All

This command dismisses the select condition on the selected objects. Right-click can
stop 'select all' action.

4.4.30 Edit->Select->Select

This command selects the objects in an area.

4.4.31 Edit->Select->Line Select

This command selects the shapes or edges which crossed by select line.

4.4.32 Edit->Select->To Object

This command selects the objects that edge or corner be selected already.

117
4 Menus

to select this objects

Figure 129 select to object

4.5 Hierarchy Menu

Hierarchy menu mainly be used for editing in hierarchy manage, contains Edit In
Place, Descend, Return, Show EIP Tree, Flatten Instance, Make Cell and Clone
Master command items.

Figure 130 Hierarchy memu

4.5.1 Hierarchy->Edit In Place

After EIP command invoked, user can go into the corresponding hierarchy level by
clicking the left mouse button on the highlighted object. If the highlighted object is an
instance of other cell, Skipper will lead user to the master cell. Editing in the master
cell affects all the instance cells. After EIP to instance, select the shape on top level to
run EIP, skipper will return to top level.

Click ‘Space’ to switch among the overlapped objects. Only the shapes which are
visible can be operated by ‘EIP’. EIP highlight Box is shown intersection with window
box after zooming EIP cell.
118
4 Menus

Figure 131 EIP highlight Box by intersection with window box

Run EIP command on top cell and then do edit commands on EIP cell, skipper pops up
the following form.

119
4 Menus

•Edit in cell: the EIP cell is modified.


•Edit in instance: the current EIP instance is cloned as a new cell.
•Cancel: cancel last edit action.

Edit EIP cell and then leave it without saving, one form pups up to confirm whether
leave EIP cell.

4.5.2 Hierarchy->Descend

This command leads user down to the next hierarchy level of current cell. Only the
shapes which are visible can be operated by ‘Descend’.

4.5.3 Hierarchy->Return

This command leads user back to the previous hierarchy level.

4.5.4 Hierarchy->Return To->Return One Level

This command leads user back to the last hierarchy level.

4.5.5 Hierarchy->Return To->Return One Level with Instance

Selected

When ‘EIP’ or ‘Descend’ commands lead current cell down to the next hierarchy level,
this command can lead back to the last hierarchy level with the current instance selected.

4.5.6 Hierarchy-> Return To->Return To Top

This command leads user to the top level of the entire hierarchy structure.

120
4 Menus

4.5.7 Hierarchy->Show EIP Tree

The EIP Tree window pops up after clicking on this menu command. In the window,
the hierarchy tree of current cell is displayed.

Figure 132 Hierarchy Tree

4.5.8 Hierarchy->Flatten Instance

This command helps user to flatten selected hierarchical instance. When invoking this
command, the Flatten Instance form will pop up as shown in below. There are three
modes to flatten, user can only flatten one level or flat current displayed levels or flatten
layout to specified levels.

Figure 133 Flatten Instance

121
4 Menus

4.5.9 Hierarchy->Make Cell

Figure 134 Make Cell

The Make Cell command is used to copy selected objects in the current cellview into
a new cell. Set Origin means the new cell’s origin will be set by the cursor, or same
with the selected objects origin. Keep objects means the selected objects in the current
cellview will be copied into a new cell, original objects are unchanged.

After making cell, the new cell will be added in the library cell tree immediately.

4.5.10 Hierarchy->Clone Master

This command can be used to clone the selected instance to a new cell in library.

122
4 Menus

to clone‘ram_mux8’to‘ram_mux8_side’

Figure 135 Clone Master

4.5.11 Hierarchy->Hierarchy Delete

This command can be used to delete objects in the whole displayed hierarchy level.
This command is forbidden with EIP. Start the command, a Hierarchy Delete button is
generated. Choose objects and then click this button to do hierarchy delete, also can run
it with command:
skiHierDel -delete

The edited instance which referred not only one time will be renamed. Edit some same
instances in top cell at one time, these instances will be renamed with the same cell
name.

As to instance array, once run hierarchy delete operation, the instance array will be split.
The instances of array which are edited at one time will be renamed with the same net
name.

4.6 Query Menu

Query menu mainly be used for probing, searching and measuring, contains Tap,
Probe Object, Ruler, Delete Rulers, Clear All Rulers, Measure, Dimension, Find,
Geometry Statistic, Marker, Mark Cell, Summmary Cell, Trace/Short and P2P
123
4 Menus

command items.

4.6.1 Query->Tap

This command can be used to show objects property quickly wherever the mouse cursor
locates. It enables users to select an object displayed in the layout viewer hierarchically,
click on objects will set the objects layer to the current layer at once.

When several objects are overlapping, multiple-object selection is not supported. Tap
on the space bar serially to active circular pre-selection, then left-click to active the
object property. The layer of the selected object will be jump to in the layer palette,
except that the selected object is an instance.

124
4 Menus

objects property be showed at the top


left corner of the layout window.

Figure 136 Tap Objects Property

4.6.2 Query->Probe Object

This command is used to view the property of the selected object. A tip will show the
instance information of the object, highlight the border of the instance when mouse
points at objects. Clicking on objects will pop up the properties information window.

Information associated with objects properties has been shown in Table 4-3 Objects
Properties Information

When invoking this command, the property window will pop up and show information
of the selected object as follows:

125
4 Menus

Figure 137 Details of Tap Rectangle

Figure 138 Details of Tap Path

126
4 Menus

Figure 139 Details of Tap Polygon

Figure 140 Details of Tap Instance

127
4 Menus

Figure 141 Details of Tap Label

4.6.3 Query->Ruler

Figure 142 Query->Ruler

This command can be used to create rulers to display the distance between objects in a
cellview. Invoking the command will trigger a toolbar for setting ruler options, or pops
up a setup window by pressing keyboard F3. This command can also be used with EIP
mode and in slave window.

Snap Mode means to specify the way to draw the ruler, either anyAngle, diagonal,
orthogonal, XFirst or YFirst.
128
4 Menus

Multi-Segment means to tag a multi-segment ruler label by consecutively clicking


left mouse button. Using Backspace key to cancel the last added segment and
double-clicking left mouse button to finish measuring.

Figure 143 Ruler: Multi-Segment

Keep Ruler means to keep measure tags in layout viewer after the measurement.
Show dx/dy is used to control whether to show dx and dy value after measurement.

4.6.4 Query->Delete Rulers

This command can be used to delete a number of measurement tags, by clicking at the
tag. It will be deleted one by one. By dragging a selection box, all tags which inside and
touched the selection box will be deleted at once. In EIP mode, Delete Rulers is also
valid with current level and EIP level. This command can also be used in slave window.

4.6.5 Query->Clear All Rulers

This command can be used to clear all measurement tags added in the layout viewer. In
EIP mode, Clear All Rulers is only valid in EIP level. In slave window, this command
is also valid.

4.6.6 Query ->Measure

This command can be used to measure distance between two edges, two corners, one
edge and corner, the measure tags will be added as shown as follows:

129
4 Menus

Figure 144 Measure: edge to edge & corner to corner

Press F3 can pop up the command form, option Only from mouse point means the
measure path be depend on the mouse location, option Show center point means only
to show the coordinate values of center point that between the two measure points.
Backspace can be used to cancel the last measure point, allows user to re-select the
second geometry. Show dx/dy is used to control whether to show dx and dy value after
measurement.

When start measure, the coordinates of start and end points will be shown and
highlighted. Backspace can be used to cancel the end measure point, mouse-click to
confirm the measure. This measure process will be illustrated as below:

130
4 Menus

the start point

the end point

two measure points

click to confirm the measure

Figure 145 Measure: from the start point to the end point

4.6.7 Query ->Dimension

This command can be used to auto-snap edges and corners along with diagonal or
orthogonal directions, adding dimensions between edges or corners. Mult-Dimension
means multiple dimensions be tagged between every two edges or corners. Snap option
is for setting snap mode. There’re 2 snap modes: “diagonal” and “anyAngle”. In
“diagonal” mode, the dimension will auto adjust to 45 degrees diagonal if measuring 2
edges whose dimension is in any angle. In contrast, in “anyAngle” mode, the dimension
will stay in any angle.

131
4 Menus

Figure 146 “Multi-Dimension” and “Dimension”

4.6.8 Query->Figure Measure

This command is used to measure length of edge, dimension of parallel edge and angles
of the selected shape. The edge length is displayed in red color, dimension is in yellow,
and the angles in blue. To show the values more clearly, user can set the value visible
by checking the corresponding box.

Figure 147 Measure a figure to get figure’s dimensions and angles


132
4 Menus

4.6.9 Query->Find

This command can be used to find objects. Three find object modes Geometry,
Instance and Text can be used to find geometry, instance or text separately. Options
enable user to find objects in all cell view, the current screen or defined area. The find
results will be highlighted in cell view, which can be kept till option Clear or Show All
Results is activated. This feature will benefit user when they want to detect the find
objects, such as Query->Measure, etc.

Figure 148 Query->Find

Find Region option enables to set the search range.


Find Level option enables to set the search with hierarchical level.
View option can be used to set the find results showing pattern.
Clear option means to clear the current highlighted object.
Table 4-4 Options in Find

Options Description
Find Region: Cell To search in the current cell.
Find Region: Screen To search in the current window, the current cellview
boundary coordinates will be showed in the entry line
automatically.

Find Region: Area To search in one region according to drawing rectangle area
in the layout. User needs to draw a rectangle region manually
in the layout cellview. It supports to entry or edit the
133
4 Menus

coordinates value of the find region. The input format is: x-


coord of lower left, y-coord of lower left, x-coord of right top,
y-coord of right top. For example: (53.14, 123.05, 53.85,
123.565).
All drawing will be recorded in the pull down list, convenient
for user to select later:

Find Level: Current To search in the current cell.


Cell
Find Level: To To search within the specified depth, for instance mode, its
Level passed through instances will be found and showed also.
View: Keep View Means not to change the view area even user clicks on Prev
or Next button.
View: Pan Only Means to shift the view area but not zoom to the proper size
of each highlight object.
View: Pan & Zoom Means to zoom to the highlighted view with the Zoom Factor.
Zoom Factor To specify the zoom size, the range is “1~100”.
Show All Results To show all objects which be found.
Keep Results Enable this option then run Find, the results of Find are not
cleared until run next Find operation.
Show Highlight Highlight the result in current cellview
Clear In Current To clear the current highlight in current cellview.
Cell
Clear In All Cells To clear the current highlight in all cellview.

There are three find types in Object Filter:


Geometry find the geometry according to the setup condition.
Instance find the instance according to the setup condition.
Text find the text according to the setup condition.

Find Geometry:

134
4 Menus

Figure 149 Find->Geometry

Geometry Type Filter: User can decide which type of shapes needs to be located.
Polygon, rectangle and path are the most useful three types of shapes. User can
even locate text when doing geometry find.

Layer(s): specify the layer number and purpose. If Layer(s) is not provided, then
datatype “0” is selected by default. For example “10” means to find objects on layer
number “10”, layer purpose number “0”, and “10.2” means to find objects on layer
number “10”, layer purpose number “2”. Multiple layers should be separated by
space bar, for example “6 36 37.6”, etc. If nothing is input here, the geometry will
be found in all layers.
By Property: find the layers with the specified property value.
Case Sensitive: case sensitive when matching the layer property
Wildcard match: use wildcard to match the layer property.
RegExp match: use regexp to match the layer property.
Find Instance:

135
4 Menus

Figure 150 Find->Instance

Cell Name(s): specify the cell name. If no cell name is provided, all the instances
will be found. Wildcard “*” and “?” are supported. “*” denotes multiple characters
while “?” denotes one. When using “*” and “?” as wildcard, please set Wildcard
Match to valid in Instance Filter.
By Property: find the instance with the specified property value.
Case Sensitive: case sensitive when matching cell name or cell property
Wildcard match: use wildcard to match the cell name or cell property
RegExp match: use regexp to match the cell name or cell property
Instance Filter includes several options to control the criteria for finding
1) By Depth:user could specify a hierarchy depth, only those instances has
equal or larger hierarchy levels could be found.
2) Highlight Name: When By Depth option is checked, user could check this
option too. The instance name will be highlighted for the instances found.
3) Count Array: means to find array also. If it is not checked, array will be
ignored. In the result, array will be taken as one instance. The total instance
number after flatten the array is also reported.

136
4 Menus

Figure 151 Find->Instance By Property

By Depth:

Figure 152 Find by Depth

137
4 Menus

Find Text:

Figure 153 Find->Text

Layer(s) can be used to specify the layer number and purpose, same as that in the
Geometry, please refer to it.
String(s) can be used to specify the label which you want to find. If nothing is
provided, all the labels will be found. Wildcard “*” and “?” is supported. “*”
denotes multiple characters while “?” denotes one. When using “*” and “?” as
wildcard, please set Wildcard Match to valid. Put texts enclosed in double quotes,
the texts with spaces in it can be found also, mark “\” be used to cancel mark “*”,
example label a b “a bc” “a\”a b\”b” d e will be found with “String(s): “a, b, a bc,
a”a, b”b, d, e””.
Height can be used to specify the text height, the search criteria supports “=
=”, ”<=”, ”>=”, ”!=”, "<” and “>”.
By Property means to find the label with the specified property value
Case Sensitive means case sensitive to match txt string or property
Wildcard match means to use wildcard symbols to match label string or property
RegExp match means to use regexp symbols to match label string or property

4.6.10 Query->Geometry Statistic

User wants to find shapes not only by their location and type, but also by filtering some
of them by their width, area, etc. Geometry statistic is used to achieve that purpose. The
results can be highlighted in layout, and the found shapes can be sorting according to
the dimension value.
138
4 Menus

Through menu Query->Geometry Statistic, user can open the set up window. The
results are shown in this window too.
Region: First, user need to specify the searching region by clicking on the Select button.
Layers: Second, user need to specify the searching layers. Click on the Select button,
all the visible layers are filled into the blank automatically. User can input the layer
name or lpp (layernumber.datatype) into the blank manually.
Hierarchy: User can specify the searching hierarchical depth.
Anchor Shape: Anchor shape is used to calculate space. User must specify an anchor
shape, and the space value is the minimum space value between the anchor shape and
other shapes around it.
Filter: Filter is used to specify the dimension constraint.
After the conditions are all set, click on the Apply button to search for the shapes. The
results are shown as a table. Click on column title means sorting the results according
to the value.

Figure 154 Geometry statistic window

Figure 155 Filter condition set up

139
4 Menus

In the results window, click the right mouse button can invoke the pop up menu. You
can choose set all the found shape visible or invisible, or set single shape visible or
invisible.

Figure 156 Set the results visibility and zoom to the selected results

By default, the shapes’ width, area, enclosure area and space values are all listed in
the table. Beside each result ID, user can set the result visibility by choosing the tick
option. All the columns can be open or close by click right mouse button on the
column title.

Figure 157 Choose which column should be shown in the result table

By choosing an anchor shape, and setting the space value criteria, user can filter out
some shapes in the layout. The anchor shape is selected by clicking the left mouse
button on the object in the layout. The found objects are highlighted in orange color in
the layout.

140
4 Menus

Figure 158 Objects found with the specified space value to the anchor shape

Skipper can also check the enclosure area of the pattern. In the specified region, only
the shapes which enclosed area meets the filter condition will be highlighted in the
layout.

Figure 159 Objects that the enclosed area meets the filter condtion.

4.6.11 Query->Marker

Sometimes, user wants to highlight or annotate in their layout at specified position.


Query->Marker can be used to insert a number of markers at given X-Y coordinates.

Four types of marker are supported: point, line, box and polygon. Markers can be
created in layout, or loaded from a file. The height of marker can be shown in dbu or
141
4 Menus

pixel.
There are eight columns in marker record tab, and all the columns can be customized
by clicking-right on column name.

Figure 160 marker

Table 4-5 Arguments in Marker

Options Description

to add markers at the specified cursor position on canvas.

can not add marker by cursor.


Save save the current markers listed in marker table to a file.
Load load markers from a file and add markers automatically.
Draw marker in
to hide markers added in other cells.
current cell only
Transform markers to attach marker to figures and keep their relative position
in Descend Cell with ‘Descend’ and ‘Return’.
Color&Fill to edit the color and fill of marker.
Snap to specify the snap mode for line, rect and polygon.
Coordinates to show or hide markers’ coordinates.
Name to show or hide markers’ name.
142
4 Menus

Name Height to specify the height of markers’ name


Fixed to display markers with fixed pixel value.
to specify the max marker number which display on current
Max name to draw
canvas.
Box name: center to display the marker on the center of rectangle.
Box name: corner to display the marker on the left-down of rectangle.
type coordinates on blank tab and click Add button to add
Add markers, the coordinates can be separated by blank, comma or
parentheses.
Point mode to add markers one by one by click at points in cellview.
to add markers by drawing line. It supports anyAngle,
Lines mode
diagonal and orthogonal drawing type.
to add a rectangle of marker in layout, markers locate at the
left-down of the rectangle, markers record the first mouse
Rect mode
point and the last mouse point when drawing rectangle. It
supports anyAngle, diagonal and orthogonal drawing type.
to add an ellipse of marker in layout Copy Coordinate then
specify the r1 and r2 value which are shown on top-right of
layout. Click on layout to add ellipse marker. Also ellipse
marker can be generated by loading file. The ellipse marker
Ellipse mode
format defined in file is:
Name (x1, y1, x2, y2)
The coordinate (x1, y1) is left-bottom point of ellipse’s bbox.
The coordinate (x2, y2) is top-right point of ellipse’s bbox.
to add a group of markers by means of the same way as
Polygon mode creating a polygon. It supports anyAngle, diagonal and
orthogonal drawing type.
Goto By: Pan go to the marker with pan mode.
Goto By: Zoom go to the marker with zoom mode.
Zoom scale
to specify the zoom scale.

to specify the find/filter key word on left blank tab, enter


‘Enter’ to find/filter marker by name, keyword supports
wildcard in default.
to clear the find/filter keyword.

to use regular expression find/filter by enable this option.

to look the find result forward or backward.


EDText Offset X/Y to specify the offset X/Y for loading EdText.

143
4 Menus

EDText: Load to load EdText file.

Skipper can load three format marker file:normal maker、ext marker、EL marker。
Example of normal maker file is shown as below

‘Pt’ means one point marker which added by Point pattern.


‘L’ means a pair of markers which added by Line pattern.
‘B’ means the opposite of a pair of point markers which added by Box pattern.
‘Po’ means a group of markers which added by Polygon pattern.

Example of ext marker is shown as below, the marker name can be unspecified:

Example of EL marker is shown as below, the first coordinate is left x coordinate of


ellipse’s bbox, the second coordinate is right x coordinate of ellipse’s bbox, the third
coordinate is bottom y coordinate of ellipse’s bbox, the fourth coordinate is top y
coordinate of ellipse’s bbox :

User can edit markers result by right-clicking on the marker.


Copy Coordinate to copy coordinates.
Zoom/Pan to zoom/pan marker result on layout.
Show All to show all markers on layout.
Hide All to hide all markers on layout.

144
4 Menus

Select All to select all markers results on marker dock.


Delete to delete selected markers on layout.
Clear to delete all the markers on layout.

4.6.12 Query->Mark Cell

This command is used to mark specified cells and highlight them in all cellviews.
The color button is used to set different colors to marked cells. Ten different colors can
be selected in turn automatically. The marked cells will be shown using marked colors
in cells dock.

Figure 161 Mark cell

145
4 Menus

Figure 162 Mark Cell form

4.6.13 Query->Summary Cell

The Summary Cell command reports the summary information of the current cell. User
can specify the contents of summary report, such as precision, layers, all texts on
selected layer or all layers (sometimes, users want to know what texts are in the GDS,
Skipper can search through all hierarchical levels), and instances information, etc.

146
4 Menus

Figure 163 Summary Cell

General Information includes the last updated time of cell, the size of bounding box,
the size of bounding box if text is ignored and the size of bounding box of visible layers.
Layer Purpose Pair includes the statistic with each layers number or name. Hierarchy
Depth controls the depth that the statistics data rely on. Shape, Text and Instance
check boxes decide whether the shape, text and instance information is included in the
report, Text Layers All and Text Layers Visible can be used to show texts in all layers
or visible layers. Sort By Reference Cell Name, Sort By Array Number, Sort By
Instance Number and Sort By Reference Cell Max Level means to report instance in
order of the option.

After setting up the options, click on the OK button, a report window will pop up.

147
4 Menus

Figure 164 Summary Report: Cell and Layers

Cell, Array, Instance and Level


can be reported in order

Figure 165 Summary Report: Instance and Text

148
4 Menus

4.6.14 Query->Trace/Short

For details, please refer to Trace Net/Short In GUI in Chapter 6.

4.6.15 Query->P2P

This command is used to calculate the resistance of two specified points which are on
the same net. There are 3 tabs in P2P widget: Input, Results and Settings.

Figure 166 P2P Dock

4.6.15.1 Input

The buttons and options in “Input” tab are as following:


P2P On: run P2P operation. This button greys out when running trace operation.
Also all the edit operations are forbidden when running P2P.
Trace: run trace with this mode by clicking one point.
P2P: generate both net and resistance by clicking two points which are on the same
net. There are two results generated: net result and resistance result. Net result is to
show the whole net which includes these two points. Resistance result is to show
the resistance between these two points.
P2P on net: generate resistance result by clicking two points which are on the same
existed net.
Rules button: click the button to edit trace rule and resistance setting. In the
popped up “Connection rules” window, there’re 2 tabs: “Rules” and “Resistance”.
“Rules” tab is for defining tracing rule. As to tracing rule, please refer to
Query->Trace/Short. “Resistance” tab is for setting tech file and map file for rc
extraction.
Tech file: to add and specify .itf files.
Layer map: to specify the map file. There are two columns in map file, the
first column is layer name defined in trace rule, the second column is layer
name defined in .itf file.

149
4 Menus

Figure 167 Resistance setting form

Point Editor:

Delete selected point on layout : delete the selected points by selecting


on layout.
+P1: add from point p1. By default, this button is controlled automatically.
Usually user only needs to click it manually when “Multiple input points” is
enabled in “Settings” tab. After clicking this button, click point on layout.
+P2: add to point p2. By default, this button is controlled automatically.
Usually user only needs to click it manually when “Multiple input points” is
enabled in “Settings” tab. After clicking this button, click point on layout.

Select trace region : select tracing region. Once selected a region, the
tracing will be only done in the selected area. To select multiple regions, user
could check on “Trace with regions-> Multiple regions” checkbox in “Settings”
tab. The selected region bbox will be listed in “Settings” tab too.

Temperature control : to specify the temperature for itf files. If the itf file
defines the temperature parameter, temperatures set form will be editable. Specify
temperature value and click set button, the specified temperature will appear on itf
view. Choose the temperature on itf view and run p2p, the resistance result is
generated with specified temperature.

150
4 Menus

Figure 168 Set Temperature

Extract button: run 'P2P'/'P2P on net'/'Trace' immediately after specifying the P1


and P2 information which include layer and coordinate.
Points View: show and specify the from/to points. Double click on point to zoom
it. Click layer icon to add layer. Double click coordinate bar to add point coordinate.
When run p2p, only the From points are added firstly the To points can be added.

Enable All: enable to show P2P labels of all points


Disable All: disable to show P2P labels of all points
Enable Selected: enable to show P2P labels of selected points
Disable Selected: disable to show P2P labels of selected points
Delete All: delete all the points.
Delete Selected: delete selected points.
Import Points: add points manually. Choose the layer which are defined in
trace rule, and then specify the coordinates of point. The X coordinate and Y
coordinate can be separated by ‘blank space’, ‘comma’ or ‘semicolon’.

151
4 Menus

Figure 169 Add Points Form

Select P1 and P2 from layout and perform P2P.

4.6.15.2 Run P2P

In “Input tab”, set “ ” button to active. Select “Trace” and click on the net to do
P2P later. The net will be traced out and highlighted.

Figure 170 Trace net

Select “P2P on net”. Click on the traced net to select the 1st point P1 and 2nd point P2.
The resistance extraction will be performed automatically.

152
4 Menus

Figure 171 P2P on net

User could click on “P2P” to do tracing net and resistance extraction in 1 round instead
of clicking “Trace” and “P2P on net” step by step.

For power and ground net, the network could be very complex. It may take hours to do
P2P on PG net. To speed up, Skipper provides “PG net” mode to allow user skip some
layers when tracing. Select “PG net”. Set the skipping layers in “Skip layer” combobox.
Select “Tracing ring” and click point on net to trace the PG ring. Click “P2P of ring”,
P2P on the traced PG ring will be performed.

Sometimes, the whole net is too big and you just want to get a rough estimate resistance

value in a certain area. In “Input” tab, select “Trace” or “P2P” and click on the “ ”
button to define the resistance calculation area by dragging the mouse in the layout. The
trace region is highlighted in yellow color. Only in the Trace mode can you activate this
button. Then you can calculate the resistance on the traced net by changing to P2P on
Net mode. The power mesh net out of the selected area is not taken into account when
calculating the resistance. User could add multiple regions by check on “Trace with
regions” and “Multi regions” checkboxes in “Setting” tabs.

153
4 Menus

Figure 172 Trace with region


Skipper provides “add to task” mode to allow user select multiple tracing points or P2P
pairs to add to tasks and perform all tracing or P2P tasks at once. Checking on “Only
add to task” check box in “Settings” tab, the “add to task” mode is enabled and the
“Task” group is shown in “Input” tabs. “Task” group records tasks which include task
status, task name, cell name and task type. Right-click can invoke Run and Clear
functions. Double click task to show the points information on points view.
Task: to display the task status. There are following status: "Unready","Ready",
"Running","Paused","Stop", "Abort", "Invalid 'From'", "Invalid 'To'", "Same
'From' and 'To' shape", "Not short", "Skipped", "Success","HTrace failed",
"Duplicate net", "Failed".
Name: the task name.
Type: to record the task type. There are the following task type: "P2P", "Net",
"onNet", "Ring", "ofRing".
Cell: the cell name.
Run: to run the trace net/ring tasks which are ready status.
Clear Selected: to delete the selected tasks record.
Clear All: to clear all the task records.
Selecting “Trace” and clicking point, the “Trace” task will be added. Selecting “P2P on
net” and clicking P2P point pairs on traced nets in layout, the “onNet” task will be added.
Selecting “P2P” and clicking P2P pairs directly in layout, the “P2P” task will be added.
Right click in “Task” tab, select “Run” to run all tasks.

154
4 Menus

Figure 173 Add tasks and run

4.6.15.3 P2P Results

After running the P2P, the results will be generated in “Results” tab. Switch to “Results”
tab.

Figure 174 P2P result

Results tab is to show the net and resistance result.


Net column: show the net and resistance result.
Value column: show net color, resistance value and P1/P2 coordinates.
Right-click can invoke some more functions to edit result.
Expand All Net: expand all net shapes or P2P results.
155
4 Menus

Collapse All: collapse all net shapes or P2P results.


Hide Selected: hide selected shape or P2P results in GUI.
Show Selected: show selected shape or P2P results in GUI.
P2P on net: change mode to P2P on net. Before running P2P on net, need to choose
an existed net.
Change color: change color of net.
Select Resistance: show more information of the resistance. The “Information of
R*” group will be shown after clicking it. Double click on p2p result can also show
the information.
Set Input Points: set P2P points of current resistance to points coordinate in “Input”
tab. After setting input points, clicking “Extract”, the net and resistance could be
re-traced and re-extracted directly.
Delete Selected: delete selected net result.
Delete All: delete all the net results.
Rename: rename the resistance name.
Save Results(txt): save p2p result. A resistance table will pop up. User could select
the resistance results to save as text report.

Save Datas: save the p2p results to specified directory.


Load Datas: load p2p status. There are two modes: append and overwrite.
Overwrite means to overwrite current p2p result using loaded p2p result. Append
means to append the loaded result to current p2p result.
Generate Commands: to generate a file to record the selected p2p results.

Expand “Layers” under the net name. The results of tracing net are listed under “layers”.
Selecting or unselecting the layer segment controls whether to highlight the segment in
layout.

156
4 Menus

Figure 175 Show tracing result

Expand “R*” results. The coordinates of P2P points is listed. Double click “R*”, more
information of this resistance is shown in “Information of R*” group.

Figure 176 Show information of R*

There’re 4 tabs in “Information of R*” group: CD, Max Path, Min Path and

157
4 Menus

Power/Layer. All these information can be saved as text or csv format report by clicking
“Save” button.
In “CD” tab, current density of the selected resistance segment is shown.

Figure 177 CD result


CD check box: control whether to show selected current density hotpot in layout.
Layers: specify the displayed layers for CD result.
Levels: specify the display of resistance level. The resistance result is separated
with 10 levels according to current density (CD). The shape with largest CD value
is shown in level 10 with color red.
Outline: specify to only blink or highlight outline. Otherwise the shape will be
highlighted or blinked in solid filled mode.
AV: highlight all CD results in layout.
NV: clear the highlight of CD result in layout.

Real Current Density : enable this option to show the real


current density value instead of current density percentage.
Current/Voltage: to specify the current/voltage value to calculate the real current
density value.

Check Current Density : enable to check the current density by


specifying threshold value. If current density is larger than the threshold, the status
will be Fail.

158
4 Menus

Figure 178 Show real current density value and check status

M column: mark to highlight or blink hotspot in layout


Hotspot column: show the CD value or percentage.
Status: show the status of checking current density value according to user defined
threshold.
Layer column: show the layers with CD result.
Type column: show the shape type. M means metal, V means via.
Points column: to show the shape bbox coordinates.

The items in right menu of CD tables are as following.


Mark All: mark to highlight all current density hotspot in layout.
Unmark All: unmark all current density hotspot in layout.
Mark Selected: mark to highlight the selected hotspot.
Unmark Selected: unmark selected hotspot.
Copy Coordinate: copy the coordinate of the selected hotspot.

Figure 179 Right menu of CD tab

159
4 Menus

In “Max Path” tab, the max resistance path between two points will be listed. This
function is still experimental. To enable it, user needs to check on “Results->Calculate
max res-path (experimental)” check box in “Settings” tab before running “P2P” or “P2P
on net”. The max resistance path will be shown in red color.

Figure 180 Max resistance path result

Max Path checkbox: control whether to show selected max path in layout.
“res of max res-path of R*”: resistance value of max resistance path.
M column: mark to highlight or blink the segment on max path
CD(A/um2): show the CD value of each segment.
Res(ohm): show resistance of each segment
Layer column: show the layers.
Type column: show the shape type. M means metal, V means via.
Points column: to show the shape bbox coordinates.

The items in right menu of max path tables are as following.


Mark All: mark to highlight all current density hotspot in layout.
Unmark All: unmark all current density hotspot in layout.
Mark Selected: mark to highlight the selected hotspot.
Unmark Selected: unmark selected hotspot.
Copy Coordinate: copy the coordinate of the selected hotspot.

In “Min Path” tab, the min resistance path between two points will be listed. This
function is still experimental. To enable it, user needs to check on “Results->Calculate
min res-path (experimental)” check box in “Settings” tab before running “P2P” or “P2P
on net”. The “Min Path” tab is similar with “Max Path”. The min resistance path will
be shown in yellow color.

160
4 Menus

Figure 181 Min resistance result

In “Power/Layer” tab, the equivalent power per each layer is calculated. Since the
equivalent power percentage is in proportional to the resistance percentage of each layer,
user can learn about the resistance distribution of layers quickly by checking the
equivalent power values.

Figure 182 Power/Layer result

“Total power of all layers”: the total equivalent power of the paths between two
points.
Layer column: show the layers.
Power(W) column: show equivalent power of each layer.

161
4 Menus

4.6.15.4 Settings

This tab allows user to configure the settings of P2P.

Figure 183 Settings tab

Input group
Only add to task: enable “add to task” mode as descripted in 4.6.15.2.
Popup LPP menu when selecting point: control whether to pop up LPP menu
when selecting points.
Query net name: enable to query net name when tracing. It requires text rule
defined in tracing rule.
Max level: specify the max level of text.
Multiple input points: enable to specify multiple start points on 1 net. The start
points are considered equalpotential respectively.
1 Result: to generate 1 resistance result.
m*n Results: to generate m*n resistance result.
Trace with Regions: to enable area control to add area condition for trace/p2p.
162
4 Menus

Add regions: specify region bbox and add to regions.


Remove: remove selected regions
Clear All: clear all regions
Multiple Regions: enable this option to use multi point mode.

Results group
Calculate max res-path (experimental): enable to calculate max resistance path.
Calculate min res-path (experimental): enable to calculate min resistance path.
Skip via resistance when calculating min res-path: skip the via resistance
when calculating min resistance path.
Auto jump to results after P2P calculation: enable to jump to “Results” tab after
P2P automatically. By default, after P2P, user needs to switch to “Results” tab from
“Input” tab manually.
Adjust resistance value: user sets an offset value; the output value change
according to it. For example: 10% means the resistance value shown as 1.1x of the
calculated value. -10% means 90% of the original value.
Max item number in information views: set the maximum item number in
information.

Display group
Highlight line width: set the line width for highlight.
Highlight color of marked items: set the highlight color of marked items
As original LPP: use original LPP color to highlight.
Customized: user customized color to highlight
Zoom: set zoom setting
Pan: enable this option, double click on the resistance result to pan to
corresponding area in layout, and highlight the shape.
Zoom: enable this option, double click on the resistance result to zoom to
corresponding area in layout, and highlight the shape.

4.6.15.5 P2P Preference

From Skipper 2021.06, P2P provides preference settings. Click "Option > Preference >
P2P > Misc" to open the tab as shown in the following figure

163
4 Menus

Figure 184 P2P preference setting tab


Density grid size: This option is used to set the tile for resistance analysis. The value
needs to be reasonable. Too large or too small will have a negative impact on the
accuracy.
Speed vs Precision: This option is used to adjust the speed and precision priorities for
P2P analysis. The higher the precision, the slower the speed. On the contrary, the faster
the speed, the lower the precision.

4.7 Tools Menu

Tools menu mainly be used to deal with layout chips, contains Layout vs. Layout,
Multi-Boolean Operations, 3D View, FIB, FIB Measure, Switch Cell/IP Merge,
Pad Report, IP Scan and IP Tagging, Replace Text, Sealring Sizing, Check Chip
Boundary, Locate Bit Cell, Density, and Area command items.

Layout vs. Layout is a useful utility to compare two layout databases. User can view
the difference between two layouts conveniently.
3D view provides user a practical three dimensional view of layout design.

164
4 Menus

Switch Cell/IP Merge can be used to substitute cells in a layout file or between
different layout files.
IP Scan/IP Tagging can be used to report or tag defining information about ownership
of the IP for each and every IP on the chip simply and efficiently.
Check Chip Boundary helps user to check objects which outsides the cell boundary
or the specified region.

4.7.1 Tools->Layout vs. Layout

Layout vs. Layout is a useful utility to compare two layout database. GDS and OASIS
format files are supported. User can view the difference between two layouts
conveniently.
Chapter 8 introduces 2 methods of layout comparison in Skipper using db command.
This section mainly introduces the GUI operations of ski-lvl.

Figure 185 Layout vs. Layout: Basic

In the window form, Basic and Options tab are used to input related comparison
settings, Load tab is used to load the Layout vs. Layout result directly.

165
4 Menus

In Basic tab, user can input two layout files respectively, and specify the cells that need
to be compared. If user has already opened the two layouts which need to be compared
in Skipper, those two layouts will be filled out in LVL GUI interface by default. Below
table explains the meaning of each option in the Basic tab.

Table 4-6 Options in Layout vs. Layout -1

Basic Description
From lib Option to choose a layout that already opened in
Skipper
From file Option to choose a layout file from disk
Layout To specify the layout name
Top cell To specify the cell name of the compared layout.
LvL layer map To specify an ASCII file to map data on specified layers
To another layer. For example, LAYER MAP 15
DATATYPE 0 255, mapping data on 15.0 to 255.0 rules.
Get layer names from file Option to choose tech file or layermap file. If checking
on this option, the result database can show the layer
name rather than layer number.
Technology file To specify the technology file in which the name of each
layer is specified. If it is specified, LVL will list all the
differences by the layer name, instead of layer number
and datatype. Support to automatically load technology
file which specified in 'Load tech and display file' form.
Layer map file To specify a layer map file in which layer number and
layer name are mapped.
Summary To save LVL log file, recording the comparison settings,
the statistic of results and the time consumed, etc.
Save result To specify LVL result database in GDS and ASCII
formats.
Output To DRC Explorer To specify loading ASCII-formatted result in DRC
Results GUI after LVL is done.
Output To SKI-PVE To specify loading ASCII-formatted result in SKI-PVE
GUI after LVL is done.
Output To Skipper To specify loading the GDS-formatted in Skipper after
Viewer LVL is done.
Discard result To remove the result database in Skipper. It behaves like
clearing all results highlight.
Max errors generated per To display errors result per layer with specified value.
layer
Display all difference To show all differences of each layer together.
Hide all difference To hide all differences of each layer.
Display difference on To specify showing the differences on specified one
layer layer.
166
4 Menus

Hide origin layout To hide the original layout layers.


Hide small objects To specify the small difference results invisible. The
filter size is specified in “Display Quality->Filter out
objects by pixel” in Skipper GUI.
Line Width To specify the error markers line width, range from 1 to
5:

Color To specify the error markers color, users can input the
color code directly in Color line, or double click the
Color button to pop up color form and select one color.

In Options tab, user can set some options to run LVL:

167
4 Menus

Figure 186 Layout vs. Layout: Options

Table 4-7 Options in Layout vs. Layout-2

Options Description
Layout2 To set Offset(X,Y), Rotate and Magnify parameters for the
Transform second layout database.
Sometimes, the two layouts are all the same except that the
original point is different. If user does not input the offset value
of the two original points, lots of differences will be reported. The
same thing happens if one layout is rotated by some degree from
the other layout. If user does not want to see those differences
reported, please input the Offset(X,Y) value and Rotation
condition.
Magnify enable user to input the scale number of the second
layout file. All the differences caused by the scale factor will not
be reported.
Manipulate Cell To specify the type of hierarchy processing when comparing:
Hier means to perform a hierarchical comparison and generate a

168
4 Menus

hierarchical output database.


Flat means to perform a flat comparison and generates a flat
output database.
Automatic match means to match the cells with different cell
name automatically.
Depth To specify the depth of layout during comparison:
All levels means to do comparison on all levels.
Top cell only means to do comparison on only the top cell, all
other cells and instances are ignored.
Operation To specify the optional switches that control the mode of the
comparison:
XOR means the compare operation performs a boolean XOR
operation.
Split Results means the compare operation performs a XOR
boolean operation, but to write result from layout11 and layout2
separately. This option split all results of each layer into two
result groups.
NOT means the compare operation performs a boolean layout1-
NOT-layout2 operation.
Keep shapes means to keep the original shapes displayed or just
shows the differences.
Processors to use To specify the number of processor used.
Compare text To specify if labels would be compared during LVL.
Ignore Datatype To ignore layer datatype during LVL.
Use P-Mode To specify a quick comparing mode (a portion of flatten
comparison mode) for very large digital circuit layout.
Tolerance To specify the polygon filtering tolerance in outputting, any
polygons or parts with minimal width smaller than the specified
value will be ignored, the unit of the value is micron.
Convert Box to Box record is a unique data type in GDS layout, not in OASIS
Rectangle layout. If checking on this option, Box record will be treated as a
rectangle for LVL comparison. If unchecking, box record will be
ignored.

169
4 Menus

Layer filter To specify layers(includes texts) to compare:

Click on “Add from layout” button, LSW window pops up. Use
“ctrl+left mouse button” to select layers. Those layers will appear
in the layer filter window, LVL will compare those layers or
excludes layers to compare, which depends on the options user
choose.
Click on the “Add” button, user can choose layer by setting the
range of layer number and data type.
Select layers means to select a few layers to do comparison. The
layers not appeared in the window will not be compared.
Ignore layers means to exclude a few layers to be compared, the
other layers are all compared layer by layer. The layers appeared
in the window will not be compared.
Exclude Cells To exclude some cells for LVL comparison. If multiple cells are
needed, separate them by space.
Layout1: input cells in layout1 to be excluded.
Layout2: input cells in layout2 to be excluded.
Same with Layout1: checking on this option means cells for
layout1 working on layout2 too.
Temporary To specify the temporary directory for temporary files when
directory running Layout vs. Layout.

In Load tab, user can load the saved results directly, Load To SKI-PVE means to load
ASCII format database, Load To Skipper Viewer means to load GDS format database:

170
4 Menus

Figure 187 Load ASCII format results

Figure 188 Load GDS format results

PVE is the back-annotation tool developed by HES. When the comparison is done, the
PVE window form will be invoked. All the differences will be listed in PVE window.
User can use PVE tool to locate and highlight the difference in two layout cellviews
simultaneously with same window region, as shown in follows:

171
4 Menus

Figure 189 LVL results in two layout cellview with same window region

Area tab
Skipper supports to do LVL in specific region which can be defined in GUI. In Area tab,
user need tick either “Compare area” or “Filter area”, then mouse is activated to draw
rectangle or polygon in the layout by clicking on the corresponding icon. In comparing
area mode, LVL is executed in the defined area. In Filter area mode, LVL filters shapes
inside the area and only compare layouts outside the region.

Figure 190 LVL compares layout in specified area or outside the specified area

172
4 Menus

FPD tab: Only be used for flat display panel layout comparison.
FPGA tab: Checking on FPGA mode will accelerate FPGA layout LVL comparison.

By default, LVL results are shown through the “DRC Results” window. To see the
layout difference more clearly, the layer is set to visible automatically when user is
viewing the difference on that layer. Click right mouse button on the LVL results, and
tick “Auto Set LPP Visible in LSW”. This function starts to work. About how to use
the options in this GUI, please refer to the chapter Verify->DRC Results.

Figure 191 Set layer visible automatically when reviewing LVL results.

4.7.2 Tools->Multi-Boolean Operations

Figure 192 Multi-Boolean Operations

Multi-Boolean Operations form pops up after clicking on this command. Using this
command, you can perform a series of boolean operations on shapes.

Boolean operation rule can be filled in the Expression field, which can be one line.
The rule format consists of 2 parts: input layer and operator. The input layer definition
is as “layerName.purpose” or “layerNumber.datatype”. The supported operators can be
173
4 Menus

classified into 4 groups: Boolean, Size, Dimension and Others. The details of the
operation related to the operators will be introduced later in this section.

Multi-Boolean Operations copy the new shapes to the cell top level with the selected
output layer in Output field. User can also define a new layer as the output layer by
choosing “New Layer” and inputting layer definition of the new layer. If selected
“Remove shapes of the output layer in target cell”, the original shapes on the
output layer will be removed.

In Options filed, user can define following options.


⚫ Depth
◼ All Levels is used to specify operations in all levels.
◼ Displayed Levels is used to specify operations only in displayed level.
⚫ Region is used to specify the region where the operation performed.
⚫ Skip Undo makes the operations faster.

The vertices of the result polygon will be limited from '3' to '8000', this limitation can
be defined in ‘Options->Preference->Application->Misc: Maximum Vertices for
deriving polygon’, with the default value '4000'.

The supported operations are described as below.


⚫ Boolean operation
The supported operators of Boolean operation are and, or, xor, not.
◼ and
This operation will construct the intersection regions of polygons on the input
layers, and output the intersections as polygons to the output layer. The rule
format of the “and” operation is as below:
inputLayer1 and inputLayer2
For example, defining rule as “1.0 and 2.0”, specifying the output layer as
“100.0”, the operation result is shown as Figure 193.

Figure 193 Example of and operation


◼ or
This operation will merge all shapes on the “inputLayer1” and “inputLayer2”
into single polygons and output to output layer. The rule format of the “or”
operation is as below:
inputLayer1 or inputLayer2
For example, defining rule as “1.0 or 2.0”, specifying the output layer as
“100.0”, the operation result is shown as Figure 194.

174
4 Menus

Figure 194 Example of or operation


◼ xor
This operation will select all “inputLayer1” and “inputLayer2” polygon areas
and remove the common area of “inputLayer1” and “inputLayer2” polygon
areas, then output them to output layer. The format of the “xor” operation is as
below:
inputLayer1 xor inputLayer2
For example, defining rule as “1.0 xor 2.0”, specifying the output layer as
“100.0”, the operation result is shown as Figure 195.

Figure 195 Example of xor operation


◼ not
This operation will select all polygon areas on “inputLayer1” which not
common to polygons from “inputLayer2”, and output them to output layer. The
format of the “not” operation is as below:
inputLayer1 not inputLayer2
For example, defining rule as “1.0 not 2.0”, specifying the output layer as
“100.0”, the operation result is shown as Figure 196.

Figure 196 Example of not operation


⚫ Size operation
The supported operators of size operation are size and grow.
◼ size
This operation will expand or shrink all the polygons on the “inputLayer” by
the size value x positive or negative, the sized results will be output to output
layer. A positive size value expands “inputLayer” polygon edges outward by
that amount. A negative size value shrinks “inputLayer” polygon edges inward
by the absolute value of that amount. When size value equals zero, then the
output layer is a copy of “inputLayer”. The unit of size value x is um. The
format of the “size” operation is as below:
inputLayer size x

175
4 Menus

For example, defining rule as “1.0 size 0.02”, specifying the output layer as
“100.0”, the operation result is shown as Figure 197.

Figure 197 Example of size operation


◼ grow
This operation will expand or shrinks all “inputLayer” shapes in left, right,
bottom and top direction separately by size value. A positive size value
expands “inputLayer” shape edges outward by that amount. A negative size
value shrinks “inputLayer” shape edges inward by the absolute value of that
amount. The grow sequence for “left”, “right”, “bottom” and “top” will be
executed of as they appeared in the operation from left to right. The “grow”
operation results will output to the output layer. The unit of grow value is um.
The format of the “grow” operation is as below:
inputLayer grow left x1 top y1 right x2 bottom y2
For example, defining rule as “2.0 grow left 0.05 top -0.06 bottom 0.07 right -
0.08”, specifying the output layer as “100.0”, the operation result is shown as
Figure 198.

Figure 198 Example of grow operation


Take grow operation step by step from left to right as shown in Figure 199.

Figure 199 grow operation step by step


⚫ Dimension operation
The dimension operations generated output layers by measuring the separation of
edges on one or two-input layers.

The dimension operations are summarized as below:


1) single layer: internal(int), external(ext)
2) two layers: internal2(int2), external2(ext2), enclosure(enc).

Supported constraint: < a, <= a, == a, > a < b, >= a < b, > a <= b, >= a <=b.

Metric type default is Euclidean. 3 other optional metric types as below:

176
4 Menus

1) opposite: Specifies perpendicular extension of the measurement region from


the edge, but not along the edge, is equal to your constraint. It converts the “<”
constraint to “<=” when measuring intersecting edges. This causes output
when intersecting edges abut at 90-degree angles.
2) extended_opposite: Specifies to use the opposite metric with an extension of
the measurement region along the edge. The value is an extension distance in
user units and is measured along the edge direction; it must be a positive
number.
3) square: Specifies the extension of the measurement region along the edge and
away from the edge is equal to your constraint.

Optional parallel only: parellel_only

◼ internal(int)
This operation measures the separations between interior-facing sides of edges
from the same polygon on “inputLayer”. Measured edge pairs that satisfy the
given constraint are output. The format of “internal(int)” layer operation is as
below:
inputLayer int constraint [metric]
The 4 metric type used measurement regions are different and the region
marked in red as below. For example,

Figure 200 Metric types of internal dimension


For example, defining rule as “1.0 int < 0.3 parallel_only”, specifying the
output layer as “100.0”, the operation result is shown as Figure 201.

Figure 201 Example of internal dimension


◼ external(ext)
This operation measures the separations between exterior-facing edges on
“inputLayer”. This includes exterior-facing edges that occur on the same
polygon, such as with notches. Measured edge pairs that satisfy the given
constraint are output. The format of “external(ext)” layer operation is as below:
inputLayer ext constraint [metric]

177
4 Menus

The 4 metric type used measurement regions are different and the region
marked in red as below. For example,

Figure 202 Metric types of external dimension


For example, defining rule as “1.0 ext >1.5 <2 opposite”, specifying the output
layer as “100.0”, the operation result is shown as Figure 203.

Figure 203 Example of external dimension


◼ internal2(int2)
This operation measures the separations between the interior-facing sides of
“inputLayer1” edges and the interior-facing sides of “inputLayer2” edges.
Measured regions that satisfy the given constraint are output. Intersecting edge
pairs are not measured by default. The format of “internal2(int2)” layer
operation is as below:
inputLayer1 int2 inputLayer2 constraint [metric]
The 4 metric type used measurement regions are different and the region
marked in red as below. For example,

Figure 204 Metric types of internal2 dimension


For example, defining rule as “1.0 int2 2.0 >0.15 < 0.3”, specifying the
output layer as “100.0”, the operation result is shown as Figure 205.

178
4 Menus

Figure 205 Example of internal2 dimension


◼ external2(ext2)
This operation measures the separations between the exterior-facing sides of
“inputLayer1” edges and the exterior-facing sides of “inputLayer2” edges.
Measured edge pairs that satisfy the given constraint are output. The format of
“external2(ext2)” layer operation is as below:
inputLayer1 ext2 inputLayer2 constraint [metric]
The 4 metric type used measurement regions are different and the region
marked in red as below. For example,

Figure 206 Metric types of external2 dimension


For example, defining rule as “11.0 ext2 2.0 >0.2 <= 0.6 extended_opposite
0.1”, specifying the output layer as “100.0”, the operation result is shown as
Figure 207.

Figure 207 Example of external2 dimension


◼ enclosure(enc)
This operation measures the separation between the exterior-facing sides of
“inputLayer1” edges and the interior facing sides of “inputLayer2” edges.
Intersecting edge pairs are not measured by default. Measured edge pairs that
satisfy the given constraint are output. The format of “enclosure(enc)” layer
operation is as below:
inputLayer1 enc inputLayer2 constraint [metric]

179
4 Menus

The 4 metric type used measurement regions are different and the region
marked in red as below. For example,

Figure 208 Metric types of enclosure dimension


For example, defining rule as “1.0 enc 2.0 >0.2 < 0.4 square”, specifying the
output layer as “100.0”, the operation result is shown as Figure 209.

Figure 209 Example of enclosure dimension


⚫ Other operations
◼ area
This operation selects all polygons that meet an area constraint in “inputLayer”,
and the results will output to output layer. The format of “area” layer operation
is as below:
inputLayer area constraint
The supported constraint types are: > a, >= a, < a, <= a, == a, != a, > a < b, >=
a < b, > a <= b, >= a <= b.
For example, defining rule as “1.0 area > 3 <= 6.181”, specifying the output
layer as “100.0”, the operation result is shown as Figure 210.

Figure 210 Example of area


◼ interact
This operation selects all polygons in “inputLayer1” which share some or all
of their area with polygons from “inputLayer2”, or have a coincident outside
edge or edge segment with “inputLayer2” polygon. The results will output to
the output layer. If reversing the order of “Layer1” and “Layer2” will produce

180
4 Menus

different output. The format of “interact” layer operation is as below:


inputLayer1 interact inputLayer2
For example, defining rule as “1.0 interact 2.0”, specifying the output layer as
“100.0”, the operation result is shown as Figure 211.

Figure 211 Example of interact

4.7.3 Tools->3D view

Figure 212 3D View


This command used to provides user a practical 3D view of layout design.

Sometimes, user wants to browse layout with multi-level and all-dimensional. 3D View

181
4 Menus

supports full-angles and multiple-views with selected view port.


After specifying process parameters with layers thickness, click on this command, 3D
View will render a 3D view with current view port.

Figure 213 Define process parameters

Figure 214 3D view window

Ortho Views means to specify 3D view with orthogonal pattern.

182
4 Menus

Figure 215 3D view with orthogonal pattern

Reset View Port means to reset 3D view with selected window.


Redraw means to redraw 3D view with selected window.
Fit To Object means to fit selected object in 3D view window.

Figure 216 Fit to the selected objects


Reselect means to reselect objects with 3D view.
183
4 Menus

Fit Layout VIew means to fit selected objects in cellview.


View Selected means in 3D view window, to move or rotate has always centered around
the selected object.
Subtransparent means to specify 3D view with semi-transparent.

Figure 217 semi-transparent example

Layer/Thickness shows the layer and thickness information of selected objects.

Speed
Move means to move view in 3D view.
Rotate means to rotate in view 3D view.
Double/Half can be used to specify the speed of move and rotate.

4.7.4 Tools->FIB

The size of GDSII increases rapidly according to gate count in designs. However, FIB
(Focused Ion-beam) system has size limitation in terms of handling GDSII. Skipper’s
FIB feature (‘Tools->FIB’) is implemented to address this limitation.

184
4 Menus

FIB feature allows user to first select one or more nets, then select either instances
connected to the nets or objects on some layers around the nets in a user specified areas.
Then put the selected items into a temporary cell for further FIB operations. Users can
record and visualize FIB operations, such as ‘CUT’, ‘CONNECT’ and ‘PROBE.’

The ‘CUT’ operation is used to add cut markers on the chip.


The ‘CONNECT’ operation is used to add connect markers between two points.
‘PROBE’ operation is used to put probes on the chip.
All operations can be marked with one or more tags to record FIB operations.

After finishing desired operations, users can preview specified operations and output
GDS of specified areas. The shrink factor and additional layers can be specified as you
need during output GDS.
Prescribed ‘CUT’, ‘CONNECT’ and ‘PROBE’ operations can also be outputted as FIB
house instructions in HTML and PDF formats.

Steps to perform FIB in Skipper:


Step1: Load layout and technology file into Skipper
Step2: Launch ‘Tools->FIB’
Step3: Select nets/objects/instance from layout and put them into temporary cell
Step4: Add ‘CUT’, ‘CONNECT’ and ‘PROBE’ markers
Step5: Create groups with CUT/CONNECT/PROBE’ markers, customize screenshots,
add notes and put them into temporary cell
Step6: Check and save temporary cell (FIB result of GDS, HTML and PDF, or FIB
status)
Step7: to record FIB instructions

Step1: Load layout and technology file into Skipper


➢ ‘File->Open’ to load layout into Skipper
➢ ‘File->Load Technology and Display File’ to load technology file
corresponding to the layout already loaded

Step2: Launch ‘Tools->FIB’


In this step, users create a temporary cell to store FIB operations.
➢ Create a temporary cell

185
4 Menus

‘Tools->FIB’ and click ‘Confirm’ to create and open the temporary cell

Step3: Select nets/objects/instances from layout and put them into temporary cell
In this step, users first select one or more nets, then select either instances
connected to the nets or objects on some layers around the nets in a user specified
areas. Then put the selected items into the temporary cell.

➢ Select one or several nets and put them into the temporary cell
Click ‘Net’ button to launch trace net result file. After tracing, click ‘Save Net’ to
save the trace result file used for FIB net file.

tracing temporary cell

➢ Select objects
Click ‘Area’ button to select objects in layout.
186
4 Menus

➢ Select instances
Click ‘Select Instance’ to start the selection and repeat the operation to add all
desired instances into the temporary cell.
Step4: Create groups
Click group button to create new group. Skipper will generate new group for
operation automatically if user didn’t create group before operation.

Step5: Add ‘CUT’, ‘CONNECT’ and ‘PROBE’ operation


In this step, users perform desired FIB operations, such as ‘CUT’, ‘CONNECT’
and ‘PROBE’, and record these operations into the temporary cell. All operations
can be marked with one or more tags.

187
4 Menus

➢ Cut operation
Select ‘Cut’ to add cut markers on the chip.
Click on an object to set cut point, then click another point to set cut direction, a
cut marker is created.
➢ Connect operation
Select ‘Connect’ to add connect markers between two points on the chip.
Click on an object to set the starting point, then click another point to set end
point, a connect line marker is created.
➢ Probe operation
Select ‘Probe’ to add probe markers on the chip.
Click on an object to set probe position, a probe marker is created.
Step6: save result and status (FIB result of GDS, HTML/PDF, or FIB status)
After finishing all desired FIB operations, users can preview all of them in the
temporary cell, then click Save to save FIB status, and also can click GenData to
generate GDS file and html file.

188
4 Menus

Normally, one operation will be reported in three photos, overall view, local area view
and detailed view, the displaying range and showing scale can be specified.
Also user can load/import FIB status by Load/Import function. Import status multi-time
will accumulate the fib results. Load status will overwrite the fib result.

Sample FIB house instructions are as follows:

189
4 Menus

190
4 Menus

191
4 Menus

192
4 Menus

193
4 Menus

194
4 Menus

195
4 Menus

196
4 Menus

Normally, one operation will be reported in three photos, overall view, local area view
and detailed view, the displaying range and showing scale can be specified, if the
connection operation is out of this specified range, the detailed view will be split into
two photos:

197
4 Menus

198
4 Menus

Also, user can customize screenshots for operation groups by double-click Screenshots.
There are three tabs in Image Editor Form: Screenshot Setting, Comments and Boxes.
Screenshot Setting:
•Width: to specify the box width.
•Height: to specify the box height.
Comments:
•Scale: to specify the scale size for image.
•Add Text: to add text in image.
•Add Box: to add box in image.
•Delete: to delete text and rectangle in image.
•Text Height: to specify the text height.
•Fg/Bg: to specify the color for text and rectangle.
Boxes:
•Select Boxes: to add box manually in layout.
•Generate All: to generate all boxes images automatically in Box tab.
•Create: to generate image of selected box.
•Delete: to delete selected box.

199
4 Menus

Figure 218 Screenshots Image Editor

4.7.5 Tools->FIB Measure

Click one point on layout, skipper will display the shapes which are conflicted with the
rules defined in design rule file.

200
4 Menus

Figure 219 FIB Measure

Only the layers defined in LayerName1 can be highlighted in layout when user chooses
the point. After select one point, the FIB Measure form only shows the rules about the
selected layer which is LayerName1.

The format of design rule is as following:


LayerName1 LayerName2 SpaceValue

For example: M1.drawing M2.drawing 0.1

4.7.6 Tools->Switch Cell/IP Merge

This command can be used to replace or append cells of the same name from referenced
libraries, or to substitute cells in a layout file or between different layout files.

201
4 Menus

Figure 220 Switch Cell/IP Merge

There are four tabs in the command:


“Switch” tab enables user to specify the switching in the table.
“Output” tab enables user to output the switching to a GDS.
“Cmd” tab can be used to save the switching specify to a control file.
“Options” to define the format of table log and switch log.

In “Switch” tab, user can designate a switch cell file in which cell substitution list is
included, or input the substitution cell names manually. All the cells in the current
library will be listed in “Cell” column, “Lib2” and “Cell2” columns will be showed in
gray if no substitution has been done, the default value in “Cell2” column is the cell
name same as that in “Cell” column.

202
4 Menus

Figure 221 Specify the switching

Double click on the cell name in “Cell” column to open the “Select cell” window. In
the “Select cell” window, you can choose a cell that be used to switching. The “Libs”
pull down menu can be used to choose other open libraries.

In the “Cells” field, you can search the cell name in the cell list below, wildcard “*” is
supported. Click on the cell name you want to do substitution, then click on the “OK”
button. The “Select Cell” window close and the chosen cell name appear in “Lib2” and
“Cell2” columns:

203
4 Menus

Figure 222 Table list is updated after switch cell


3(Save_all.gds)->N_3NEW_smash(n_3new_hf.gds)

“Save Table” means to save the switching define to a file, “Load Table” means to load
a switching file in the table, the format of the switching file is simple, as shown below:

cdr_bye.gds CONTN RAM1Kx8_SMIC018.gds CONTA


cdr_bye.gds CONTP RAM1Kx8_SMIC018.gds CONTAG

In switch cell table, the “Cell” column is the cell list of the current GDS, the “Lib2”
and “Cells” columns is the cell that user wants to substitution. Double click on the “Cell”
column to select the switching cell.

“Clear” button will reset all substitution settings to defaults in the table.

“Preview” button can be used to find out the cells which have same names in different
open libraries. Click on “Preview” button will update the “Lib2” and “Cells” columns,
in these two columns, the library name and cell name which are the same with the cell
name in “Cell” column will be listed individually. If more than two open libraries have
the cell whose name is the same with that in “Cell” column, a question mark(?) will be
shown before the corresponding library name. If the database unit is different, an
asterisk mark(!) will be added before the library name.

204
4 Menus

Figure 223 “Preview” for the cells with same name in different libraries

After sets up all the substitution, click on the “Apply” button will make the substitution
executed. The hierarchy tree in the cell tree window will be updated accordingly, cell
name of switched cell will be added with “*”, cell name of updated cell will be shown
using boldface in cell dock.

“Refresh” means to update the table according to the hierarchy tree after the substitution
executed. Enable “Custom log” to specify the load table log and switch log. In default
these two logs used the format defined in Options. The table log records both switched
cells and failed cells.

205
4 Menus

Figure 224 Switched cell be shown in hierarchy tree

In “Output” tab, you can save a GDS database according to the switch setting.
“Rename Only Necessary” means to rename cellname when occurs same
cellname, that is, the switched cellname is same with the original cellname, the
suffix would take library name to distinguish them.
“Skip Empty Cell” means to skip the empty cell when outputting.
“Rename Suffix Prefix/Postfix” means to add prefix/postfix suffix(library name)
in switched cellname.
“Save Gds” means to save a GDS according to the switching table.

206
4 Menus

Figure 225 Output the switching to a GDS

In “Cmd” tab, user can save the contents of switching table and several control
parameters, such as “OUTPUT”, “OUT_CELL”, “KEEP_ORIGIN_CELL”, etc.
which can be used in a IP-Merge control file, and be used to do ip merge in future.

Figure 226 Save switching specifications to a control file

“Load Cmd To Table” means to load a the switching contents into the switching table.

207
4 Menus

The example of saved IP-Merge control file be shown below:

Figure 227 Define the format of table log and switch log

“Options” to define the format of table log and switch log.


“Switch Cell/IP Merge” Command In Batch Mode
Besides “Switch Cell/IP Merge” used in GUI mode, Skipper also supports the “Switch

208
4 Menus

Cell/IP Merge” function in batch mode. For details, please refer to Chapter 7 Layout
Integration.

4.7.7 Tools->Pad Report

Pad Report can be used to find PAD and report PAD information (number, name, size,
centroid…), this information can be saved to a text file also. Pads will be found and
reported start with the upperLeft of the layout, all Pads information will be list and
sorted in accordance with coordinates of the pad’s centroid point. When pad layer are
overlapped or touched each other, Pad Report will report them as one pad item.

Figure 228 Pad Report.


First, user needs to choose the pad layer with the Pad Layer pull down menu, PAD
Area and PAD Size can be used to set the find conditions of PADs. PAD Area means
to report and filter the PADs which it’s boundary box area greater than or equal to the
given value, other conditions such as >, = =, <, <= can be supports also. PAD Size
means to report and filter the PADs which it’s boundary box size (width and height)
greater than or equal to the given value, also supports >, = =, < and <=.
Click Add button to specify pad text layers, double click on the blank besides number

“1 “, user can choose the label layer from the pull down
menu. Check Level can be used to specify the find levels of pad text.
The label layer usually includes texts which are the names of PADs. By clicking on the
Apply button, all the pad information will be listed in the pad information region. Add
Prefix To Pad Name means to add “PAD_” in every pad name. Show Distance
Between Pad Center and Label Origin means to report the distance value between
209
4 Menus

pad center and label origin. Show Pad Size means to report the pad width and height.
Find Pad Shape Limit means to let user define the pad shape number. If not checked,
Skipper find all shapes in pad layer. If checked, the default value is 5000. User can
change this value based on his design. When pad report is running, an “Abort” button
shows up in the window to let user stop the process. Both functions can help user abort
from pad searching especially when layer set up is wrong. Counter Clockwise means
pad information will be reported order counter clockwise direction. Clockwise means
pad information will be reported order clockwise direction. Named Pad First means
to show named pads prior. Begin From Pad means to show the specified pad as first.
If there is no label overlapped with the pad layer, then the pad name is displayed as
“PAD_001”, “PAD_002”, etc. The coordinates of each pad’s bounding box and center
are also listed in the report region.
To marker button is the function to send all the found pads to marker, then user can
zoom to each pad by clicking the item in the marker table.

210
4 Menus

13 PADs be found

Figure 229 Pad Report

4.7.8 Tools->IP->IP Scan

Skipper provides 2 modes for IP scan: “Normal mode” and “Extended mode”. The
default mode is “Normal mode”.

211
4 Menus

Figure 230: IP Scan


Normal mode:
This command is used to report defining information about ownership of the IP for
each and every IP on the chip. To report key information simply and efficiently, this
capability simplifies the work of the foundry and the IP developer in tracing and
recording use of the IPs.
IP information be recognized by the first 2 characters of the string (always space after
the “&”), the string will always look like:
& Vendor Company Full Legal Name
If the first character of a string begins with the reserved character “&” followed by a
space, then the expected sequence following the space is keyword, space and value,
the reserved keywords are "Vendor", "Product", "Version" and "Metric”.

An example is shown below:

& Vendor Huada Empyrean Software Co., Ltd.


& Product Generic_Core_Cell
& Version 2013Q2v1.0
& Metric 34.9856

An IP Scan window pops up after clicking on this command, “Vendor”, “Product”,


“Version”, “Metric”, “Referenced Count” and “Cell Name” will be showed in the
window, obtains a report of all the IPs in current cell.
Extended mode
This mode labels match '-keyStr' will be grabbed, in default keyStr, labels starting with
"& " will be grabbed. An example is as below:

Figure 231: Extended Mode

212
4 Menus

The IP information can be saved to an Excel format table, convenient for viewing and
analyze the details.

Figure 232 IP Scan Save


There are two modes for user to save IP scan result.

Figure 233 IP Scan Save Mode

4.7.9 Tools->IP->IP Tagging

To tag IP information on the current cellview easily and effectively, “Vendor”,


“Product”, “Version”, “Metric” and “optional information” terms can be tagged. The
tags are allowed to be placed at any X-Y coordinate and with any magnification. When

213
4 Menus

all fields are ready, IP information will be tagged on a given layout design to hold the
keyword information at once.

Figure 234 IP Tagging

Vendor can be used to entry a string indicating the IP vendor.


Product can be used to entry a string indicating the IP product name.
Version can be used to entry a string indicating the IP product’s version.
Metric can be used to entry a string representing a floating point number, it is used to
judge the value of a IP. When IP Tagging is activated, this “Metric” region be filled
with the current cellview’s area(in square microns) automatically as defaults, however,
it’s can be any other value choosed by user.
Optional Info can be used for user to add optional informations, the keywords for this
optional fields be tagged with the under-score(“_”) directly before the keyword name
with no space. There should never be a space in the keyword name. It is always a space
after the &.
For example:
”cellVersion 1.66” be tagged to “& _cellVersion 1.66”
”by lilian” be tagged to “& _by lilian”

Tag Layer can be used to specify the tags layer.


Coordinate can be used to specify the coordinates value, the recommended x-y
coordinate should be “0, 0”, however the user can choose any value.
Magnification can be used to specify the magnification, the recommended
magnification should be “1”, however the user can choose any value.

214
4 Menus

Figure 235 IP Tagging

4.7.10 Tools->Replace Text

Figure 236 Replace Text

To find texts and replace them with other text name at one time, supports to replace
with prefix/suffix way, supports replace text for bus.

FORM means the text which will be replaced by other text.


TO means the target text.
Replace means to replace text with specified text name.
Prefix means to add prefix on text.
Suffix means to add suffix on text.
Bus means to replace text for bus, supports [*], <*> and (*) format for bus pattern.
Hierarchy Depth means to replace text with specified hierarchy level.

4.7.11 Tools->Sealring Sizing

This command be used to readjust the length and width of sealring cell automation. The

215
4 Menus

corners of original cell will be kept. When adjustment, the via array will be filled or cut
according to the length and width where it’s necessary. After sealring sizing, all
readjustment will be saved to a new cell.

When click this command, the preview of the adjustment will be highlighted as follows:

Figure 237 the preview of the adjustment

You can see the preview, and readjustment it as you want, drag the highlighted views
to change the length and width of the sealring cell, or entry the values directly in form
by hand:

Figure 238 to readjustment the sealring cell

“Shift x/y” means to shift the final cell along with the definition. “Width/Height” means
the width and height of the final cell. “Auto Arrange” means to adjustment the via array
automatical according to the length and width where it’s necessary. When “Auto
Arrange” isn’t be activated, “dx/dy” and “offset x/offset y” will be used for the via
arrange, “dx/dy” means the space between vias, “offset x/offset y” means the offset
value of the vias. “Only Visible Layers” means to adjustment the sealring only on the
visible layers either.

216
4 Menus

When all adjustment be ready, click “OK”, then all readjustment will be saved to a new
cell as follows:

Figure 239 Original sealring cell and the final sealring cell

4.7.12 Tools->Check Chip Boundary

This command is used to report and highlight the small contents which outsides the
chip boundary.

Sometimes, user wants to check objects not only outsides the cell boundary, but also
the specified region, button “Left/Bottom/Right/Top” can be used to set the coordinates
of given region in all round direction. New coordinates can be specified into the field
manually, or update by pointing at the reference point for the new region.

left bottom right top

the checking boundary

Figure 240 Check Chip Boundary

217
4 Menus

Figure 241 Check Chip Boundary

Figure 242 Browse current result of “Check Chip Boundary”

4.7.13 Tools->Locate Bit Cell

Sometimes user gets a pair of coordinates in the memory block of a layout. He wants
to know the point lies in which memory bit cell. Skipper can easily report the row and
column number through locate bit cell function. It is very convenient especially for the
hierarchical layout. User need input the bit cell name and the coordinates of the point,
and choose where the row 0 and column 0 bit cell lies in the block. After setting the
necessary parameter, click on the apply button. Skipper will report the column and row
number of the bit cell according to the coordinates input.

218
4 Menus

Figure 243 Report bit cell row and column number according to the input parameter.

Skipper can also achieve the same goal if the layout is a flatten one. But in this case,
user must define the bit cell array range; dimension in X and Y axis of a single bit
cell. In this mode, user must be clear of the memory block structure, such as how
many banks in a block, other cells inserted in the bit cell array, etc..

4.7.14 Tools->Density

Density function is used to check density with pre-defined window size and step value.
It can output the total area value if the window size and step value are not defined. It
can generate a density distribution on a Boolean derived layer.
This function is not for the large SoC full chip density checking. The sign-off standard
usually embedded in a DRC rule deck. This function is for density debugging. User
does not need prepare a complicated rule deck. The advantage of using it is to show the
density distribution by a heat map and histogram.
The result can be saved out and loaded back. Both its own density result format and
other tools format can be loaded back and highlighted in the layout. The GUI includes
the following settings.
Select Region: To specify a region with mouse in the layout. The density checking is
done in this region. User can draw a rectangle covered the full chip zone, it may take
longer time to finish density checking on a large layout.
Select Layer: user need select an existing layer from the pull-down menu. The density
checking is done on the selected layer.
Boolean Layer: It supports Boolean AND, OR, NOT, XOR commands. With the mouse
point hanging over the Boolean Layer blank, a hint message pops up to tell user how to
219
4 Menus

write Boolean command. Both lpp and layer name can be used in the command. For
example:
(Poly.drawing and AA.drawing) or ESD.drawing.
Options: User need specify the window size and step value in X and Y direction for
density calculation. For density checking, the checking region is divided into small
windows according to the set up value. In each window, the total shape area is divided
by window area. Density value is normalized for all the windows.
Apply: After setting is done, click on the Apply button to start calucation.
Load: Load button is used to load other tool’s density log file or Skipper’s density result.

Figure 244 Density checking result shown in layout and by histogram

To set up the heat map and histogram color, user need open the option form through
the menu Options->Preference->Colors->Density. In this density color setting
window, user can customize the following settings.
Data Distribution: The density data can be divided into different groups based on the
density value. Each group has a particular color to represent. The data range and
group numbers can be set in data distribution section.
Color Scheme: Skipper has six types of pre-defined color scheme. User can choose
any type of it.
Invert Color Scheme: The color schemes can be inverted by checking this option.

220
4 Menus

Figure 245 Density color setting

By default the data rage of the density is from the minimum to the maximum value. If
wants to omit some values, he can set the minimum and maximum value by choose
Custom Min-Max. If he chooses this method, he must input the values manually.
Division numbers means how many groups user wants to set.

Figure 246 Set the data range and group numbers

221
4 Menus

Color scheme includes the default scheme and other five groups.

Figure 247 Set the color scheme

In the densiy calculation window, user can set the window and step if checking the
Enable Density Grid option. The following picture means the window size is 5x5um
and each window is side by side aligned. If unchecking the Enable Density Grid, all
the selected region is used as a single window to calculate density.

Figure 248 Density checking window set up

Check on the Select layer option, and choose a layer in the layout from the pull-down
menu. The density will be calculated on the selected layer.

Figure 249 Density checking layer selection


If user wants to check density on a derived layer generated from existing layer, he can
check on the Boolea Layer, and input the Boolean expression manually.

222
4 Menus

Figure 250 Density checking on a Boolean derived layer

After calculation is done, the results are not only shown in the layout with heat map,
but also recorded in the result window. User can expand the layer record and see any
density group by checking the visible options.

Figure 251 Result record classfied by density value group

Right click on the result, a pop up menu is shown. User can save the result as a file, or
delete it. User can aslo control visible or invisible, or zoom to the result in the layout.

223
4 Menus

Figure 252 Pop up menu related to the density result

4.7.15 Tools->Area

The function is used to calculate the total area of all shapes on the specified layer. User
need specify a layer from the pull down menu. Then draw a rectangle in the layout to
define the calculation area. Click on the Apply button, the total area of the specified
layer is shown in the table. The unit is um2. About the FPD option is for the area
calculation of FPD(flat display panel). Because the character of this layout is that lots
of repeat pixels are used, to improve the calculation speed, user must check on this
option and input one pixel’s height or width. If the height and width are very different,
input the average dimension of height and width.

Figure 253 Area calculation for the specified layer.

224
4 Menus

4.8 Verify Menu

Verify menu is mainly used to deal with layout physical verification. It contains
EmpyreanTM ‘s own physical verification tool kit. Skipper also provides an interface to
connect with other physical verification tools. To run other company’s PV tool, user
need install those tools’ package and apply for licenses. Skipper only provides a
platform to highlight DRC/LVS results in the layout. Argus is the name of
EmpyreanTM’s PV tool kit. It includes Run Argus pve, Run Argus drc, Run Argus
lvs. In the menu, user can review DRC and LVL results with the embedded debug
interface by choosing Check DRC Results, or clean all the highlights by choosing
Clear Annotations. Run Socket Only is used for finding out a free socket port to
connect with other’s PV tool.

4.8.1 Verify->Run Argus->Run Argus pve

This command is used to select an ‘Argus’ verification results, and call ‘Argus PVE’
tools interface.

Figure 254 Open DRC database

User can select and load DRC database in this window. DRC database are ASCII code
for both Argus and Type3. User can load DRC results by inputting the path and file
name in the database path or using browse button. Please note, if Type3 svdb database
is loaded, user must transform the data to Argus format first by choosing Type3 in the
database type pull down menu. The transform of database needs to be done only once.
After the transform completed, user can load the transformed data by choosing Argus
in the pull down menu. This transform needs a Type3 QDB or CCI license.

User can also choose to do partial transform or full transform by checking the
225
4 Menus

corresponding option button. Partial transform only conducts transformation on the data
which has electrical connectivity to LVS discrepancy. Choosing full option will
transform all the svdb data to Argus database format.

Figure 255 PVE interface

Sometimes, user wants to get the screenshot of DRC/LVL results report file, used
to generate DRC/LVL results report file in HTML format, below is an example of a
screenshot results report:

//////////////////////////////////////////////////////////////////////////////

PVE DRC/LVL Report


Summary
Database File: /work/skipper/test/drc.out
Top Cell: RAM1kx8
Precision: 1000
There are 1 cells, 204 rule checks, 24 errors.
Generated at: Tuesday, May 08, 04:12:22 PM, 2012
Cell Name Rule Check Name Original Result Num Report Result Num
ALL ALL 329 24
RAM1kx8 ALL 329 24
NW_3 320 16
M1_3&4 3 3
M2_6 1 1
M3_6 2 1
PD_M4 1 1
PD_M5 1 1

226
4 Menus

PD_M6 1 1

RAM1kx8
NW_3
Rule File Pathname: t.drc
Minimum dimension of an NW region not connected to the most
positive power supply is 2.10um.
Need to be changed depending on your power supply name
In this case the most positive voltage

Overview:
No ID Rule Check Cell Type Fixed
1 275 NW_3 RAM1kx8 p 0
2 17 NW_3 RAM1kx8 p 0
3 274 NW_3 RAM1kx8 p 0
4 58 NW_3 RAM1kx8 p 0
5 317 NW_3 RAM1kx8 p 0
6 308 NW_3 RAM1kx8 p 0
7 305 NW_3 RAM1kx8 p 0
8 318 NW_3 RAM1kx8 p 0
9 315 NW_3 RAM1kx8 p 0
10 312 NW_3 RAM1kx8 p 0
11 293 NW_3 RAM1kx8 p 0
12 306 NW_3 RAM1kx8 p 0
13 311 NW_3 RAM1kx8 p 0
14 316 NW_3 RAM1kx8 p 0
15 320 NW_3 RAM1kx8 p 0
16 319 NW_3 RAM1kx8 p 0

NO. 1
ID 275
Check NW_3
Cell RAM1kx8
Fix 0
Type p
#PA 4.85998
#PP 9
227
4 Menus

Coordinates (276.245,104.9) (278.945,104.9) (278.945,106.7) (276.245,106.7)


Other ID 19 277 21 279 23 281 25 283 27 285 29 287 31

NO. 2
ID 17
Check NW_3
Cell RAM1kx8
Fix 0
Type p
#PA 4.86
#PP 9
Coordinates (45.545,94.9) (48.245,94.9) (48.245,96.7) (45.545,96.7)
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 273 272 271 270 269 268 267
Other ID
266 257 258 259 260 261 262 263 264 265

228
4 Menus

NO. 3
ID 274
Check NW_3
Cell RAM1kx8
Fix 0
Type p
#PA 4.86002
#PP 9
Coordinates (276.245,99.9) (278.945,99.9) (278.945,101.7) (276.245,101.7)
Other ID 18 276 20 278 22 280 24 282 26 284 28 286 30 288 32

NO. 4
ID 58

229
4 Menus

Check NW_3
Cell RAM1kx8
Fix 0
Type p
#PA 8.64
#PP 13.2
Coordinates (72.545,139.9) (77.345,139.9) (77.345,141.7) (72.545,141.7)
57 56 55 54 53 52 51 50 49 48 47 46 45 59 60 61 62 63 64 129 130 131
132 133 134 135 136 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
33 34 35 36 37 38 39 40 41 42 43 44 101 102 103 104 105 106 107 108
Other ID
109 110 111 112 128 127 126 125 124 123 122 121 120 119 118 117
116 115 114 113 137 138 139 140 141 142 143 144 145 146 147 148
149 150 151 152 153 ...

NO. 5
ID 317
Check NW_3
Cell RAM1kx8
Fix 0
Type p
#PA 51.2998
#PP 60.6
Coordinates (46.145,159.9) (74.645,159.9) (74.645,161.7) (46.145,161.7)
Other ID

230
4 Menus


//////////////////////////////////////////////////////////////////////////////
About more information about the usage of PVE, please refer to “ARGUS PVE User
Manual”.
Flow of only displaying the layers related rules
1) Create the CTL file
In the Argus PVE window, choose “Tools->Create CTL File”,in the popped up “Create
CTL File” dialog box, specify the DRC rule file and the CTL file, and then click the
“OK” button

2) load the CTL file which is created by step 1) by “Tools->Import CTL File”.
3) Check the DRC errors
you can see the layers unrelated to the rules was blocked to display in layout viewer
when highlight the DRC errors. For example for the rule check :INT metla4 <=0.26, it
will only display the metal4 layer in the layout view when highlight this DRC errors.

231
4 Menus

4.8.2 Verify->Run Argus->Run Argus drc

This command can be used to call Argus Interactive to run DRC.

4.8.3 Verify->Run Argus->Run Argus lvs

This command can be used to call Argus Interactive to run LVS.

4.8.4 Verify-> DRC Results

This command is used to highlight and back annotation DRC error markers quickly.
Supports DRC database (ASCII format) of Argus. Using this function, user can view
and browse the error items between layout cell view and DRC database.
Default viewer is sort by cell name, from skipper 2106,user can sort results by rule
check, added “Default view by Rule check” option to “Drc->General” page of
“Options->Preference” window for sorting LVL results by rule in default.

232
4 Menus

Figure 256 DRC Result

1) Load the DRC database by specifying “DRC File”


Related options are following:

2) General operations
After the DRC errors are loaded, several general operations are provided in context
menu.
Change style: change the highlight color of DRC error
Show Selected: highlight the selected DRC errors in layout view
Hide Selected: hide the selected DRC errors in layout view
View By Rules Check/Cell: switch to list the DRC error tree based on cell or rule
name
Auto Set LPP Visible in LSW: only display the layers related to the rules
Fix Cluster: mark the DRC errors as fixed
Waive Cluster: mark the DRC errors as waived
Undo Waive Cluster: undo waive
Waive Cluster With Comment: waive DRC error with comment

3) Hierarchy related options


233
4 Menus

Cell: back annotated DRC error to the corresponding cell


Top: back annotated DRC to top cell.
Hierarchical: show all the results of reference sub-cell in top cell

4) Filter settings
Click the button, “Set Drc Filter” window will popped up as shown in Figure 257.

Figure 257 Filter the DRC errors


5) Results/Reason tab
Results tab shows the groups of the DRC errors. The reason tab shows the content of
the rule check

234
4 Menus

Figure 258 Result Tab

Figure 4-218 Reason Tab

4.8.5 Verify->Clear Annotations

This command is used to clear all annotations.

4.8.6 Verify->Run Socket Only

This command is used to obtain a socket number. When user actives any DRC/LVS
235
4 Menus

debug interface, he can take Skipper as the layout tool. The communication between
Skipper and other tool depends on the socket port. Clicking on the menu, a window
pops up. Click on the listen button, the tool will detect and report a free socket number.
Every DRC/LVS debug tool needs a layout platform to work with. All those tools have
a set up option to let user input the socket number. User can fill in that socket number
Skipper reports into the debug tool. When the connection is built, user can click on the
DRC/LVS index number to show it in the layout.

Figure 259 Get a free socket port from Skipper

4.9 Options Menu

Options menu contains two commands, Preference and Key Mapping.


Preference can be used to set display preference of the layout viewer. Key mapping
can be used to set the hotkey.

4.9.1 Options->Preference

This command is set up for the default settings. All global parameters can be specified
here, such as label/instance display mode, Grid/Axis display mode, layout window
background color settings, the Cartoon color settings, highlight color settings, etc.

236
4 Menus

Figure 260 Preference


There are 11 option tabs in the form: File, Tech, Display, Layer, Trace, P2P, Screenshot,
Application, Colors, Cache and Drc.

File tab specifies the options related to layout loading and saving.
General tab is for defining general options. Now there’s only 1 option.
“Remind user automatically if layout file is modified” option is for
controlling whether to remind user that the layout file is modified when the
layout file is opened. Once enabled this option, user can specify the interval
minutes for checking the layout file status.
Load tab is for defining options for loading layout.
“Multi-thread loading” option is for specifying the threading number when
loading layout.
“Split the instance array that is not on the grid” option is for controlling
whether to split the array which is not on grid when loading GDS. By default,
it’s not checked and the array will be kept. The dx and dy will be rounded. If
checked, the illegal array will be split.
“Split large polygon when loading” is an experimental option for
controlling whether to split large objects with over million vertices when

237
4 Menus

loading layout. By default, it is enabled, which means the large objects will
be split. User can specify the maximum vertices for splitting polygon. The
default value is 8000.
Save tab is for defining options for saving layout.
“Check Available Disk Size” option is for checking the free space under the
specified layout saving path. If the free space size is smaller than the
specified value, a warning message pops up to ask user whether to save
continuously.
“Auto Save” option is related to layout auto saving. If turning on this option,
any editing action may trigger the layout auto saving function. A copy of the
new layout will be saved out in the specified path with the specified interval.
“Save to gds” part defines options when saving layout to GDS file. “Convert
circle in oasis to polygon, sizes number” option is for defining the polygon
vertice numbers when converting circle in OASIS to polygon.
“Save to oasis” part defines options when saving layout to OASIS file.
“Thread number” option is for specifying the max thread number of saving
to OASIS file

Tech tab specifies the fin grid related settings. From 2020.06 version, Skipper has
supported to display fin grid and snap objects to fin grid. The grid definition can be read
from the technology file formats of 2 mainstream layout editor tools.
In Skipper, A layer with grid definition is referred to as grid layer, such as
“FINFET.FB1”. The shape drawn on grid layer is referred to as grid shape, which
indicates the fin grid region. The layers which need to be snapped to the fin grid are
referred to as snapping layers. If the shapes on the snapping layers, such as
“OD.drawing”, are overlapped with grid shape, they must snap to the corresponding
grid.
The supported snapping objects are as following.
1) Rectangular geometries drawn on snapping layer. Polygon and other geometries
haven’t been supported yet. The supported snapping actions are “Create”, “Move” and
“Copy”.
2) Instances with rectangular shapes on snapping layer. For instances, the available
snapping actions are “Move” and “Copy”.

The related options are


Tech Option Description
Enable to read fin grid information from tech file. If selected,
Load fin grid from
the fin grid definition will be imported when reading tech file.
tech
By default, it is unselected.
Control whether to display fin grid in layout. If selected, the
Display fin grid fin grid tracks will be displayed on GUI. By default, it’s
unselected.
Min pixels of track Specify the min pixels of track step to display fin grid. If the
step to display fin maximum step value is less than the pixel value specified in
238
4 Menus

grid this setting, the fin track will not be displayed


Control whether to snap objects to fin grid. If selected, when
“Create”, “Move” and “Copy” rectangle geometries, the shape
Snap fin grid
will snap to the fin grid. This option works only when
“Display fin grid” is selected.

Display tab can be used to specify the display mode of labels, cell boundary, instance,
layers, Grid/Axis, etc. commands that related to displaying will be affected by the
settings. This tab can be also used to specify the behavior of RMB.

Figure 261: Display Zoom

Layer tab can be used to set short key and properties for layers.

Figure 262 Layer Short Key form


Short key tab is used to set different layer groups to control them to be displayed
or hidden by short key. Click on the add button, input short key by choosing and
pressing the keys in the keyboard, the short key is set up. Double click on the layer
Group/ Command column, input layer name or layer number, or layer group names.
The layer short key option is shown in the above picture.
Trace tab can be used to specify the option for trace and Htrace. For detail information
please refer to the chapter Query->Trace/Short (chapter 4.6.14).

239
4 Menus

P2P tab can be used to specify the option for P2P function. The P2P options are
introduced in the chapter Query->P2P, please refer to 4.6.15.5.

Screenshot tab can be used to set the option for screenshot.

Application tab can be used to set the other options for skipper.
All the other options are described in the following table.
Table 4-8 Options-1

Display Option Description


Multi-thread,
to display layout with multi-thread mode, otherwise use single thread to display
render layers
layout.
with threads
Thread Number to set thread number, the thread range is 0-16.
Display pixels by
to display overlapped shapes from different layers with another color.
mixed color
User bitmap for to display repeat instances using bitmap. Display speed is faster but slightly less
repeat instances accurate using bitmap.
User image
to display visited regions faster using image cache instead of refresh. This is
cache for visited
used for fit, pre/next view.
regions
Blink interval to specify blink interval time.
Instance origin the instance in cellview has a reference point as the original point, this option
can be used to make this original point visible as a cross mark.
Show instance
to specify whether show the orientation of instance.
orientation
normally, we use a character “F” to represent the direction of the instance. With
this option, user can see a character “F” showing on the cell. The direction of
“F” represents the relative direction to the original master cell. There are eight
directions to specify the instance orientation:
RO/R90/R180/R270/MX/MY/MXR90/MYR90.

Draw orientation
marker with F

240
4 Menus

to specify the instance name showing with fixed size. If this option is not
Fixed text of checked, the name size will be adjusted automatically when zoom in/out.
instance name

Array: Display
array of tiny Decides how to display objects array in the layout. User can choose only
instances/Display display the array border or the details of tiny instances.
array border only
Display tiny
instances in gray If the instances are too small, user can show them in gray color.
layer
Mark
In layout, there are empty instances or undefined instances, this option enables
empty/undefined
user to display the insertion origin of the instances in layout.
instances
Filter Instances
by smaller Filter out small instances not to display. When zoom in, those small instances
bounding box can appear automatically.
size
Draw instances
bounding box
to draw the instance bbox and name on top level with enabled this option.
and name on top
of layers
Show top cell’s to specify the top cell boundary displaying on/off. Cell boundary only includes
boundary the origin of label.
Drafting label to specify all the texts in the layout only have two directions, R0 and R90
Fixed Font for to show label with fixed font, pixel height and orientation.
Label
Overwrite label to set uniform label height. Input a height value in the entry bar means to display
height(um) all the labels with the specified value, remember, this option and the objects

displaying option Filter on the top of the Skipper interface both

241
4 Menus

effect the display of label.


Display Grid to specify the Grid displaying on/off.
Minor Grid for example, value “0.005” means a minor dot is displayed on every five DBU.
Major Step for example, value “5” means a big dot is displayed on every “5” minor gird.
Minor Grid grid will be hidden when minor grid space is smaller than specified pixels value.
Space Pixels
Display Axis to specify the Axis displaying on/off.
Minor Grid How many pixels are needed between minor grid.
Space Pixels
Hide path center Whether to show center line of path object.
line
Layer Option Description
Open with layers to specify all layers invisible when Open and Reload, it helps to speed-up
hidden drawing when opening cells.

Using after technology file have loaded, in LSW region, layer name and layer purpose
abbreviated layer will be showed with its abbreviation type which promised in technology file.
name

Map all layer Whether to map all layer number and data type to layer name and purpose name
names in tech respectively.
file
Open layer with can be used to load cell’s layer purpose and groups status automatically
default layer (including “layer number/purpose name”, “layer group”) when Open, Reload
setting and or Open History, the cell’s layers/group file should be placed under the Skipper
grouping running directory, users can create it by handwork, or get it by File->Layer
Settings->Save Layer & Save Layer Group command.

242
4 Menus

layer group

layer number/purpose name

Example of a layers/group file:


#Layers file generated by Skipper

BEGIN LAYERS
2 0 Ndiff drawing
4 0 PPoly drawing
5 0 Contact drawing
6 0 Metal1 drawing
11 0 L11 drawing
13 0 IOPW drawing
20 0 L20 drawing
22 0 Pdiff drawing
24 0 L24 drawing
29 0 Frame drawing
31 0 IONW drawing
32 0 Pwell drawing
36 0 Metal2 drawing
37 0 Via1 drawing
40 0 Metal3 drawing
41 0 Via2 drawing
……
……
END_LAYERS

BEGIN_GROUP metal
60
36 0

243
4 Menus

40 0
END_GROUP

BEGIN_GROUP n-gate
20
40
END_GROUP
Default layer to specify layer name mapping.
names(set a
default layer
name file)
Screenshot Description
Option
Screenshot to specify the outputted options for screenshot: name、position、time.
Information
Application Description
Option
Appearance to specify the font style and size in graphical interface, menus, dialogs, console,
reports and text displaying regions such as Library Browser, LSW, Status Line
and Command Line, etc.
Cell browser to specify displaying the referenced instance’s count, it will be showed behind
every cell’s name in Library Browser.

Web Browser can be used to choose the browser to view this “Skipper User Manual”.
Selection:Tap by to specify that only can tap the visible layers.
visible layers
Selection:Show to specify the coordinates of the selection box displaying on/off.
selection box

244
4 Menus

Selection: Show to show tip of Tap yes/no.


tip of Tap

Selection: Tap by to show tip of Tap for visible layers.


visible layers
Selection: Tap to filter out the same instance which are at the same position. Tap result will be
filter out instance less than real number with this option.
at same position
Selection: Keep to keep selection status after undo some editing actions: Stretch, Move, Delete,
selection after Merge, Chop, Align, Flip, Rotate, Reshape, Convert To Polygon, Split Array and
undo for some modify property.
edit actions
Selection: Goto when update the 'X-Y coordinate' value in Status Line and Window Box, 'Goto
Halo(um) Halo' can be used to update the cellview window size according to the input
value.
Selection: Specify the upper limit of highlight number
Highlight limit
number
Measure: Specify the font size of measure results.
Measure font
size
Measure: Ruler Specify the font size of ruler.
font size
EIP: Set Display To display current hierarchy level after return.
Level As
Hierarchy Level
When Return
EIP: Support To support pre-selection when do 'EIP' and 'Descend'.
PreSelection
245
4 Menus

Mouse setting: To determines whether some mouse events should be handled as a drag event or
Mouse a click event. If the time between mouse pressing and releasing is longer than
Sensitivity the value here, or if the size of rectangle on that mouse over and down is larger
than the value here, it will be handled as a drag action, other situations will be
handled as a click action.
Unit: Uniform To check the uniform internal DB unit when Open, Create Instance and IP
internal db unit Merge. With enabled this option, user can specify one uniform DBU for data,
per UM else reference cells which don’t have the same DBU with current cell can’t be
created.
Shared layout: To enable to share the layout data in memory.
Sharing layout
data in memory
Shared layout: To set the user permission for shared memory. The “View”, “Save” and “show
User Permissions layout path” permission can be configured.
History To filter the command in history.
Misc: Dynamic To report box size (width and height), path length or polygon line’s length during
measure Create Rectangle/Create Polygon/Create Path. Details reference fig 4-168
and 4-169.
Misc: Maximum Means for the boolean operation of layer or objects (Boolean, Layer
Vertices for Generation, Size, Multi-Boolean Operations), the vertices of the deriving
deriving polygon polygon will be limited from '3' to '8000', the default value is '4000'.
Colors Option Description
Colors: LSW To set customized color for layers in LSW
Colors: GUI To set a whole set of colors for items when using Skipper, such as
Background/Foreground/Highlight/Select/Cartoon/Ruler/Measure/Instance/Top
Cell Region
Black Scheme and White Scheme are two pre-set color schemes.
Colors: Trace To specify the highlight colors for trace result.
Colors: Density Color setting is described in the Chapter Tools->Density.
Colors: Figure Color setting for figure measurement.
measure
Cache Option Description
GDSII/OASIS: To enable load layout in cache mode if there’s index file and no shared memory.
Cache
GDSII/OASIS: To specify whether to ignore modify time of layout and load layout leveraging
Ignore modify index file in any case.
time of layout
GDSII/OASIS: To specify the directories of index file. “Manage” button is used to manage the
The top directory index files under the specified directories. “Add” button is used to add new
should be directory. “Delete” button is used to delete the directory.
writable
GDSII/OASIS: “Delete files not used in the last” is used to set the days for deleting old index
Available to the files automatically. “Delete old version cache file” is used to enable to delete old
top directory version index file automatically.
246
4 Menus

GDSII/OASIS: Specify the remote command format for loading layouts shared on other
Remote machines.
Command
Drc Options Description
General To set to ignore case of cell name when loading DRC results and set default view
by Rule check in DRC check

Figure 263 Add more colors for LSW

=>
Figure 264 Dynamic Measure Display: Create Rectangle

247
4 Menus

=> =>
Figure 265 Dynamic Measure Display: Create Path
If the data precision is greater than system precision, Skipper will detect this status,
give a warning and abort the loading, for example:

Data precision: 1000 (DBU/UM) is greater than system precision: 100 (DBU/UM)
Abort loading

Load failed!

When users want to Create Instance or IP Merge from other library with different DB
unit, if Uniform internal db unit per UM is not be checked, Skipper will detect this
status, give an error reporting and abort the operation:

Figure 266 Create Instance from other library with different db unit

Figure 267 IP Merge from other library with different db unit

Sometimes, user wants to transform the layout database precision for the special
purpose, or Create Instance and IP Merge from other library with different DB unit,
the Uniform internal db unit per UM option can be used for. After Create Instance
and IP Merge from other library with different DB unit, the layout database precision
will be transformed to the higher precision.

Layer name map can be used to specify layer name mapping, enable user to specify
layer name with their private layer name. The format of layer name mapping file be
248
4 Menus

shown as below:

Figure 268 Specify “Layer name map” file

4.9.2 Options->Key Mapping

This command provides an interface for hotkey setup.

Figure 269 Key Mapping

Style Elegant: specify the display style to elegant.


Style Classical: specify the display style to classical.
Application Definition: in gray color, which means they are system reserved hotkeys,
user cannot change it. Except this item, user can set up all the other menu commands
by clicking left mouse button on it. After clicking on it, the ‘Set Short Cut’ window

249
4 Menus

pops up.

Figure 270 Set hotkey

User can press on the keyboard to set the corresponding hot key. After the setup is
completed, user can click on the ‘Apply’ button to make the setup work. Or click on the
‘Save’ button to save the whole setup.

Load Form File: enable user load the hotkey from other setup files. The pull-down
menu includes the hotkey settings of ‘User Defined’, ‘Default’, ‘Type1’ and ‘Type2’
options.

Save As: to save current setting in a file but not make current settings take effect.

4.10 Help Menu

Help menu contains five commands, Contents, Release Note, Visit Us, Contact Us
and About, to show basic information about the Skipper and this user guide.

250
4 Menus

4.10.1 Help->Contents

This command is used to open this “Skipper User Manual”.

4.10.2 Help->Release Note

This command is used to open the Release Note.

4.10.3 Help->Visit Us

This command is used to let users visiting our company website homepage.

4.10.4 Help->Contact Us

This command is used to let users to be in touch with our on-line supports.

4.10.5 Help->About

This command reports information of current Skipper, such as version, build time, etc.

Figure 271 About Skipper

251
4 Menus

4.11 Ext

Ext menu contains several particular commands, to develop some scripts with a
particular user to make Skipper a more convenient tool in design flow.

A set of commands such as ‘Labels FromEdText’ can be used for this extension
application. The original convention file ‘gui_ext.tcl’ can be placed in directory
install_path/conf/library/gui_ext.tcl, home_path/.skipper/ext/gui_ext.tcl or
$SKI_EXT_PATH/gui_ext.tcl.

4.11.1 Ext->LabelsFromEdText

This command can be used to add labels from a text file.

After the command is executed, a window is popup up, the input parameter is the path
and name of the edtext file. All the labels in the edtext file will be added in layout at
once:

Figure 272 Select a EdText file to add labels

An example of edtext file is shown as following:

252
4 Menus

LAYOUT TEXT "oPad_TpOut" 2035.362 1202.635 142 OP1


LAYOUT TEXT "oPad_VD15" 2035.362 982.471 142 OP1
LAYOUT TEXT "oPad_DOUT" 2035.362 673.305 142 OP1
LAYOUT TEXT VSS 2030.677 1530.539 142 OP1
LAYOUT TEXT 1 1736.461 1417.253 142 OP1

The key word is:


LAYOUT TEXT "<text_name>" <x_pos> <y_pos> <text_layer> <top_cell_name>

The quote mark “” in text_name is optional, “text_layer” only supports layer property
“0”.

4.11.2 Ext->Crosstalk

If “RCEXPLORER_HOME” environment variable is set, “Crosstalk” menu will be


loaded. This command can be used to run crosstalk analysis by Empyrean Polas. For
more details, please contact with our AEs.

253
5 Layout Operations

5.1 Select Command

In the layout viewer, users can select one or more objects in the top cell.
To select one object, move the mouse over the target object (the object gets pre-selected)
and highlighted while the mouse is hovering over, and click left mouse button. The
highlight box is yellow when the object is pre-selected, and the box becomes red when
it is actually selected, as shown in below.
If several objects overlap, left-click in a raw or tap on the space bar serially to pre-select
objects.

Figure 273 Select objects


To select a group of objects, users can draw an area selection box around the objects.

Figure 274 Select objects by region.


To incrementally select objects, pressing the SHIFT key while doing single or area
selection. Pressing the CTRL key enables the incremental de-selection.
254
6 Trace Net/Short
Skipper supports tracing net from user specified input points and tracing short paths
between specified points. From 2021.06 version, Skipper refactored the GUI of tracing
function and added a new command “dbTrace2” to support more advanced functions.

This chapter introduces how to run tracing net/short flow using GUI and dbTrace2
command. The detail behavior of each step will be described in next sections.

6.1 Trace Net/Short In GUI

The main flow of tracing net/short in GUI is as shown in Figure 275.

Figure 275 Trace In GUI Flow


Step 1. Open Trace Widget. This step is for opening the user interface for tracing net
and short.
Step 2. Set Tracing Rule. This step is for setting the connectivity relationship between
adjacent layers.
Step 3. Set Tracing Options. This step is for setting the options related to tracing
operation.
Step 4. Trace Net or Trace Short This step is for executing the tracing operation and
viewing tracing results.

6.1.1 Open Trace Widget

Click “Query -> Trace/Short” to open “Trace” widget as shown in Figure 256.

255
6 Trace Net/Short

Figure 276 Open “Trace” Widget

“Trace” widget includes 3 tabs: “Input”, “Result” and “History”.

Figure 277 Input Tab: Trace net and short

Figure 278 Result Tab

Figure 279 History Tab

256
6 Trace Net/Short

6.1.2 Set Tracing Rule

Before tracing, user has to set tracing rule. Tracing rule is a file that describes the layer
connection relationship. For the detail description of tracing rule, please refer to How
To Prepare Tracing Rule section.
Clicking “Rules” button in “Trace” widget, “Connection rules” window will pop up.

Figure 280 Open “Connection rules” window

Figure 281 Load tracing rule in “Connection rules” window

The behavior of trace rule is as below.


1. By default the pre-defined trace rule file in the “skipper.conf” file under the
“.empyrean/skipper” directory of home will be loaded.
2. If there’s no pre-defined trace rule rule, Skipper will convert tracing rule from tech
file automatically. User can also load the tracing rule from tech file by Clicking
“Load From Tech” button.
3. User can also specify the trace rule file by himself or edit the trace rule on GUI.
After finished setting tracing rule, Click “OK”.

6.1.2.1 Edit Tracing Rule

Click “Edit” button in “Trace” widget, “Trace Rule Editor” window will pop up.
1. Define “Def” rule.
In “Define” tab, selecting “Define” type, specifying layer name and layer number
and clicking “Add” button, the “Def” rule will be added to upper table.
Selecting one rule in upper table, clicking “Delete” button, the selected rule will be
deleted.

257
6 Trace Net/Short

Figure 282 Set “Def” rule in “Trace Rule Editor”

2. Define “Equivalent” rule.


In “Define” tab, selecting “Equivalent” type, specifying equivalent group name and

clicking “ ” button to set the equivalent layers, clicking “Add” button, the
“Equivalent” rule will be added to upper table.

Figure 283 Set “Equivalent” rule in “Trace Rule Editor”

258
6 Trace Net/Short

3. Define “Via” rule.


In “Rules” tab, selecting “Via” type, specifying layer1 (lower layer) and layer2
(upper layer), specifying via layer, clicking “Add” button, the “Via” rule will be
added to upper table.
User can also specify via rule with condition. For details, please refer to Via Rule.

Figure 284 Set “Via” rule in “Trace Rule Editor”

4. Define “Con” rule.


In “Rules” tab, selecting “Con” type, specifying layer1 and layer2, clicking “Add”
button, the “Con” rule will be added to upper table.

Figure 285 Set “Con” rule in “Trace Rule Editor”


5. Define “Stop” rule.

259
6 Trace Net/Short

In “Rules” tab, selecting “Stop” type, specifying the layer to be stopped, clicking

“ ” button to select which layers need to be regarded as stop layers, clicking “Add”
button, the “Stop” rule will be added to upper table.

Figure 286 Set “Stop” rule in “Trace Rule Editor”

6. Define “Text” rule.


In “Rules” tab, selecting “Text” type, specifying text layer and metal layer, clicking
“Add” button, the “Text” rule will be added to upper table.

Figure 287 Set “Text” rule in “Trace Rule Editor”


7. Define “Halo” rule.

260
6 Trace Net/Short

In “Rules” tab, selecting “Halo” type, specifying metal layer and metal layer and
entering halo size, clicking “Add” button, the “Halo” rule will be added to upper
table.

Figure 288 Set “Halo” rule in “Trace Rule Editor”

After defined all rules, click “OK”.

6.1.3 Set Tracing Options

There’re several options which will affect tracing process. To set tracing options,

clicking “ ”button, “Preference->Trace” window will pop up. There’re 4 types of


tracing options.
⚫ Set Tracing Level and Tile Size Related Options
⚫ Set Net Display Related Options
⚫ Set Multiple Threads For Tracing
⚫ Set Check Via Related Options

6.1.3.1 Set Tracing Level and Tile Size Related Options

In “Trace” page, user can specify the tracing level and tile size as shown in Figure 289.
⚫ To Level: this option is for defining the hierarchy level which the tracer will trace
down to. By default it’s 200.
◼ Same As Display: User can select this option to set the “To Level” to current
display level.
⚫ Keep Trace Net: this option is for controlling whether to keep tracing results of
261
6 Trace Net/Short

last trace operation. If uncheck this option, the previous tracing results will not be
kept.
⚫ Popup LPP Selection Menu: this option is for controlling whether to pop up a
menu listed all metal layers when selecting tracing points on layout. If selected this
option, the lpp selection menu will be popped up as shown in Figure 290. The lpp
marked with “*” is the one have been selected by default.
⚫ Query Net Name: this option is for controlling whether to query net name when
tracing. If unchecked this option, the net name will not be queried. If defined Text
rule in tracing rule file, the text label on text layer defined in tracing rule file will
be taken as net name. If Text rule is not defined, the text label on same metal
drawing layer will be taken as net name.
◼ Max Level: this option is for defining the hierarchy level to query labels. The
default value is 1.
⚫ Use Trace 2.0: this option is for controlling the version of tracing engine. From
version 2019.06, tracing performance has been improved. By default this option is
checked. If user encounter problem, unchecking this option will adopt the old trace
engine.
◼ Signal Net Mode: this option is for defining the tracing mode to signal net
mode.
◆ Tile Size: this option is for defining the tile size for tracer. Usually user
doesn’t need to change it. It needs to be modified with AE’s guidance.
◼ Power Net Mode: this option is for defining the tracing mode to power net
mode.
◆ Tile Size: this option is for defining the tile size for tracer. Usually user
doesn’t need to change it. It needs to be modified with AE’s guidance.
⚫ Halo Level: this option is for defining the hierarchy level of nearby shapes which
tracer will trace down to, when there’re halo rules defined in tracing rule file. For
details, please refer to section Halo Rule.

Figure 289 Trace options

Figure 290 Popped up LPP selection menu when selecting tracing point

262
6 Trace Net/Short

6.1.3.2 Set Net Display Related Options

In “Net Display” page, user can specify the net display related options as shown in
Figure 291.
⚫ Line Width: this option is used to set the width of the outer frame of the highlight.
The value can be an integer between 2 and 10.
⚫ Zoom Factor: this option is for setting the display multiple of net compared with
the full screen size when right-click the net result and click “Zoom to”. By default
it’s 0.7 .
⚫ Blink: this option is for controlling whether to blink the net results.
⚫ Hide Text: this option is for controlling whether to hide the label highlight on net.
⚫ Fill Solid: this option is for controlling whether to fill solid on highlight.
⚫ Auto Refresh Interval(s): this option is used to set the time interval for
automatically refreshing the highlight. By default it’s 3 s.

Figure 291 Net display options

6.1.3.3 Set Multiple Threads For Tracing

In “Threads” page, user can specify the thread number for tracing as shown in Figure
292.
⚫ Maximum Trace Net Threads: this option is for setting the max threads to trace.
By default it’s 32.

Figure 292 Threads options

263
6 Trace Net/Short

6.1.3.4 Set Check Via Related Options

In “Check Via” page, user can specify the “Check Via Area” related options as shown
in Figure 293.

Figure 293 Check Via Ratio Options


⚫ Safe Ratio: this option is for defining the safe threshold of via area ratio. For each
intersection region of two adjacent metal layers defined in Via rule, “Check Via
Area” funtion will calculate corresponding via area ratio. If the via area ratio is less
than the “Safe Ratio” threshold, the intersection region will be reported.
𝑉𝑖𝑎 𝐴𝑟𝑒𝑎
Via Area Ratio =
𝐼𝑛𝑡𝑒𝑟𝑠𝑒𝑐𝑡𝑖𝑜𝑛 𝑅𝑒𝑔𝑖𝑜𝑛 𝐴𝑟𝑒𝑎
⚫ Unsafe Ratio Segments: this option is for defining the segment value of via area
ratio range. When via area ratio is less than safe ratio value, skipper will show them
with detailed unsafe ratio segments.
⚫ Highlight Color: this option is for specifying highlight color of “Check Via Area”
result.
⚫ Current Index Color: this option is for specifying current index highlight color.

6.1.4 Trace Net

In “Input” tab of “Trace” widget, select “Net” to enter tracing net mode.

Figure 294 Select Trace Net


To trace net,
⚫ Firstly, Set Tracing Region and Conditions. This step will specify tracing regions
and conditions. Both tracing region and condition will affect the behavior of tracer.
This step is optional
⚫ Secondly, Do Trace. Skipper supports to trace net by input points and label.
264
6 Trace Net/Short

Multiple points can be traced in batches.


⚫ Finally, View Tracing Results.

6.1.4.1 Set Tracing Region and Conditions

1.1.1.1.1 Set Tracing Region

User can set tracing region by selecting “Region” option, clicking “ ” button, then
selecting a region on layout. The tracer will stop tracing when meet the boundary of
tracing region. The shape cross the boundary of tracing region will be kept in tracing
result.

Figure 295 Set tracing region


User can add multiple tracing regions by select “Multiple Regions” in the pull-down
menu as shown in Figure 296.

Figure 296 Set multiple tracing regions

1.1.1.1.2 Set Tracing Conditions

Skipper provides 3 types of tracing conditions for locating possible short or float end.
They are “Property”, “Label” and “Width”, as shown in Figure 297Figure 299. If the
conditions are broken at one shape, the tracer will stop tracing and the shape will be
highlighted in different color when viewing tracing results.

265
6 Trace Net/Short

Figure 297 Set tracing conditions


⚫ Property
Select “Property” to enable tracing by property condition. User can select the

matching mode and property pattern type in “ ” and “ ” pull down


menus.
There’re 2 matching modes.
1. “==” mode: It means the tracer will continue tracing if the property of traced
object is equal to user defined pattern. If the property of traced shape is not
equal to user defined pattern, tracer will stop.
2. “!=” mode: It means the tracer will continue tracing if the property of traced
object is not equal to user defined pattern. If the property of traced shape is
equal to user defined pattern, tracer will stop.
The property pattern can be matched in exact string, wildcard or regular expression.

⚫ Label
“Label” checkbox can only be enabled when “Query Net Name” option is enabled
in “Trace->Trace” page of “Options->Preference” window. Selecting “Label” to
enable tracing by label condition, user can select the matching mode and label

pattern type in “ ” and “ ” pull down menus.


There’re 2 matching modes.
1. “==” mode: It means the tracer will continue tracing if the text label on traced
object is equal to user defined pattern. If the text label on traced shape is not
equal to user defined pattern, tracer will stop.
2. “!=” mode: It means the tracer will continue tracing if the text label on traced
object is not equal to user defined pattern. If the text label on traced shape is
equal to user defined pattern, tracer will stop.
The label pattern can be matched in exact string, wildcard or regular expression.

⚫ Width
Select “Width” to enable tracing by width condition. User can select the matching
mode in “ ” pull down menu and set width threshold value.
There’re 5 matching modes.
1. “<” mode: It means the tracer will continue tracing if the width of traced shape
is smaller than user defined threshold value. If the width of traced shape is not
smaller than user defined pattern, tracer will stop.

266
6 Trace Net/Short

2. “<=” mode: It means the tracer will continue tracing if the width of traced
shape is smaller than or equal to user defined threshold value. If the width of
traced shape is greater than user defined pattern, tracer will stop.
3. “==” mode: It means the tracer will continue tracing if the width of traced
shape is equal to user defined threshold value. If the width of traced shape is
not equal to user defined pattern, tracer will stop.
4. “>=” mode: It means the tracer will continue tracing if the width of traced
shape is greater than or equal to user defined threshold value. If the width of
traced shape is smaller than user defined pattern, tracer will stop.
5. “>” mode: It means the tracer will continue tracing if the width of traced shape
is greater than user defined threshold value. If the width of traced shape is not
greater than user defined pattern, tracer will stop.
The unit of width threshold is um.

6.1.4.2 Do Trace

After finished all the tracing condition settings, User can start tracing. Skipper supports
to trace net by selecting points and specified label.

1.1.1.1.3 Trace By Points

By default, “SelByPoint” button is enabled, Skipper will execute tracing operation


automatically after user selected input points on layout.

Figure 298 Select input point and trace


If “Multi-points” is enabled, the selected input points will be added to the point list as
shown in Figure 299. User has to click “Trace” button manually after all input points
have been added to point list. The input points will be traced in batches. Clicking RMB
on point list, the points can be added by specifying exact coordinates. The added points
can be enabled, disabled and deleted from point list.

267
6 Trace Net/Short

Figure 299 Trace multi-points in batches

1.1.1.1.4 Trace By Label

Skipper supports to trace net by user specified text label if defined “Text” rule in tracing
rule file. Click “SelByLabel” button to open “Trace From Label” window.

Figure 300 Trace From Label window


To trace net by label,
⚫ Firstly, Specify Label Pattern.
⚫ Secondly, Set Text Recognition Related Options.
⚫ Finally, Trace.

1.1.1.1.4.1 Specify Label Pattern


In “Trace From Label” window, label pattern file can be specified in left text box. The
label file format is as below.
labelPattern1 labelPattern2
labelPattern3
labelPattern4, labelPattern5

User can specify multiple label patterns in label pattern file. The valid separators
between label patterns for tracing net function are space, line break and comma. Please
268
6 Trace Net/Short

note semicolon is special separator for tracing short. If there’s semicolon appearing in
the label pattern, the tracer will switch to tracing short mode.

The label pattern is able to be matched in exact string, wildcard and regular expression.
The matching way can be selected in “Match Exactly” pull down menu. The label
pattern can also be loaded from file. Clicking “Clear” can clear the label pattern list.

1.1.1.1.4.2 Set Text Recognition Related Options


There’re 4 text recognition related options which can be defined in “Trace From Label”
window.
⚫ Layers: control whether to only recognize visible text. If selected “All Text in
Rules”, all label on the text layers defined in tracing rule file will be recognized. If
selected “Visible Text”, only the visible label on the text layers will be recognized.
⚫ Level: specify the hierarchy level for text recognition. For example, setting
hierarchy level to 10, only the text label on level 0~10 will be recognized. Or
selecting “Same As Display”, only the text label on the display level will be
recognized.
⚫ Limit: specify the limit of text number. Setting the limit to 1000, only the top 1000
text labels will be traced or add to point list. Selecting “Unique Name” will uniquify
the text labels with same name.
⚫ Region: specify the region for text recognition. If selected “Region”, by default
only the text in the displaying region will be recognized. If unchecked “By screen”
option and specified a region bbox, only the text label in the region will be
recognized.

1.1.1.1.4.3 Trace
Click “Trace” button in “Trace From Label” window to trace the recognized text label
directly.
Or Click “Add Points” button to add the points of recognized text label to point list in
“Trace” widget. Then click “Trace” button in “Trace” widget.

6.1.4.3 View Tracing Results

To view tracing results, switch to “Result” tab. The tracing results are listed in this tab
as shown in Figure 301.

269
6 Trace Net/Short

Figure 301 Trace Result Table


There’re 4 types of tracing results. Only “Original net”, “Short end” and “Halo”
types will be generated by tracing net.
⚫ Original net
It is generated by all tracing net operations. It includes all exact shapes on the traced
net.
⚫ Short end
It is generated by tracing net with conditions. It includes the shape which breaks
the tracing condition and makes tracer stop.
⚫ Halo
It is generated by tracing net with halo rule. It includes all neighbor shapes in the
halo region.
⚫ Short path
It is generated by tracing short operation. It includes the shapes on the short path.

1.1.1.1.5 View Settings

There’re several settings for view tracing results.


⚫ Hide Input Points: this check box is for controlling whether to hide input points
in layout. By default, it is not checked. The input points will be highlighted in
layout as shown in Figure 302.

270
6 Trace Net/Short

Figure 302 Show input points in layout


⚫ Sel Visible: this button is for selecting corresponding tracing result in result table
synchronously when selected highlighted tracing shape on layout. To select
multiple results, press and hold “Shift” and click the target highlighted shape. To
unselect selected result, press “Ctrl” and click the result. This is mainly for locating
the tracing result that user cared about quickly when there’re too many results in
the tracing table.
⚫ AV: this button is for viewing all results in layout.
⚫ NV: this button is for not viewing any results in layout.

1.1.1.1.6 Tracing Result Table

The tracing results are presented in table. In tracing result table, there’re 5 columns.
⚫ TID: this column is for showing the ID of tracing operation. If the ID is the same,
the tracing results are generated by the same tracing operation.
⚫ Net: this column shows the tree of tracing results. Expanding the tree, details of the
tracing results will be shown.
◼ The parent node of the tree is the net name. The net is named according to the
tracing result type.
◆ For “Original net” type, if there’re text rule defined in tracing rule file and
the “Query Net Name” option (referring to Set Tracing Level and Tile Size
Related Options) is enabled, the text label on the net will be recognized as
the net name of original net. If there’s no text rule or the “Query Net Name”
option is not checked, Skipper will assign internal net name. The naming
format is “cellName/net#”.
◆ For “Short end” type, it will add a suffix to the name of its corresponding
“Original net”. The suffix string can be “_pEnd”, “_lEnd” and “_wEnd”
which correspond to the short end shapes of tracing with “Property”,
“Label” and “Width” conditions. For example, if tracing net with width
condition and the “Orginal net” name is VDD, the name of its short end
shape will be “VDD_wEnd”.

271
6 Trace Net/Short

◆ For “Halo” type, its name format is “cellName/net_halo$TID”. For


example, if the TID is 22 and the cell name is top, the name of halo net is
“top/net_halo22”.
◼ The child nodes of the tree are the layers of the net.
⚫ S: this column is for defining the display style of tracing results.
⚫ T: this column shows the tracing type, which can be N and S. N means tracing net.
S means tracing short.
⚫ Cell/Property: this column shows the cell name which the net belongs to and the
property string if there’re any property defined on the object.

Figure 303 Tracing result table

Below operations can be applied to tracing result table.


⚫ Check check box in “Net” column to show the checked nets and layers on layout.
⚫ Uncheck check box in “Net” column to hide the unchecked nets and layers on
layout.
⚫ Change display color by clicking on “S” column.

Click RMB on tracing result to see more functions.

Figure 304 RMB menu of tracing result table


⚫ Change color: change display color of current net. It is active when clicked RMB
on both net and layer.

272
6 Trace Net/Short

⚫ Hide All: hide all tracing results on layout. It is active when clicked RMB on both
net and layer.
⚫ Hide Selected: hide selected tracing results on layout. It is active when clicked
RMB on both net and layer.
⚫ Show Selected: show selected tracing results on layout. It is active when clicked
RMB on both net and layer.
⚫ Show All: show all tracing results on layout. It is active when clicked RMB on both
net and layer.
⚫ Zoom To: zoom to selected tracing results. It is active when clicked RMB on both
net and layer.
⚫ Fit to visible results: zoom fit to visible tracing results. It is active when clicked
RMB on both net and layer.
⚫ Delete All: delete all tracing results. It is active when clicked RMB on both net and
layer.
⚫ Delete Selected: delete selected tracing results. It is active only when clicked RMB
on net.
⚫ Rename: rename the net name. It is only active when clicked RMB on net name.
It is active only when clicked RMB on net.
⚫ Change Cell: change the cell name which the tracing results belong to. The cell
name should be valid cell in the library. It is active only when clicked RMB on net
name.
⚫ Save Selected: save selected tracing results as oasis file. User needs to specify file
name in the popped up “Save Net” dialog. By default there’s a top cell named as
“top” in the oasis file. The tracing result of each net will be saved as a cell which
is instantiated under top. If checked “Flatten”, all tracing results will be saved
flatten in top level. It is active only when clicked RMB on net name.
⚫ Load: load tracing results from oasis file. It is active when clicked RMB on both
net and layer.
⚫ Reload LPP name: reload the LPP name from tech file. It is active when clicked
RMB on both net and layer.
⚫ Show Input Points: show input points of selected net. For details, please refer to
Show Input Points. It is active when clicked RMB on both net and layer.
⚫ View Label: view the label on the selected net or layer. For details, please refer to
View Label. It is active when clicked RMB on both net and layer.
⚫ Check Via Area: check via area on selected net or layer. For details, please refer
to Check Via Area. It is active when clicked RMB on both net and layer.
⚫ Highlight by width condition: check selected net by width condition and generate
new “wEnd” result which meet current width condition. It is active when clicked
RMB on both net and layer.
⚫ Generate Snapshot: output a group of snapshots with different zoom factor. It is
active when clicked RMB on both net and layer.

273
6 Trace Net/Short

1.1.1.1.7 Example of Tracing Net Results

Figure 305 shows the original layout before tracing.

Figure 305 Original layout before tracing


Figure 306 shows an example of the result of tracing net without tracing conditions and
halo rule. Clicking the point on the shape with label text “N2”, there’s 1 tracing result
shown in the result table. Its net name is “N2”. Net N2 is “Original net” type which
includes all shapes on the traced net. It is highlighted in yellow color in layout

Figure 306 Trace net without condition and halo rule

Among all shapes on the traced net, only the shape with text label “N4” has property

274
6 Trace Net/Short

“M2_path”. If defined tracing condition as “Property != Exact M2_path”, clicking the


point on the shape with label text “N2”, there’re 2 tracing results shown in the result
table as shown in Figure 307. Their net names are “N2_pEnd” and “N2”. Net N2_pEnd
is “Short end” type which includes the shape where the property tracing condition can’t
be met. The shape on net N2_pEnd is highlighted in red color. Net N2 is “Original net”
type which includes all shapes on the traced net. It is highlighted in pink color.

Figure 307 Trace net with condition “Property != Exact M2_path”

If defined “Label != Exact N3”, clicking the point on the shape with label text “N2”,
there’re 2 tracing results shown in the result table as shown in Figure 308. Their net
names are “N2_lEnd” and “N2”. Net N2_lEnd is “Short end” type which includes the
shape where the label tracing condition can’t be met. The shape on net N2_lEnd is
highlighted in green color. Net N2 is “Original net” type which includes all shapes on
the traced net. It is highlighted in purple color.

Figure 308 Trace net with condition “Label != Exact N3”

If defined “Width >=0.2”, clicking the point on the shape with label text “N2”, there’re

275
6 Trace Net/Short

2 tracing results shown in the result table as shown in Figure 309. Their net names are
“N2_wEnd” and “N2”. Net N2_wEnd is “Short end” type which includes the shape
where the width tracing condition can’t be met. The shape on net N2_wEnd is
highlighted in blue color. Net N2 is “Original net” type which includes all shapes on
the traced net. It is highlighted in red color.

Figure 309 Trace net with condition “Width >= 0.2”

If defined “Property != Exact M2_path” and “Width >=0.2” at the same time, clicking
the point on the shape with label text “N2”, there’re 3 tracing results shown in the result
table as shown in Figure 310. Their net names are “N2_wEnd”, “N2_pEnd” and “N2”.
Net N2_wEnd is “Short end” type which includes the shape where the width tracing
condition can’t be met. The shape on net N2_wEnd is highlighted in purple color. Net
N2_pEnd is “Short end” type which includes the shape where the property tracing
condition can’t be met. The shape on net N2_pEnd is highlighted in blue color. Net N2
is “Original net” type which includes all shapes on the traced net. It is highlighted in
yellow color.

Figure 310 Trace net with 2 conditions at the same time


Defining halo rule “[Halo] M5 1”, setting the halo level to 0, clicking the point on the

276
6 Trace Net/Short

shape with label text “N2”, there’re 2 tracing results shown in the result table as shown
in Figure 311. Their net names are “N2” and “top/net_halo9”. Net N2 is “Original net”
type which includes all shapes on the traced net. It is highlighted in orange color. Net
“top/net_halo9” is “Halo” type which includes the nearby shapes in halo range on
current layer. It is highlighted in blue color.

Figure 311 Trace net with halo rule on current layer

Defining halo rule “[Halo] M5 1”, setting the halo level to 1, clicking the point on the
shape with label text “N2”, there’re 2 tracing results shown in the result table as shown
in Figure 312. Their net names are “N2” and “top/net_halo10”. Net N2 is “Original net”
type which includes all shapes on the traced net. It is highlighted in red color. Net
“top/net_halo10” is “Halo” type which includes the nearby shapes in halo range on
current layer and adjacent layers. It is highlighted in purple color.

Figure 312 Trace net with halo rule on current layer and adjacent layers

277
6 Trace Net/Short

1.1.1.1.8 Show Input Points

Selecting a net or layer in tracing result, clicking RMB, Clicking “Show Input Points”
in the menu, input points of selected net will be shown in “Input Points” tab below the
result table as shown in Figure 313. Double clicking the net in result table can also
achieve same function.
In “Input Points” tab, the input points are listed in table. The Net Name is shown on the
top of the table. The 1st column is the point name which is “Pt_1” for tracing net
function. The 2nd column is the layer name on which the input point is selected. The 3rd
column is the coordinates of input points.

Figure 313 Show input points

1.1.1.1.9 View Label

Selecting a net or layer in tracing result, clicking RMB, Clicking “View Label” in the
menu, the details of label on the selected net or layer will be shown in “Labels” tab
below the result table as shown in Figure 314.

The label results are shown in tree. By default the label tree is in “View By Label” style.
The parent node is label name. The child node is the cell name which the label belongs
to. Clicking RMB, selecting “View By Cell/Label”, the label tree will be shown in
“View By Cell” style. The parent node is cell name. The child node is the label name.

In “Labels” tab, below functions are supported.


⚫ : for highlighting or hiding all labels on layout.
⚫ : for deleting all highlighted labels on layout.

⚫ : for switching to view previous label.

278
6 Trace Net/Short

⚫ : for switching to view next label.

⚫ :for controlling whether to skip labels in cell which hierarchy level is less or
equal to specified threshold. By default no label is skipped.
⚫ “Size/Color”: for setting size and color of label highlight. The valid range of size

is from 20 to 50. Clicking “ ” can set the highlight color.

Figure 314 View label

1.1.1.1.10 Check Via Area

Selecting a net or layer in tracing result, clicking RMB, Clicking “Check Via Area” in
the menu, Skipper will check the via area according to the “Safe Ratio” threshold
(referring to Set Check Via Related Options) defined in “Trace->Check via” page of
“Options ->Preference”. The “Check Via Area” result will be shown in “Via Area” tab
below the tracing result table as shown in Figure 315.

The results are shown in table. The 1st column of the table is “Via LPP” which shows
via layer name. The 2nd column is “Area Ratio” which shows the area ratio ranges of
each via layer. The 3rd column is “Number” which shows the number of via region of
each area ratio range. The area ratio range segment is determined by the “Unsafe Ratio
Segments” value defined in “Trace->Check via” page of “Options ->Preference”.
Selecting one via layer or area ratio range from the table, its exact area ratio and region
bbox will be shown above the table.

279
6 Trace Net/Short

Figure 315 Check Via Area


In “Via Area” tab, below functions are supported.

⚫ : for showing or hiding all highlight.

⚫ : for closing all via area results.

⚫ : for highlighting the first index result.

⚫ : for highlighting the last index result.

⚫ : for highlighting the previous index result.

⚫ : for highlighting the next index result.

⚫ : for zoom to current index result.

⚫ : for opening via area result file.

⚫ : for saving current via area result to a specified file, the data format is oasis.
⚫ Index: for specifying the index of “Check Via Area” result.

⚫ : for showing or hiding connection region coordinates.

6.1.5 Trace Short

In “Input” tab of “Trace” widget, select “Short” to enter tracing short mode.

Figure 316 Select Trace Short


To trace short,
280
6 Trace Net/Short

⚫ Firstly, Set Tracing Region. It will affect the behavior of tracer. This step is
optional.
⚫ Secondly, Do Trace. Skipper supports to trace short by input points and label.
Multiple points can be traced in batches.
⚫ Finally, View Tracing Short Results.

6.1.5.1 Set Tracing Region

User can set tracing region by selecting “Region” option, clicking “ ” button, then
selecting a region on layout. The tracer will stop tracing when meet the boundary of
tracing region. The shape crossing the boundary of tracing region will be kept in tracing
result. User can add multiple tracing regions by select “Multiple Regions” in the pull-
down menu. Please refer to Set Tracing Region for Trace Net.

6.1.5.2 Do Trace

Skipper supports to trace short by selecting points and specified labels. Tracing short
function requires user to specify two start points P1 and P2 for tracer to detect the short
path between them.

1.1.1.1.11 Trace Short By Points

By default, “SelP1” button is enabled. User needs to click a point on layout to add P1
to below point list. After user selected P1 from layout, “SelP2” button will be enabled
automatically. User needs to click a point on layout to add P2 to below point list.
Skipper will trace short path between P1 and P2 automatically after user selected both
P1 and P2.

Figure 317 Select P1 and P2 and trace


If “Multi-points” is enabled, multiple P1 and P2 points can be added to the point list as
shown in Figure 318. User need to click “Trace” button after all P1 and P2 points have
been added to point list. The short paths between any P1 and P2 points will be traced in
batches. As long as one short path is detected between any P1 and P2, tracer will stop
tracing. Clicking RMB on point list, the P1 and P2 can be added by specifying exact
coordinates. The added points can be enabled, disabled and deleted from point list.
281
6 Trace Net/Short

Figure 318 Trace short between multiple points in batches

1.1.1.1.12 Trace Short By Label

Skipper supports to trace short by user specified text label if defined “Text” rule in
tracing rule file. Click “SelByLabel” button to open “Trace From Label” window as
shown in Figure 300.
To trace short by label,
⚫ Firstly, Specify Label Pattern.
⚫ Secondly, Set Text Recognition Related Options.
⚫ Finally, Trace.

1.1.1.1.12.1 Specify Label Pattern


In “Trace From Label” window, label pattern file can be specified in left text box. The
label file format is as below.
labelPattern1 labelPattern2; labelPattern3 labelPattern4
Semicolon is the separator between P1 points and P2 points. The label patterns before
semicolon are P1 points. The label patterns after semicolon are P2 points. The separator
between same type of label patterns are space, line break and comma. If there’s no
semicolon defined in label pattern file, the tracer will switch to tracing net mode.
The label pattern is able to be matched in exact string, wildcard and regular expression.
The matching way can be selected in “Match Exactly” pull down menu. The label
pattern can also be loaded from file. Clicking “Clear” button can clear the label pattern
list.

1.1.1.1.12.2 Set Text Recognition Related Options


There’re 4 text recognition related options which can be defined in “Trace From Label”
window.
⚫ Layers: control whether to only recognize visible text. If selected “All Text in
Rules”, all label on the text layers defined in tracing rule file will be recognized. If
selected “Visible Text”, only the visible label on the text layers will be recognized.
⚫ Level: specify the hierarchy level for text recognition. For example, setting
hierarchy level to 10, only the text label on level 0~10 will be recognized. Or
282
6 Trace Net/Short

selecting “Same As Display”, only the text label on the display level will be
recognized.
⚫ Limit: specify the limit of text number. Setting the limit to 1000, only the top 1000
text labels will be traced or add to point list. Selecting “Unique Name” will uniquify
the text labels with same name.
⚫ Region: specify the region for text recognition. If selected “Region”, by default
only the text in the displaying region will be recognized. If unchecked “By screen”
option and specified a region bbox, only the text label in the region will be
recognized.

1.1.1.1.12.3 Trace
Click “Trace” button in “Trace From Label” window to trace short directly.
Or Click “Add Points” button to add the points of recognized text label to point list in
“Trace” widget. Then click “Trace” button in “Trace” widget.

6.1.5.3 View Tracing Short Results

To view tracing short results, switch to “Result” tab.

1.1.1.1.13 View Settings

The view settings are the same as tracing net. Please refer to View Settings.

1.1.1.1.14 Tracing Result Table

The tracing short results are presented in tracing result table. In tracing result table,
there’re 5 columns.
⚫ TID: this column is for showing the ID of tracing operation. If the ID is the same,
the tracing results are generated by the same tracing operation.
⚫ Net: this column shows the tree of tracing short results. Expanding the tree, details
of the short path will be shown.
◼ The parent node of the tree is the short path name. The short path naming
format is “cellName/short#”.
◼ The child nodes of the tree are the segemts in the short path.
⚫ S: this column is for defining the display style of tracing results.
⚫ T: this column shows the tracing type, which can be N and S. N means tracing net.
S means tracing short.
⚫ Cell/Property: this column shows the cell name which the net belongs to and the
property string if there’re any property defined on the object.

Below operations can be applied to tracing short results.


⚫ Check check box in “Net” column to show the checked nets and segments on layout.
283
6 Trace Net/Short

⚫ Uncheck check box in “Net” column to hide the unchecked nets and segments on
layout.
⚫ Change display color by clicking on “S” column.

Click RMB on tracing result to see more functions.

Figure 319 RMB menu of tracing short result table

⚫ Change color: change display color of current net. It is active when clicked RMB
on both net and path segment.
⚫ Hide All: hide all tracing results on layout. It is active when clicked RMB on both
net and path segment.
⚫ Hide Selected: hide selected tracing results on layout. It is active when clicked
RMB on both net and path segment.
⚫ Show Selected: show selected tracing results on layout. It is active when clicked
RMB on both net and path segment.
⚫ Show All: show all tracing results on layout. It is active when clicked RMB on both
net and path segment.
⚫ Zoom To: zoom to selected tracing results. It is active when clicked RMB on both
net and path segment.
⚫ Fit to visible results: zoom fit to visible tracing results. It is active when clicked
RMB on both net and path segment.
⚫ Delete All: delete all tracing results. It is active when clicked RMB on both net and
path segment.
⚫ Delete Selected: delete selected tracing results. It is active only when clicked RMB
on net.
⚫ Rename: rename the net name. It is only active when clicked RMB on net name.
It is active only when clicked RMB on net.
⚫ Change Cell: change the cell name which the tracing results belong to. The cell

284
6 Trace Net/Short

name should be valid cell in the library. It is active only when clicked RMB on net
name.
⚫ Save Selected: save selected tracing short results as oasis file. User needs to specify
file name in the popped up “Save Net” dialog. By default there’s a top cell named
as “top” in the oasis file. The tracing result of each net will be saved as a cell which
is instantiated under top. If checked “Flatten”, all tracing results will be saved
flatten in top level. It is active only when clicked RMB on net.
⚫ Load: load tracing results from oasis file. It is active when clicked RMB on both
net and layer.
⚫ Reload LPP name: reload the LPP name from tech file. It is active when clicked
RMB on both net and path segment.
⚫ Show Input Points: show input points of selected net. For details, please refer to
Show Input Points. It is active when clicked RMB on both net and path segment.
⚫ Generate Snapshot: output a group of snapshots with different zoom factor. It is
active when clicked RMB on both net and layer.

1.1.1.1.15 Example of Tracing Short Results

For example of Figure 320, by default, after tracing short, all shapes on the short path
are shown in layout.

Figure 320 Example of tracing short results

1.1.1.1.16 Show Input Points

Selecting a net or path segment in tracing short result, clicking RMB, clicking “Show
Input Points” in the menu, P1 and P2 of selected net will be shown in “Input Points”
285
6 Trace Net/Short

tab below the result table as shown in Figure 321. Double clicking the net in result table
can also achieve same function.
In “Input Points” tab, the P1 and P2 points are listed in table. The Net Name is shown
on the top of the table. The 1st column is the point name which can be “P1_1” and “P2_1”
for tracing short function. The 2nd column is the layer name on which the P1 and P2 are
selected. The 3rd column is the coordinates of P1 and P2.

Figure 321 Show input points

6.1.6 Check History

To see the history of tracing net and short, switch to “History” tab in “Trace” widget.

Figure 322 History tab


There are three shortcut buttons at the top of the tab.
⚫ Information: select this option to show information list. Double clicking any
history record can also have the same effect.
286
6 Trace Net/Short

⚫ Clear All: click this button to clear all history records.


⚫ Save All: slick this button to save all history records as an executable script. Users
can regenerate the same trace results by sourcing the script on skipper xterm.

There’re 5 columns in the history table.


⚫ Trace ID: the ID of tracing operation record.
⚫ Type: the type of tracing: Net or Short.
⚫ Pt Num: the point number of tracing operation.
⚫ In Cell: the cell the tracing operation is applied on.
⚫ Show Current Information: show the details of the selected record.
⚫ Set Current As Input: set the points of current record to input points of nex tracing
operation.
⚫ Save Selected: save the selected records as an executable script.
⚫ Clear Selected: clear selected records.

Figure 323 RMB of history list


The details of each trace history are displayed in the information list. This information
is related to the options when tracing.

6.2 Trace Net/Short Using db Command

Skipper provides “dbTrace2” command for tracing net and short in batch mode. This
section introduces the flow of running “dbTrace2” command.

The main flow of tracing net/short using db command is as shown in Figure 324.
Step 1. Clear Input Points and Options. This step is for clear all input points and
option settings.
Step 2. Set Tracing Rule. This step is for setting the connectivity relationship between
adjacent layers.
Step 3. Set Target Cell. This step is for setting the target cell for tracing,
Step 4. Set Tracing Options. This step is for setting tracing options.
Step 5. Trace Net and Trace Short. This step is for executing tracing net and short.

287
6 Trace Net/Short

Figure 324 Flow of Tracing Using Command

6.2.1 Clear Input Points and Options

Before tracing net and short using “dbTrace2” command, we recommend user to clear
all input points by specifying “-clearInput” option. For example,
% dbTrace2 -clearInput

6.2.2 Set Tracing Rule

Set tracing rule by specifying “-setRule” option when executing “dbTrace2” command.
For details about tracing rule, please refer to How To Prepare Tracing Rule. This step
is mandatory. For example,
% dbTrace2 –setRule ./traceRuleFile

6.2.3 Set Target Cell

Set target cell for tracing by specifying “-setCell” option. Use “-libId” option to specify
library ID of target cell. Use “-cell” option to specify cell pointer or “-cellName” option
to specify target cell name.
For example, set target cell by cell pointer.
% dbTrace2 –setCell –libId $lid –cell $cell
Or set target cell by cell name such as “top”.
% dbTrace2 –setCell –libId $lid –cellName top

6.2.4 Set Tracing Options

There’re 2 types of options: General Options and Net Name Options.

288
6 Trace Net/Short

6.2.4.1 General Options

The general options are for setting tracing level, thread number, tracing net mode and
so on. They need to be set by specifying “-setOption” option. The supported general
options are shown in below table.

Option Description
-level Optional argument to set max hierarchy level to trace. The default
value is -1 which means tracing to all levels.
-noVia Optional argument to set to output vias or not. If specified, then
no via output.
- Optional argument to set max thread number to trace. The value
maxThreadNum can be adjusted from 1 to “cpuCoreNum-1”. The default value is
“cpuCoreNum-1”.
-signalMode Optional argument to set signal net tracing mode or power net
tracing mode. If specified, it’s signal net tracing mode. If not
specified, it’s power net tracing mode.
-tileSizeUm Optional argument to set typical tile size. This is a debug option.
User doesn’t need to set it.
-haloLevel Optional argument to set the connection lpp level to search for
nearby object. The value can be 0, -1 and n (n>0). If set to 0, only
the object near the net on same layer will be found. If set to -1, the
object near the net on all metal and stop layers will be found. If set
to n (n>0), the object near the net on layers whose interval with
net object layer is less than or equal to n will be found.

For example, for setting tracing level to 0, setting maximum thread number to 32,
setting tracing mode to signal net mode, setting finding nearby objects near the net in
halo range on same layer, upward 1 layer and downward 1 layer, run below command.
% dbTrace2 –setOption –level 0 –maxThreadNum 32 –signalMode –haloLevel 1

6.2.4.2 Net Name Options

The net name options are for controlling whether to and how to set net name. User need
to specify “-setAutoNetName” option to set the net name options. The supported
options are shown in below table.

Option Description
- Optional argument to set auto setting net name by querying label
setAutoNetName or not. If set to 1, the net name will be queried automatically. If
set to 0, Skipper will assign internal net name
-netNameLevel Optional argument to set max hierarchy level to query label. By
default, it will query labels on all level.

289
6 Trace Net/Short

For example, for enable to auto set net name, setting max hierarchy level to query label
for net name to 1, run below command.
% dbTrace2 –setAutoNetName 1 –netNameLevel 1

6.2.5 Trace Net

To trace net,
⚫ Firstly, Set Tracing Region & Conditions. This step will specify tracing regions
and conditions. Both tracing region and condition will affect the behavior of tracer.
This step is optional
⚫ Secondly, Do Trace. Skipper supports to trace net by input points and label.
Multiple points can be traced in batches.

6.2.5.1 Set Tracing Region & Conditions

1.1.1.1.17 Set Tracing Region

User can set tracing region by specifying “-checkRegion” option. If set “-checkRegion”
to 1, the tracer will stop tracing when meet the boundary of tracing region. Use “-
regions” option to specify region bbox. The shape cross the boundary of tracing region
will be kept in tracing result.
For example, setting tracing region to (433.178, -76.359, 563.072, 177.202) and
(319.298, -58.565, 475.883, 89.123), run below command.
% dbTrace2 -checkRegion 1 -regions {(433.178,-76.359,563.072,177.202) \
(319.298,-58.565,475.883,89.123)}

1.1.1.1.18 Set Tracing Conditions

Skipper provides 3 types of tracing conditions for locating possible short or float end.
They are “Property”, “Label” and “Width”. If the conditions are broken at one shape,
the tracer will stop tracing and the shape will be highlighted in different color when
viewing tracing results. For the detail description, please refer to Set Tracing
Conditions.

⚫ Set “Property” Condition


User can set “Property” condition by specifying “-checkProp” option. The value of “-
checkProp” option can be “noCheck”, “exact”, “wildcard”, “regexp” and “noChange”.
“noCheck” means turn off pre-defined “Property” condition. “exact” means matching
the exact string of property. “wildcard” means matching property string using wildcard.
“regex” means matching property string using regular expression. “noChange” means
matching property string following previous setting. Use “-propStr” option to set the
string to check property when tracing net. Use “-propUmatch” option to set checking
290
6 Trace Net/Short

whether the property value does not match the ‘propStr’.

For example, for checking if the property of net is equal to “net=vdd”, run below
command.
% dbTrace2 –checkProp exact –propStr “net=vdd”
For checking if the property of net is not matching with “net=vdd*” in wildcard, run
below command.
% dbTrace2 –checkProp wildcard –propStr “net=vdd*” –propUnmatch”

⚫ Set “Label” Condition


User can set “Label” condition by specifying “-checkLabel” option. The value of “-
checkLabel” option can be “noCheck”, “exact”, “wildcard”, “regexp” and “noChange”.
“noCheck” means turn off pre-defined “Label” condition. “exact” means matching the
exact string of property. “wildcard” means matching label using wildcard. “regex”
means matching label using regular expression. “noChange” means matching label
following previous setting. Use “-labelStr” option to set the string to check label when
tracing net. Use “-labelUmatch” option to set checking whether the label value does not
match the ‘labelStr’.

For example, for checking if the label on net is equal to “vdd”, run below command.
% dbTrace2 –checkLabel exact –labelStr “net=vdd”
For checking if the label on the net is not matching with “vdd*” in wildcard, run below
command.
% dbTrace2 –checkLabel wildcard –labelStr “nvdd*” –labelUnmatch”

⚫ Set “Width” Condition


User can set “Width” condition by specifying “-checkWidth” option. The value of “-
checkWidth” option can be “noCheck”, “less”, “lessEqual”, “equal”, “greaterEqual”,
“greater” and “noChange”. “noCheck” means turn off pre-defined “Width” condition.
“less” means the width of net should be less than the specified value. “lessEqual” means
the width of net should be less than or equal to the specified width value. “Equal” means
the width of net should be equal to the specified width value. “greaterEqual” means the
width of net should be greater than or equal to the specified width value. “greaterEqual”
means the width of net should be greater than the specified width value. “noChange”
means checking width condition following previous setting. Use “-widthValue” option
to set the value to check width when tracing net.

For example, for checking if the width is greater than 0.2um, run below command.
% dbTrace2 –checkWidth great –widthValue 0.2

291
6 Trace Net/Short

1.1.1.1.19 Do Trace

1.1.1.1.19.1 Trace By Points


1. Set input points.
The input points should be specified by “-addSource” option. Use “-pt” option to
set the coordinate of each input point in um. Use “-layer” option to set the layer
number of each input point. Or use “-layerName” option to set the layer name of
each input point.
For example, for adding point (5.5, 34.580) on 8.0 layer and point (100.128 130.1)
on M2.drawing layer to input point list, run below commands.
% dbTrace2 –addSource –pt (5.5, 34.580) –layer 8.0
% dbTrace2 –addSource –pt (100.128, 130.1) –layerName M2.drawing

2. Do trace
Execute tracing operation by specifying “-doTrace” option.
For example,
% dbTrace2 -doTrace

1.1.1.1.19.2 Trace By Label


1. Set label options.
The label options are for controlling how to query the label points. User needs to
specify “-setLabelOption” option to set label options. The supported label options
are shown in below table.

Option Description
-matchType Optional argument to set matching type to check label text. The
valid values are “exact”, “wildcard”, ”regexp“ and “noChange”.
-visibleLpps Optional argument to set to find labels in all text rule lpps or
visible lpps. If set to 1, find labels in visible lpps. If set to 0, find
labels in all text rule lpps.
- Optional argument to set whether the same name point can only
uniqueName be found once or not. If set to 1, same name point can only be
found once. If set to 0, same name point can be found repeatedly.
-limit Optional argument to set the max number limit of found labels.
The valid range is [1,1000].
-labelLevel Optional argument to set max hierarchy level to find label.
- Optional argument to set the region to find label. The valid value
labelRegion is bbox of region.

For example, for setting matching type to exact, finding label in top level, run
below command.

292
6 Trace Net/Short

% dbTrace2 –setLabelOption –matchType exact –labelLevel 0

2. Find labels.
Use “-doFindLabels” option to find pin labels and get tracing points by given
matching string. The separator between pins in the matching string can be space,
line break and comma.

For example, for finding pin labels matching “VDD” and “VSS” and getting the
tracing points, run below command.
% dbTrace2 –doFindLabels “VDD VSS”

3. Do trace.
Use “-dbFromLabels” option to do tracing by the results of “dbFindLabels”. For
example,
% dbTrace2 –doFromLabels

6.2.6 Trace Short

6.2.6.1 Set Tracing Region

User can set tracing region by specifying “-checkRegion” option. If set “-checkRegion”
to 1, the tracer will stop tracing when meet the boundary of tracing region. Use “-
regions” option to specify region bbox. The shape cross the boundary of tracing region
will be kept in tracing result.
For example, setting tracing region to (433.178, -76.359, 563.072, 177.202) and
(319.298, -58.565, 475.883, 89.123), run below command.
% dbTrace2 -checkRegion 1 -regions {(433.178,-76.359,563.072,177.202) \
(319.298,-58.565,475.883,89.123)}

6.2.6.2 Do Trace

1.1.1.1.20 Trace By Points

1. Set P1 and P2 points.


The P1 and P2 points should be specified by “-addShort1” and “-addShort2”
options. Use “-pt” option to set the coordinate of each P1 and P2 in um. Use “-
layer” option to set the layer number of each point. Or use “-layerName” option to
set the layer name of each point.

For example, for adding point (5.5, 34.580) on 8.0 layer to P1 and point (2.55,0)
on M2.drawing layer to P2, run below commands.
% dbTrace2 –addShort1 –pt (5.5, 34.580) –layer 8.0
% dbTrace2 –addShort2 –pt (2.55, 0) –layerName M2.drawing
293
6 Trace Net/Short

2. Do trace short
Execute tracing operation by specifying “-doShort” option.
For example,
% dbTrace2 -doShort

1.1.1.1.21 Trace By Label

1. Set label options.


Please refer to Trace By Label in Trace Net.
2. Find labels.
Use “-doFindLabels” option to find pin labels and get tracing points by given
matching string. The separator between pins in the matching string can be space,
line break and comma. The separator between P1 pins and P2 pins is semicolon.
For example, for finding pin labels matching “Net1” for P1 and “Net2” for P2, run
below command.
% dbTrace2 –doFindLabels {Net1; Net2}

3. Do trace short.
Use “-dbFromLabels” option to trace short by the results of “dbFindLabels”. For
example,
% dbTrace2 –doFromLabels

6.2.7 View Results In GUI

After finished tracing net and short, user can generate tmp cell to view the tracing result
in GUI by specifying “-dumpTraceCell” option.
For example,
% dbTrace2 -dumpTraceCell

6.2.8 Save Results

After finished tracing net and short, the tracing results can be exported by specifying “-
saveToOasis” option. User can specify file name for saving the tracing results.
For example, for saving tracing results to “output.oas” file, run below command.
% dbTrace2 –saveToOasis “./output.oas”

294
6 Trace Net/Short

6.2.9 Example of Tracing Net Using db Commnad

295
6 Trace Net/Short

6.2.10 Example of Tracing Short Using db Command

6.3 How To Prepare Tracing Rule

Tracing rule describes the layer connection and other tracing constraints. There’re 3
ways of generating tracing rule.
⚫ Extract tracing rule from tech file on GUI or by db command. This section mainly
introduces how to extract tracing rule from tech file by db command. For GUI
operation, please refer to Set Tracing Rule.
⚫ Edit tracing rule on GUI. For details, please refer to Edit Tracing Rule.
⚫ Prepare the tracing rule file manually following the tracing rule format. This
following section will introduce the tracing rule format.

296
6 Trace Net/Short

6.3.1 Extract Tracing Rule from Tech File

Skipper supports to generate tracing rule from tech file by “dbCreateRuleFromTech”


file.
“dbCreateRuleFromTech” can extract tracing rule file from 3 types of tech file.
⚫ Type1: the tech file of layout editor tool V. For details, please contact Empyrean
AE.
⚫ Type2: the tech file of layout editor tool L. For details, please contact Empyrean
AE.
⚫ Type3: the tech file of physical verification tool C. For details, please contact
Empyrean AE.

For example, for generating tracing rule from tech file of layout editor tool V, setting “-
tfType” option to “type1”, using “-tf” and “-layermap” options to specify the tech file
and layer map path, run below command.
% dbCreateRuleFromTech -tfType type1 -tf 1.tf -layermap 1.layermap -out
skipper.rule

The general syntax is as below.


1) “#” is comment delimiter.
2) One line defines one rule.
3) The first column is keyword which represents rule type. The keyword should be
enclosed in brackets.
4) The other columns define the layer names, layer numbers, …

Here’s an example of a tracing rule file.

297
6 Trace Net/Short

There’re 7 types of rule which need to be defined in tracing rule file: “Def”, “Via”,
“Con”, “Stop”, “Equivalent”, “Text” and “Halo”.

298
6 Trace Net/Short

6.3.1.1 Def Rule

Def rule is for defining the layer name and layer number of connection layers. All
tracing layers should be pre-defined in the Def rule. This rule is mandatory. The format
is as below.
#[keyword] layerName layerNumber
[Def] M1.drawing 31.0
[Def] VIA1.drawing 51.0
Above example defines layer M1.drawing and VIA1.drawing whose layer numbers are
31.0 and 51.0.

6.3.1.2 Via Rule

Via rule is for defining the via connection relationship between layers. All connectivity
for tracing should be defined in Via rule. This rule is mandatory. The format is as below.
#[keyword] lowerlayerName upperlayerName viaLayerName
[Via] M1.drawing M2.drawing VIA1.drawing
Above example defines the connectivity between M1.drawing and M2.drawing, which
are connected through VIA1.drawing.
User can also define via rule with condition. For example, below rule defines M1 and
M2 are connected while V1 is overlapped with V1Opt1. The option keyword is
“Option”.
#[keyword] lowerlayerName upperlayerName viaLayerName [Option] LayerName
[Via] M1.drawing M2.drawing VIA1.drawing [Option] V1Opt1

6.3.1.3 Con Rule

Con rule is for defining 2 conductor layers which connected together without via layer.
The format is as below.
#[keyword] lowerlayerName upperlayerName
[Con] M0OD M0
Above example defines the connectivity between M0OD and M0.

6.3.1.4 Stop Rule

Stop rule is for defining the rules that to stop net tracing when connection rule meets an
object on the specified stop layers. User can specify multiple stop layers for 1 layer.
The format is as below.
#[keyword] layerName stoplayerName1 stoplayerName2 … stoplayerNameN
[Stop] M1 M1S
[Stop] M2 M2S1 M2S2

Stop rules are usually used to set stop layers which tracer should not trace a shape, such
as resistor, capacitor, etc. In the following diagram, the shape on the layer RESID
overlaps the shape on PPoly and assigns the resistive area. In this situation, user can
299
6 Trace Net/Short

specify the stop layer with connection rule “[Stop] PPoly RESID” to stop the tracing
with resistor.

Figure 325 [Stop] PPoly RESID


If not define a stop layer, the tracing will highlight from all the connected resistors.

Figure 326 [Via] Metal1 PPoly Contact

6.3.1.5 Equivalent Rule

Equivalent rule is for defining certain layers in a group, which are electrically connected.
The format is as below.
#[keyword] groupName layerName1 layerName2 … layerNameN
[Equivalent] met M2.drawing M3.drawing
Above example defines M2.drawing and M3.drawing layers as an equivalent group.
The group name is met.
In equivalent rules region, you can edit rules for physically and electrically equivalent.
This list layers will represent the same type of material. Using this rule, you can define
layers that connect by overlap or touch rather than through a connection via.
If user defined mask1 and mask2 for the same layer number in layer map file when
open data with tech file and map file, these layers are equivalent. Such as:
M1 drawing 31 0 mask1
M1 text 31 2 mask2

In the following diagram, the p-gate on the layer PPoly overlaps the n-gate on L24. In
this technology, user can specify the equivalent layers among PPoly and L24.

300
6 Trace Net/Short

Layer:
PPoly.drawing

Layer:
L24.drawing

[Equivalent] poly ( PPoly L24 )

Figure 327 [Equivalent] poly ( PPoly L24 )


During tracing, the same electrical connections will be found and established in order
of layer definition, equivalent rules, connection rules, stop rules and text layer rules one
by one.
For example,
[Equivalent] gg1 ( A A2 )
[Equivalent] gg2 ( B B2 )
[Via] A C B2
[Via] A2 D E
[Stop] A B

6.3.1.6 Text Rule

Text rule is for defining text layer and its attached layer. The format is as below.
#[keyword] textLayerName shapeLayerName
[Text] M2.pin M2.drawing
Above example defines that the corresponding text layer of M2.drawing is M2.pin.

6.3.1.7 Halo Rule

Halo rule is for defining the halo size (um) of the specified LPP. When tracing net, the
shapes connected to specified points and the nearby shapes within the scope of net shape
halo size will be traced out. The nearby shapes will be recorded as a net named as
net_halo in the tracing result.

The haloSize can be defined with a layer name which defines the halo size value of
specified layer. If defined halo size without layer name, it will be treated as default halo
size of all layers. If a layer is not defined with halo rule and there’s no default halo rule
defined, its default halo size value is 0. The format is as below.
#[keyword] layerName haloSize
[Halo] M1 0.5
[Halo] 0.8
301
6 Trace Net/Short

Above example defines that halo size of M1 is 0.5 and the default halo size of all layers
except M1 is 0.8.

By default, if defined halo rule, Skipper only traces the nearby shapes in current layer.
For tracing the nearby shapes including upper and lower layer, user needs to set halo
level option in “Preference” window or in “dbTrace2” command. Please refer to Set
Tracing Level and Tile Size Related Options and General Options.
For example, setting halo level to 1 and tracing rule as below, trace net on M2.drawing.
Both nearby shapes on M1.drawing and M3.drawing will be traced out as shown in
Figure 328. The shape highlighted in green color is the traced net. The shape highlighted
in purple color is the nearby objects.
[Def] M1.drawing 31.0
[Def] VIA1.drawing 51.0
[Def] M2.drawing 32.0
[Def] VIA2.drawing 52.0
[Def] M3.drawing 33.0
[Def] VIA3.drawing 53.0
[Via] M1.drawing M2.drawing VIA1.drawing
[Via] M2.drawing M3.drawing VIA2.drawing
[Halo] M2.drawing 0.5

Figure 328 [Halo] M2.drawing 0.5


Skipper also provided “dbGenHaloInfo” command for generating halo rule from RC
tech file. For details, please refer to the reference manual of Skipper

302
7 Layout Integration
This Chapter introduces how to run IP merge in batch mode. For GUI operations,
please refer to Tools->Switch Cell/IP Merge section in Chapter 4.

7.1 How to run merge

Skipper layout merge feature provides 4 different modes for different applications.
Skipper provides a Tcl based command to perform the layout merge function. Skipper
Layout Merge feature supports a simple script format for more efficient and easier use.
To simplify the learning process, Skipper can generate a sample merge script as a
template by running the following command:

% dbIPMerge –template my_script

User can edit this “my_script” file based on his needs and then perform the actual merge
with this command:

% dbIPMerge my_script

Skipper provides a trial mode to run with the merge script. With this mode, the log file
is generated but the output layout is not written on disk. User could check the log file
to make sure the cell matching is correct. “logfile_trial” is the log file generated by –
trial option. The naming convention is to add “_trial” to the log file specified in
“my_script”.
After checking log file, user can execute merge based on the script. The command of
this flow is:

dbIPMerge my_script –trial

dbIPMerge my_script

7.2 Merge mode and options

Let’s call the top level GDS as INPUT and the sub-design GDS as REF’s.
Using dbIPMerge command is used to merge multiple REF GDS files into INPUT GDS
file. In this process, there might have some sub cells have the same name in multiple
GDS files. This can potentially cause cell name conflicts. If a cell needs to be replaced
303
7 Layout Integration

by a cell with different cell name, Skipper provides “dbSwitchCell” command for this
purpose. Please refer to samples in Appendix.
Quick summary for the 4 different IP Merge modes Skipper supports:

1. Rename Mode: This mode is the most commonly used one. Under this mode, all
the undefined cells will be swapped with the cells in the reference GDS file with same
name. If a cell is defined in multiple reference GDS files, the one with higher priority
will takes precedence,which is decided by the BASE_FILE_ON_TOP option. All the
defined cells in reference GDS that has the same name with the ones in the top GDS or
in the high priority reference GDS will be renamed as cellname_libname by default.
2. Overwrite Mode: Under this mode, any cell has the same name in both the top GDS
and the reference GDS will be switched to the version in reference GDS. If same cell
name appears in multiple reference GDS files, the one with higher priority takes
precedence.
3. Assemble Mode: Under this mode, the top cell in each reference GDS files will
remain to be a top cell.
4. Append Mode: Under this mode, the cells have the same name will produce a new
cell that is a union of all the different versions.

Refer to Appendix for the differences between defined cell and undefined cell
(reference cell).

1. Rename Mode

The rules for this mode are:


I. If INPUT GDS file does not contain any undefined cell,no swapping will take
place.
II. If there are defined cells with the same name in different GDS files, these cells will
be preserved by adding their library name as postfix.
II. The order in REF state sets the priority.

Example 1:INPUT GDS top cell has two blocks: zx16_core and zx18_core. We want
to merge with two reference GDS files: zx16IP.gds and zx18IP.gds,each has top cell
called zx16_core and zx18_core respectively. Below is the merge script:

MERGE_MODE rename
INPUT top.gds
REF zx16IP.gds
REF zx18IP.gds
OUTPUT merge.gds

top.gds has two undefined cells: zx16_core and zx18_core,these two cells need to be
replaced by the cells defined in the two reference GDS files.

304
7 Layout Integration

Figure 329 Top gds need cells to be merged in.

Below are the structures for zx16IP.gds and zx18IP.gds,the top cells are zx16_core and
zx18_core,both are hierarchical GDS cells. Both zx16_core and zx18_core have two
cells,add_pin_E and add_pin_N.

Figure 330 Two reference layouts

After executing the merge command, the result GDS file “merge.gds” structure as
described in the picture below. Because REF zx16IP.gds is declared as the first REF
305
7 Layout Integration

GDS and there is no naming conflict in the top cell, all the cells in zx16_core did not
get renamed. REF zx18IP.gds is declared after zx16IP.gds, because cells add_pin_E and
add_pin_N already exist (defined from zx16IP.gds), these two cells need to be renamed
to ensure the correct version of these cells are instantiated.

In case both REF GDS have the same library name, Skipper will add an underscore and
a number (_x) after the library name as postfix.

Figure 331 Merged GDS with cell renamed

Example 2:Same input data as in Example 1. User would like to use a more meaningful
postfix instead of the default library name as the postfix. Use the script below can
achieve the intended result:

MERGE_MODE rename
INPUT top.gds
REF zx16IP.gds
RENAME zx16
REF zx18.gds
RENAME zx18
OUTPUT merge.gds

This is the result after the merge:

306
7 Layout Integration

Figure 332 Cell rename with specific postfix in merged GDS

Example 3:In the above examples,the conflicting cells in zx16IP.gds and zx18IP.gds
have the exact same content. There is really no need to keep different copies of the
same cell. Skipper provides SMART_DIFF option to check if the conflicting cells are
really the same cell. Below is the script to perform automatic conflicting cell check:

MERGE_MODE rename
SMART_DIFF yes
INPUT top.gds
REF zx16IP.gds
RENAME zx16
REF zx18.gds
RENAME zx18
OUTPUT merge.gds

Below is the result GDS. After SMART_DIFF set to YES, Skipper automatically
determined the cells add_pin_E and add_pin_N in zx18_core are exactly the same as in
zx16_core. Thus no renaming is needed.
Another option SMART_DIFF_OBJS_NUM is related to SMART_DIFF option. By
default, if the number of all objects in a cell exceeds 1000, smart diff will do rename
even the user defines SMART_DIFF to yes. Because most cell name conflicts happen
in standard cell or via cell. Large cells seldom have name conflict issue. User can
change the default number 1000 to any number he prefers.

307
7 Layout Integration

Figure 333 Merged GDS with SMART_DIFF set to YES

Example 4:In this rename mode,user can also set the renaming rules using options
RENAME_ALL and RENAME_STYLE. For example:

MERGE_MODE rename
RENAME_STYLE PREFIX //Using prefix for renaming
SMART_DIFF yes
INPUT top.gds
REF zx16IP.gds
RENAME_ALL zx16 //Force every cell in the REF GDS to be renamed,
including the top cell
//This option will disable smart diff option
REF zx18.gds
RENAME_ALL zx18
OUTPUT merge.gds

Below is the result structure after merge. Every cell in zx_16_core has a prefix now.

308
7 Layout Integration

Figure 334 Merge with RENAME_ALL option

Example 5:From version 2021.06, user can set the renaming rules using options
RENAME_WITH to customize rename prefix or suffix. For example:

MERGE_MODE rename
INPUT top.gds
REF zx16IP.gds
RENAME_WITH te1st
REF zx18.gds
RENAME_WITH te3st
OUTPUT merge.gds

Below is the result structure after merge. The cells add_pin_E and add_pin_N in
zx18_core are renamed with “te3st”, and adding cell number to prevent duplicate names
after rename.

309
7 Layout Integration

Figure 335 Merge with RENAME_WITH option

Example 6:From version 2021.06, user can set the renaming rules using options
XOR_DIFF and XOR_DIFF_OBJS_NUM.

XOR_DIFF yes: Judge whether cells with same name are identical by XOR operation.
XOR_DIFF no : Merge without same cells check. Default setting is “no”.
XOR_DIFF_OBJS_NUM 500: Set the object limit for XOR_DIFF. The default value
is 1000.
For example:

MERGE_MODE rename
XOR_DIFF yes
XOR_DIFF_OBJS_NUM 500
INPUT top.gds
REF zx16.gds
REF zx18.gds
OUTPUT merge.gds

Below is the result structure after merge. The cells add_pin_E and add_pin_N in
zx18_core are replaced by same name cell in zx16_core, they are identical by XOR
operation.

Figure 336 Merge with XOR_DIFF option

2. Overwrite Mode
Overwrite is a hybrid mode. It can process both defined cell and undefined cell at the
same time. Below are the rules:

I. For defined cell,use cells in the REF GDS to replace cells in the INPUT GDS file.
No renaming, straight replace the cell in the top GDS with the one in the REF GDS file.
Skipper will only use the first one it found in the REF GDS files. The order of the REF
GDS files matters. No RENAME is allowed in this situation.
II. For undefined cell,the first cell found in the REF GDS files will be used without

310
7 Layout Integration

adding postfix to the cell name. If desired, user can add RENAME for any REF GDS
file. This will add the library name as the postfix to the cell name.

In the following examples, zx16_core is an undefined cell,while zx18_core and sub


cells,are still defined cells as shown below:

Figure 337 Top GDS with defined and undefined cell in it

Example 1:top instantiates zx16_core and zx18_core,which needs to be substituted


with defined cells of the same name. The script looks like this:

MERGE_MODE overwrite
INPUT top.gds
REF zx16IP.gds
RENAME zx16
REF zx18IP.gds //zx18_core is already a defined cell in the top cell, RENAME
option is not allowed for this cell
OUTPUT merge.gds

To better display the origin of the cells, we added polygon labels “zx16_pin_E” to the
add_pin_E in zx16IP.gds, zx18_pin_E and zx18_core_top in the top cell:

311
7 Layout Integration

Figure 338 Add polygon marker in reference layout

Because the top.gds already has defined cell zx18_core,which contains add_pin_E and
add_pin_N, and the zx16 is marked as RENAME, so add_pin_E and add_pin_N will
be renamed as zx16_core/add_pin_E_zx16 while zx18_core and zx18_core/add_pin_E
will be overwritten. The drawn labels in the picture below show where each of the sub
cells come from.

312
7 Layout Integration

Figure 339 Merge gds shows cells come from which reference layout

Example 2:Same as in rename mode,the order of REF GDS declaration has priorities.
The first occurrence of a defined cell will be used for the entire design. The example
below will demonstrate the zx18_core/add_pin_E will be used in the entire design
because the zx18IP.gds is defined first.

MERGE_MODE overwrite
INPUT top.gds
REF zx18IP.gds
REF zx16IP.gds
OUTPUT merge.gds

In this case, zx18IP.gds will first replace the cells in the INPUT GDS. Then Skipper
will merge zx16IP.gds into the INPUT GDS. Because add_pin_E and add_pin_N have
already been replaced with the definitions from zx18IP.gds, these two cells will not be
replaced. So in the end result, zx16 will instantiate the cells from zx18IP.gds.

313
7 Layout Integration

Figure 340 Cells come from the fisrt reference layout

For overwrite mode,RENAME_ALL,RENAME_STYLE can be used with the same


effect as in rename mode.

3. Assemble Mode

In Assemble mode, dbIPMerge will load in each REF GDS file and keep the top cells
in the REF GDS file as top cells without any swapping. If there is name conflict, it will
follow the RENAME rule to add postfix.

Example 1:Use assemble mode merge zx16IP.gds and zx18IP.gds:

MERGE_MODE assemble
INPUT top.gds
REF zx16IP.gds
REF zx18IP.gds
OUTPUT merge.gds

The output merge.gds will have the structure as displayed below. INPUT and the two
REF all will be the top cells,REF GDS will automatically use library name as postfixes.
From Skipper version 2016.12, the rename happens only when it’s necessary.

314
7 Layout Integration

Figure 341 Assemble mode to merge serveral layout

Example 2:Use assemble mode merge zx16IP.gds and zx18IP.gds, rename with the
specified character:

MERGE_MODE assemble
INPUT top.gds
REF zx16IP.gds
REF zx18IP.gds
RENAME_WITH Skipper
OUTPUT merge.gds

The output merge.gds will have the structure as displayed below. INPUT and the two
REF all will be the top cells,REF GDS will automatically use specified suffix. The
cell will also be renamed according to the specified character.

315
7 Layout Integration

Figure 342 Assemble mode with RENAME_WITH option

Since there is no swapping in Assemble mode, SMART_DIFF will not be effective.

4. Append Mode
Append mode will merge cells with the same name into one cell,no matter it is a
undefined cell or defined cell。

Example 1:Use append mode to merge zx16IP.gds and zx18IP.gds:

MERGE_MODE append
INPUT top.gds
REF zx16IP.gds
REF zx18IP.gds
OUTPUT merge.gds

In Append mode, RENAME,RENAME_STYLE or SMART_DIFF is not effective.


After the merge,/zx16_core/add_pin_E and /zx18_core/add_pin_E have the same
content. It is the union of zx16IP.gds/add_pin_E, zx18IP.gds/add_pin_E and
top.gds/add_pin_E.

Figure 343 Append mode merge

5. Skip empty cell after IPMerge

IPMerge supports deleting empty cells after merge in RENAME and OVERWRITE
mode by using SKIP_EMPTY_CELL option.
If OUTPUT_UNDEFINED_TO_EMPTY_CELL is YES, the undefined cell will be
treated as empty cell.

Example 1:“add_pin_E” which in zx16_core is an empty cell, and it’s a non-empty


cell in zx18_core. “add_pin_E” in zx16 will be deleted after IPMerge.

316
7 Layout Integration

MERGE_MODE rename
INPUT top.gds
SKIP_EMPTY_CELL yes //yes means deleting emptycells,no means keep emptycells,
the default is no.
REF zx16IP.gds
REF zx18IP.gds
OUTPUT merge.gds

Figure 344 Skip empty cells

6. createInstance Option

IPMerge merges memory,standard cells and IPs into the top design. In some cases,
users would like to create an overlay between the top cell and the sub design. User
can use the createInstance option to achieve this goal.
If the user would like to create this overlay at the top, he can combine createInstance
and INSTANTIATE_AT_TOP option. Refer to the additional options list below for
details.
The overlay cells created by createInstance option can be written out together with other
merged IPs to simplify the merge process.

Example 1:Using the rename mode example 1 case,merge all the IPs into the top
cell called top. The user wants to create a new top cell called new_top which will
instantiate the original top cell and two overlay cells, dodpo from DODPO_dummy.gds
and metal from METAL_dummy.gds. The script below can achieve this result:

MERGE_MODE rename
INPUT top.gds
REF zx16IP.gds

317
7 Layout Integration

REF zx18IP.gds
REF DODPO_dummy.gds
REF METAL_dummy.gds
INSTANTIATE_AT_TOP new_top //create a cell called new_top,the original
top cell will be instantiated in this new top
cell
createInstance –cell new_top –masterCell dodpo //dodpo will be instantiated
in new_top,the default location is(0,0)
creaetInstance –cell new_top -masterCell metal //metal will be instantiated in
new_top,the default location is(0,0)
OUTPUT merge.gds

7. Preserve list
In Skipper’s merge config file, user can use this option as following:
PRESERVE_LIST list_file

list_file is a text file, in which golden cells are listed. The golden cell must be defined
with layout name and cell name in each line. The syntax is:
Layout_a cellA
Layout_b cellB -nohier
Wildcard “*” is supported to define cell name in the list.

Example 1:
Merge.tcl:
INPUT layout1.gds
MERGE_MODE RENAME
REF layout2.gds
REF layout3.gds
OUTPUT merge.gds
PRESERVE_LIST list_file

List file :
layout2.gds A
layout3.gds B

In Example1, cell A in layout2.gds and cell B in layout3.gds both are the golden cells.
Cells with the name cell A in any layout will be overwritten by the cell A in
layout2.gds. Cells with the name cell B in any layout will be overwritten by the cell B
in layout3.gds. All the sub cells under cell A /Cell B will be written out with cell A/B
together. Please note name confliction may happen at the sub cells of the defined
golden cell. If name confliction happens, for example, cell C is the sub cell of both
cell A and cell B, merge will not be executed and a warning message is given both in
terminal and log file.

318
7 Layout Integration

Example2:
Merge.tcl:
INPUT layout1.gds
MERGE_MODE RENAME
REF layout2.gds
REF layout3.gds
OUTPUT merge.gds
PRESERVE_LIST list_file

List file :
layout2.gds A -nohier
layout3.gds B -nohier

In Example2, keyword “-nohier” is specified in List file, it means the all the sub cells
under the cell A and cell B will be renamed to avoid name confliction and will be written
out with cell A/B together.

Example3:
Merge.tcl:
INPUT layout1.gds
MERGE_MODE RENAME
REF layout2.gds
REF layout3.gds
ENABLE_PRESERVE_LIST_OVERWRITE YES
OUTPUT merge.gds
PRESERVE_LIST list_file

List file :
layout2.gds A -nohier
layout3.gds B -nohier

In Example3, the option ENABLE_PRESERVE_LIST_OVERWRITE means If name


confliction happens, for example, cell C is the sub cell of both cell A and cell B. the cell
C in layout3.gds has higher priority (The lower the order in the list file, the higher
priority to be preserved) than cell C in layout2.gds, it will overwrite the all the cells
with name cell C in any layout.

Additional Options

Option Name Default Options Description


Value
BASE_FILE_ON_TOP YES YES/NO To set REF file priority
when there is name
conflict. YES means

319
7 Layout Integration

the first REF has the


highest priority. NO
means the last one has
the priority.
PRESERVE_LIST No List_file List file is a text file
default includes some cell
lists. The syntax of the
cell list is “layout_x
cell_x [-nohier]” in
separate lines for each
cell. Cell_x from
layout_x is golden cell
that will overwrite all
other cells with the
same name. “-nohier”
is an option to keep
only top level of cell_x
as golden one.
PRESERVE_LAYOUT No Layout_file Specify a layout in
default which all the cells are
golden cells. If
PRESERVE_LIST
option is used, cells in
the list have the
highest priority. Cells
in
PRESERVE_LAYOUT
have lower priority.
RENAME_WITH No LIB_NAME/ Define the prefix or
default FILE_NAME/ postfix used in cell
TOPCELL_NAME/ renaming. To use
CUSTOMIZED STRING library name, or layout
name, top cell name,
or customized string.
REPLACE_BLANK_SPACE NO YES/NO When set to YES, the
spaces in the cell name
will be replaced with
“_”.
KEEP_PROPERTY NO YES/NO When set to YES, the
properties will be
written out with the
layout.
OUTPUT_DBU The 100/200/1000/20004000/8000 To set the Data Base
highest 10000/20000/25000 Unit precision

320
7 Layout Integration

precision
of all the
GDS
files
OUTPUT_LIBNAME No Lib_name Specify the library
default name for the output
GDS file.
OUTPUT_UNDEFINED_ YES YES/NO If YES, output layout
CELL with undefined cell, if
NO, report an error
when there is
undefined cell in the
output layout and abort
merge.
TECH_FILE No Tech_file Specify a tech file so
default that the layer statistic
table can use layer
name.
TECH_TYPE No TYPE1/TYPE2 Specify the tech file
default type.
LAYERMAP_FILE No Layermap_file Specify a layermap
default file. With this file,
layer statistic can use
layer name instead of
layer number.
SERVER_TIME 0 Integer After Merge,Skipper
can automatically
create a layout
server.0 means no
layout server will be
created. Any other
integer will cause
merge to create a
layout server and keep
it active for the number
of hours. After this
period, the layout
server will be deleted
and the memory
occupied by the server
will be freed.
INSTANTIATE_AT_TOP No new_top_name [block1 To create a new top
default block2] cell after Merge. If
the block names are

321
7 Layout Integration

specified, these blocks


will be instantiated in
the new top cell. If
the block names are
not specified, the new
top cell will instantiate
all the original top
cells.
THREAD_NUM 12 Any integer between 1 and 20 Maximum number of
threads when loading
INPUT and REFGDS
files.
ADD_INFO No Any text Append the text at the
default end of the merged
GDS file as signature
info. Skipper can read
this signature info via
Tcl command without
having to load in the
entire GDS file.
MERGE_INFO NO YES/NO Append the signature
info from all the
participating GDS
Files at the end of the
merged GDS file as the
new signature.
LOG_FILE No Any legal file name Log file name
default
MORE_LOG NO YES/NO To log the layer info
from INPUT and REF
GDS files
PRINT_LOG YES YES/NO Whether print log
information on screen.
LOG_DB YES YES/NO Generates a binary log
file which has smaller
size than ASCII log.
Binary log file can be
converted to ASCII
log.
OUTPUT_GZIP NO YES/NO Output compressed
GDS file
OUTPUT_OASIS NO YES/NO Output OASIS format
OASIS_CBLOCK NO YES/NO Output CBLOCK
compressed Oasis file.

322
7 Layout Integration

CBLOCK will reduce


Oasis file size,but
will increase merge run
time.
OASIS_CBLOCK_TABLE NONE ALL/NONE/ OASIS file has name
CELLNAME/ mapping table inside.
TEXTSTRING/ This option specifies
PROPNAME/ whether to compress
PROPSTRING/ the tables with
LAYERNAME/ CBLOCK.
XNAME
OASIS_BOX_TO_RECT ABORT YES/NO/ABORT Convert box data to
rectangle in OASIS.
No means drop the box
data in OASIS.ABORT
means abort merge if
the need save box figs
into OASIS.
OUTPUT_UNDEFINED_TO_EMPTY_CELL NO YES/NO To output undefined
cell as empty cell.
RENAME_ILLEGAL_TEXT YES YES/NO To convert illegal
characters in label or
property as space.
SMART_DIFF_OBJS_NUM 1000 Any integer number Set the upper limit of
the object numbers in a
cell to do
SMART_DIFF.
XOR_DIFF_OBJS_NUM 1000 Any integer number Set the upper limit of
the object numbers in a
cell to do XOR_DIFF.
createInstance No To create a new
default instance

7.3 Layout merge Appendix I. Defined cell and undefined cell

Cells in GDS file

Cells in GDS can be classified as defined cells and undefined cells(reference cells)as below:

323
7 Layout Integration

Under the top cell,there are 4 instances: A, B, C and D. There are also rectangles and paths at
the top level. These elements all have their own properties such location and layer etc.
After the top cell, there are the definitions of the sub-cells. The contents of these sub-cells are
similar to the top cell, instances of lower level cells, polygons and paths. In this file, cells A, B and
D all have their definition. These are classified as defined cells. Cell B is defined without any
contents. This kind of cell is called empty cell which is still a defined cell.
Cell C was not defined in this GDS file, so it is classified as undefined cell. Undefined cells don’t
have definition in the current GDS file. Its definition has to come from a REF GDS file.
Undefined cells will be treated differently comparing to defined cells.

If you open a GDS file in Skipper,in the cells list at the left side of the GUI, the undefined cells will
be listed in red. You will not see anything inside these cells since they are not defined yet, such as
the zx16_core and zx18_core in the screen shot below.

Figure 345 Undefined cell is in red listed in cell tree

7.4 Layout merge Appendix II. Merge Examples

1. In this case, we have an already merged GDS file merged.gds. What we need to do is to swap
the ROM with a newer version from a separate file rom.gds. The ROM cell in the rom.gds is
called Rom2, which is different than the original ROM cell which is Rom1. For this kind of
simple swapping, one can use a dbSwitchCell Tcl command to do this:
324
7 Layout Integration

dbIPMerge merge_file //Use dbIPMerge command to swap single cell


set lib1 [dbImport merged.gds] //load in merged gds
set lib2 [dbImport rom.gds] //load in ROM IP GDS
set libId1 [dbLibGetId $lib1] //get merged gds lib ID
set libId2 [dbLibGetId $lib2] //get ROM IP gds lib ID
dbSwitchCell –libId1 $libId1 –c1 Rom1 –libId2 $libId2 –c2 Rom2 //use cell Rom2 from
//ROM IP GDS to replace cell Rom1 in the merged gds
dbLibExport $lib1 out.gds //Output the new GDS with the new ROM

To execute the above script, simply enter this command:

skipper merge.tcl

2. There are many SRAM in the top cell. These SRAMs need to be replaced with the real RAM
from multiple RAM GDS files.

Case1. Top level SRAMs’ names match with the names in the SRAM GDS files. The dbIPMerge
config file below can achieve this purpose:
MERGE_MODE RENAME
INPUT top.gds
REF SRAM4096K.gds
REF SRAM128K.gds
REF SRAM1024K.gds
OUTPUT merge.gds

Save the above config file as IPMerge.conf and run the merge in Skipper command shell:

dbIPMerge IPMerge.conf

Case2. Top level SRAMs’ names do not match with the names in the SRAM GDS files.
Because dbIPMerge can only swap cells with matching names,we will need to use multiple
dbSwitchCell commands.

dbIPMerge merge_file
set lib1 [dbImport merged.gds]
set lib2 [dbImport SRAM128K.gds]
set lib3 [dbImport SRAM1024K.gds]
set libId1 [dbLibGetId $lib1]
set libId2 [dbLibGetId $lib2]
set libId3 [dbLibGetId $lib3]
dbSwitchCell –libId1 $libId1 –c1 SRAM1 –libId2 $libId2 –c2 SRAM128K
dbSwitchCell –libId1 $libId1 –c1 SRAM2 –libId2 $libId3 –c2 SRAM1024K
dbLibExport $lib1 out.gds

325
7 Layout Integration

3. Top design needs to merge with multiple sub blocks,each sub block may have IP and
standard cells. The designer wants to make sure the entire design only uses the standard cells
from the golden standard cell GDS file. The IPs may have name conflict between the blocks.
This is a typical situation for rename mode:

MERGE_MODE RENAME
INPUT top.gds
REF golden_standard_cell.gds
REF sub_block1.gds
REF sub_block2.gds
REF sub_block3.gds
OUTPUT merge.gds

In this mode, all the cells that have name conflict with be renamed and logged in the log file.
User can check the log file to make sure there is no renaming for any of the standard cells.
If desired, user can also turn on SMART_DIFF in the config file to enable Skipper run
comparison between the cells with same name. If the contents of the two cells are same,
Skipper will use the same cell without renaming.

Some P&R writes out top design GDS with empty cell for the sub blocks instead of undefined.
This will caused Skipper to behave differently. Skipper provide a pre-process command to
remove all these empty cells:

set lib1 [dbImport top.gds]


dbLibExport $lib1 new_top.gds –emptyCell skipCell

Now new_top.gds can be used as INPUT GDS file for IP Merge.

7.5 Layout merge Appendix III: “Switch Cell/IP Merge” In

Online Mode

To do “Switch Cell/IP Merge” in GUI:

1. to open all GDS or OASIS layout files which will be used in “Switch Cell/IP
Merge”
2. in the current cell, to active “Tools->Switch Cell/IP Merge”

326
7 Layout Integration

Figure 346 to active “Switch Cell/IP Merge”

3. to specify the switched cells


double click on the cell name in “Cell” column region, or input the cell name in
“Search” blanket to specify the cells quickly(wildcard “*” and “?” be supported),
then to select the cells which will be switched, or designate an existing text file
directly with “Load Table” button.
4. to select the switched cells
in “Select cell” window, choose a cell that be used to substitute the cell, otherwise,
you can choose other opened libraries in “Libs” pull down menu. Click on the
selected cell you want to do substitution, then click on the “OK” button, the “Select
Cell” window be closed and return to “Switch Cell/IP Merge” main window, the
chosen cell name appears in “Cell2” column.

Figure 347 to specify the switched cell

327
7 Layout Integration

5. to preview and confirm the substitution.


when set up all the substitution, to click “Apply” button will do the substitution.
The hierarchy tree in the cell tree window will be updated accordingly, cellname
of switched cell will be added with “*”, cellname of updated cell will be shown
using boldface.

Figure 348 to preview the substitution

6. to do the substitution.
to click on the “Apply” button will do the substitution, then “File->Save As” will
output the GDS file with switched cell.

328
8 Layout Comparison
Layout engineer often modifies layouts and saves them as different versions. They need
layout versus layout comparison tool to confirm the modification is done correctly.
Skipper’s layout vs. layout function provides flexible options to complete the LVL task.

There’re two methods to run layout comparison in Skipper.


⚫ ski-flashlvl(flashlvl)
It performs a flat or hierarchical comparison, and generates corresponding results.
And the result database will be saved in GDSII or ASCII format.
⚫ dbCompare & dbCompareMb
It performs a flat comparison in library directly, is more suitable for large scale
flatten layout. And the result database will be saved in OASIS format.

This chapter introduces the usage of LVL comparison in Skipper.

8.1 Layout Comparison Using ski-flashlvl

ski-flashlvl supported both batch mode and GUI mode.

8.1.1 Batch Mode

The related command is “ski-flashlvl” or “flashlvl”.


1. In the terminal console, input the following commands:
% ski-flashlvl –templ mylvl.cfg // Generate template config file for LVL
2. Modify and save the parameters in this config file according to case.
1) Specify path names, formats and toplevel cell names of both layouts.
LAYOUT INPUT1 "A.gds"
LAYOUT TYPE1 GDSII
LAYOUT TOP1 "A"
//LAYOUT VIEW1 "layout"
LAYOUT INPUT2 "B.oas"
LAYOUT TYPE2 OASIS

329
8 Layout Comparison

LAYOUT TOP2 "B"


//LAYOUT VIEW2 "layout"
2) Specify precision used in the comparison stage. The default value is AUTO.
PRECISION AUTO // use the higher database precision of two layouts
(default)
3) Specify output file name and format. The default is ASCII.
OUTPUT TYPE GDSII
LAYOUT OUTPUT "flashlvl.out"
// Multiple output databases can be specified
LAYOUT OUTPUT "flashlvl2.out" GDSII
4) Additional Options. About the options in the config file, the generated template
includes the description for each one. User can also refer to the document
FlashLVL_User_Manual.pdf in the installation package.
Option Name Default Options Description
Value
Layer mapping No default Layermaping Specify layer mapping(s)
of first or second layout
Technology Type1 Type1/Type2 Specify the tech file type
file
Cell match file No default cell match file Specify the cell match file
Multiple top No default Multiple top file Specify the Multiple top
file file
Layers to No default SELECT LAYERS/ Specify layers to compare
compare or not IGNORE LAYERS or not to compare
to compare
Ignore data NO YES/NO When YES changes all
types of input data type values to zero
polygons
Region based NO YES/NO region-based (NO),
or polygon- polygon-based (YES)
based
comparison
mode
Treat an m-by- NO YES/NO When Yes m * n as
n array instances, when NO as a
whole
Compare XOR XOR/NOT XOR perform layout1-
operation XOR-layout2 operation,
NOT perform layout1-
330
8 Layout Comparison

NOT-layout2 operation
SPLIT XOR NO YES/NO YES means showing
RESULTS results from first and
second layouts separately,
NO means mixing results
from both layouts
Compare texts NO YES/NO YES means compare texts
HIER/FLAT No default HIER/FLAT Specify HIER
comparison (hierarchical) or FLAT
mode comparison mode
Exclude cells No default Cell list List EXCLUDE CELL,
EXCLUDE CELL1…
Expand YES YES/NO When YES,
unbalanced UNBALANCED CELLS
cells in HIER will be EXPAND in Hier
mode mode
Compare the No default ALL / TOP ONLY Specify to compare level
whole in layout
hierarchy or
just the top cell
Flatten Results NONE NONE/ONCE/ALL NONE means don't
to top cell flatten, this is the default,
ONCE means show each
result only once in top
cell, ALL means
completely flatten all
results
Empty No default YES YES means suppress
comparison empty comparison result
result in output file
Transform first No default SHIFT, MAG, Transform first or second
or second ROTATE… layout before comparison
layout before
comparison
Compare No default MULTIZONE1… Compare multiple zone of
multiple zone first or second layout
of first or
second layout
Window for No default leftBottomX Specify window for layout
layout leftBottomY rightTopX comparison
comparison rightTopY
DELETE No default leftBottomX Specify deleted window
Window for leftBottomY rightTopX for layout comparison
layout rightTopY
331
8 Layout Comparison

comparison
POLYGON No default X1 Y1 X2 Y2 X3 Y3 ... Specify POLYGON
Window for Xn Yn window for layout
layout comparison (PLEASE
comparison make sure points are in
anti-clockwise order)
POLYGON No default X1 Y1 X2 Y2 X3 Y3 ... Specify POLYGON
DELETE Xn Yn deleted window for layout
Window for comparison (PLEASE
layout make sure points are in
comparison anti-clockwise order)
Limit the NO value NO means output all LVL
output results results
number
P mode NO YES/NO P mode comparison
B mode NO YES/NO B mode comparison
H mode NO YES/NO H mode comparison
F mode NO YES/NO F mode comparison
FPD mode NO YES/NO FPD mode comparison
FPGA mode NO YES/NO FPGA mode comparison
Two layouts is NO YES/NO Specify whether two
similar layouts is similar
Use small NO YES/NO Specify whether to use
memory mode small memory mode,
default is auto decided
Compress NO YES/NO Specify whether to
report compress report
Layer bump of No default Layer list Specify layer bump of first
first or second or second layout
layout
Match cells NO YES/NO Specify whether to match
automatically cells automatically
Specify layers No default Layer list Specify layers of first
of first layout layout to compare
to compare
Report YES YES/NO Specify whether to report
geometry of geometry of missing layer
missing layer in report file
in report file
Convert round YES YES/NO Specify whether to
path to flush convert round path to
end path flush end path
Layers to size No default string if "NO_TRUNCATE" is
specified, no acute angle
332
8 Layout Comparison

will be cut. if
"NO_MERGE" is
specified, do not merge
shape before size
Don’t output No default value Don't output difference
difference polygons with width <=
polygons with 0.01 um (normal user
width in um units)
Don't output No default value Don't output difference
difference polygons with width <= 4
polygons with DBU
width in DBU
Treat GDS UNKNO RECTANGLE/NONE/ Specify how to treat GDS
record WN UNKNOWN record
Wide paths No default value Wide paths with zero
with zero width by specified length
width by in DBU
specified
length in DBU
flashlvl.sum No default Summary path Specify flashlvl's
summary file. When not
specified, output summary
to file "flashlvl.sum"
Flashlvl_run.lo No default Log path Specify flashlvl's log file.
g When not specified,
output log to file
"/tmp/process_id_flashlvl
_run.log"

3. Run LVL
% ski-flashlvl –cfile mylvl.cfg // run this config file by the commands

8.1.2 GUI Mode

By running ski-lvl in GUI, error markers can be highlighted in two layout cellviews
simultaneously within the same window region. This section introduces the flow of how
to compare layout in GUI. For more details about GUI operations, please refer to
Tools->Layout vs. Layout.

333
8 Layout Comparison

Figure 349 Layout vs. Layout: Basic

In the window form, Basic and Options tab are used to input related comparison
settings, Load tab is used to load the Layout vs. Layout result directly.

In Basic tab, user can input two layout files respectively, and specify the cells that need
to be compared. If user has already opened the two layouts which need to be compared
in Skipper, those two layouts will be filled out in LVL GUI interface by default. Below
table explains the meaning of each option in the Basic tab.

Table 4-9 Options in Layout vs. Layout -1

Basic Description
From lib Option to choose a layout that already opened in
Skipper
From file Option to choose a layout file from disk
Layout To specify the layout name
Top cell To specify the cell name of the compared layout.
LvL layer map To specify an ASCII file to map data on specified layers
To another layer. For example, LAYER MAP 15

334
8 Layout Comparison

DATATYPE 0 255, mapping data on 15.0 to 255.0 rules.


Get layer names from file Option to choose tech file or layermap file. If checking
on this option, the result database can show the layer
name rather than layer number.
Technology file To specify the technology file in which the name of each
layer is specified. If it is specified, LVL will list all the
differences by the layer name, instead of layer number
and datatype. Support to automatically load technology
file which specified in 'Load tech and display file' form.
Layer map file To specify a layer map file in which layer number and
layer name are mapped.
Summary To save LVL log file, recording the comparison settings,
the statistic of results and the time consumed, etc.
Save result To specify LVL result database in GDS and ASCII
formats.
Output To DRC Explorer To specify loading ASCII-formatted result in DRC
Results GUI after LVL is done.
Output To SKI-PVE To specify loading ASCII-formatted result in SKI-PVE
GUI after LVL is done.
Output To Skipper To specify loading the GDS-formatted in Skipper after
Viewer LVL is done.
Discard result To remove the result database in Skipper. It behaves like
clearing all results highlight.
Max errors generated per To display errors result per layer with specified value.
layer
Display all difference To show all differences of each layer together.
Hide all difference To hide all differences of each layer.
Display difference on To specify showing the differences on specified one
layer layer.
Hide origin layout To hide the original layout layers.
Hide small objects To specify the small difference results invisible. The
filter size is specified in “Display Quality->Filter out
objects by pixel” in Skipper GUI.
Line Width To specify the error markers line width, range from 1 to
5:

335
8 Layout Comparison

Color To specify the error markers color, users can input the
color code directly in Color line, or double click the
Color button to pop up color form and select one color.

In Options tab, user can set some options to run LVL:

Figure 350 Layout vs. Layout: Options

Table 4-10 Options in Layout vs. Layout-2

Options Description
Layout2 To set Offset(X,Y), Rotate and Magnify parameters for the
Transform second layout database.
Sometimes, the two layouts are all the same except that the
original point is different. If user does not input the offset value
of the two original points, lots of differences will be reported. The

336
8 Layout Comparison

same thing happens if one layout is rotated by some degree from


the other layout. If user does not want to see those differences
reported, please input the Offset(X,Y) value and Rotation
condition.
Magnify enable user to input the scale number of the second
layout file. All the differences caused by the scale factor will not
be reported.
Manipulate Cell To specify the type of hierarchy processing when comparing:
Hier means to perform a hierarchical comparison and generate a
hierarchical output database.
Flat means to perform a flat comparison and generates a flat
output database.
Automatic match means to match the cells with different cell
name automatically.
Depth To specify the depth of layout during comparison:
All levels means to do comparison on all levels.
Top cell only means to do comparison on only the top cell, all
other cells and instances are ignored.
Operation To specify the optional switches that control the mode of the
comparison:
XOR means the compare operation performs a boolean XOR
operation.
Split Results means the compare operation performs a XOR
boolean operation, but to write result from layout11 and layout2
separately. This option split all results of each layer into two
result groups.
NOT means the compare operation performs a boolean layout1-
NOT-layout2 operation.
Keep shapes means to keep the original shapes displayed or just
shows the differences.
Processors to use To specify the number of processor used.
Compare text To specify if labels would be compared during LVL.
Ignore Datatype To ignore layer datatype during LVL.
Use P-Mode To specify a quick comparing mode (a portion of flatten
comparison mode) for very large digital circuit layout.
Tolerance To specify the polygon filtering tolerance in outputting, any
polygons or parts with minimal width smaller than the specified
value will be ignored, the unit of the value is micron.
Convert Box to Box record is a unique data type in GDS layout, not in OASIS
Rectangle layout. If checking on this option, Box record will be treated as a
rectangle for LVL comparison. If unchecking, box record will be
ignored.

337
8 Layout Comparison

Layer filter To specify layers(includes texts) to compare:

Click on “Add from layout” button, LSW window pops up. Use
“ctrl+left mouse button” to select layers. Those layers will appear
in the layer filter window, LVL will compare those layers or
excludes layers to compare, which depends on the options user
choose.
Click on the “Add” button, user can choose layer by setting the
range of layer number and data type.
Select layers means to select a few layers to do comparison. The
layers not appeared in the window will not be compared.
Ignore layers means to exclude a few layers to be compared, the
other layers are all compared layer by layer. The layers appeared
in the window will not be compared.
Exclude Cells To exclude some cells for LVL comparison. If multiple cells are
needed, separate them by space.
Layout1: input cells in layout1 to be excluded.
Layout2: input cells in layout2 to be excluded.
Same with Layout1: checking on this option means cells for
layout1 working on layout2 too.
Temporary To specify the temporary directory for temporary files when
directory running Layout vs. Layout.

In Load tab, user can load the saved results directly, Load To SKI-PVE means to load
ASCII format database, Load To Skipper Viewer means to load GDS format database:

338
8 Layout Comparison

Figure 351 Load ASCII format results

Figure 352 Load GDS format results

PVE is the back-annotation tool developed by HES. When the comparison is done, the
PVE window form will be invoked. All the differences will be listed in PVE window.
User can use PVE tool to locate and highlight the difference in two layout cellviews
simultaneously with same window region, as shown in follows:

339
8 Layout Comparison

Figure 353 LVL results in two layout cellview with same window region

Area tab
Skipper supports to do LVL in specific region which can be defined in GUI. In Area tab,
user need tick either “Compare area” or “Filter area”, then mouse is activated to draw
rectangle or polygon in the layout by clicking on the corresponding icon. In comparing
area mode, LVL is executed in the defined area. In Filter area mode, LVL filters shapes
inside the area and only compare layouts outside the region.

Figure 354 LVL compares layout in specified area or outside the specified area

340
8 Layout Comparison

FPD tab: Only be used for flat display panel layout comparison.
FPGA tab: Checking on FPGA mode will accelerate FPGA layout LVL comparison.

By default, LVL results are shown through the “DRC Results” window. To see the
layout difference more clearly, the layer is set to visible automatically when user is
viewing the difference on that layer. Click right mouse button on the LVL results, and
tick “Auto Set LPP Visible in LSW”. This function starts to work. About how to use
the options in this GUI, please refer to the chapter Verify->DRC Results.

Figure 355 Set layer visible automatically when reviewing LVL results.

1. Choose “Tools->Layout vs. Layout” in Skipper GUI, “Layout vs. Layout” widget
will pop up.

Figure 356 Open “Layout vs. Layout” window


2. In “Layout vs. Layout” window,
1) In “Basic” tab, specify the input file name and top cell for “Layout1” and
“Layout2”.

341
8 Layout Comparison

Figure 357 Specify input file for comparison


2) Specify the output information of comparison. Please pay attention to the
“Output To” options, here we choose DRC Explorer. This is a build-in DRC
debugger which can load DRC database and LVL results. After LVL is done,
the results will be loaded into DRC Explorer automatically.

Figure 358 Specify output information for comparison

3) In “Area” tab, user can choose Compare Area or Filter Area. This option is
optional.

Figure 359 Specify Area for comparison


4) In “Option” tab, user can set “Layout2 Transform”, “Manipulate cell”, “Depth”
and so on. The default setting is “XOR” comparison in hierarchy mode. This
option is optional.

342
8 Layout Comparison

Figure 360 Specify Options for comparison


5) In “FPD” and “FPGA” tab, FPD mode is only used for flat display panel layout
comparison, and FPGA mode is used for large scale IC layout. By default
FPBA mode is enabled.

Figure 361 Specify mode for FPD or FPGA


6) Click “Start” to run layout comparison.

3. After finished the comparison, the DRC Results window pops up. Check V options
of the top, you will highlight all the differences and find out they all exist in those
switched cells in lab2. Click on the “+” button, all the errors are listed. Check V
options on each layer, you can review all the differences on this layer. Click on
Layer No, the differences on this layer are listed in Groups window, you can zoom
in to review one by one, or checked it by groups. The criterion of grouping depends
on the shape of the differences.

343
8 Layout Comparison

Figure 362 Check compare result


4. In “Load” tab, user can load back the result of LVL. This option is optional.

Figure 363 Load back result

8.2 Layout Comparison Using dbCompare & dbCompareMp

These two commands now only support batch mode. And perform a flat comparison
and generate flat comparison results which datatype is OASIS.

8.2.1 dbCompare

The based command is “dbCompare”, which compare 2 layouts with operation


(xor/not1/not2). Labels are not compared. The options of “dbCompare” command are
listed as below.

Option Description

libId1 To specify the lib id for lib1

cell1 To specify the cell name for cell1

libId2 To specify the lib id for lib2

344
8 Layout Comparison

cell2 To specify the cell name for cell2

xor Option to enable to do xor boolean operation

not1 Option to enable to do not Boolean operation. If specified this option, the
compare operation will do cell1 NOT cell2

not2 Option to enable to do not Boolean operation. If specified this option, the
compare operation will do cell2 NOT cell1

toOas Specify the compare result will be output as oasis file

threadNum Option to set thread number, default is 32

limit Specify the max difference number of miss matched shapes. The default
value is -1, which means unlimited

region Specify the region to do compare. The default value is (1,1,-1,-1), which
means unlimited

layers Specify the layer which will need to do compare, default is {0.0}

Step 1. Import 2 layout files in Skipper.


% set lib1 [dbImport zx16IP.gds]
% set $libId1 [dbLibGetId $lib1]
% set lib2 [dbImport zx18IP.gds]
set $libId2 [dbLibGetId $lib2]
Step 2. Compare layouts by using command “dbCompare”.
% dbCompare -libId1 $libId1 -cell1 zx16_core -libId2 $libId2 -cell2 zx18_core \
-layers {17.0 36.0 40.0} \
-region (0,0,1000,1000) \
-limit 1000000 \
-toOas diff.oas \
-xor \
-threadNum 64

Below is an example of script for layout comparison using “dbCompare” command.


345
8 Layout Comparison

set lib1 [dbImport ./test1.oas]

set libid1 [dbLibGetId $lib1]

set lib2 [dbImport ./test2.oas]

set libid2 [dbLibGetId $lib2]

set result "/home/huanghm/temp/diff.oas"

dbCompare -libId1 $lib1 -cell1 test1 -libId2 $lib2 -cell2 test2 \

-layers {17.0 36.0 40.0} \

-region (0,0,1000,1000) \

-limit 1000000 \

-toOas $result \

-xor \

-threadNum 64

User could execute Tcl script from terminal directly. For example,
% ski-db compare.tcl

8.2.2 dbCompareMp

“dbCompareMp” command is for comparing layout in distributed mode, generally


used by cluster: PBS, SGE or LSF. The layers comparing jobs will be commit to remote
system by '-remoteCmd' with different processes. This command has advantages for
large scale flatten layout comparison. The options of “dbCompareMp” command is
listed in below table.
Option Description
layout1 To specify the path for layout1
index1 To specify the index file of layout1 path
layout2 To specify the path for layout2
index2 To specify the index file of layout2 path
cell1 To specify the cell name for cell1 in layout1
cell2 To specify the cell name for cell2 in layout2
threadNum Option to set thread number, default -1 means using the default threadNum
value of dbCompare
xor Flag to set comparison mode to “cell1 XOR cell2”.
not1 Flag to set comparison mode to “cell1 NOT cell2”.
not2 Flag to set comparison mode to “cell2 NOT cell1”.
log Specify the log to summary comparison
346
8 Layout Comparison

limit Specify the max difference number of miss matched shapes. The default
value is -1, which means unlimited
layers Specify the layer which will need to do compare
layerFile Specify the layer list file which will need to do compare
remoteCmd Specify the command used for PBS, SGE or LSF
remoteNum Specify the number of remote tasks, default -1 for unlimit
layerStep Specify layer number which compared in a process
path To specify the path of comparison, used to store log and results
cmd To specify command to run ski-db, default is ski-db

For example,
Step 1. Create 2 layout index files in Skipper.
% dbIndexCreate -layout zx16IP.gds -out zx16IP.gds.index
% dbIndexCreate -layout zx18IP.gds -out zx18IP.gds.index
Step 2. Compare layouts by using command “dbCompareMp”.
%dbCompareMp -layout1 16IP.gds -index1 16IP.gds.index \
-layout2 18IP.gds -index2 18IP.gds.index \
-cell1 zx16_core -cell2 zx18_core \
-layers {17.0 37.0 41.0 40.0} \
-xor \
-cmd ski-db \
-remoteCmd "bsub -q skipper" -remoteNum 2
-layerStep 2 \
-path ./Compare \
-log result.log \
-threadNum 32
Below is an example of script for layout comparison using “dbCompareMp”
command.User could execute Tcl script in terminal directly. For example,
% ski-db compareMp.tcl

347
8 Layout Comparison

#create index

dbIndexCreate -layout test1.gds -out test1.gds.index

dbIndexCreate -layout test2.gds -out test2.gds.index

#do dbCompareMp

dbCompareMp -layout1 test1.gds -index1 test1.gds.index -cell1 top \

-layout2 test2.gds -index2 test2.gds.index -cell2 top \

-layerFile input.layermap \

-xor \

-limit 100000 \

-threadNum 32 \

-cmd ski-db \

-remoteCmd "bsub -q skipper" -remoteNum 4 \

-layerStep 4 \

-path ./compareMP \

-log result.log

348
9 Digital Signature
Skipper provides digital signature technology to make IP data management and tracking
more efficient. The digital signature, as global feature code (hash function), represents
the gene of IP. It is only related to the layout geometry. Tampering, deleting tag and
modifying layer name won’t affect it. User could create the digital signature for their
layouts and compare the layouts by matching the signature in short time instead of
running LVL.

9.1 How to create digital signature

“dbSignatureCreate” command is used to create digital signature of layout. It is


recommended to create signature in ski-db mode since there’s no GUI operations.
Given a layout file “top.gds”, running following flow can create signature for it.
1. Start ski-db.
% ski-db
2. In the tcl shell of ski-db, execute “dbSignatureCreate” command with layout file
name “top.gds” and signature file name “sig_1” specified. Set the thread number
to 16..
% dbSignatureCreate –layout input.gds –sigFile sig_1 –threadNum 16
The signature file “sig_1” has been created in the working directory

More options can be specified with “dbSignatureCreate” command. Please refer to the
command manual.

9.2 Match digital signature

Skipper supports to match 2 different digital signature files and calculate the similarity
value between the corresponding layout files. “dbSignatureMatch” command is used to
match the digital signatures.
For example, execute “dbSignatureMatch” to match 2 signature files.
% dbSignatureMatch –libSig sig_2 –sigFile sig_1 –matchFile match.rpt
The similarity results will be exported in specified report file “match.rpt”.

Matching layout with existed digital signature and calculating the similarity value is
also supported. Before matching, the layout has to be loaded in library.
% set lib [dbImport input2.gds]
349
9 Digital Signature

% set libId [dbLibGetId $lib]

Execute “dbSignatureMatch” command to match current layout with signature file


“sig_1”.
% dbSignatureMatch –libId $libId –sigFile sig_1 –matchFile match_lib.rpt

The similarity results will be exported in specified report file “match_lib.rpt”.

350
10 Logic Operation
Skipper provides 4 commands for logic operations: “dbLayerOp”, “dbLayerLogicOp”,
“dbLayerMultiBoolean” and “dbFigBoolean”. User can choose the most suitable one
from these commands depending on their usage scenarios.

⚫ dbLayerOp: this command is for doing Boolean operations on 1 or 2 layers and


generating the results on specified layers. It will invoke Argus tool and export
results to layout file directly.
⚫ dbLayerLogicOp: this command is for Boolean operations on 1 or 2 layers and
generating the results on specified layers. It is executed in Skipper internally. User
needs to run “dbLibExport” command manually if he would like to export the
results to a layout file.
⚫ dbLayerMultiBoolean: this command is for doing multiple Boolean operations
on multiple layers and generating the results on specified layers. It supports more
operation types than “dbLayerLogicOp” command. It is executed in Skipper
internally. User needs to run “dbLibExport” command manually if he would like
to export the results to a layout file.
⚫ dbFigBoolean: this command is for doing Boolean operations on user specified
geometries and generating the results on specified layers. It is executed in Skipper
internally. User needs to run “dbLibExport” command manually if he would like
to export the results to a layout file.

Below table shows the main differences between these 4 commands briefly.
Table 10-1 4 Boolean commands
Command dbLayerOp dbLayerLogicOp dbLayerMultiBoolean dbFigBoolean
Setting mode By rule file By command option By rule file By command
option
Operand 1 or multiple 1 or 2 layers 1 or multiple layers 1 or multiple
layers geometries
Supported ⚫ and, or, not, xor ⚫ and1, and, or1, or, ⚫ and, or, nor, xor ⚫ and1, and,
operations ⚫ expand, size up, xor1, xor, not ⚫ size, grow or1, or, xor1,
size down ⚫ size, size2, size4 ⚫ internal, internal2, xor, not
⚫ interact, external, external2, ⚫ size, size2,
~interact enclosure size4
⚫ inside_cell, ⚫ area
~inside_cell ⚫ interact
⚫ inside_geom,
~inside_geom
⚫ boundary

351
10 Logic Operation

Execution mode Invoke Argus to Operate on the Operate on the layout data Operate on the
operate on layout layout data in in memory loaded by layout data in
file directly memory loaded by Skipper memory loaded
Skipper by Skipper
Command type Single command Command macro Single command Single command
Result To result layout To memory To memory To memory
Destination file: GDS or
OASIS
Working All levels Specified Specified level(Optional) Current level,
Hierarchy level(Optional) not include
instance
Working Region N/A Specified region Specified region(Optional) N/A
Overwrite N/A Append results to Overwrite original shapes Append results
original layers or original layer or append results to to original layer
not original layer
GUI NA NA Tools->MultiBoolean... NA

This chapter introduces the usage of these 4 commands.

10.1 Layer Boolean Operation Using dbLayerOp

“dbLayerOp” command is for doing Boolean operations on 1 or multiple layers and


generating the results on specified layers.

The supported Boolean operations are


⚫ and, or, not, xor
⚫ expand, su(size up), sd(size down)
⚫ interact, ~interact, inside_cell, ~inside_cell, inside_geom, ~inside_geom
⚫ boundary

There’re 2 steps of using dbLayerOp command to do Boolean operations.


1. Create rule file
2. Execute “dbLayerOp” command with rule file

10.1.1 Create Rule File

10.1.1.1 Generate rule template

User can run dbLayerOp command with “-template” option to generate a rule template
for reference.
% dbLayerOp -template rule.tcl

352
10 Logic Operation

10.1.1.2 Define Rules

The rule file consists of 3 parts, user should define them in the rule file in order.
1) Define input layers
2) Define operations and output layers
3) Define additional output layers (Optional)

10.1.1.2.1 Define Input Layers

Before defining operations, the input layers of later Boolean operations need to be
defined in advanced. The layer can be defined by layer name and layer number. The
format is as below.
InputLayerName(LayerNumber.DataType)
For example, define layers “AA” and “PO”,
AA(10.0)
PO(14.0)
In order to save the effort of writing the layer definition manually layer by layer,
“dbLayerOp” command provides “-techFile”, “-layerMapFile” and “-outRule” options
to allow users to generate layer definition from the technology. “-techFile” is used to
specify the technology file, “-layerMapFile” is used to specify layermap file , “-
outRule” is used to specify the output rule file. For example, start ski-db and execute
“dbLayerOp” command as following, the “rule.tcl” will be generated with all source
layer included.
% dbLayerOp -outRule rule.tcl -techFile foundry.tf
% dbLayerOp -outRule rule.tcl -layerMapFile layers.map

10.1.1.2.2 Define Operations and Output Layers

If there’re multiple operands in the operation, the rule format is as below:


inputLayer1 op [inputLayer2]…[op] [inputLayerN] [option] [value], outputLayer
(LayerNumber.datatype)
If LayerNumber.datatype is not defined of output layer, the result will not be output and
just temporary one for the other Boolean operations.

and
This operation will select all areas common to “inputLayer1” and “inputLayer2”, and
output them to “outputLayer” shapes.
The format of the “and” operation follows below:
inputLayer1 and inputLayer2, outputLayer (LayerNumber.datatype)
or
inputLayer1 * inputlayer2, outputLayer (LayerNumber.datatype)
353
10 Logic Operation

For example, defining rule as “PO and AA”, and specifying the output layer as “GATE”,
the operation result is shown as Figure 364. Reversing the order of “PO” and “AA”
does not produce any differences.
PO and AA, GATE(134.0)

Figure 364 dbLayerOp: and

or
This operation will merge all shapes on “inputLayer1” and “inputLayer2”, and output
them to the “outputLayer” shapes.
The format of the “or” operation follows below:
inputLayer1 or inputLayer2, outputLayer (LayerNumber.datatype)
or
inputLayer1 + inputLayer2, outputLayer (LayerNumber.datatype)
For example, defining rule as “M1 or M3”, specifying the output layer as “M4”, the
operation result is shown as Figure 365. If reversing the order of “M1” and “M3” does
not produce any differences.
M1 or M3, M4(136.0)

Figure 365 dbLayerOp: or

not
This operation will select all “inputLayer1” areas not common to “inputLayer2”, and
output them to the “outputLayer” shapes.
The format of the “not” operation follows below:
inputLayer1 not inputLayer2, outputLayer (LayerNumber.datatype)
or
inputLayer1 - inputLayer2, outputLayer (LayerNumber.datatype)
For example, defining rule as “M1 not M3”, specifying the output layer as “M4”, the
operation result is shown as Figure 366. If reversing the order of the “M1” and “M3”
will produce differences.
M1 not M3, M4(136.0)

354
10 Logic Operation

Figure 366 dbLayerOp: not

xor
This operation will select all shapes in “inputLayer1” and “inputLayer2” areas and
remove common area of “inputLayer1” and “inputLayer2”, and output them to
“outputLayer”.
The format of the “xor” operation follows below:
inputLayer1 xor inputLayer2, outputLayer (LayerNumber.datatype)
For example, defining rule as “M1 xor M3”, specifying the output layer as “M4”, the
operation result is shown as Figure 367. Reversing the order of “M1” and “M3” does
not produce any different output.
M1 xor M3, M4(136.0)

Figure 367 dbLayerOp: xor

expand
This operation will expand or shrink all “inputLayer” shapes in “left”, “right”, “bottom”,
“top” direction separately by size_value. A positive size_value expands “inputLayer”
shape edges outward by that amount. A negative size_value shrinks “inputLayer” shape
edges inward by the absolute value of that amount. And the sized results will be output
to layer “outputLayer”. “x1”, “y1”, “x2”, “y2” is the size_value, which must be all >>
0 or all <<0. “in order” is optional parameter to control to whether to expand or shrink
the edges in the order defined “left->top->right->bottom”.

The format of “expand” layer operation follows below:


inputLayer expand left x1 top y1 right x2 bottom y2 [in order],
outputLayer(LayerNumber.datatype)

For example, defining rule as M1 expand, specifying the output layer as “M4”, the
operation result is shown as Figure 368.
M1 expand left 0.05 top 0.02 right 0.03 bottom 0.03, M4(136.0)

355
10 Logic Operation

Figure 368 dbLayerOp: expand


For example, defining rule as M1 expand in order, specifying the output layer as “M4”,
the operation result is shown as Figure 369.
M1 expand left 0.05 top 0.02 right 0.03 bottom 0.03 in order, M4(136.0)

Figure 369 dbLayerOp: expand in order

su
su will expand all shapes on the “inputLayer” by size_value “x”. The sized results will
be output to “outputLayer” shapes.
The format of “su” layer operation follows below:
inputLayer su x, outputLayer(LayerNumber.datatype)
For example, defining rule as “M1 su 0.02”, specifying the output layer as “M4”, the
operation result is shown as Figure 370.
M1 su 0.02 , M4(136.0)

Figure 370 dbLayerOp: su

sd
sd will shrink all shapes on the “inputLayer” by size_value “x”. The sized results will
be output to “outputLayer” shapes.
The format of “sd” layer operation follows below:
inputLayer sd x, outputLayer(LayerNumber.datatype)
356
10 Logic Operation

For example, defining rule as “M1 sd 0.02”, specifying the output layer as “M4”, the
operation result is shown as Figure 371.
M1 sd 0.02 , M4(136.0)

Figure 371 dbLayerOp: sd

interact
This operation will select all “inputLayer1” shapes that either share some or all of their
area with a “inputLayer2” shape. The “interact” operation results will be output to
“outputLayer”.
The format of “interact” follows below:
inputLayer1 interact inputLayer2, outputLayer(LayerNumber.datatype)
For example, defining rule as “M1 interact M3”, specifying the output layer as “M4”,
the operation result is shown as Figure 372.
M1 interact M3, M4 (136.0)

Figure 372 dbLayerOp: interact

~interact
“~interact” will select all “inputLayer1” shapes that do not share any area, edge, or
edge segments with a “inputLayer2” shape. The “~ interact” operation results will be
output to “outputLayer”.
The format of “~interact” follows below:
inputLayer1 ~interact inputLayer2, outputLayer(LayerNumber.datatype)
For example, defining rule as “M1 ~interact M3”, specifying the output layer as “M4”,
the operation result is shown as Figure 373.
M1 ~interact M3, M4 (136.0)

357
10 Logic Operation

Figure 373 dbLayerOp: ~interact

inside_cell
“inside_cell” will select the all “inputLayer” shapes inside the defined cell. The results
will be output to the “outputLayer” shapes with flatten structure.
The format of “inside_cell” layer operation follows below:
inside_cell inputLayer defined_cell, outputLayer(LayerNumber.datatype)
For example, defining rule as “inside_cell M1 cellA”, specifying the output layer as
“M4”, the operation result is shown as Figure 374 .
inside_cell M1 cellA, M4 (136.0)

Figure 374 dbLayerOp: inside_cell

~inside_cell
“~inside_cell” will select the all “inputLayer” shapes outside the defined cell. The
results will be output to the “outputLayer” shapes with flatten structure.
The format of “~inside_cell” layer operation follows below:
~inside_cell inputLayer defined cell, outputLayer(LayerNumber.datatype)
For example, defining rule as “~inside_cell M1 cellA”, specifying the output layer as
“M4”, the operation result is shown as Figure 375.
~inside_cell M1 cellA , M4 (136.0)

Figure 375 dbLayerOp: ~inside_cell

358
10 Logic Operation

inside_geom
“inside_geom” will select all “inputLayer1” shapes with areas that completely inside
in “inputLayer2” shapes. The “inside_geom” operation results will be output to
“outputLayer”.
The format of “inside_geom” layer operation follows below:
inside_geom inputLayer1 inputLayer2, outputLayer(LayerNumber.LayerPurpose)
For example, defining rule as “inside_geom M1 M3”, specifying the output layer as
“M4”, the operation result is shown as Figure 376.
inside_geom M1 M3, M4(136.0)

Figure 376 dbLayerOp: inside_geom

~inside_geom
“~inside_geom” will select all “inputLayer1” shapes with some or all areas that
outside of “inputLayer2” shapes. The “~inside_geom” operation results will be output
to “outputLayer”.
The format of “~inside_geom” layer operation follows below:
~inside_geom inputLayer1 inputLayer2, outputLayer(LayerNumber.LayerPurpose)
For example, defining rule as “~inside_geom M1 M3”, specifying the output layer as
“M4”, the operation result is shown as Figure 377.
~inside_geom M1 M3, M4(136.0)

Figure 377 dbLayerOp: ~inside_geom

boundary
This operation will generate a boundary of all layers in the database, and output a
rectangle shape to “outputLayer”.
The format of “boundary” operation follows below:
boundary, outputLayer(LayerNumber.datatype)
For example, defining rule as “boundary”, specifying the output layer as “M4”, the
operation result is shown as Figure 378.

359
10 Logic Operation

boundary, M4(136.0)

Figure 378 dbLayerOp: boundary

10.1.1.2.3 Define Additional Output Layers

If there’re other output layers which are not involved in the Boolean operation, user can
define them at this part. If user wants to change the layer number and datatype, he
should rename the layer and define them at this part.
The format is as below:
InputLayerName, OutputLayerName(LayerNumber.datatype)
For example, defining input layer as “AA” which has been defined in part1,specifying
the output layer as “AA(10.0)” which output as original layer number, the rule is shown
as below.
AA, AA(10.0)
For example, defining input layer as “PO” which has been defined in part1, specifying
output layer as “PO_new(240.1)” which changed layer number, the rule is shown as
below.
PO, PO_new(240.1)

10.1.1.3 Example of Rule File

###define layer name and layer number mapping to do boolean operations


AA(10.0)
PO(14.0)
M1(34.0)
M2(35.0)
M3(37.0)
M4(36.0)

##define the layer operation rules and output layers


AA and PO, GATE(101.0)
(M1 not M2), temp
temp su 0.03, temp2(102.0)
(inside_cell M3 cellA) su 0.01, new_Metal(103.0)
M4 interact M3, temp_metal
##define the additional output layers
360
10 Logic Operation

AA, AA(10.0)
PO, PO_new(240.1)
temp_metal, temp_metal(105.0)

10.1.2 Run dbLayerOp

After prepared the rule file, user can start ski-db and run “dbLayerOp” command. “-in”
option is used to specify the input layout file. “-out” option is used to specify the output
result file. “-cell” option is used to specify the cell to operate. “-rule” option is used to
specify the prepared rule file.
For example,
% dbLayerOp -in input.gds -out output.gds -cell top_cell -rule rule.tcl

10.2 Layer Boolean Operation Using dbLayerLogicOp

“dbLayerLogicOp” command is for Boolean operations on 1 or 2 layers and generating


the results on specified layers.
The supported Boolean operations are:
⚫ AND1, AND
⚫ OR1, OR
⚫ XOR1, XOR
⚫ NOT
⚫ SIZE, SIZE2, SIZE4

There’re 3 steps of using dbLayerLogicOp command to do Boolean operations.


1. Set target layout library
2. Set regions or points (this step is optional)
3. Define and run Boolean operation. This step can be run repeatedly.

10.2.1 Set target layout

Before running Boolean operations, user could set targe layout by specifying “-
setLayout”, “-libId” and “-cellName” options with “dbLayerLogicOp” command. “-
libId” option is used to specify the ID of library. “-cellName” option is used to specify
name of cell that the command will operate on.
For example,
% set lib [dbImport TEST.gds]
% set libid [dbLibGetId $lib]
% set cellName "TEST"
% dbLayerLogicOp -setLayout -libId $id -cellName $cellName

361
10 Logic Operation

10.2.2 Set regions or points

Using dbLayerLogicOp command, the layer Boolean operations can be executed on


specified regions or points. After set layout, user can set regions or points by specifying
“-setSelection” or “-addSelection” and “selRegions” or “-selPts” options with
“dbLayerLogicOp” command. “-setSelection” option is a flag which setting regions or
points for shape selection. “-addSelection” option is a flag which add selection for
regions or points. If '-setSelection' is not set, which means no region is specified, then
consider all the shapes inside the cell's bounding box.
For example,
%dbLayerLogicOp -setSelection -selRegions {{(-10,-8)(6,10)} {(11,-11)(24,6)}}
%dbLayerLogicOp -setSelection -selPts {(72.7345,8.8320) (11.23,20.0)}
%dbLayerLogicOp -addSelection -selPts {(80,9) (15,25.0)}

10.2.3 Define and run Boolean operation

There’re 3 sub steps in this step.


- Firstly, define operand layers.
- Secondly, define operator.
- Thirdly, do boolean

10.2.3.1 Define Operand Layers

Before run Boolean operations, the operand layers need to be defined by specifying “-
setLayer” option with “dbLayerLogicOp” command. “-layer1” and “-layer2” are used
to specify input layers, and “-outputLayer” is used to specify the output layer.

For single Boolean operations such as AND1, OR1, XOR1, SIZE, SIZE2 and SIZE4,
only “-layer1” and “-outputLayer” need to be defined.
%dbLayerLogicOp -setLayer -layer1 1.0 -outputLayer 18.0
For other Boolean operations such as AND, OR, XOR, NOT, “-layer1”, “-layer2” and
“-output” layer need to be defined.
%dbLayerLogicOp -setLayer -layer1 1.0 -layer2 2.0 -outputLayer 18.0

10.2.3.2 Define Operator

After defined the operand layers, the operator needs to be defined by specifying “-
setOption” and “-op” option with “dbLayerLogicOp” command. The valid value of “-
op” options are AND1, AND, OR1, OR, XOR1, XOR, NOT, SIZE, SIZE2 and SIZE4.
For example, define OR operator.
% dbLayerLogicOp -setOption -op OR

362
10 Logic Operation

10.2.3.3 Do Boolean

After defined operator, run “dbLayerLogicOp” command with “-doOp” command to


do Boolean operations.
% dbLayerLogicOp -doOp

10.2.4 Operation Description

The behavior of operations is described in this section.

AND1

This operation will construct the intersection regions of polygons in the input layer, and
output the intersections as polygons to the output layer.
For example, defining input layer as “1.0”, operator as “AND1”, specifying the output
layer as “100.0”, the operation result is shown as Figure 379.
% dbLayerLogicOp -setLayer -layer1 1.0 outputLayer 100.0
% dbLayerLogicOp -setOption -op and1
% dbLayerLogicOp -doOp

Figure 379 dbLayerLogicOp: AND1

AND

This operation will construct the intersection regions of polygons in the layer1 and
layer2, and output the intersections as polygons to the defined layer.
For example, defining input layer1 as “1.0”, input layer2 as “2.0”, operator as “AND”,
specifying the output layer as “100.0”, the operation result is shown as Figure 380.
% dbLayerLogicOp -setLayer -layer1 1.0 -layer2 2.0 outputLayer 100.0
% dbLayerLogicOp -setOption -op and
% dbLayerLogicOp -doOp

Figure 380 dbLayerLogicOp: AND

363
10 Logic Operation

OR1

This operation will merge all shapes in the input layer and output them to the output
layer.
For example, defining input layer as “1.0”, operator as “OR1”, specifying the output
layer as “100.0”, the operation result is shown as Figure 381.
% dbLayerLogicOp -setLayer -layer1 1.0 outputLayer 100.0
% dbLayerLogicOp -setOption -op or1
% dbLayerLogicOp -doOp

Figure 381 dbLayerLogicOp: OR1

OR

This operation will merge all shapes in the layer1 and layer2 into single polygons and
output to defined layer.
For example, defining input layer1 as “1.0”, input layer2 as “2.0”, operator as “OR”,
specifying the output layer as “100.0”, the operation result is shown as Figure 382.
% dbLayerLogicOp -setLayer -layer1 1.0 -layer2 2.0 outputLayer 100.0
% dbLayerLogicOp -setOption -op or
% dbLayerLogicOp -doOp

Figure 382 dbLayerLogicOp: OR

XOR1

This operation will select all polygon areas in the input layer and remove common area,
and output them to the output layer.
For example, defining input layer as “1.0”, operator as “XOR1”, specifying the output
layer as “100.0”, the operation result is shown as Figure 383.
% dbLayerLogicOp -setLayer -layer1 1.0 outputLayer 100.0
% dbLayerLogicOp -setOption -op xor1
% dbLayerLogicOp -doOp

364
10 Logic Operation

Figure 383 dbLayerLogicOp: XOR1

XOR

This operation will select all shapes in the layer1 and layer2 areas and remove the
common area of layer1 and layer2 polygon areas, then output them to defined layer.
For example, defining input layer1 as “1.0”, input layer2 as “2.0”, operator as “XOR”,
specifying the output layer as “100.0”, the operation result is shown as Figure 384.
% dbLayerLogicOp -setLayer -layer1 1.0 -layer2 2.0 outputLayer 100.0
% dbLayerLogicOp -setOption -op xor
% dbLayerLogicOp -doOp

Figure 384 dbLayerLogicOp: XOR

NOT

This operation will select all polygon areas in the layer1 which not common to polygons
from layer2, and output them to the defined layer.
For example, defining input layer1 as “1.0”, input layer2 as “2.0”, operator as “NOT”,
specifying the output layer as “100.0”, the operation result is shown as Figure 385.
% dbLayerLogicOp -setLayer -layer1 1.0 -layer2 2.0 outputLayer 100.0
% dbLayerLogicOp -setOption -op not
% dbLayerLogicOp -doOp

Figure 385 dbLayerLogicOp: NOT

365
10 Logic Operation

SIZE

This operation will expand or shrink all the shapes in the input layer by the size value
positive or negative, the sized results will be output to defined layer. A positive size
value expands layer polygon edges outward by that amount. A negative size value
shrinks layer polygon edges inward by the absolute value of that amount. When size
value equals zero, then the output layer is a copy of layer.
For example, defining input layer as “1.0”, operator as “SIZE”, sizeValue as “-0.06”,
specifying the output layer as “100.0”, the operation result is shown as Figure 386.
% dbLayerLogicOp -setLayer -layer1 1.0 outputLayer 100.0
% dbLayerLogicOp -setOption -op SIZE -sizeValue -0.06
% dbLayerLogicOp -doOp

Figure 386 dbLayerLogicOp: SIZE

SIZE2

This operation will expand or shrink all the shapes in the layer set in X and Y directions,
separately by size value. A positive size value expands shape edges outward by that
amount. A negative size value shrinks shape edges inward by the absolute value of that
amount. The “SIZE2” operation results will output to the defined layer.
For example, defining input layer as “1.0”, operator as “SIZE2”, sizeValue as {-0.2 -
0.08}”, specifying the output layer as “100.0”, the operation result is shown as Figure
387.
% dbLayerLogicOp -setLayer -layer1 1.0 outputLayer 100.0
% dbLayerLogicOp -setOption -op SIZE2 -sizeValue {-0.2 0.08}
% dbLayerLogicOp -doOp

Figure 387 dbLayerLogicOp: SIZE2

SIZE4

This operation will expand or shrink all layer shapes in left, bottom, right and top
direction separately by size value.
For example, defining input layer as “1.0”, operator as “SIZE4”, sizeValue as “{-0.2 -
366
10 Logic Operation

0.08 0.12 0.1}”, specifying the output layer as “100.0”, the operation result is shown as
Figure 388.
% dbLayerLogicOp -setLayer -layer1 1.0 outputLayer 100.0
% dbLayerLogicOp -setOption -op SIZE4 -sizeValue {-0.2 -0.08 0.12 0.1}
% dbLayerLogicOp -doOp

Figure 388 dbLayerLogicOp: SIZE4

10.2.5 Example of Tcl Script

User could execute Tcl script directly. For example,


% ski-db dblayerlogicopboolean.tcl

The contents of “dblayerlogicopboolean.tcl” is as below.


set lib [dbImport TEST.gds]
set libid [dbLibGetId $lib]
set cellName "TEST"

dbLayerLogicOp -setLayout -libId $id -cellName $cellName


dbLayerLogicOp -setSelection -selRegions {{(0,0)(50,50)} {(60,60)(100,100)}}

dbLayerLogicOp -setLayer -layer1 5.0 -outputLayer 100.0


dbLayerLogicOp -setOption -op and1
dbLayerLogicOp -doOp

dbLayerLogicOp -setLayer -layer1 5.0 -layer2 6.0 -outputLayer 101.0


dbLayerLogicOp -setOption -op or
dbLayerLogicOp -doOp

dbLayerLogicOp -setLayer -layer1 5.0 -outputLayer 102.0


dbLayerLogicOp -setOption -op SIZE -sizeValue 0.02
dbLayerLogicOp -doOp

dbLayerLogicOp -setLayer -layer1 5.0 -layer2 6.0 -outputLayer 103.0


dbLayerLogicOp -setOption -op not
dbLayerLogicOp -doOp

367
10 Logic Operation

10.3 Layer Boolean Operation Using dbLayerMultiBoolean

“dbLayerMultiBoolean” is for doing multiple Boolean operations on multiple layers


and generating the results on specified layers.

The supported operations are:


⚫ Boolean operations: and, or, not, xor
⚫ Size operations: size and grow
⚫ Dimension operations: internal(int), external(ext), internal2(int2), external2(ext2),
enclosure(enc)
⚫ Other operations: area and interact

There’re 2 steps of using dbLayerMultiBoolean command to do Boolean operations.


1. Create rule file
2. Execute “dbLayerMultiBoolean” command with rule file

10.3.1 Create Rule File

10.3.1.1 Generate rule template

User can run dbLayerMultiBoolean command with “-template” option to generate a


rule template for reference.
% dbLayerMultiBoolean -template temp.rule

10.3.1.2 Rule Format

If there’re multiple operands in the operation, the rule format is as below:


outputLayer = inputLayer1 op [inputLayer2]…[op] [inputLayerN] [option] [value]
The outputLayer and inputLayer can be defined as LayerName.LayerPurpose such as
M1.drawing, M2.drawing or LayerNumber.Datatype such as 1.0, 2.0. The operator “op”
can be and, or, not, xor, size, grow, internal, internal2, external, external2, enclosure,
area and interact. The option is determined by the operator type.
For example,
100.0 = 1.0 and 2.0
101.0 = (0.0 or 1.0) not (2.0 and 1.0)
102.0 = (1.0 size 0.5) or 3.0

10.3.1.3 Operation Description

10.3.1.3.1 Boolean operations

Boolean operations include: and, or, not, xor.

368
10 Logic Operation

and
This operation will construct the intersection regions of polygons on the input layers,
and output the intersections as polygons to the output layer.
The format of the “and” operation is as below:
outputLayer = inputLayer1 and inputLayer2

For example, as shown in Figure 389, the operation will return the common areas of the
layer “1.0” and layer “2.0”, and output to layer “100.0”. Reversing the order of layer
“1.0” and layer “2.0” does not produce any different output.
100.0 = 1.0 and 2.0

Figure 389 dbLayerMultiBoolean: and

or
This operation will merge all shapes on the input layers into single polygons and output
to layer “outputLayer”.
The format of the “or” operation is as below:
outputLayer = inputLayer1 or inputLayer2
For example, as shown in Figure 390, shapes on layer “1.0” and layer “2.0” will be
merged into the layer “100.0”. If reversing the order of “1.0” and “2.0” does not
produce any different output.
100.0 = 1.0 or 2.0

Figure 390 dbLayerMultiBoolean: or

not
This operation will select all polygon areas on “inputLayer1” which not common to
polygons from “inputLayer2”, and output results to the layer “outputLayer”.
The format of the “not” operation is as below:
outputLayer = inputLayer1 not inputLayer2
For example, as shown in Figure 391, select all “1.0” area which not common to “2.0”,
the order of “1.0” and “2.0” will produce different output.
100.0 = 1.0 not 2.0

369
10 Logic Operation

Figure 391 dbLayerMultiBoolean: not

xor
This operation will select polygon areas of all input layers and remove the common
area between two input layers, then output the left area to “outputLayer”.
The format of the “xor” operation is as below:
outputLayer = inputLayer1 xor inputLayer2
For example, as shown in Figure 392, layer “1.0” and “2.0” will do xor operation and
output the results to layer “100.0”. Reversing the order of “1.0” and “2.0” does not
produce any different output.
100.0 = 1.0 xor 2.0

Figure 392 dbLayerMultiBoolean: xor

10.3.1.3.2 Size Operations

Size operations include: size and grow, the grow operation can support different size
for left, right, top, bottom.

size
This operation will expand or shrink all the polygons on the input layer by the size value
positive or negative, the sized results will be output to output layer. A positive size value
expands the polygon edges of inputLayer outward by that amount. A negative size value
shrinks polygon edges of inputLayer inward by the absolute value of that amount. When
size value equals zero, then the output layer is a copy of inputLayer.
The format of the “size” operation is as below:
outputLayer = inputLayer size x
For example, defining rule as “1.0 size 0.02”, specifying the output layer as “100.0”,
the operation result is shown as Figure 393.
100.0 = 1.0 size 0.02

370
10 Logic Operation

Figure 393 dbLayerMultiBoolean: size

grow
This operation will expand or shrink all shapes of input layer in left, right, bottom and
top direction separately by size value. A positive size value expands the shape edges of
inputLayer outward by that amount. A negative size value shrinks the shape edges of
inputLayer inward by the absolute value of that amount. The grow sequence for “left”,
“right”, “bottom” and “top” will be executed of as they appeared in the operation from
left to right. The “grow” operation results will output to the layer.
The format of “grow” layer operation is as below:
outputLayer = inputLayer grow left x1 top y1 right x2 bottom y2
For example, as shown in Figure 394, layer “2.0” grow different size value for left, right,
bottom and top.
100.0 = 2.0 grow left 0.05 top -0.06 bottom 0.07 right -0.08

Figure 394 dbLayerMultiBoolean: grow


Take grow operation step by step from left to right as shown as below:

Figure 395 dbLayerMultiBoolean: grow by steps

10.3.1.3.3 Dimension Operations

The dimension operations generate output layers by measuring the separation of edges
on one or two-input layers.

The dimension operations are summarized as below:


- single layer: internal(int), external(ext)
- two layers: internal2(int2), external2(ext2), enclosure(enc)

Supported constraint: < a, <= a, == a, > a < b, >= a < b, > a <= b, >= a <=b.

371
10 Logic Operation

There’re 4 metric types


- euclidean: Specifies to use a radial arc to check distance of corner to corner. This
is default type.
- opposite: Specifies perpendicular extension of the measurement region from the
edge, but not along the edge, is equal to your constraint. It converts the “<”
constraint to “<=” when measuring intersecting edges. This causes output when
intersecting edges abut at 90-degree angles.
- extended_opposite: Specifies to use the opposite metric with an extension of the
measurement region along the edge. The value is an extension distance in user units
and is measured along the edge direction; it must be a positive number.
- square: Specifies the extension of the measurement region along the edge and away
from the edge is equal to your constraint
There’ s an option: parallel_only, which will only do operation of parallel edges.

internal(int)
This operation measures the separations between interior-facing sides of edges from the
same polygon on inputLayer. Measured edge pairs that satisfy the given constraint are
output.
The format of “internal(int)” layer operation follows below:
outputLayer = inputLayer int constraint1 [constraint2] … [metric]
The four metric type used measurement regions are different and the region marked in
red as below.

Figure 396 dbLayerMultiBoolean: metric types of int

For example, as shown in Figure 397, measure the separations between interior-facing
sides of edges which width <1 on layer “1.0” and output the region to layer “100.0”.
100.0 = 1.0 int < 1

Figure 397 dbLayerMultiBoolean: int


For example, as shown in Figure 397, measure the parallel separations between interior-
facing sides of edges which width <1 on layer “1.0” and output the region to layer
“100.0”.
100.0 = 1.0 int < 1 parellel_only
372
10 Logic Operation

Figure 398: dbLayerMultiBoolean: int-parallel_only

internal2(int2)
This operation measures the separations between the interior-facing sides of
“inputLayer1” edges and the interior-facing sides of “inputLayer2” edges. Measured
regions that satisfy the given constraint are output. Intersecting edge pairs are not
measured by default.
The format of “internal2(int2)” layer operation follows below:
outputLayer = inputLayer1 int2 inputLayer2 constraint1 [constraint2]… [metric]
The four metric type used measurement regions are different and the region marked in
red as below.

Figure 399 dbLayerMultiBoolean: metric types of int2


For example, as shown in Figure 400, measuring the edge pairs of interior-facing of
layer “1.0” and layer “2.0”, and the region which size match >01.5 and <0.3 are output
to layer “100.0”.
100.0 = 1.0 int2 2.0 >0.15 <0.3

Figure 400 dbLayerMultiBoolean: int2

external(ext)
This operation measures the separations between exterior-facing edges on
“inputLayer1”. This includes exterior-facing edges that occur on the same polygon,
such as with notches. Measured edge pairs that satisfy the given constraint are output.
373
10 Logic Operation

The format of “external(ext)” layer operation follows below:


outputLayer = inputLayer1 ext constraint1 [constraint2]… [metric]
The four metric type used measurement regions are different and the region marked in
red as below.

Figure 401 dbLayerMultiBoolean: metric type of ext


For example, as shown in Figure 402, measure the separation between the layer “1.0”
edges which width >1.5<2 and output the region by opposite to layer “100.0”.
100.0 = 1.0 ext >1.5 <2 opposite

Figure 402 dbLayerMultiBoolean: ext

external2(ext2)
This operation measures the separations between the exterior-facing sides of
“inputLayer1” edges and the exterior-facing sides of “inputLayer2” edges. Measured
edge pairs that satisfy the given constraint are output.
The format of “external2(ext2)” layer operation follows below:
outputLayer = inputLayer1 ext2 inputLayer2 constraint1 [constraint2] …[metric]
The four metric type used measurement regions are different and the region marked in
red as below.

Figure 403 dbLayerMultiBoolean: metric type of ext2


For example, as shown in Figure 404, measures the separations between the exterior-
facing sides of layer “1.0” edges and the exterior-facing sides of layer “2.0” edges,
extend the region which the width is >0.2 =<0.6 by 0.1, and output the results to layer
374
10 Logic Operation

“100.0”.
100.0 = 1.0 ext2 2.0 >0.2 =<0.6 extended_opposite 0.1

Figure 404 dbLayerMultiBoolean: ext2

enclosure(enc)
This operation measures the separation between the exterior-facing sides of
“inputLayer1” edges and the interior facing sides of “inputLayer2” edges. Intersecting
edge pairs are not measured by default. Measured edge pairs that satisfy the given
constraint are output.
The format of “enclosure(enc)” layer operation follows below:
outputLayer = inputLayer1 enc inputLayer2 constraint1 [constraint2]… [metric]
The four metric type used measurement regions are different and the region marked in
red as below.

Figure 405 dbLayerMultiBoolean: metric type of enc


For example, as shown in Figure 406, measuring the separation between the exterior-
facing sides of layer “1.0” edges and the interior facing sides of layer “2.0” edges, and
output the region by square which width >0.2 < 0.4.
100.0 = 1.0 enc 2.0 >0.2 <0.4 square

Figure 406 dbLayerMultiBoolean: enc

375
10 Logic Operation

10.3.1.3.4 Other Operations

Besides above operations, “dbLayerMultiBoolean” also can do “area” and “interact”


operations.

area
This operation selects all polygons that meet an area constraint in “inputLayer”, and the
results will output to layer “outputLayer”.
The format of “area” layer operation follows below:
outputLayer = inputLayer area constraint1 [constraint2] …
area supported constraint: > a, >= a, < a, <= a, == a, != a, > a < b, >= a < b, > a <= b, >=
a <= b.
For example, as shown in Figure 407, output the shapes which area >3 and <= 6.181.
100.0 = 1.0 area >3 and <= 6.181

Figure 407 dbLayerMultiBoolean: area

interact
This operation selects all polygons in “inputLayer1” which share some or all of their
area with polygons from “inputLayer2”, or have a coincident outside edge or edge
segment with “inputLayer2” polygon. The results will output to the output layer. If
reversing the order of “inputLayer1” and “inputLayer2” will produce different output.
The format of “interact” layer operation follows below:
outputLayer = inputLayer1 interact inputLayer2
For example, as shown in Figure 408, output the shapes in layer “1.0” which share some
or all area in “2.0”, and which have a coincident outside edge or edge segment with
“2.0”.
100.0 = 1.0 interact 2.0

Figure 408 dbLayerMultiBoolean: interact


376
10 Logic Operation

10.3.1.4 Example of Rule File

##define the layer operation rules


101.0 = 1.0 and 2.0
102.0 = 1.0 size 0.5
103.0 = 2.0 grow left 0.05 top -0.06 bottom 0.07 right -0.08
104.0 = 1.0 int2 2.0 < 0.5 > 0.3 extended_opposite 0.02
105.0 = 2.0 ext < 0.4 opposite
106.0 = 1.0 area >1 parallel_only
107.0 = 40.0 interact 41.0
108.0 = (1.0 or 2.0) not (11.0 and 12.0)
109.0 = (1.0 size 0.05) and 100.0

10.3.2 Run dbLayerMultiBoolean

After prepared the layer operation rule file, start ski-db and execute
“dbLayerMultiBoolean” command. “-cell” option is used to specifying cell handle that
the command will operate on. “-ruleFile” option is used to specifying Boolean operation
file.
For example,
% dbLayerMultiBoolean -cell [skiCurCell] -ruleFile rule -toLevel 200

Instead of specifying rule file, user can also specify simple rule directly in
“dbLayerMultiBoolean” command using “-rule” option.
For example,
% dbLayerMultiBoolean -cell [skiCurCell] -rule "100.0 = 1.0 and 2.0" \
-toLevel 200 -overwrite

“-toLevel” is used to specifying hierarchy level. “-region” option is used to specifying


do boolean for the shapes touched by this region. If '-region' is specified, only the shapes
touched by the region will be removed. “-overwrite” option is used to specify remove
shapes of the output layer in the target cell.
For example,
% dbLayerMultiBoolean -cell [skiCurCell] \
-rule "100.0 = (0.0 or 1.0) not (2.0 and 1.0)" \
-region {2.268,-0.317,4.380,1.962} -toLevel 200 -overwrite

10.4 Fig Boolean Operation by dbFigBoolean

“dbFigBoolean” is for doing Boolean operations on user specified geometries and


generating the results on specified layers.
The supported operation types are:
⚫ AND1, AND, OR1, OR, XOR1, XOR, NOT
377
10 Logic Operation

⚫ SIZE, SIZE2, SIZE4

There’re 2 steps of using dbFigBoolean command to do Boolean operations.


1. Prepare operand figures
2. Define and run Boolean operation

10.4.1 Prepare Operand Figs

An operand figure can be any geometry in specified box or on specified polygon. Before
Boolean operation, the operand figure sets need to be pre-defined by either querying
existed figs or create new fig in layer.

“-figs1” and “-figs2” are for specifying the fig object list directly which can be the
return value of “dbFigQuery” command and “dbCreateRect”.
For example, use “dbFigQuery” command to query fig.
% set fig1 [dbFigQuery $cell_handle {(0,0) (10,10)}]
Use “dbCreateRect” to create a new fig.
% set fig2 [dbCreateRect -libId $id -cellName $cellName -lpp 0.0 -box {(5, 5) (15, 15)}]

“-polys1” and “-polys2” are for specifying new created polygons as fig set.
“-boxes1” and “-boxes2” are for specifying new created boxes as fig set.
For example,
% set poly1 {(0,0) (0,10) (10,10) (10,0)}
% set box2 {(5,5) (15,15)}

The figure set can be generated by any combination of figs, boxes, or polys.
“-figs1”, “-polys1” and “-boxes1” are used to specify input figure set1 for all operations.
“-figs2”, “-polys2” and “-boxes2” are used to specify input figure set2 for binary
Boolean operations such as AND, OR, XOR and NOT.

For example, defining “poly1, box1 and fig1” as input figure set1, layer 2.0 as output
layer and operation as AND1, do Boolean operation.
% dbFigBoolean -libId $id -cellName $cellName -toLayer 2.0 -mode AND1 \
-polys1 $poly1 -boxes1 $box1 -figs1 $fig1

10.4.2 Define and Run Boolean Operation

To do Boolean operation on figs using “dbFigBoolean” command, following options


need to be specified.
“-mode” option is used to define Boolean operations. The supported mode values are
“AND1”, “AND”, “OR1”, “OR”, “XOR1”, “XOR”, “NOT”, “SIZE”, “SIZE2” and
“SIZE4”.

378
10 Logic Operation

Operation Description

AND1

This operation will construct the intersection regions of polygons in the one figure set,
and output the intersections as polygons to the defined layer.

For example, defining figure set as “fig1”, operator as “AND1”, and specifying the
output layer as “100.0”, the operation result is shown as Figure 409.
% dbFigBoolean -libId 0 -cellName TEST -toLayer 100.0 -mode AND1 -figs1 $fig1

Figure 409 dbFigBoolean: AND1

AND

This operation will construct the intersection regions of polygons in the figure1 set and
figure2 set, and output the intersections as polygons to the defined layer.

For example, defining figure set as “fig1” , figure set2 as “fig2”, operator as “AND”,
specifying the output layer as “100.0”, the operation result is shown as Figure 410.
%dbFigBoolean -libId 0 -cellName TEST -toLayer 100.0 -mode AND \
-figs1 $fig1 -figs2 $fig2

Figure 410 dbFigBoolean: AND

OR1

This operation will merge all shapes in the figure set and output them to the defined
layer.

For example, defining figure set as “fig1”, operator as “OR1”, specifying the output
layer as “100.0”, the operation result is shown as Figure 411.
% dbFigBoolean -libId 0 -cellName TEST -toLayer 100.0 -mode OR1 -figs1 $fig1

379
10 Logic Operation

Figure 411 dbFigBoolean: OR1

OR

This operation will merge all shapes in the figure1 set and figure2 set into single
polygons and output to defined layer.

For example, defining figure set as “fig1”, figure set2 as “fig2”, operator as “OR”,
specifying the output layer as “100.0”, the operation result is shown as Figure 412.
% dbFigBoolean -libId 0 -cellName TEST -toLayer 100.0 -mode OR \
-figs1 $fig1 -figs2 $fig2

Figure 412 dbFigBoolean: OR

XOR1

This operation will select all polygon areas in the figure set and remove common area,
and output them to the defined layer.

For example, defining figure set as “fig1”, operator as “XOR1”, specifying the output
layer as “100.0”, the operation result is shown as Figure 413.
% dbFigBoolean -libId 0 -cellName TEST -toLayer 100.0 -mode XOR1 -figs1 $fig1

Figure 413 dbFigBoolean: XOR1

XOR

This operation will select all shapes in the figure1 set and figure2 set areas and remove
the common area of figure1 and figure2 polygon areas, then output them to defined
layer.
380
10 Logic Operation

For example, defining figure set as “fig1”, figure set2 as “fig2”, operator as “XOR”,
specifying the output layer as “100.0”, the operation result is shown as Figure 414.
% dbFigBoolean -libId 0 -cellName TEST -toLayer 100.0 -mode XOR \
-figs1 $fig1 -figs2 $fig2

Figure 414 dbFigBoolean: XOR

NOT

This operation will select all polygon areas in the figure1 set which not common to
polygons from figure2 set, and output them to the defined layer.

For example, defining figure set1 as “fig1”, figure set2 as “fig2”, operator as “NOT”,
specifying the output layer as “100.0”, the operation result is shown as Figure 415.
% dbFigBoolean -libId 0 -cellName TEST -toLayer 100.0 -mode NOT \
-figs1 $fig1 -figs2 $fig2

Figure 415 dbFigBoolean: NOT

SIZE

This operation will expand or shrink all the shapes in the figure set by the size value
positive or negative, the sized results will be output to defined layer. A positive size
value expands figure polygon edges outward by that amount. A negative size value
shrinks figure polygon edges inward by the absolute value of that amount. When size
value equals zero, then the output layer is a copy of figure.

For example, defining figure set as “fig1”, operator as “SIZE”, size value as “-0.22”,
specifying the output layer as “100.0”, the operation result is shown as Figure 416.
% dbFigBoolean -libId 0 -cellName TEST -toLayer 100.0 -mode SIZE \
-sizeValue -0.22 -figs1 $fig1

381
10 Logic Operation

Figure 416 dbFigBoolean: SIZE

SIZE2

This operation will expand or shrink all the shapes in the figure set in X and Y directions,
separately by size value. A positive size value expands shape edges outward by that
amount. A negative size value shrinks shape edges inward by the absolute value of that
amount. The “SIZE2” operation results will output to the defined layer.

For example, defining figure set as “fig1”, operator as “SIZE2”, size value as “{-0.2
0.1}”, specifying the output layer as “100.0”, the operation result is shown as Figure
417.
% dbFigBoolean -libId 0 -cellName TEST -toLayer 100.0 -mode SIZE2 \
-sizeValue {-0.2 0.1} -figs1 $fig1

Figure 417 dbFigBoolean: SIZE2

SIZE4

This operation will expand or shrink all figure shapes in left, bottom, right and top
direction separately by size value.
For example, defining figure set as “fig1”, operator as “SIZE4”, size value as “{-0.1 -
0.2 0.05 0.15}”, specifying the output layer as “100.0”, the operation result is shown as
Figure 418.
% dbFigBoolean -libId 0 -cellName TEST -toLayer 100.0 -mode SIZE4 \
-sizeValue {-0.1 -0.2 0.05 0.15} -figs1 $fig1

Figure 418 dbFigBoolean: SIZE4

382
10 Logic Operation

10.4.3 Example of Tcl script

User can execute Tcl script directly. For example,


% ski-db dbfigboolean.tcl

An example of “dbfigboolean.tcl” is as below.


##define the figure set
set lib [dbImport TEST.gds]
set libid [dbLibGetId $lib]
set cellName "TEST"
set fig1 [dbFigQuery $cell_handle {(0,0) (100,100)}]
set figlist {}
lappend figlist $fig1

# boxes
set boxes {}
set box1 {(50,50) (100,100)}
set box2 {(55,55) (105,105)}
lappend boxes $box1
lappend boxes $box2

set poly1 {(50,50) (120,50) (120,80) (80,80) (80,120) (50,120)}


##define the operations
dbFigBoolean -libId $id -cellName $cellName -toLayer 1.0 -mode AND1 -figs1 $figlist
dbFigBoolean -libId $id -cellName $cellName -toLayer 2.0 -mode AND -boxes1 $box1
-boxes2 $box2
dbFigBoolean -libId $id -cellName $cellName -toLayer 3.0 -mode OR1 -boxes1
$boxes
dbFigBoolean -libId $id -cellName $cellName -toLayer 4.0 -mode OR -boxes1 $box1
-boxes2 $box2
dbFigBoolean -libId $id -cellName $cellName -toLayer 5.0 -mode XOR1 -figs1 $figlist
dbFigBoolean -libId $id -cellName $cellName -toLayer 6.0 -mode XOR -boxes1 $box1
-polys2 $poly1
dbFigBoolean -libId $id -cellName $cellName -toLayer 7.0 -mode NOT -boxes1 $box1
-boxes2 $box2
dbFigBoolean -libId $id -cellName $cellName -toLayer 8.0 -mode SIZE -sizeValue 2 -
boxes1 $box1 -polys1 $poly1
dbFigBoolean -libId $id -cellName $cellName -toLayer 9.0 -mode SIZE2 -sizeValue {-
2 3} -figs1 $figlist
dbFigBoolean -libId $id -cellName $cellName -toLayer 10.0 -mode SIZE4 -sizeValue
{-1 0 -3 2} -figs1 $figlist

383
11 Appendix

11.1 The Precision in Layout Database and Skipper

Normally, precision of layout database should be set equal to the value of actual layout
database. If the precision is greater than system precision, Skipper will detect to this
status, give a warning and abort the loading.

When starting up Skipper, option “Options->Preference-Uniform internal db unit per


UM” can be used to check the uniform internal DB unit during “Open”, “Overlay”,
“Create Instance” and “IP Merge”. Sometimes, user wants to transform the layout
database precision for the special purpose, or “Create Instance” and “IP Merge” from
other library with different DB units, if “Uniform internal db unit per UM” is not be
checked, Skipper will detect to this status, give an error reporting and abort the
operation, if “Uniform internal db unit per UM” can be checked, the layout database
precision will be transformed to the higher precision after “Create Instance” and “IP
Merge” from other library with different DB unit.

11.2 Unsupported Layout Features

Skipper provides capabilities of analyzing and integrating layout data. The supported
layout formats are GDSII, OASIS, MEBES and LEF/DEF. There’re still some special
features of GDSII and OASIS haven’t been supported yet. This document listed the
behavior of 5 main functions: DB, Save as GDS, Save as OASIS, Merge to GDS and
Merge to OASIS, when the special layout features appeared in GDSII or OASIS layout
file.

11.2.1 GDSII Features

11.2.1.1 Instances rotated in any angle

Functions Skipper Behavior


Not supported in normal version of Skipper. Report error
and abort.
DB (Load in) Supported in special angle version of Skipper. If needed,
please contact AE.

384
11 Appendix

Not supported in normal version of Skipper.


Save as GDS Supported in special angle version of Skipper. If needed,
please contact AE.
Not supported in normal version of Skipper.
Save as Supported in special angle version of Skipper. If needed,
OASIS please contact AE.
Merge to
Supported
GDS
Merge to
Supported
OASIS

11.2.1.2 PATH with rounded PATHTYPE

Functions Skipper Behavior


DB (Load in) Supported
Save as GDS Supported
Save as No such feature in OASIS.
Transform the round path ends to circle geometry with
OASIS warning message
Merge to
Supported
GDS
Merge to No such feature in OASIS.
Transform the round path ends to circle geometry with
OASIS warning message

11.2.1.3 PATH with negative width

Functions Skipper Behavior


Not Supported.
DB (Load in)
Report error and abort.
Save as GDS Not Supported.
Save as
Not Supported.
OASIS
Merge to Not Supported.
GDS Report error and abort.
Merge to Not Supported.
OASIS Report error and abort.

11.2.1.4 PATH with 0 length

Functions Skipper Behavior


By default, report warning, discard this record and continue
to read.
DB (Load in)
If “-loadIllegalShapes” option is specified, read the record
with 2 duplicate vertices in normally.

385
11 Appendix

Save as GDS Supported.


Save as
Supported.
OASIS
Merge to Not Supported.
GDS Report error and abort.
Merge to Not Supported.
OASIS Report error and abort.

11.2.1.5 Polygon with less than 3 vertices

Functions Skipper Behavior


By default, report warning, discard this record and continue
to read.
DB (Load in)
If “-loadIllegalShapes” option is specified, report warning
and read the record in.
Supported.
Save as GDS
Report warning
For the polygon with 1 vertex, report error and abort.
Save as
For the polygon with 2 vertexes, report warning and
OASIS
continue to save it out.
Merge to Not Supported.
GDS Report error and abort.
Merge to Not Supported.
OASIS Report error and abort.

11.2.1.6 STRANS with absolute magnification or rotated in absolute angle

Functions Skipper Behavior


Report warning, discard this attribute and continue to load
DB (Load in)
in.
Save as GDS Not Supported.
Save as
Not Supported.
OASIS
Merge to Report warning, discard this attribute.
GDS
Merge to Not such feature in OASIS.
OASIS Report warning, discard this attribute.

11.2.1.7 NODE record

Functions Skipper Behavior


DB (Load in) Supported
Save as GDS Supported when saving whole GDS.
386
11 Appendix

Functions Skipper Behavior


If “-skipNode” option is specified when saving specified cut
area, report warning, discard NODE record and continue to
save. Otherwise, report error and abort.
No such feature in OASIS.
Save as If “-skipNode” option is specified, report warning, discard
OASIS NODE record and continue to save. Otherwise, report error
and abort.
Merge to
Supported
GDS
No such feature in OASIS.
Provided “OASIS_NODE_ABORT” option to control
Merge to
whether to report error and abort. The default value is true
OASIS
which will report error and stop the merging. If set to false,
the node information will be omitted with warning message.

11.2.1.8 BOX record

Functions Skipper Behavior


DB (Load in) Supported
Supported when saving whole GDS.
If “-skipBox” option is specified when saving specified cut
Save as GDS
area, report warning, discard BOX record and continue to
save. Otherwise, report error and abort.
No such feature in OASIS.
If “-skipBox” option is specified, report warning, discard
Save as BOX record and continue to save. If”-skipBox” option is not
OASIS specified and “-boxToRect” option is specified, report
warning, convert BOX to RECT, and continue to save.
Otherwise, report error and abort.
Merge to
Supported
GDS
Supported
Provided “OASIS_BOX_TO_RECT” option to control
whether to transform to rectangle or abort. The default value
Merge to
is “abort” which will report error and stop the merging. If set
OASIS
to true, the box will transformed to rectangle and report an
information in log. If set to false, the box will be omitted and
report warning in log.

11.2.1.9 Array ref nx/ny has unsigned int

Functions Skipper Behavior

387
11 Appendix

DB (Load in) Report warning,


If the nx/ny is larger than 32767, the array will be split to
Save as GDS multiple arrays with nx/ny less than 32767
Save as
Supported
OASIS
Merge to Not Supported.
GDS Report error and abort.
Merge to Not Supported.
OASIS Report error and abort.

11.2.1.10 PATHTYPE record in textbody of TEXT record

Functions Skipper Behavior


Not supported
DB (Load in) Omit the PATHTYPE information without warning
message.
Save as GDS Not supported
Save as
No such feature in OASIS.
OASIS
Not supported
Merge to
Omit the PATHTYPE information without warning
GDS
message.
No such feature in OASIS.
Merge to
Omit the PATHTYPE information without warning
OASIS
message.

11.2.1.11 TEXT record in any angle

Functions Skipper Behavior


Not supported
DB (Load in) Transform the text to orthogonal state without error
message.
Save as GDS Not supported
Save as
No such feature in OASIS.
OASIS
Not supported
Merge to
Transform the text to orthogonal state without error
GDS
message.
No such feature in OASIS.
Merge to
Transform the text to orthogonal state without error
OASIS
message.

388
11 Appendix

11.2.1.12 ELFFLAG and PLEX record

Functions Skipper Behavior


Not supported
DB (Load in) Omit the record without warning message
Save as GDS Not supported
Save as
No such feature in OASIS.
OASIS
Merge to Not supported
GDS Omit the record without warning message
Merge to No such feature in OASIS.
OASIS Omit the record without warning message

11.2.1.13 TEXT record height

Functions Skipper Behavior


DB (Load in) Supported
Save as GDS Supported
Save as No TEXT height definition in OASIS.
OASIS Omit the height information without warning message
Merge to
Supported
GDS
Merge to No TEXT height definition in OASIS.
OASIS Omit the height information without warning message

11.2.1.14 DB unit equal to 0 or inf

Functions Skipper Behavior


Not supported.
DB (Load in) Report error and abort
Save as GDS Not supported
Save as
Not supported
OASIS
Merge to Not supported.
GDS Report error and abort
Merge to Not supported.
OASIS Report error and abort

11.2.2 OASIS Features

11.2.2.1 Coordinate number over 64 bits

Functions Skipper Behavior


389
11 Appendix

Not supported.
DB (Load in) Report error and abort
Save as GDS Not allowed in GDSII.
Save as
Not supported
OASIS
Merge to Not supported.
GDS Report error and abort
Merge to Not supported.
OASIS Report error and abort

11.2.2.2 Layer number and datatype over 64 bit

Functions Skipper Behavior


Not supported.
DB (Load in) Report error and abort
GDSII only supports 16 bits layer number and datatype.
Save as GDS
Report error and abort
Save as Not supported.
OASIS Report error and abort
Merge to Not supported.
GDS Report error and abort.
Merge to Not supported.
OASIS Report error and abort

11.2.2.3 Instances rotated in any angle

Functions Skipper Behavior


Not supported in normal version of Skipper. Report error
and abort.
DB (Load in) Supported in special angle version of Skipper. If needed,
please contact AE.
Not supported in normal version of Skipper.
Save as GDS Supported in special angle version of Skipper. If needed,
please contact AE.
Not supported in normal version of Skipper.
Save as Supported in special angle version of Skipper. If needed,
OASIS please contact AE.
Merge to
Supported
GDS
Merge to
Supported
OASIS

11.2.2.4 LAYERNAME record

Functions Skipper Behavior

390
11 Appendix

DB (Load in) Supported


No LAYERNAME record in GDSII.
Save as GDS
Omit the LAYERNAME record.
Save as
Supported
OASIS
Merge to No LAYERNAME record in GDSII.
GDS Omit the LAYERNAME record.
Merge to Not supported
OASIS Omit the LAYERNAME record.

11.2.2.5 CIRCLE geometry record

Functions Skipper Behavior


DB (Load in) Supported.
Supported
Save as GDS Transform to polygon geometry and report warning
message.
Save as
Supported.
OASIS
Merge to Supported
GDS Transform to polygon and report warning message in log.
Merge to
Supported
OASIS

11.2.2.6 PATH with 0 length

Functions Skipper Behavior


By default, report warning, discard this record and continue
to read.
DB (Load in)
If “-loadIllegalShapes” option is specified, read the record
with 2 duplicate vertices normally.
Save as GDS Supported.
Save as
Supported.
OASIS
Merge to Supported.
GDS
Merge to Supported.
OASIS

11.2.2.7 Polygon with 2 vertices

Functions Skipper Behavior


DB (Load in) By default, report warning, discard this record and continue
391
11 Appendix

to read.
If “-loadIllegalShapes” option is specified, report warning
and read the record in.
Supported.
Save as GDS
Report Warning
Save as Supported.
OASIS Report Warning
Merge to Not Supported.
GDS Report error and abort.
Merge to Not Supported.
OASIS Report error and abort.

11.2.2.8 PROPERTY record associated with entire OASIS file or CELL record

Functions Skipper Behavior


DB (Load in) Supported.
No such feature in GDSII.
Save as GDS
Omit the PROPERTY record with warning message.
Save as
Supported
OASIS
Merge to No such feature in GDSII.
GDS Omit the PROPERTY record with warning message
Merge to
Supported
OASIS

11.2.2.9 TEXT record height

Functions Skipper Behavior


DB (Load in) No TEXT height definition in OASIS.
The TEXT height is defined as 1um. No any warning
Save as GDS
message.
Save as
No TEXT height definition in OASIS.
OASIS
Merge to The TEXT height is defined as 1um. No any warning
GDS message.
Merge to
No TEXT height definition in OASIS.
OASIS

11.2.2.10 OASIS-style properties

Functions Skipper Behavior


DB (Load in) Supported.
Save as GDS No such feature in GDSII.

392
11 Appendix

Functions Skipper Behavior


Omit the properties with warning message.
Save as
Supported.
OASIS
Merge to No such feature in GDSII.
GDS Omit the properties with warning message.
Merge to
Supported
OASIS

11.2.2.11 XNAME, XELEMENT, XGEOMETRY record

Functions Skipper Behavior


Not supported
DB (Load in) The XNAME, XELEMENT, XGEOMETRY records were
omitted without warning message
Save as GDS No such feature in GDSII.
Save as
Not supported.
OASIS
Merge to
No such feature in GDSII.
GDS
Merge to Not supported. The XNAME, XELEMENT, XGEOMETRY
OASIS records were omitted without warning message

11.2.2.12 DB unit equal to 0 or inf

Functions Skipper Behavior


Not supported.
DB (Load in)
Report error and abort
Save as GDS Not supported
Save as
Not supported
OASIS
Merge to Not supported.
GDS Report error and abort
Merge to Not supported.
OASIS Report error and abort

393

You might also like