Tutorial
Tutorial
Tutorial
Laker Custom IC Design Solutions
Synopsys, Inc.
Printing
Printed on September 11, 2014.
Version
This manual supports the LakerTM Custom Layout Automation System 2014.06 and higher
versions. You should use the documentation from the version of the installed software you
are currently using.
Disclaimer
SYNOPSYS, INC., AND ITS LICENSORS MAKE NO WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE.
Certain software components distributed with Laker are licensed under the GNU General
Public License, Version 2 (GPL), or GNU Lesser General Public License, version 2.1
(LGPL). The software licensed under the GPL and LGPL is free software that comes with
ABSOLUTELY NO WARRANTY. You may modify, redistribute, and otherwise use the
GPL and LGPL software under the terms of the GPL (http://www.gnu.org/licenses/gpl2.0.html) and LGPL (http://www.gnu.org/licenses/lgpl-2.1.html), respectively. Synopsys
does not own or control these websites. Synopsys neither evaluates nor makes any
representations regarding the accessibility of these websites.
Trademarks
Synopsys and certain Synopsys product names are trademarks of Synopsys, as set forth at
http://www.synopsys.com/Company/Pages/Trademarks.aspx.
All other product or company names may be trademarks of their respective owners.
Synopsys, Inc.
700 E. Middlefield Road
Mountain View, CA 94043
www.synopsys.com
Contents
About This Book
Overview .............................................................................................................................1
Audience..............................................................................................................................1
Book Organization ..............................................................................................................1
Conventions Used in This Book..........................................................................................2
Related Publications............................................................................................................3
Introduction
Overview .............................................................................................................................5
Technology Overview .........................................................................................................6
Interoperability...............................................................................................................6
Product Overview................................................................................................................7
Core Features .................................................................................................................7
Rule-driven Layout ..................................................................................................7
Built-in Routers ........................................................................................................7
User-Defined Device (UDD) ...................................................................................8
Advanced Features.........................................................................................................8
Schematic-driven Layout .........................................................................................8
Stick Diagram Compiler...........................................................................................8
Matching Device Creator .........................................................................................9
Design Hierarchy Manipulation for Layout Optimization.......................................9
Hierarchical Net Tracer............................................................................................9
User Interface
11
Overview ...........................................................................................................................11
Common User Interface Features......................................................................................12
Window Banner ...........................................................................................................12
Main Window Banner ............................................................................................12
Layout Window Banner .........................................................................................12
Schematic Window Banner....................................................................................13
Pull-down Menus.........................................................................................................14
Mnemonic Keys...........................................................................................................14
Bind Keys ....................................................................................................................14
Esc Key........................................................................................................................14
On-line Help ................................................................................................................14
Quick Start
45
Overview ...........................................................................................................................45
Lesson 1: Import GDSII Stream Design ...........................................................................46
Lesson 2: Import LEF Design ...........................................................................................48
Before You Start ..........................................................................................................48
Prepare Information File for LEF/DEF..................................................................48
Import LEF File into Laker..........................................................................................49
Lesson 3: Import DEF Design...........................................................................................51
Lesson 4: Open the Design................................................................................................53
Open a Stream Design .................................................................................................53
Open DEF Design........................................................................................................56
Lesson 5: Understand the Design......................................................................................59
Highlight Net ...............................................................................................................59
Hierarchical Net Tracer ...............................................................................................61
UDD Tutorial
63
75
Overview ...........................................................................................................................75
How to Use It ....................................................................................................................75
79
Overview ...........................................................................................................................79
Drag-and-Drop Operation .................................................................................................80
85
Overview ...........................................................................................................................85
Commands.........................................................................................................................85
.END ............................................................................................................................85
.ENDS ..........................................................................................................................86
.GLOBAL ....................................................................................................................86
.INCLUDE...................................................................................................................86
.MODEL ......................................................................................................................87
.OPTIONS....................................................................................................................87
.PARAM ......................................................................................................................88
.SUBCKT.....................................................................................................................88
*.FLAT ........................................................................................................................89
*.PININFO...................................................................................................................89
*.REVERSE.................................................................................................................90
Circuit Elements................................................................................................................91
MOSFET......................................................................................................................91
BJT...............................................................................................................................92
Resistor ........................................................................................................................92
Capacitor......................................................................................................................93
Inductor........................................................................................................................94
Diode............................................................................................................................94
Subcircuit Call .............................................................................................................95
M Factor Expansion ...............................................................................................95
Subckt Expansion by Parameter Value ..................................................................96
Others ................................................................................................................................97
Built-In Functions ........................................................................................................97
Scale Factor..................................................................................................................98
Comment......................................................................................................................98
101
Overview .........................................................................................................................101
Supported LEF Syntax ....................................................................................................101
105
Overview .........................................................................................................................105
Supported DEF Syntax....................................................................................................105
Index
109
Audience
The audience for this book includes physical layout engineers who require faster and more
efficient automated layout design tools.
This document assumes that you have a basic knowledge of the platform on which your
version of the Laker layout system runs: Unix or Linux.
Book Organization
This Laker User Guide and Tutorial is organized as follows:
About This Book, provides an introduction to this book and explains how to use it.
Introduction, provides an introduction to the LakerTM Custom Layout Automation
System.
User Interface, describes the graphical user interface (GUI), common features,
selection schemes, and primary windows.
Quick Start, provides more practice and helps you to skillfully exploit the advanced
functionalities of the Laker layout system.
UDD Tutorial, provides more practices on user-defined devices (UDDs).
Index, is a detailed index to this book.
Italics font is used for emphases, book titles, section names, design names, file paths,
and file names within paragraphs.
Bold font emphasizes text and highlighted titles, menu items, function keys, and
button names.
Blue text outlines the text area for active hypertext links; it helps you jump to the
reference topic.
Courier type is used for program listings, Tcl commands, and arguments. It is also
used for test messages that appear on the screen.
NOTE describes important information, warnings, or unique commands.
Left-click or Click means click the left mouse button on the indicated item.
Middle-click means click the middle mouse button on the indicated item.
Right-click means click the right mouse button on the indicated item.
Double-click means click twice consecutively with the left mouse button.
Shift-left-click means press and hold the Shift key then click the left mouse button on
the indicated item.
Shift-right-click means press and hold the Shift key then click the right mouse button
on the indicated item.
Drag-left means press and hold the left mouse button, then move the cursor to the
destination and release the button.
Drag-right means press and hold the right mouse button, then move the cursor to the
destination and release the button.
Drag and drop means press and hold the middle mouse button on the indicated item
then move and drop the item to the other window.
The OK button confirms the settings in the form and closes the form.
The Apply button applies any changes but does not close the form.
The Cancel button discards the settings in the form and closes the form.
The Close button closes the form without applying any changes.
The Hide button temporarily hides the form during operation. It can be brought back
again by pressing F3.
Related Publications
Introduction
Overview
The LakerTM Custom Layout Automation System offers powerful solutions for analog,
mixed-signal, memory, and custom digital IC design that address key pain points in the
layout process. The Laker layout system provides an intuitive methodology and simplifies
the layout process by automating many tedious and error-prone layout tasks.
When the Laker layout system is deployed in a design flow, less effort is required to obtain
optimal, high-quality, high-density layout of advanced chip designs. Superior layout results
are achieved by:
Speeding up the project and optimizing the layout at the same time;
Efficiently interacting with the netlist, schematic and layout data in a single working
environment;
Cutting overall DRC/LVS run times by creating layout that is DRC-correct the first
time; and
Reducing or eliminating PCell scripting with unique device generation technologies.
The Laker layout system with its controllable automation technologies simplifies the
layout process and reduces physical verification efforts by offering rule-driven and
schematic-driven capabilities and an open architecture that seamlessly integrates best-inclass third-party tools.
Technology Overview
At the core of the Laker layout systems controllable automation is Synopsys patented
Magic Cell (MCellTM) parameterized device generation technology and a built-in design
rule check (DRC) engine that drives the systems rule-driven layout capabilities. MCells
enable a highly automated schematic-driven layout (SDL) flow that includes the usercontrollable device planning, wiring and manipulation capabilities of the Stick Diagram
Compiler.
Interoperability
The Laker Custom Layout System provides unparalleled interoperability and an open
environment that employs best-in-class design tool flows that include, physical
verification, extraction and much more. This open system provides:
Seamless integration with CalibreR and HerculesTM physical verification tools that
executes DRC and LVS from the Laker window and supports easy browsing and
debugging of the results; and
Complete Tcl support including language syntax and selected extensions to provide
maximum flexibility in tool customization, database query, and layout creation.
Product Overview
The Laker layout system includes the following features.
Core Features
The Laker layout system provides rule-driven layout so physical layout that is DRC and
LVS correct can be rapidly realized, placed, routed, and edited. Unique controllable
automation simplifies numerous tasks from measurement to device generation. The builtin DRC engine drives the application of design rules through device generation, layout, and
routing.
Rule-driven Layout
Automatically checks, displays, and snaps to width, space, notch, overlap, and enclosure
rules in real time. The Laker layout system supports:
Built-in Routers
The built-in routers in the Laker layout system use the designs connectivity to
automatically finish wiring on the fly. Features include:
A point-to-point router that either automatically or interactively creates a DRCcorrect route between the source and target.
Interactive, DRC-correct Pathfinder that follows the cursor in point and click
routing mode, recognizing and routing around same layer metal - or switch layers
with the click of a bind key and Pathfinder will retain connectivity by automatically
placing the appropriate via stacks.
A route-by-label function that automatically creates routes between multiple points as
guided by text or labels.
A net router that automatically routes single or multiple nets.
Laker User Guide and Tutorial 7
Advanced Features
The Laker layout system uses unique technologies to exploit design rules, connectivity and
parameters during layout in an efficient, consistent, and automatic way.
Schematic-driven Layout
With schematic-driven layout, optimized layout can be rapidly created that is DRC/LVScorrect in less time without sacrificing density or design styles. Both netlist and schematic
views are included with the Laker layout editor for an intuitive SDL working environment,
which includes:
A hierarchical design browser for rapidly searching the hierarchy and cross- probing
between schematic, netlist, and layout. The design hierarchy can be modified for
more efficient layout by flattening logical groups of devices into higher level devices.
A schematic view for enabling schematic-driven layout. Cross-probe with the design
browser to identify candidates for flattening. Automatically identify repeated patterns,
associate optimized layout for those patterns and generate layout in seconds.
A layout editor for rapid, rule-driven layout. Realize, place, route, and edit physical
layout that is DRC- and LVS-correct.
A patented automatic schematic generator for creating a readable schematic from
CDL or SPICE netlists.
User Interface
Overview
The LakerTM system is a multi-window application with an easy-to-use graphical user
interface (GUI). It runs under Unix and Linux.
The Laker system has a number of commands, including many that you invoke through
mouse clicks or drags rather than selecting from pull-down menus at the top of each
window. Read this chapter to familiarize yourself with the interface conventions of the
Laker system before you proceed further.
This chapter covers the following topics:
Window Banner
The banner at the top of each window may vary depending on the check-out license.
The banner of the Main, Layout, and Schematic windows can be customized to show extra
information by defining one of the following settings before the Laker software is started:
Once the environment variable is set, the value in the laker.rc resource file will be
ignored.
The Main window banner with extra information will look like the following figure:
Extra information: 90nm Project X
[Edit:0*] means that the layout data is at the top level and it has been edited
and is not saved; the asterisk (*) will disappear when the data is saved.
The Schematic window banner with extra information will look like the following figure:
Extra information: 90nm Project X
Pull-down Menus
A pull-down menu bar is located just below the window banner. Each menu item contains
several commands that are displayed when the menu is selected. A command can be
invoked by choosing it from the pull-down menu or by using the available bind key.
The Laker system supports the tear-off menu convention, which allows a frequently used
menu to be pulled aside and left open.
The appearance of pull-down menus can be customized by modifying the menu files. Refer
to the Customizing Laker description in the Resource File and Customization chapter of the
Laker Command Reference Manual for more details.
Mnemonic Keys
The window menus support Meta key invocation using mnemonics. The mnemonic for
each item is indicated by an underline (_).
For example, to display the File -> Open menu (meta -fo), press and hold the <Meta> key
on your keyboard (the diamond key/<Alt> key on Sun keyboards, or the <Alt> key on
Windows keyboards) and press the f key, and then release the <Meta> key and press the
letter o key.
Bind Keys
You can bind a command to a keystroke. After you have defined bind keys, you can easily
invoke commands with a keystroke.
Refer to the Bind Key Summary for the available bind keys in the Laker system.
Refer to the Customizing Laker description in the Resource File and Customization chapter
of the Laker Command Reference Manual for more details on the customization of bind
keys.
Esc Key
Pressing the Esc key can abort a command if the options form does not appear.
If the form appears, pressing the Esc key can close the options form or the object attributes
form, without aborting the command (the command remains executed).
On-line Help
All application windows provide hypertext-based on-line help, which can be accessed
through the Help menu on the main toolbar.
14 Laker User Guide and Tutorial
Pressing the F1 key within an active options form will open a quick access menu to the
command description in the Laker Command Reference Manual. This index-like menu is
organized by the appearance of commands in each pull-down menu.
Toolbar Icons
The convenient toolbar icons appear beneath the pull-down menu bar. These toolbar icons
give you access to frequently-used commands at the current window.
Mouse Operations
The available mouse operations are described in the following paragraphs.
When drawing doughnuts, left-click to place the center of the doughnut, and draw the first
and second circles of the doughnut.
Command Reference Manual for more details on how to re-define the right-click command
menu in the Layout window pane.
Menu Bar
Message Pane
Toolbar Icon
There is only one toolbar icon in the toolbar of the Main window. When you rest your
mouse cursor over the toolbar icon, you will see a yellow tip window, indicating the
function of the selected button.
Clicking the Open Cell toolbar icon will bring up the Open Cell form, for which you need
to provide library name, cell name, and search path information in order to open a cell view.
Message Pane
A message pane appears beneath the toolbar. From this message pane, you can check the
messages associated with system warnings, data conversion, executed commands, and
preference settings. A log file (laker.log) is provided to record the messages displayed in
this pane.
On the other hand, you may execute the enhanced Tcl commands in this pane. For example,
you can type lakerOpenDesign -lib ram -cell ram -mode edit and then hit the Enter
key. The layout view of the cell (ram) in the library (ram) will be opened in the Design
window.
18 Laker User Guide and Tutorial
Refer to the Laker Tcl Reference Manual for more details on available Tcl commands.
Toolbar Icons
Content Window
Design Hierarchy Broswer
Layout Window
Schematic Window
Layer Table
Status Bar
Figure: Design Window
These key components of the Design window are described in the following sections.
Toolbar Icons
The following figures show the toolbar icons available in the Design window and design
hierarchy browser pane.
Save Cell
Cursor X Offset
Cursor X Position
Select Count
Command Name
Cursor Y Offset
Cursor Y Position
Rotate 90
Attribute
Layer Tap
Replace
Object Selectability
Find
View Instance Pin
Activate Short Detector Layout Mode
Measure Distance
Schematic Float Window
Stand-alone Schematic Window
Figure: Design Window Toolbar Icons
Fix Discrepancy
Select All
Highlight
Show Instance
Expand All
Create
Collapse All
Preference
Matching Device Creator
Show Net
attribute (Layer Name). The visibility and selectability of layers are configurable in the
Layer Table pane.
Refer to the Layer Setting description for more details.
All Layers Visible
All Layers Selectable
Layer Category
Purpose Name
Scroll Bar
Resize Controller
Yellow Tip Window
The category name shown in the Layer Category selection list of the Layer Table pane is
the last selected or deselected category.
When the SysPinSet category is turned on, the PinBorder related layers, which are defined
in the technology file section tfLayoutConnection, will be listed at the bottom (or right) of
the Layer Table pane, as shown in the following figure.
The relationship between the PinBorder layer and the PinBorder related layers in the
SysPinSet category is explained as follows:
When the PinBorder layer is set to invisible, all PinBorder related layers will become
invisible.
When the PinBorder layer is set to un-selectable, all PinBorder related layers will
become un-selectable.
When all PinBorder related layers are invisible, if any of these layers are set to
selectable (and visible), the PinBorder layer will become selectable and visible.
When all PinBorder related layers are invisible, if any of these layers are set to visible,
the PinBorder layer will become visible but un-selectable.
Displaying the Layer Table pane will make the layout procedures much easier. The Layer
Table pane can be attached to the bottom, top, left or right of the Layout window pane by
selecting Window -> Layer Table -> Attach Bottom; Window -> Layer Table -> Attach
Top; Window -> Layer Table -> Attach Right; or Window -> Layer Table -> Attach
Left.
To hide the Layer Table pane, choose Window -> Layer Table -> Hide LayerTbl.
Scroll Bar
To view other layers in the Layer Table pane, use the scroll bar to show other layers.
Resize Controller
Move the mouse cursor over the boundary of the Layer Table pane and the mouse cursor
becomes a
or
(Resize Controller). To view more or fewer layers, drag the resize
controller to change the size of the Layer Table pane.
Purpose Name
There are four system purposes defined in the technology file: boundary, net, pin, and
drawing. In the Layer Table pane, the purpose name is displayed with the first and last
characters; for example, the purpose drawing is tagged as dg.
Refer to the Customizing Purpose Name description for more details on the configuration
of the length of the purpose name.
Laker User Guide and Tutorial 25
To change the layer order, select a layer by clicking the left mouse button. Then, move the
layer to its destination via a drag-and-drop operation (pressing the middle mouse button).
While dragging the item, a yellow line is displayed, indicating the destination position.
This layer filter saves ten historical filtered patterns, which can be obtained by clicking the
arrow button in the dynamic selection field.
The filtered patterns can be specified by number or string. The numerical patterns can be
assigned with layer purpose pair or multiple filtered patterns. The string patterns can be
assigned with regular expression, layer purpose pair, or multiple filtered patterns.
These filtered patterns apply to the layer selection field of the Query -> Find, Replace,
and Attribute commands, and the layer dynamic selection field and active layer selection
field in the Layout window.
Regular Expressions
The following regular expressions can be used in filtered patterns:
*
Matches any single character. For example, m?n will match with man and min, but not main.
[CHARS]
Matches any single character in CHARS. If CHARS contains a sequence of the form a-b, any character
between a and b, inclusive, will match. The characters are case-sensitive. For example, *[tl]Bdry
will match with SoftBdry and CellBdry.
\x
Matches the single character x. This avoids special interpretation for any of characters *?[]\
specifies a layer purpose pair with GDS number and data type, for
example: 16:0 indicates that it is a MET1 layer with drawing purpose.
gdsNumber:dataType
MET? [PN]WELL.
When specifying multiple filtered patterns, the regular expression and the layer purpose
pair can be defined as follows. For example:
POLY* MET*:draw* displays the layers or layer aliases that match with POLY*, and also
displays the layers that match with MET* and the draw* purpose.
POLY* *WELL:draw* MET* displays the layers or layer aliases that match with POLY* and
MET*, and also displays the layers that match with *WELL and the draw* purpose.
POLY*:draw* *:p* displays the layers that match with POLY* and the draw* purpose, and
also displays all layers that match with the p* purpose.
POLY* 12:* or POLY* 12 displays the layers or layer aliases that match with POLY*, and
also displays the layers that match with layer number 12.
POLY* *:0 or POLY* :0 displays the layers or layer aliases that match with POLY*, and
also displays the layers that match with purpose number 0.
POLY* 12:0 displays the layers or layer aliases that match with POLY*, and also displays
the layers that match with layer number 12 and purpose number 0.
: displays all layers. This pattern is equal to *:*.
* displays all layers. This pattern is equal to *:*. When only the symbol * is entered in
the empty dynamic selection field, the filtered pattern will not be shown and the
dynamic selection field will remain empty.
Status Bar
The status bar in the Design window consists of the following parts: Tcl Command Line
Area, Message Line Area, Active Layer Selection Field, Rule-driven Editing Mode, and
Snap Mode.
Tcl Command Line Area Active Layer Selection Field Rule-driven Editing Mode
Snap Mode
Figure: Status Bar in the Design Window
Switch an active layer to another layer by giving a layer name, if the layer exists, in
the editable text field, as shown in the following figure.
Specify a layer name in this editable text field
The layer name and purpose name are case-sensitive. The matched layer is always
visible and selectable. Keep pressing the Enter key may look for the same matched
layer with all its available purposes in turn and circle around these layers if the result
is more than one. The layer information is refreshed in the message line area
according to the matched layer.
If the mouse is not anywhere within the editable text field (loosing focus), the
application will reset the input layer to active layer.
All layers, including visible and invisible, can be searched by one of the following
actions.
Specify full layer name by typing POLY in the text field and press Enter, the active
layer changes to POLY (drawing) immediately.
Keep pressing Enter may look for the same matched layer with other purpose, as
shown in the following figure.
Specify the first character or leading characters of layer by typing M or MET and
press Enter, the active layer changes to the first matched layer whose name
begins with M or MET, according to the appearance and priority in the layer table,
as shown in the following figure.
Search the layer and/or purpose name with regular expressions where the asterisk
(*) indicates 0~n characters, and the question mark (?) indicates any characters.
For example, typing P* and press Enter may bring up a list of layers whose name
begins with P. You may get different results by giving the following combination:
Input
Output
P*
P?
List of layers whose name begins with P and with another character.
P???
List of layers whose name begins with P and with other three characters.
P* d*
List of layers whose name begins with P and with purpose name begins with d.
Clicking on the purpose name of the active layer appears a list of available layers, as
shown in the following figure. The list contents are similar to the Layer Table pane.
The active layer may be changed by choosing a layer from the list. This function is
useful when you hide the Layer Table pane, and wish to have a much broader layout
space.
Figure: Left-click the Purpose Name to Show the Layer Table Pane
Description
A ruler is displayed in the Layout window when the Display Ruler Mode is
turned on.
Rule-driven Mode
With Rule-driven Mode enabled, the object can be calibrated to cope with
design rules.
Push-Wire Mode
width rule
spacing rule
notch rule
overlap rule
enclosure rule
The concept of the rebounding area is shown in the following figure. When placing the
mouse cursor inside the rebounding area, the cursor will be rebounded to the defined ruledistance spot.
Multiple distance-checking rules can be included; however, only the rule that is nearest to
the trace cursor will be chosen.
The rebounding radius and displaying ruler values can be set by turning on the RuleDriven Threshold option through the Preferences form, invoked by the Options ->
Preferences -> Command tab under the Main window.
Normal Mode
You may work as usual under this normal editing mode (without any design rule iteration
guiding you to construct layout).
Figure: 1.4 s Means the Distance 1.4 um and the Spacing Rule
To measure the enclosure rule of a rectangle being stretched across an existing object, you
can move the mouse cursor from the distance of 0.8 um to 0.5 um, and the ruler will
automatically appear and measure the enclosure rule, as shown in the following figure. In
the figure below, 0.8 c means the distance 0.8 um and the enclosure rule. In other words,
the distance by which the MET1 layer encloses the CONT layer is 0.8 um.
Figure: 0.8 c Means the Distance 0.8 um and the Enclosure Rule
Rule-driven Mode
The status for Rule-driven mode is represented by
. This editing mode not only
incorporates the functionality of Display Ruler, but also forces the distance between the
working object and its neighboring object to fit the minimum rule distance if their
proximity violates or approaches the design rule. If there exists more than two constraints
for the working objects in question, the minimum rule distance is chosen. It fits the design
to the minimum rules if the distances, regarding related objects, approaches the design rule.
When creating or editing objects in the rule-driven mode, you will be prompted with the
design rules in real-time. In the examples below, we will show you how to create and edit
objects on different layers within the rule-driven mode.
Push-Wire Mode
The status for Push-Wire mode is represented by
. It allows you to move objects by
maintaining the connectivity with correct design rules. Refer to Edit -> Stretch for details.
Figure: Ruler Distance Appears If Drawing Area is Smaller Than The Defined Width
Figure: Ruler Distance Appears If Mouse Cursor Gets Close to The Other Layer
3. Move the copied rectangle to the desired place. When the mouse cursor gets close to
the existing related rectangle, the copied rectangle will fit the minimum design rule,
as shown in the following figure.
4. After you have decided upon a location in which to place the rectangle, left-click to
copy it on to the CONT layer.
Figure: The Copied Rectangle Will Fit The Minimum Design Rule
3. Stretch the selected edge to the desired place. When the mouse cursor gets close to the
rectangle on the CONT layer, the selected edge will fit the minimum design rule, as
shown in the following figure.
Figure: The Selected Edge Will Fit The Minimum Design Rule
4. Left-click to finish stretching the rectangle. The two rectangles on the CONT layer are
now enclosed by the rectangle on the MET1 layer.
Figure: Rectangles on CONT Layer are Enclosed by the Rectangle on MET1 Layer
Description
AnyAngle
FixAngle
Snap segments or objects at a user-defined angle. The range of the user-defined angle is
from 0 to 180.
If the Laker _FPD license is invoked, FixAngle can be cyclically selected by F6 with
other snap modes; otherwise it can only be selected from the options form while other
snap modes can be cyclically selected by F6.
Orthogonal
Diagonal
Description
L90XFirst
Snap two segments forming a 90-degree angle between the points entered, beginning
with a horizontal segment.
L90YFirst
Snap two segments forming a 90-degree angle between the points entered, beginning
with a vertical segment.
Horizontal
Vertical
Selection Schemes
Various selection schemes are provided for different purposes and preferences. The V/E
(Vertex/Edge) and OBJ (Object) selection modes are used for objects, and the Device
Object Mode is used for MCells. These selection modes are configurable in the Preferences
form via Options -> Preferences -> General tab -> Selector -> Mode and Device Object
Mode of the Main window.
When working with the Edit commands, you can customize your own select actions prior
to the activation of each command.
Pre-Selection
When you move the trace cursor over an edge, an object or a vertex, a yellow dotted line
highlights what you can select. This scheme allows you to preview and choose a target (a
vertex, an edge or the whole object) before making any selection.
NOTE: If it is under the [OBJ] selection mode, the object will be highlighted even though
Single Selection
When the edge, object, or vertex is highlighted by the pre-selection scheme, you may leftclick or press Enter to confirm the selection. The selected object is highlighted with a
white solid line and, if any other objects were previously selected, they will be
automatically deselected at the moment.
Area Selection
You can select a group of objects by drawing a selection box around them, or by using the
available bind key and select options.
To simply select a group of objects, you may drag-left to form a rectangular box over the
object(s) you want to select. The object that is entirely inside the area is selected. Under the
[V/E] selection mode, if an object is partially inside that area, system will select its edge or
vertex that is inside the area. However, under the [OBJ] mode, only the object that is totally
inside the area will be selected. If any other objects were selected before this operation,
they will be deselected automatically after the action is done.
On the other hand, you may use the bind key Shift+a to invoke the Area Select command
and press F3 to set your options in the Area Select options form, where provides different
select options, Rectangle, Polygon and Line, and selection modes, Enclose and Overlap, to
help user to select the desired object(s) efficiently.
Cycle Selection
While making selection on overlapped objects, you can use the Spacebar key to pre-select
your target edge, vertex or object among the overlaps.
Move your trace cursor over the overlapped area; a yellow dotted line will first highlight
the closest edge, vertex or object and show the pre-select information on the status bar
underneath. If this is not the target you wish to select, press Spacebar to pre-select another
that is within the overlapped area. You can repeat this action until you jump to the desired
target among the overlaps.
In this figure, we pre-select an edge of an object first. To see the other available at this preselection, press Spacebar. You will get the results in (2), (3) and (4). The location of the
trace cursor may effect the possible targets.
Multiple Selection
You may make multiple selection when used in combination with the Shift key. To select
an additional edge, object, or vertex, use Shift-left-click or Shift+Enter. To select an
additional group of objects, press Shift and draw a selection box over the group. Any
objects inside the selection box will be selected. The previously selected objects remain
selected.
Decrease Selection
You may also deselect an object, among many selected objects, when used in combination
with the Ctrl key. Use Ctrl-left-click or Ctrl+Enter to deselect an additional edge, object,
or vertex. To deselect an additional group, press Ctrl and draw a selection box over the
group. Any objects inside the selection box will be deselected.
To deselect all objects, left-click any empty area in the Layout window pane or click the
Deselect All button on the toolbar.
Select the object then invoke the command: after the operation is done, the object
remains selected and the command is terminated. This is known as One-time
Execution. However, when you copy an object, only the newly generated object will
be selected after the operation. For example, if you select object A and invoke the
Copy command, a new object B will then be created and selected; object A will be
deselected at this moment.
Invoke the command then make the selection: after the operation is done, the
object/edge is deselected; however, you may continue the editing command until you
press the Esc key to exit. This is known as Continuable Action. This continuable
command action is available only when the Command Repeats option is enabled in
the Preferences form via Options -> Preferences -> Command tab under the Main
window. If this option is disabled, the executed command working with this selection
method will be terminated after the operation. The result is similar to One-time
Execution.
Quick Start
Overview
Follow the lessons provided in this tutorial, you will gain more practices and skillfully
exploit the functionalities of Laker.
This tutorial includes the following lessons:
Lesson 1: Import GDSII Stream Design
Lesson 2: Import LEF Design
Lesson 3: Import DEF Design
Lesson 4: Open the Design
Lesson 5: Understand the Design
The demo cases, which shipped with the Installation CD-ROM, will be used as the
examples to guide you through the basic data entry features, editing, and viewing tasks in
the Laker layout design system.
The tutorial data resides in the <install_dir>/demo directory. Copy the demo files from this
directory to your working directory.
> mkdir <working_dir>
> cp -r <install_dir>/demo <working_dir>
> cd <working_dir>/demo/nECO_Laker/Laker
To start the Laker software, execute the laker command under UNIX prompt:
> laker &
3. Use the default configuration in the Basic, Advanced, Property, and Log/Err tabs.
4. Click OK to proceed.
A summary of the data conversion will be displayed in the message pane of the Main
window, as illustrated in the following figure.
The detailed information and error report will be recorded in the gdsIn.log and gdsIn.err
files, respectively by default, or they will be saved with the filename specified in the Log/
Err File text field of the Log/Err tab. These files can be found under the lakerLog
directory.
Since initializing the information is a difficult job, Laker provides a utility, LefIn, with the
-GenLefInfo option to parse the layers used in the LEF file, and also generates the
information file with the filename giving by the -info infoFile option. Refer to the LefIn
utility in the Laker Command Reference Manual for more details.
Since the leaf cell will use as less layer as possible to reduce the wafer processing cost,
extra routing layers need to be added manually in the generated information file for DEF
file importing.
3. Use other default settings in the Import LEF form, and click OK to proceed.
All of the cells in the LEF file will be translated. These cells will be stored as the
abstract views instead of the layout views. The abstract view data does not include a
complete design information and it cannot be exported as the stream data for tape out
purposes.
Laker User Guide and Tutorial 49
A summary of the data conversion will be displayed in the message pane of the Main
window, as illustrated in the following figure.
3. Use other default settings in the Import DEF form, and click OK to proceed.
During the import process, all valid Laker libraries will be searched to find the master
cell name with abstract views. If the abstract views cannot be found in the libraries,
the layout views will be the second priority. If both the abstract and layout views are
not found in the libraries, the master cells will be treated as undefined cells.
A summary of the data conversion will be displayed in the message pane of the Main
window, as illustrated in the following figure.
3. The CPU cell is then loaded in the Layout window. With the Laker Viewer license, the
opening cell is always set to Read Only mode. You may find that most of the editing
toolbar buttons are not available in the Layout window.
4. The initial loaded layout is displayed at the minimum view level (level=0). Lets try to
use the zooming feature to get a close-up view of the specific area and see the view
level.
First, use the bind key z to invoke the Area Zoom command. Next, left-click to insert
the first point, and then move your mouse cursor. Finally, left-click to insert the last
point to finish drawing a rectangular box on a layout area to enlarge the view.
5. The zoomed area is displayed at the minimum view level, as illustrated in the
following figure.
6. Press Shift+f to change the view level to the maximum level (level=49). You will see
every detail of the layout design in the Layout window pane.
4. The layout is displayed at the minimum view level (level=0). Lets try to use the Area
Zoom feature to get a close-up view of the specific area and see the view level.
Laker User Guide and Tutorial 57
5. In this case, we map the master cell to the LEF-In data, we just see the cell abstract
data, as illustrated in the following, instead of the complete layout data.
Figure: DEF Design with Abstract Cell Data from LEF File
If you import the stream file and LEF file of all leaf cells, you can select View ->
View Instance to switch the display view name between the layout and abstract
views.
6. To close the Layout window, select Cell -> Close.
Highlight Net
Layout designers can invoke Query -> Highlight Net in the Layout window to get the
Highlight Net form.
All net names in the opened cell are extracted from Laker database and listed in the Net
Name list pane.
You can directly enter the desired net name in the Net Name text field and click the Apply
button to see the whole routing topology.
To query the net name, simply move your mouse cursor onto the net in the layout. The
corresponding net name will be shown in a yellow tip window.
Figure: Highlight Net Result with Tip for Net Name Reporting
To see the hierarchical instance name instead of the master cell name, change the display
setting of the cell name by choosing Instance Cell Name in the Options -> Preference > Display tab of the Main window.
Click a desired polygon shape in the layout to perform the tracing job. Ten different colors
are cyclic used to highlight the traced results.
The net information will be displayed in the message pane of the Main window.
If the hierarchical net tracer cannot finish the tracing job, Laker will show a progress bar
on the screen and allow the user to click the STOP button to terminate the tracing job.
Laker does not provide the incremental hierarchical net tracing function. The terminated
results cannot be reused for the next tracing.
UDD Tutorial
Before You Start
Create a New UDD in the Main Window
1. Invoke Cell -> UDD -> New UDD from the Main window to start creating a new
UDD.
2. Choose a destination library, and then type a new device name in the Cell Name text
field.
3. Click OK to confirm the creation of new UDD, which is created with device view.
4. Open this new UDD by selecting File -> Open from the Main window.
5. Go to the relative library and open the UDD by double-clicking on it.
Toolbar Icons
A set of frequently used commands is collected in the toolbar. Most of them are for defining
procedure statements, and three of them (Rule Finder, Preview, and Debug) are
accessories.
Align
Distance
Parameter
Attribute
Copy
Fill
Procedure Script
Operation Script
Reported Distance
Return Value
Remove
Boolean
Debug
Preview
Rule Finder
Cut Corner
Text labels.
You may re-use existing UDD layout by importing UDD procedure script with the
Procedure Script button on the toolbar. Then, evaluate the constraints to fit your design
needs.
Alternatively, you may create a brand new UDD layout with valid objects and constraints.
2. Next, assign parameterized constraints to the shapes. In this tutorial, well define the
procedures by this order: Distance > Align > Fill > Align > Align > Remove.
3. Click the Distance button to insert a Distance procedure. The length of transistor gate
is defined as 2 and the width is 5, as shown in the following figure.
4. Click the Align button to add the first Align procedure, and define four align
constraints, a1, a2, a3, and a4, as follows.
5. Click the Fill button to insert a Fill procedure. You may select a fill region for
insertion, and also define the fill constraints in Instance Setting group box.
6. Click the Align button to add the second Align procedure, and define four align
constraints, q1, q2, q3, and q4, as follows.
7. Click the Align button again to add the third Align procedure, and define four align
constraints, z1, z2, z3, and z4, as follows.
2. Obviously, the left part of the transistor doesnt not meet our needs. To fine-tune this
part, we have to find out which procedure it belongs to.
70 Laker User Guide and Tutorial
3. Select the topmost edge of metal area in the layout window and then click the Rule
Finder button to find out the constraint. The Rule Finder form appears and the
associated preview result will also be highlighted if the Highlight Object on Preview
Area option is turned on.
4. Next, click-left on the q1 constraint. Its belonging procedure will appear in the Rule
Finder form. Double-click Proc_3, it will bring you to q1s setting box, so that you can
quickly locate the constraint q1 and all its associated information, as illustrated in the
dotted circles below.
5. Change q1s spacing from 0.8 to 0.3, and then hit Enter.
6. Close the Rule Finder form, and click the Preview button again.
7. The result is illustrated as follows.
Done!
Summary
In this tutorial, you have learned how to create and modify UDDs. Specifically, you
How to Use It
This lesson will use the stream design as the example. Lets open the CPU cell, that you
have used in the Quick Start chapter, from the CPU library.
Invoke Query -> Spare Cell to open the Spare Cell form.
If you have the list of pre-defined spare cells, click the Load button and import into this
form.
You may click Add button to add the spare cell in the form.
In this case, the instance names for these spare cells own the keyword, SPARE. Let's use
the regular expression style to search in the Laker database. If you don't specify the group
name in the Group text field, Laker will automatically create the group with the default
name, Spare_Cell.
Here, you can choose to show the list by Group or by Cell. Let's list the spare cells by Cell.
Click the Cell button to change the Group By option.
To highlight the spare cells in the layout pane, simply click the Cell group to highlight the
whole spare cell group or click a single spare cell to highlight the single spare cell.
76 Laker User Guide and Tutorial
To expand the spare cell group, simply click the plus icon.
To store the above spare cell information, click the Save button, give a desired cell name
and click the OK button to create a file with the spare cell list information.
Drag-and-Drop Operation
The drag-and-drop operation is the basic X window mouse operation. The Verdi system
uses this mouse operation to integrate its components (nWave, nTrace, nState, nSchema
and nECO) by single mouse click and to share selected data.
Laker uses the same mouse operation and works together with the Verdi system.
This integration will focus on the gate-level HDL design with post P&R physical layout
database from the LEF/DEF or the stream GDSII data. The RTL design with physical
layout database is not included in this integration flow.
The basic flow for the drag-and-drop operation is as follows:
1. Select the desired objects on the active window, which can be the Eco window or the
Laker Layout window.
2. Drag the objects from the active window.
3. Drop the objects to the target window.
4. Change the zoom ratio and highlight the correspondent objects on the target window.
The drag-and-drop operation is designed for sharing knowledge between selected objects.
In this integration, the complete design hierarchy of the selected objects are packed and
passed from active window to target window. This means the drag-and-drop action does not
work well if the design hierarchy between active and target windows is different.
80 Laker User Guide and Tutorial
This net is driven by the ZN port of I_ALUB/U254 instance and it drives 7 instances. The partial
DEF information is shown as follows:
Let's see how the Verdi system keeps the logical hierarchical path of the same net.
Click the i_ALUB instance in the design tree window and find the net name, Y0[2], in the
source code window. Find the U254 instance and make sure that the ZN port drives the Y0[2]
net. It is an OAI21D0 cell.
Select the U254 instance and invoke the nECO window to show this instance as follows:
The full design hierarchical net name for the net \Y0[2] is CPU.i_ALUB.\Y0[2].
To integrate the verification and layout tools, the following problems need to be addressed:
Synopsys makes the following information consistent in both the Laker and Verdi/nECO
sides:
In Laker, the cell name of the Layout window is also a part of the design hierarchy.
In this case, the i_ALUB/Y0[2] net under the CPU cell is packed as a complete design
hierarchy, CPU/I_ALUB/Y0[2], in Laker.
Drag this net from Laker and drop to Verdi/nECO.
The Verdi system parses the hierarchy tree and gets the tokens as design hierarchy
CPU.i_ALUB, and the net name \Y0[2].
The complete design hierarchy of the same net in Verdi/nECO is CPU.i_ALUB.\Y0[2].
The search engine in the Verdi system tries to find this net and shows it on the nECO
window if the net exists.
The complete integration flow is illustrated as follows.
To do the ECO job on front-end gate-level netlist, the IC designer can easily find the right
spare cells to meet the timing constraints with less effort.
A README file is provided to guide you through the flow to build the environment for
Verdi/nECO and the procedures to go through the Laker/nECO integration. You may get
the file (nECO_Laker.txt) under your working directory.
NOTE: The symbol library used in this demo case is built with Verdi 5.2. Please change
the symbol library to meet your current Verdi version. If you have any symbol
library related problem, please contact your local support team for assistance.
Commands
Circuit Elements
Others
Commands
The control commands include the following:
.END
.ENDS
.GLOBAL
.INCLUDE
.MODEL
.OPTIONS
.PARAM
.SUBCKT
*.FLAT
*.PININFO
*.REVERSE
.END
The .END line specifies the last statement in the netlist file. The period (.) is an integral part
of the name.
Syntax
.END
.ENDS
The .ENDS line specifies the last statement for any subcircuit definition. <subname> is the
subcircuit name that indicates the subcircuit definition to be terminated.
Syntax
.ENDS <subname>
or
.EOM <subname>
.GLOBAL
The .GLOBAL line assigns a global signal.
Syntax
.GLOBAL node<:nodetype> ....
or
*.GLOBAL node<:nodetype> ....
where nodetype can be P or G (P:Power, G:ground). The default power signal is VDD and VCC;
and the default ground signal is VSS, GND and 0.
*.GLOBAL
is equivalent to .GLOBAL.
.INCLUDE
Generally, portions of the circuit descriptions will be reused in several files, particularly
with common models and subcircuits. In any netlist file, the .INCLUDE line is used to include
another netlist file.
.INC
is equivalent to .INCLUDE.
Syntax
.INCLUDE filename
or
.INCLUDE '<filepath>/filename'
or
.INCLUDE "<filepath>/filename"
or
.INC filename
or
86 Laker User Guide and Tutorial
or
.INC "<filepath>/filename"
Examples
.INCLUDE /user/test.sp
.INCLUDE '/user/test.sp'
.INCLUDE "/user test.sp"
.MODEL
The .MODEL line defines a set of device model parameters on a seperate line and assign it
with a unique model name. The device element lines refer to the model name. Each device
element line contains the device name, the nodes to which the device is connected, and the
device model name.
Syntax
.MODEL mname type <VERSION=VERSION_NUM> <parname1=val1 parname2=val2 ...>
or
.MODEL mname type ( <VERSION=VERSION_NUM> <parname1=val1 parname2=val2
...> )
where mname is the model name, and the type is one of the following:
C : Capacitor model
D : Diode model
L : Inductor model
NMOS : N-channel MOSFET model
NPN : NPN BJT modle
PMOS : P-channel MOSFET model
PNP : PNP BJT model
R : Resistor model
Parameter values are defined by appending the parameter name followed by an equal sign
(=) and the parameter value.
.OPTIONS
The .OPTIONS line allows users to reset program control and user options for specific
simulation purposes.
Syntax
.OPTIONS SCALE=scale DEFW=defw DEFL=defl ....
Laker User Guide and Tutorial 87
or
.OPTION SCALE=scale DEFW=defw DEFL=defl ....
where DEFW is the default value of MOS channel width. If DEFW is not assigned, the DEFW is
100u. DEFL is the default value of MOS channel length. If DEFL is not assigned, the DEFL is
100u. scale sets the multiplier value for the width and length of elements M, Q, R, C and D.
.PARAM
The .PARAM line specifies a parameter. If you don't use an apostrophe (') for expression, the
blank is not allowed in the expression.
Syntax I
.PARAM parname='value|expression'
or
.PARAM parname=value|expression
Example I
.PARAM A=100 B='A+2*3'
Syntax II
.PARAM funcname(argv1,...)='expression'
or
.PARAM funcname(argv1,...)=expression
Example II
.PARAM f(x,y)='x*y+2*x+3*y' g(x,y)=x*y+2
.SUBCKT
The .SUBCKT line specifies the first statement in the netlist file. The period (.) is an integral
part of the name.
Syntax
.SUBCKT outputNode .... </> inputNode .... <parname=value> ....
or
.MACRO outputNode .... </> inputNode .... <parname=value> ....
*.FLAT
Syntax
*.FLAT
or
*.FLAT STOP=subname1 subname2 subname3
or
*.FLAT LEVEL=level
where
*.FLAT
*.FLAT STOP
*.FLAT LEVEL
will flatten all hierarchies but stop in the subckt NAND, NOR, and INV;
*.PININFO
The *.PININFO line assigns the pin direction.
Syntax
*.PININFO node1:pinType node2:pinType .....
xxx:p
while
During CDLOut conversion, the port direction (input, output, inout) in *.pininfo can be
exported. For example:
*.pininfo X:I Y:O Z:B
(I:Input
O:Output
B:InOut)
Example
.SUBCKT INV Z A
*.PININFO Z:O A:I
$subcircuit contents
.ENDS
*.REVERSE
The *.REVERSE line swaps the width and length of MOS channel.
If you use *.REVERSE, the syntax is as follows.
Mxxx md ng ns <nb> mname <l <w>> <other options>
*.REVERSE
Without *.REVERSE
M1 1 2 3 VDD PMOS 2u 4u , where width=2u length=4u
With *.REVERSE
M1 1 2 3 VDD PMOS 2u 4u , where width=4u length=2u
Example
*.REVERSE
.SUBCKT INV OP A
M0 OP A VSS VSS nmos 0.5u 2u
M1 OP A VDD VDD pmos 0.5u 2u
.ENDS
Circuit Elements
The circuit elements include the following:
MOSFET
BJT
Resistor
Capacitor
Inductor
Diode
Subcircuit Call
MOSFET
Syntax
Mxxx md ng ns <nb> mname <W=w> <L=l> <M=multiplier> .... <$LDD[type]>
<$SKIPPREFIX> <$GROUP=name:<purpose>:<pattern>>
or
Mxxx md ng ns <nb> mname <w <l>> <other options>
where md, ng, and ns are the drain, gate, and source nodes, respectively. <nb> is the optional
bulk substrate nodes. mname is the model name. L and W are the channel length and width. M
is the multiply factor.
$SKIPPREFIX
$GROUP
In addition, the model name will be removed if $LDD exists. The rule is follows:
With $LDD:
If mname (or type) starts with N or n:
LDDN
LDDP
LDDE
LDDD
Otherwise: LDD
Example
$ create element name ABC for MABC.
MABC VDD A O VDD PMOS W=2u L=2u $SKIPPREFIX
BJT
Syntax
Qxxx nc nb ne <ns> mname <AREA=area> <M=multiplier> .... <$EA=value> <$W=w>
<$L=l> <$SKIPPREFIX> <$GROUP=name:<purpose>:<pattern>>
or
Qxxx nc nb ne <ns> mname <area> <other options>
where nc, nb, and ne are the collector, base, and emitter nodes, respectively. <ns> is the
optional substrate node. mname is the model name. AREA is the area factor, which determines
the number of equivalent parallel devices of a specified model. $L and $W are the channel
length and width. M is the multiply factor.
$SKIPPREFIX
$GROUP
Example
$ A bipolar Q1 with collector, base, emitter and substrate
$ connected to node A, B, C and D; and emitter area is 100.
Q1 A B C D PNP area=100
Resistor
Syntax
Rxxx n1 n2 <mname> <R=r> <TC1=tc1> <TC2=tc2> <SCALE=scale> <M=multiplier>
.... <$SUB=substrate> <$[mname]|$.MODEL=mname> <$W=w> <$L=l> <$NS=ns>
<$SEGMENT=ns> <$SKIPPREFIX> <$GROUP=name:<purpose>:<pattern>>
or
Rxxx n1 n2 <mname> <R=r> <TC1=tc1> <TC2=tc2> <W=w> <L=l> <SCALE=scale>
<M=multiplier> .... <$SUB=substrate> <$[mname]|$.MODEL=mname> <$NS=ns>
<$SEGMENT=ns> <$SKIPPREFIX> <$GROUP=name:<purpose>:<pattern>>
or
92 Laker User Guide and Tutorial
where n1 and n2 are the two element nodes. mname is the model name. R is the resistance. TC1
and TC2 are the first and second order temperature coeffs, respectively. L/$L and W/$W are the
channel length and width. SCALE is the scale factor. M is the multiply factor.
$W
$L
$SUB
$NS
$SKIPPREFIX
$GROUP
Example
$ A resistor R1 is connected to node A and node B with
$ a resistance of 100 ohms.
R1 A B RES R=100
R2 C D RES $W=1u $L=50u $NS=5 $sub=vdd $group=mch_R:match:ABABABABAB
R3 E F RES $W=1u $L=50u $NS=5 $sub=vdd $group=mch_R:match:ABABABABAB
Capacitor
Syntax
Cxxx n1 n2 <mname> <C=c> <TC1=tc1> <TC2=tc2> <W=w> <L=l> <SCALE=scale>
<M=multiplier> .... <$SUB=substrate> <$[mname]|$.MODEL=mname> <$W=w>
<$L=l> <$SKIPPREFIX> <$GROUP=name:<purpose>:<pattern>>
or
Cxxx n1 n2 <mname> <c <tc1 <tc2>>> <other options>
where n1 and n2 are the two element nodes. mname is the model name. C is the capacitance.
TC1 and TC2 are the first and second order temperature coeffs, respectively. L and W are the
channel length and width. SCALE is the scale factor. M is the multiply factor.
$W
$L
$SUB
$SKIPPREFIX
$GROUP
Example
$ A capacitor C1 is connected to node A and B with
$ a capacitance of 100 Pico farads.
C1 A B CAP C=100p
C2 C D CAP C=100p $W=20u $L=20u $sub=vdd $group=mch_cap:match:ABCCBA
C3 C D CAP C=100p $W=20u $L=20u $sub=vdd $group=mch_cap:match:ABCCBA
Inductor
Syntax
Lxxx n1 n2 <mname> <L=inductance> <TC1=tc1> <TC2=tc2> <SCALE=scale>
<M=multiplier> .... <$SUB=substrate> <$SKIPPREFIX>
<$GROUP=name:<purpose>:<pattern>>
or
Lxxx n1 n2 <mname> <inductance <tc1 <tc2>>> <other options>
where n1 and n2 are the two element nodes. mname is the model name. L is the inductance.
TC1 and TC2 are the first and second order temperature coeffs, respectively. SCALE is the scale
factor. M is the multiply factor.
$SKIPPREFIX
$GROUP
Example
$ An inductor L1 is connected to node A and node B with
$ an inductance of 1 micro-henries.
L1 A B L=1u
Diode
Syntax
Dxxx positive minus mname <AREA=area> <PJ=pj> <W=w> <L=l> <M=multiplier>
.... <$SUB=substrate> <$SKIPPREFIX> <$GROUP=name:<purpose>:<pattern>>
or
Dxxx positive minus mname <area <pj>> <other options>
where positive and minus are the positive and negative nodes, respectively. mname is the
model name. L is the inductance. AREA is the area factor. L and W are the channel length and
width. M is the multiply factor.
$SKIPPREFIX
$GROUP
Example
$ An inductor D1 is connected to node A and node B;
$ and the area is 100.
D1 A B DIODE AREA=100
Subcircuit Call
Subcircuit is used by specifying pseudo-element beginning with the letter X, followed by
the circuit nodes to be used in expanding the subcircuit.
Syntax
Xxxx name.... </> subname <M=multiplier> <parname=value> ... <$SKIPPREFIX>
<$GROUP=name:<purpose>:<pattern>>
or
Xxxx subname <M=multiplier> $PINS pin=node .... <$SKIPPREFIX>
<$GROUP=name:<purpose>:<pattern>>
where subname is the subcircuit name, and $PINS is used to make the subcircuit call to map
node by name (by default, it is mapped by position).
$SKIPPREFIX
$GROUP
Examples
.SUBCKT SSS A B C
$subcircuit contents
.ENDS
M Factor Expansion
If X-Type element with multiplier, the element is expanded according to the multiplier
value.
Examples
X1 A B C SSS M=4
$ We will expand X1 to X1::0, X1::1, X1::2 and X1::3.
X1::0 A B C SSS
X1::1 A B C SSS
X1::2 A B C SSS
X1::3 A B C SSS
Examples
.SUBCKT NAND2 Z A B WN=1u
$subcircuit contents
.ENDS
X1 O I1 I2 NAND2 WN=2u
X2 O I1 I2 NAND2 WN=3u
X3 O I1 I2 NAND2 WN=4u
X4 O I1 I2 NAND2 WN=2u
Since X1, X2 and X3 pass different parameter value of WN to subkct NAND2, the subckt NAND2 is
expanded to NAND2_0 (for X1) , NAND2_1 (for X2) and NAND2_2 (for X3).
X1
and X4 have the same parameter value, X4 will use NAND2_0 as its master.
Others
Others supported syntax format:
Built-in Functions
Scale Factor
Comment
Built-In Functions
sin(x): sine
cos(x): cosine
tan(x): tangent
asin(x): arc sine
acos(x): arc cosine
atan(x): arc tangent
sinh(x): hyperbolic sine
cosh(x): hyperbolic cosine
tanh(x): hyperbolic tangent
abs(x): absolution value. return |x|.
sqrt(x): square root. return (sign of x)sqrt(|x|).
pow(x,y): absolute power. return x^int(y).
pwr(x,y): signed power. return (sing of x)|x|^y.
log(x): natural logarithm. return (sign of x)log(|x|).
log10(x): base 10 logarithm. return (sign of x)log10(|x|).
exp(x): exponential.
db(x): decibels. return (sign of x)20log10(|x|).
int(x): integer. return the integer portion of x.
sgn(x): return sign. return -1 if x<0. return 0 if x=0. return 1 if x>0.
sign(x,y): transfer sign. return (sign of y)|x|.
min(x,y): smaller of two args.
max(x,y): larger of two args.
Laker User Guide and Tutorial 97
Scale Factor
T
1E12
1E9
MEG 1E6
X
1E6
K 1E3
%
1E-2
1E-3
MIL 25.4E-6
U
1E-6
1E-9
1E-12
1E-15
Comment
Comment lines may be placed anywhere in the circuit description. The asterisk (*) is used
as the first non-blank character. The inline dollar sign ($) indicates that this line is a
comment statement.
Syntax
* <any comment>
or
$ <any comment>
Example
* This is a comment line
$ This is a comment line too.
R1 1 2 R=2
$ This is a resistor
In the comment line, you may also define a special parameter $segment for UDD device.
The parameter is saved into a parameter list with name $segment, which is case-insensitive
in the SPICE file. For example,
r1 A B 50 $segment=5
The character $ is preserved for output the original spice format; and thus the parameter
name must be defined with comment character $. This makes it different from the
parameter segment.
If you want to map the parameter $segment to the parameter of parameterized device, you
must change its name as __segment. For example,
M pmos
Lib1 Pdevice
PROPERTYDEFINITIONS
[objectType propName propType [RANGE min max] [value | stringValue]
;] ...
END PROPERTYDEFINITIONS
objectType =
{DESIGN | COMPONENT | NET | SPECIALNET | GROUP
| ROW |COMPONENTPIN | REGION}
propType =
{INTEGER | REAL | STRING}
DIEAREA pt pt;
ROW rowName rowType origX origY orient
{ DO numX BY 1 STEP spaceX 0
| DO 1 BY numY STEP 0 spaceY }
[+ PROPERTY {propName propVal}...]...;
TRACKS
{X | Y} start DO numTracks STEP space
LAYER layerName ;
GCELLGRID
{ X start DO numColumns+1 STEP space } ...
{ Y start DO numRows+1 STEP space ; }...
VIAS numVias ;
[- viaName
[+ RECT layerName pt pt]... ;]...
END VIAS
COMPONENTS numComps ;
[- compName modelName
[+ SOURCE {NETLIST | DIST | USER | TIMING}]
[+ FOREIGN foreignCellName pt orient]
[+ {FIXED pt orient | COVER pt orient | PLACED pt orient
| UNPLACED} ]
[+ PROPERTY {propName propVal} ...]...
;] ...
END COMPONENTS
PINS numPins ;
[ [- pinName + NET netName]
[+ SPECIAL]
[+ DIRECTION {INPUT | OUTPUT | INOUT | FEEDTHRU}]
[+ USE {SIGNAL | POWER | GROUND | CLOCK | TIEOFF |
ANALOG | SCAN | RESET}]
[+ LAYER layerName pt pt]
[+ COVER pt orient | FIXED pt orient | PLACED pt orient]
; ] ...
END PINS
PINPROPERTIES num;
[- {compName pinName | PIN pinName}
[+ PROPERTY {propName propVal} ...] ...
;] ...
106 Laker User Guide and Tutorial
Index
Index
A
AnyAngle 39
import DEF 51
import LEF 48, 49
import stream 46
C
CDL Syntax 85
Change Layer Order 26
content window 22
copy 37
D
design rules 32
design window 20
Diagonal 39
Display Ruler 34
Double-click 2
Drag-and-drop 2
Drag-left 2
Drag-right 2
L
L90XFirst 40
L90YFirst 40
Layer Color/Pattern 27
layer table 22
layout window 22
Left-click 2
M
magic key 36
main window 18
message pane 18
N
E
enclosure 33
notch 33
Novas nECO integration 79
FixAngle 39
Orthogonal 39
overlap 33
H
hierarchical net tracer 61
highlight net 59
Horizontal 40
P
platform 1
purpose name 25
Push-Wire 35
Index
R
rebounding area 33
rebounding radius 34
rectangle 36
Resize Controller 25
Right-click 2
right-click command menu 16
Rule-driven 35
rule-driven 33
rule-driven editing 33, 34
Rule-driven Mode 32
Rule-driven Mode, Display Ruler 32
Rule-driven Mode, Push-Wire Mode 32
S
schematic window 22
scroll bar 25
Select 22
selectability 23, 26, 27
Selection Mode
Device Object 41
OBJ 41
V/E 41
Shift-left-click 2
Shift-right-click 2
snap mode 39
spacing 33
spare cell management 75
status bar 29
stretch 37
T
tfLayoutLayerRule 32
tutorial 45
U
UDD 64
understand design 59
user-defined device 64
V
Vertical 40
view level 38
visibility 23, 26, 27
Visible 22
W
width 33