Skipper User Guide
Skipper User Guide
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
I
.................................................................................... 1
Preface.......................................................................................................10
About This Manual ............................................................................................................... 10
Organization of This Manual ................................................................................................ 10
1 Overview............................................................................................. 11
4 Menus .................................................................................................39
II
4.1 File Menu.......................................................................................................... 39
4.1.1 File->New Layout............................................................................................. 39
4.1.9 File->Save......................................................................................................... 58
4.2.7 View->Redraw.................................................................................................. 74
4.4.4 Edit->Stretch..................................................................................................... 99
4.5.5 Hierarchy->Return To->Return One Level with Instance Selected ............... 120
VII
6.1.5 Trace Short ..................................................................................................... 280
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
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.
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.
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
The current version of Skipper supports the following operating system platforms:
RedHat Linux Enterprise 4_64bit
RedHat Linux Enterprise 5_64bit
Copy the installation package to this directory and change to the installation directory.
% cd <SKP_INST_DIR>
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
To start the Skipper with layout view in a terminal window, please type:
% skipper
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.
13
2 Getting Started
In this User Guide, we mainly focus on the Skipper mode with layout view.
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.
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.
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
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}
17
2 Getting Started
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}
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
19
3 Tools Interface
The components of Skipper graphical user interface are shown as follows:
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.
“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
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
22
3 Tools Interface
23
3 Tools Interface
“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.
The range of entry value for point coordinates is ' -2147483.648 ' to' 2147483.648 '.
24
3 Tools Interface
“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.
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
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.
26
3 Tools Interface
: to show the layer number. Choose this option, purpose column will change
to be Datatype.
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:
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.
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
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
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.
31
3 Tools Interface
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
: to delete group.
32
3 Tools Interface
“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.
The undefined cells are shown with red color, the marked cells are shown with underline.
33
3 Tools Interface
34
3 Tools Interface
35
3 Tools Interface
“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
36
3 Tools Interface
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.
Bird view locates on the loft-bottom of layout view, which show the major frame of
37
3 Tools Interface
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.
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.
New Layout can be used to create new library with a new cell.
39
4 Menus
overlay display:
layout2 layout3 layout2 & layout3
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.
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:
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
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:
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
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
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.
45
4 Menus
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).
47
4 Menus
items one by one, Add means to add a new layer map setting, Delete means to
delete the layer map setting.
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
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.
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.
49
4 Menus
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.
50
4 Menus
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.
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”
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.
52
4 Menus
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.
53
4 Menus
54
4 Menus
The Co-work widget is shown in Figure 49. There’re 3 tabs: Versions, Locks and Users.
55
4 Menus
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
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.
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
To stop sharing the layout server, click “Layout Server->Stop Current Sharing”.
4.1.8 File->Reload
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.
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.
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
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.
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.
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.
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
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.
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).
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:
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.
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
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
This command is used to clear the existed technology setting of current layout.
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
For the layer group setting of above example, the .layergroup file will be saved as:
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
This command is used to load a text file to update the layer group setting.
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.
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
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
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 “ ”:
71
4 Menus
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:
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
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.
73
4 Menus
4.2.3 View->Fit
This command can be used to fit the entire cellview in the layout viewer.
This command adjusts the layout viewer to fit editing layout in EIP.
4.2.5 View->Zoom In
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.
This command can be used to choose a cell to open from the pull-down cell list.
This command can be used to hide the specified instance cells in cellview.
74
4 Menus
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
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.
76
4 Menus
77
4 Menus
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.
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.
78
4 Menus
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
79
4 Menus
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.
Clear All Rulers means to clear all rulers in the slave window.
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
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
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.
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.
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.
84
4 Menus
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.
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
This command helps user to create an instance from a library cell list.
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
87
4 Menus
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.
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:
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]
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.
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
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.
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.
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.
91
4 Menus
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
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
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
4.4.2 Edit->Redo
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
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:
95
4 Menus
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
97
4 Menus
98
4 Menus
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.
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.
99
4 Menus
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:
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.
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
4.4.8 Edit->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.
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.
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.
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.
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
106
4 Menus
yellow axis is appeared. Move the axis to intended where and then left click to
confirm.
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.
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'.
Examples of reshape operation with ‘and’, ‘or’, ‘xor’ and ‘not’ are illustrated below:
109
4 Menus
110
4 Menus
111
4 Menus
112
4 Menus
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.
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.
113
4 Menus
original
final
Figure 123 Set the cell lower left to origin
cell frame
This command can be used to create a new layer in the current library:
114
4 Menus
In the ‘Add Layer’ command form, user can choose a new layer number and datatype
number, and specify the new layer name.
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.
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
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.
This command invokes the move layer setup window, as shown in below.
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.
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
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.
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 shapes or edges which crossed by select line.
This command selects the objects that edge or corner be selected already.
117
4 Menus
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.
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
Run EIP command on top cell and then do edit commands on EIP cell, skipper pops up
the following form.
119
4 Menus
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
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.
This command leads user to the top level of the entire hierarchy structure.
120
4 Menus
The EIP Tree window pops up after clicking on this menu command. In the window,
the hierarchy tree of current cell is displayed.
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.
121
4 Menus
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.
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’
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.
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
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
126
4 Menus
127
4 Menus
4.6.3 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
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.
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.
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.
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
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
Figure 145 Measure: from the start point to the end point
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
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.
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.
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
Find Geometry:
134
4 Menus
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
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
By Depth:
137
4 Menus
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
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.
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
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.
Options Description
143
4 Menus
Skipper can load three format marker file:normal maker、ext marker、EL marker。
Example of normal maker file is shown as below
Example of ext marker is shown as below, the marker name can be unspecified:
144
4 Menus
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.
145
4 Menus
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
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
148
4 Menus
4.6.14 Query->Trace/Short
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.
4.6.15.1 Input
149
4 Menus
Point Editor:
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
151
4 Menus
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.
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
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
154
4 Menus
After running the P2P, the results will be generated in “Results” tab. Switch to “Results”
tab.
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
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.
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.
158
4 Menus
Figure 178 Show real current density value and check status
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.
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.
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
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.
“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
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
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.
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
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.
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.
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.
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
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.
167
4 Menus
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
169
4 Menus
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
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.
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.
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'.
174
4 Menus
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.
Supported constraint: < a, <= a, == a, > a < b, >= a < b, > a <= b, >= a <=b.
176
4 Menus
◼ 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,
177
4 Menus
The 4 metric type used measurement regions are different and the region
marked in red as below. For example,
178
4 Menus
179
4 Menus
The 4 metric type used measurement regions are different and the region
marked in red as below. For example,
180
4 Menus
Sometimes, user wants to browse layout with multi-level and all-dimensional. 3D View
181
4 Menus
182
4 Menus
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.’
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.
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.
➢ 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.
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.
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
Click one point on layout, skipper will display the shapes which are conflicted with the
rules defined in design rule file.
200
4 Menus
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.
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
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
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
“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:
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
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
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.
“Load Cmd To Table” means to load a the switching contents into the switching table.
207
4 Menus
Figure 227 Define the format of table log and switch log
208
4 Menus
Cell/IP Merge” function in batch mode. For details, please refer to Chapter 7 Layout
Integration.
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.
“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
Skipper provides 2 modes for IP scan: “Normal mode” and “Extended mode”. The
default mode is “Normal mode”.
211
4 Menus
212
4 Menus
The IP information can be saved to an Excel format table, convenient for viewing and
analyze the details.
213
4 Menus
all fields are ready, IP information will be tagged on a given layout design to hold the
keyword information at once.
214
4 Menus
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.
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:
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:
“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
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.
217
4 Menus
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.
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
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.
221
4 Menus
Color scheme includes the default scheme and other five groups.
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.
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.
222
4 Menus
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.
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
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.
224
4 Menus
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.
This command is used to select an ‘Argus’ verification results, and call ‘Argus PVE’
tools interface.
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.
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:
//////////////////////////////////////////////////////////////////////////////
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
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
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
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
4) Filter settings
Click the button, “Set Drc Filter” window will popped up as shown in Figure 257.
234
4 Menus
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.
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
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”.
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.
Layer tab can be used to set short key and properties for layers.
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.
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
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
241
4 Menus
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
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
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 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
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:
249
4 Menus
pops up.
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.
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
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.
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
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:
252
4 Menus
The quote mark “” in text_name is optional, “text_layer” only supports layer property
“0”.
4.11.2 Ext->Crosstalk
253
5 Layout Operations
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.
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.
Click “Query -> Trace/Short” to open “Trace” widget as shown in Figure 256.
255
6 Trace Net/Short
256
6 Trace Net/Short
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.
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
clicking “ ” button to set the equivalent layers, clicking “Add” button, the
“Equivalent” rule will be added to upper table.
258
6 Trace Net/Short
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.
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.
There’re several options which will affect tracing process. To set tracing 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 290 Popped up LPP selection menu when selecting tracing point
262
6 Trace Net/Short
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.
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.
263
6 Trace Net/Short
In “Check Via” page, user can specify the “Check Via Area” related options as shown
in Figure 293.
In “Input” tab of “Trace” widget, select “Net” to enter tracing net mode.
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.
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
⚫ 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
⚫ 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.
267
6 Trace Net/Short
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.
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.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.
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
270
6 Trace Net/Short
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
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
Among all shapes on the traced net, only the shape with text label “N4” has property
274
6 Trace Net/Short
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.
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.
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.
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.
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
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.
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.
278
6 Trace Net/Short
⚫ :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
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
⚫ : 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.
In “Input” tab of “Trace” widget, select “Short” to enter tracing short mode.
⚫ 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.
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.
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.
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.
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.
The view settings are the same as tracing net. Please refer to View Settings.
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.
⚫ Uncheck check box in “Net” column to hide the unchecked nets and segments on
layout.
⚫ Change display color by clicking on “S” column.
⚫ 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.
For example of Figure 320, by default, after tracing short, all shapes on the short path
are shown in layout.
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.
To see the history of tracing net and short, switch to “History” tab in “Trace” widget.
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
Before tracing net and short using “dbTrace2” command, we recommend user to clear
all input points by specifying “-clearInput” option. For example,
% dbTrace2 -clearInput
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
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
288
6 Trace Net/Short
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
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
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.
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)}
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.
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”
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”
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
2. Do trace
Execute tracing operation by specifying “-doTrace” option.
For example,
% dbTrace2 -doTrace
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
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
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
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
3. Do trace short.
Use “-dbFromLabels” option to trace short by the results of “dbFindLabels”. For
example,
% dbTrace2 –doFromLabels
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
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
295
6 Trace Net/Short
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
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
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
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.
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
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.
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.
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
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.
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
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.
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:
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
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
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
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.
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.
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
306
7 Layout Integration
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
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
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
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.
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.
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
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
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.
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
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
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。
MERGE_MODE append
INPUT top.gds
REF zx16IP.gds
REF zx18IP.gds
OUTPUT merge.gds
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.
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
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
Additional Options
319
7 Layout Integration
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
322
7 Layout Integration
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.
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
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:
Online Mode
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
327
7 Layout Integration
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.
329
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
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
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.
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
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.
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
337
8 Layout Comparison
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
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.
341
8 Layout Comparison
3) In “Area” tab, user can choose Compare Area or Filter Area. This option is
optional.
342
8 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
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
Option Description
344
8 Layout Comparison
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
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}
-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
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
#do dbCompareMp
-layerFile input.layermap \
-xor \
-limit 100000 \
-threadNum 32 \
-cmd ski-db \
-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.
More options can be specified with “dbSignatureCreate” command. Please refer to the
command manual.
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
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.
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
User can run dbLayerOp command with “-template” option to generate a rule template
for reference.
% dbLayerOp -template rule.tcl
352
10 Logic Operation
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)
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
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)
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)
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
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)
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”.
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
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)
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)
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)
~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
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)
~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)
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)
~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)
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)
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)
AA, AA(10.0)
PO, PO_new(240.1)
temp_metal, temp_metal(105.0)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
367
10 Logic Operation
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
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
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
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
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
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
The dimension operations generate output layers by measuring the separation of edges
on one or two-input layers.
Supported constraint: < a, <= a, == a, > a < b, >= a < b, > a <= b, >= a <=b.
371
10 Logic Operation
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.
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
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.
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
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.
“100.0”.
100.0 = 1.0 ext2 2.0 >0.2 =<0.6 extended_opposite 0.1
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.
375
10 Logic Operation
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
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
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
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
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
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
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
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
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
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
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
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
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
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
382
10 Logic Operation
# boxes
set boxes {}
set box1 {(50,50) (100,100)}
set box2 {(55,55) (105,105)}
lappend boxes $box1
lappend boxes $box2
383
11 Appendix
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.
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.
384
11 Appendix
385
11 Appendix
387
11 Appendix
388
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
390
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
392
11 Appendix
393