rod user
DESCRIPTION
SKILL guidelines for ROD creationTRANSCRIPT
-
VirtuosUser GuProduct VersSeptember 2o Relative Object Designide
ion 6.1.3008
-
1998-2008 CadePrinted in the Unite
Cadence Design S
Trademarks: Traddocument are attribcontact the corpora
All other trademark
Restricted Print publication may viothis publication madistributed in any wprint one (1) hard c
1. The publica2. The publica3. Any copy of
proprietary 4. Cadence re
discontinued
Disclaimer: Informcommitment on theinformation of Cadein accordance withforth in such agreeas to the completenot warrant that usliability for damage
Restricted RightsFAR52.227-14 andnce Design Systems, Inc. All rights reserved.d States of America.
ystems, Inc., 555 River Oaks Parkway, San Jose, CA 95134, USA
emarks and service marks of Cadence Design Systems, Inc. (Cadence) contained in thisuted to Cadence with the appropriate symbol. For queries regarding Cadences trademarks,te legal department at the address shown above or call 1-800-862-4522.
s are the property of their respective holders.
Permission: This publication is protected by copyright and any unauthorized use of thislate copyright, trademark, and other laws. Except as specified in this permission statement,y not be copied, reproduced, modified, published, uploaded, posted, transmitted, oray, without prior written permission from Cadence. This statement grants you permission toopy of this publication subject to the following conditions:
tion may be used solely for personal, informational, and noncommercial purposes;tion may not be modified in any way; the publication or portion thereof must include all original copyright, trademark, and othernotices and this permission statement; andserves the right to revoke this authorization at any time, and any such use shall be immediately upon written notice from Cadence.
ation in this publication is subject to change without notice and does not represent a part of Cadence. The information contained herein is the proprietary and confidentialnce or its licensors, and is supplied subject to, and may be used only by Cadences customer
, a written agreement between Cadence and its customer. Except as may be explicitly setment, Cadence does not make, and expressly disclaims, any representations or warrantiesness, accuracy or usefulness of the information contained in this document. Cadence doese of such information will not infringe any third party rights, nor does Cadence assume anys or costs of any kind that may result from use of such information.
: Use, duplication, or disclosure by the Government is subject to restrictions as set forth in DFAR252.227-7013 et seq. or its successor.
-
Virtuoso Relative Object Design User Guide
September 2008
Preface . . . Licensing in RORelated Docum
Installation, Technology Virtuoso ReVirtuoso TooSKILL Docu
Typographic anKeyword-Va
1Relative OIntroduction . Using ROD FunCreating ParamNamed Objects
HierarchicalHandles on RO
System-DefiUser-Define
Aligning ObjectsWhen Are RSeparating AROD ObjectQuerying Ob
Stretchable ParThe StretchaAssigning HSpecifying ESpecifying th
Conten
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11ents for ROD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Environment, and Infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12lative Object Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12ls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12ments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12d Syntax Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13lue Pair Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
bject Design Concepts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16ctions Versus Database Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16eterized Cells with ROD Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18D Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19ned Handles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19d Handles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36OD Alignments Recalculated? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37ligned ROD Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
s in Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38jects for Alignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
ameterized Cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39ble Pcell Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
ts3 Product Version 6.1.3
andles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42nvironment Variables for Stretchable Pcells . . . . . . . . . . . . . . . . . . . . . . 44e Frequency of Pcell Regeneration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
-
Virtuoso Relative Object Design User Guide
September 2008
Results of SDisplaying P
Multipart RectaConnectivitySystem-DefiMultipart ReCreating a MEditing Multi
Multipart PathsTypes of SubMaster PathOffset SubpEnclosure SSets of SubrEnds of PathKeeping SubMaking PathConnectivitySystem-DefiMultipart PaCreating a PEditing Multi
Creating ObjectCreating a RCreating a PCreating a P
Connectivity . Maintaining Con
Preserving M
2AccessingAbout ROD Obj
Getting the RGetting the Rtretching a Handle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45cell Stretch Handles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54ngles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 for Multipart Rectangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56ned Handles for Multipart Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57ctangles as ROD Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57ultipart Rectangle from Other Objects . . . . . . . . . . . . . . . . . . . . . . . . . . 57part Rectangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60aths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63ubpaths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71ectangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73s and Subrectangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80rectangles Out of the Corners of Subrectangle Subpaths . . . . . . . . . . . 85s Choppable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 for Multipart Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85ned Handles for Multipart Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85ths as ROD Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85ath from Other Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86part Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86s from Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90ectangle from Another Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91olygon from Another Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95ath from Another Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108nections for ROD Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109aintained Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Information about ROD Objects . . . . . . . . . . . . . . . . . . 113ects and ROD Object IDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114OD Object ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114OD Object ID Interactively . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1154 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
Storing the RChecking W
Accessing RODExamples ofGetting SystGetting Use
3Using Rela
Editing RODData Types Using VariabMaximum SUsing Speci
rodAddMPPChoDescriptionArgumentsValue Return
rodAddPointsDescriptionArgumentsValue Return
rodAddToX . . DescriptionArgumentsValue Return
rodAddToY . . DescriptionArgumentsValue Return
rodAlign . . . . DescriptionArgumentsValue ReturnAligning ROOD Object ID as a Variable (Avoid) . . . . . . . . . . . . . . . . . . . . . . . . . . . 116hether an Object Is a ROD Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Object Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Using ~> to Display Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120em-Defined Handle Values with a Script . . . . . . . . . . . . . . . . . . . . . . . 125r-Defined Handle Names with a Script . . . . . . . . . . . . . . . . . . . . . . . . . 128
tive Object Design Functions. . . . . . . . . . . . . . . . . . . . . . 131 Objects with the Virtuoso Layout Editor . . . . . . . . . . . . . . . . . . . . . . . . 132for SKILL Function Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133les in ROD Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
tring Length for ROD Function Arguments . . . . . . . . . . . . . . . . . . . . . . 135al Characters in Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136pHole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
D Objects Using rodAlign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1495 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
rodAssignHandDescriptionArgumentsValue ReturnDisplaying PUser-Define
rodCheck . . . Description
rodCreateHandDescriptionArgumentsValue ReturnCreating Ha
rodCreatePathDescriptionArgumentsValue ReturnROD ConneOffset SubpEnclosure SSubrectanglCreating SeCreating SeSpecifying ASpecifying PFormatting LHow the SysSubrectanglDisconnectinMaking a FoCreating Pat
rodCreatePolygDescriptionArgumentsValue ReturnleToParameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
arameter Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161d Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175le . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
ndles Using rodCreateHandle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
ctivity Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187ath Arguments (l_offsetSubpathArgs) . . . . . . . . . . . . . . . . . . . . . . . . . . 192ubpath Arguments (l_encSubpathArgs) . . . . . . . . . . . . . . . . . . . . . . . . 194e Arguments (l_subrectArgs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196lf-Intersecting Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203lf-Abutting Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203rguments as nil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204ist-of-Lists Arguments for Subparts . . . . . . . . . . . . . . . . . . . . . . . . . . . 204tem Follows to Create Subrectangles . . . . . . . . . . . . . . . . . . . . . . . . . 205es in the Corners of Segments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208g Shapes in a Multipart Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209rmer MPP Part into a ROD Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210hs with rodCreatePath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2176 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
rodCreateRectDescriptionArgumentsValue ReturnROD ConneSubrectanglExamples Creating ObCreating a NCreating a MFilling BoundCreating ReCreating Re
rodDeleteHandlDescriptionArgumentsValue Return
rodFillBBoxWithDescriptionArgumentsValue Return
rodGetHandleDescriptionArgumentsValue Return
rodGetNamedSDescriptionArgumentsValue Return
rodGetObj . . DescriptionArgumentsValue ReturnUsing rodGe
rodIsFigNameUDescription. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
ctivity Arguments for Rectangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229e Arguments (l_subrectArgs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239jects Using rodCreateRect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251amed Rectangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251ultipart Rectangle with Rows/Columns of Master Rectangles . . . . . . . 253ing Boxes with Master Rectangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
ctangles on a Terminal and Net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257ctangular Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259Rects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
hapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270tObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271nused . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2757 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
ArgumentsValue Return
rodIsHandle . DescriptionArgumentsValue Return
rodIsObj . . . . DescriptionArgumentsValue Return
rodNameShapeDescriptionArgumentsValue ReturnNaming Sha
rodPointX . . . DescriptionArgumentsValue Return
rodPointY . . . DescriptionArgumentsValue Return
rodSubPointsDescriptionArgumentsValue Return
rodUnAlign . . DescriptionArgumentsValue ReturnUnaligning A
rodUnNameShaDescriptionArgumentsValue Return . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
pes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287ll Zero-Level Shapes in a Cellview . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287pe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2898 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
Unnaming ASolutions to ProSolutions for rodSolutions for rodSolutions for rodSolutions for rodSolutions for rodSolutions for rod
AUsing Env
Checking thHow the SysChanging th
BAccessing
Getting the C
CUsing Des
Using DesigAccessing D
DDisplaying
Setting the PTurning On Pll Named Shapes in a Cellview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289blems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290Align . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290CreateHandle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292CreatePath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293CreateRect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294GetObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298NameShape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
ironment Variables with ROD . . . . . . . . . . . . . . . . . . . . . . 301e Value of a ROD Environment Variable . . . . . . . . . . . . . . . . . . . . . . . . 304tem Evaluates ROD Environment Variables . . . . . . . . . . . . . . . . . . . . . 304e Settings of ROD Environment Variables . . . . . . . . . . . . . . . . . . . . . . 304
the Cellview ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307ellview ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
ign Rules in ROD Functions . . . . . . . . . . . . . . . . . . . . . . . 309n Rules for Default Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309esign Rules with techGetSpacingRule . . . . . . . . . . . . . . . . . . . . . . . . . 310
Pin Names in a Layout Window. . . . . . . . . . . . . . . . . . . 311in Names Environment Variable in .cdsenv . . . . . . . . . . . . . . . . . . . . . 311in Names in the Display Options Form . . . . . . . . . . . . . . . . . . . . . . . . 3119 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
EHow Virtuo
FCode Exam
Using ROD Using Stretc
Creating a BusCreating a ContCreating a GuaCreating a ShieCreating a TranGetting the Res
getRodPathLcreateResH
Stretchable MOCode for simCode for conCode for my
GTroubleshoWarnings in the
Template temCreating insROD object
Dialog Box MesWhy is a dia
Index. . . . . . so Layout Editor Works with ROD Objects . . . . . . 315
ples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321to Create Multipart Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321hable Pcells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322act Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324rd Ring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325lded Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328sistor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329istance for a ROD Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332ength Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
andle Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334S Transistor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335plemos Transistor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336tcov User-Defined Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Stretch User-Defined Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
oting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 CIW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
plateName is replacing an existing template by the same name . . . . 343tance forces unname of ROD object . . . . . . . . . . . . . . . . . . . . . . . . . . . 344ID changes after Undo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344sages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345log box asking about saving the technology file? . . . . . . . . . . . . . . . . . 345
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34710 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
Preface
Virtuoso relativcomplex layout oCadence SKIL
This user guidedevelopment anprogramming. Tparametrized ce
LicensingFor informationLicensing and
Related DThe following do
Installation, For informa
For informaEnvironme
For informashared by mGuide.
For informaComponene object design (ROD) is a set of high-level functions for defining simple tobjects and their relationships to each other, without the need to use low-levelL language functions.
is aimed at CAD engineers and assumes that you are familiar with thed design of integrated circuits, Virtuoso Layout Suite L editor, and SKILLhis user guide also assumes that you are familiar with the creation oflls using SKILL or the graphical user interface.
in RODon licensing in the Virtuoso design environment, see the Virtuoso Software Configuration Guide.
ocuments for RODcuments contain information about related tools and the SKILL language.
Environment, and Infrastructuretion on installing Cadence products, see the Cadence Installation Guide.
tion on the Virtuoso design environment, see the Virtuoso Designnt User Guide.
tion on library structure, the library definitions file, and name mapping for dataultiple Cadence tools, see the Cadence Application Infrastructure User
tion about callback procedures used when creating SKILL pcells, refer tot Description Format User Guide.11 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
Technology For informa
see the VirASCII File
For informaVirtuoso T
Virtuoso Rel For whats
For outstanObject De
Virtuoso Too For informa
editor, refer
For informaeditor, refer
For informaSuite SKIL
To create pfunctions, r
For examplReference
SKILL Docum The SKILL
Virtuo
Caden
Caden
Caden
CadenPreface
Informationtion on how to create and maintain a technology file and display resource file,tuoso Technology Data User Guide and the Virtuoso Technology Datas Reference.
tion on how to access the technology file using SKILL functions, see theechnology Data SKILL Reference.
ative Object Designnew, refer to the Virtuoso Relative Object Design Whats Newding Cadence Change Requests (CCRs), refer to the Virtuoso Relativesign Known Problems and Solutions.
lstion about how to perform design tasks with the Virtuoso Layout Suite L to the Virtuoso Layout Suite L User Guide.
tion about how to perform design tasks with the Virtuoso Layout Suite XL to the Virtuoso Layout Suite XL User Guide.
tion about parameterized cell SKILL functions, refer to the Virtuoso LayoutL Reference.
arameterized cells with the graphic user interface or low-level SKILLefer to the Virtuoso Parameterized Cell Reference.
es of pcells, refer to the Sample Parameterized Cells Installation and.
entsprogramming language is documented in the following manuals:
so Design Environment SKILL Reference.
ce SKILL Language User Guide
ce SKILL Language Reference
ce SKILL Development Reference12 Product Version 6.1.3
ce SKILL Development Help
-
Virtuoso Relative Object Design User Guide
September 2008
SKILL acce
Virtuo
Virtuo
Virtuo
Caden
Caden
TypographThe following ty
text
variables
z_argument.
.text
[ ]
{ }
|Preface
ss to other applications is provided in the following manuals:
so Technology Data SKILL Reference
so Layout Suite SKILL Reference
so Schematic Editor SKILL Reference
ce User Interface SKILL Reference
ce Interprocess Communication SKILL Reference
ic and Syntax Conventionspographic and syntax conventions are used in this manual.
Indicates text you must type exactly as it is presented. Thesewords represent command (function or routine) or option names.Indicates text you must replace with text appropriate to yoursystem. An example is: cd your_install_dir/tools/dfII/samples/local
.. Indicates text you must replace with an appropriate argument.The prefix (in this case, z_) indicates the data type the argumentcan accept. Do not type the data type or underscore.
Indicates names of manuals, menu commands, form buttons,and form fields.
Indicates and encloses optional argument(s) except when theyenclose keyboard bindkeys. When used with vertical bars, theyenclose a list of choices from which you can choose one.Although this document refers to commands by their completemenu names, if a bindkey is available for a command, it isincluded in brackets after the command name. For example,View Zoom In [z].
Used with vertical bars, they denote a list of choices from whichyou must choose one.
Separates a choice of options.13 Product Version 6.1.3
Indicates that you can repeat the previous argument.
-
Virtuoso Relative Object Design User Guide
September 2008
=>
/
Keyword-Val
Many ROD funcrodCreateHan
rodCreateHandl
The keyword (?preceded by a qexpression you rodCreateHandl
In the examplePreface
Precedes the values returned by a Cadence SKILL languagefunction.
Separates the possible values that can be returned by aCadence SKILL language function.
ue Pair Arguments
tions have keyword-value pairs for arguments. For example, thedle function uses keyword-value pairs as arguments:e( [?name t_name] ?type t_type ?value g_value ?rodObj R_rodObj
name, ?type, and so on) is the name of the argument. You must type ituestion mark ( ? ); follow the keyword with a space and the value orwant to assign to the argument. For example:e( ?name "floatHandle"
?type "float"?value 3.3?rodObj rodObj
above, the keyword ?rodObj is set to the value represented by R_rodObj.14 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
Relativ
The topics cove
Introduction on
Using ROD Fun
Creating Param
Handles on RO
Aligning ObjectsROD Objects inStretchable Par
Multipart Recta
Multipart Paths
Creating ObjectConnectivity on
Maintaining Con1
e Object Design Concepts
red in this chapter are:
page 16
ctions Versus Database Functions on page 16
eterized Cells with ROD Functions on page 17
D Objects on page 19 on page 36
Hierarchy on page 38ameterized Cells on page 39
ngles on page 55
on page 59
s from Objects on page 90 page 108
nections for ROD Objects on page 10915 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
IntroductiVirtuoso relativcomplex layout oCadence SKILrelationships atROD automaticthe calculations
Generally, with require several lof low-level SKIand designate itransistors withspecifying the s
ROD functions
Create hier
Name recta
Access obj Access poi
Align ROD
Assign han
Create mul
Create objeFor a complete Design Function
Using ROThis chapter deobjects using Rbetter to create because the adRelative Object Design Concepts
one object design (ROD) is a set of high-level functions for defining simple tobjects and their relationships to each other, without the need to use low-levelL language functions. ROD lets you create objects and define theira high level of abstraction, so you can concentrate on your design objectives.ally handles the intricacies of traversing the design hierarchy and simplifies required to create and align geometries.
a single ROD function call, you can accomplish a task that otherwise wouldower-level SKILL function calls. For example, creating a pin required a seriesLL function calls, but with ROD, you use a single function to create a shapet as a pin. You can create entities such as guard rings, contact arrays, andone function call. You can also create an object from an existing object just byize of the new object.allow you to
archical parameterized cells easily
ngles, polygons, paths, lines, dots, labels, and text display objectsects by name through all levels of hierarchynts and other information stored on objects through all levels of hierarchyobjects to each other or to specific coordinatesdles to pcell parameters for interactive stretching
tipart rectangles and multipart paths
cts from other objectsdescription of the ROD functions, see Appendix 3, Using Relative Objects.
D Functions Versus Database Functionsscribes in great detail the many advantages of creating and manipulatingOD functions. So why not make all objects ROD objects? Sometimes, it isan object with a dbCreate function than with a rodCreate function,ded functionality of a ROD object carries a bit more overhead.16 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
In general, use
Specify per
Create com
Access the
Stretch han
Create a ne
When you wantyou do not intendbCreate funcand therefore, r
This is also truerodAlign only
Creating PUsing ROD functhe difficulty andROD, you must geometries. Yougeometry coordyou create geomcoordinates acrrelation to each
Historically, usintremendous effoROD provides hprogramming exprogramming ab
Once you captuof cell modules ua single designobjects indepenRelative Object Design Concepts
ROD functions only when you want to:
sistent relationships between objectsplex multi-part objects, such as guard rings object from a different level of hierarchydles on parameterized cells to change the value of parameters
w object from an existing object to create a simple shape, such as a rectangle or simple one-part path, andd to relate the shape to another object, use the dbCreate function. Thetions do not have to store the additional information required for ROD objects,un a little more quickly and use less memory.
for other ROD functions, such as rodAlign (versus dbAlign). Use if you need the alignment to persist.
arameterized Cells with ROD Functionstions to create geometries for pcells increases your productivity by reducing complexity of the code you have to write. To create SKILL pcells withoutuse low-level SKILL database access functions to build and manipulate end up spending a great deal of time and effort calculating and trackinginates. Complex SKILL pcells are much easier to create and maintain whenetries with ROD functions. Instead of writing code to compute point
oss levels of hierarchy, you create high-level building blocks and align them in other.
g programs to create large macro cells and full-chip assemblies required art by SKILL developers who were dedicated exclusively to writing pcell code.igh-level design capture support so that even designers with limitedperience can create complex pcells easily, and those with advancedilities can generate sophisticated cells and blocks.
re a design in the form of parameterized code, it is easy to generate a varietysing different parameter values and different technology rules. Also, creating
that captures your intention reduces errors from manipulating low-level layoutdently of each other.17 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
Major advantag You can ba
tolerant of c
You can asinteractively
Before you use Creating Pcells
For examples oReference.
Named ObYou can assign rectangle or polby using a RODccreate it with thenamed objects,
Hierarchical
To access informhierarchical naof the instancesinstance.
The following figpolyRect. Its h
YRelative Object Design Concepts
es for using ROD to create pcells are:
se the pcell parameters on rules from your technology file, making the pcellshanges to your technology
sign point handles to pcell parameters that let you update the parameters by stretching the pcell in the Virtuoso layout editor
ROD functions in pcells, see the safety rules for creating SKILL pcells in Using SKILL in the Virtuoso Parameterized Cell Reference.
f pcells, see the Sample Parameterized Cells Installation and
jectsa name to a zero-level object (an ordinary database shape, such as aygon) either by naming an existing object with the rodNameShape function orreate function to create an object. You can also name a shape when youVirtuoso layout editor. You can access information through hierarchy about
such as instances and named shapes.
Name
ation about a named shape or instance through hierarchy, use itsme and the top-level cellview ID. A hierarchical name consists of the names through which you need to descend to reach the desired named shape or
ure shows the hierarchy in a layout cellview containing the named shapeierarchical name is INV1/ptr1/polyRect.
polyRect
ptr1 of pTran
INV1 of inverter18 Product Version 6.1.3
X
-
Virtuoso Relative Object Design User Guide
September 2008
When you namecreates ROD inROD object anobject includes ifunction, the fun
Handles oA handle is an coordinates of aof an object, or hierarchy.
There are two kWhen you creatobject. The valudemand when yare stored in me
The value of a sits bounding bodetailed descripObjects in HieraUsing the rodAliinformation, or thierarchy.
System-Defin
The system aut
Bounding b
Bounding b
Segment p
Segment le
ROD dots, labehandles evaluatRelative Object Design Concepts
an existing database shape using the ROD naming function, the functionformation associated with the shape. This information is stored in ad is identified by a unique ROD object ID. The information contained in a RODts name and database ID. When you create a new shape with a ROD creationction creates a named database shape and a ROD object.
n ROD Objectsattribute of, or item of information about, a ROD object, such as the point on the bounding box around an object, the width of the bounding boxthe resistance of an object. You can access handles through all levels of
inds of handles: system-defined handles and user-defined handles.e a ROD object, the system automatically defines a number of handles for thees of system-defined handles are not stored in memory but are calculated onou reference the handles by their names. The values of user-defined handlesmory.
ystem-defined point handle is the coordinates for a point on the object or onx, relative to the coordinate system of the top-level layout cellview. For ation of how the system calculates coordinates through hierarchy, see RODrchy on page 38.
gn function, you can use handles to align one object to another object to storeo access information about an object that is at a lower level in the design
ed Handles
omatically defines the following types of handles for most ROD objects:ox point handles
ox width and length handles
oint handles
ngth handles
ls, and text display objects are defined by a single point, so all of their pointe to their origin point and their length and width handles evaluate to zero.19 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
Note: For multilist of the lower-multipart path.
The following taapply.
Bounding Box
There are nine sROD object: One at eac
One in the
One in the
The system autNames indicate
Table 1-1 SystType of HandBounding Box P
Bounding Box WHandlesmppBBoxSegment PointSegment LengRelative Object Design Concepts
part paths, the system also provides the handle mppBBox, which contains aleft and upper-right coordinates of the bounding box around the whole
ble summarizes the types of handles and the ROD object(s) to which they
Point Handles
ystem-defined point handles associated with the bounding box around every
h corner
center of each edge
center of the bounding box
omatically names and calculates values for bounding box point handles. the position of the handle, as shown for a polygon in the following figure.
em-Defined Handles for ROD Objectsle Applies to...oint Handles All ROD objects except dots, labels, and text
display objectsidth and Length All ROD objects except dots, labels, and text
display objectsROD multipart paths
Handles ROD rectangles, polygons, and pathsth Handles ROD rectangles, polygons, and paths20 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
Figure 1-1 Bou
You can abbrev
Bounding Box
The system prolength of the boand length is
Note: For a rec
upperLeft
upperCenter
upperRight
centerLeft
centerRight
XlowerLeft
upperLeft
centerLeft
X
X
lengthRelative Object Design Concepts
nding Box Point Handles for a Polygon
iate boundingcR box point handle names as follows:
Width and Length Handles
vides floating-point handles named width and length for the width andunding box for a named object, where width is the horizontal measurementthe vertical measurement.
tangle, the bounding box has the same width and length as its shape.
or uL lowerLeft or lL
or uC lowerCenter or lC
or uR lowerRight or lR
or cL centerCenter or cC
or cR
lowerRight
upperRight
centerRight
X
X
X
lowerCenter
centerCenter
upperCenterX
X
X
Bounding box arounda ROD object
width21 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
For a polygon, twith the boundin
Figure 1-2 Bou
For a single-parassociated with
Figure 1-3 Bou
For a multipart pit always uses th
length
lengthRelative Object Design Concepts
he system calculates values for the width and length handles associatedg box, as shown below.
nding Box Width and Length Handles for a Polygon
t path, the system calculates values for the width and length handles the bounding box, as shown below.
nding Box Width and Length Handles for a Single-Part Path
ath, when the system calculates values for the width and length handles,e width and length of the bounding box around the master path.
width
width22 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
Figure 1-4 Bou
For multipart paa list of the lowemultipart path
length
Bounding box aRelative Object Design Concepts
nding Box Width and Length Handles for a Multipart Path
ths, there is one additional handle: mppBBox. The mppBBox handle containsr-left and upper-right coordinates of the bounding box around the whole
.
width
round master path
Subpath
Master path23 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
Figure 1-5 Bou
About Segmen
For rectangles,handles to eachreference points
For relative objeline between twopolygon has sixRelative Object Design Concepts
nding Box mppBBox Handle for the Whole Multipart Path
ts of Rectangles, Polygons, and Paths
polygons, and paths that are ROD objects, the system assigns several point segment of the object. You can use these segment point handle names to on the boundary of the object.ct design, a segment of a rectangle or polygon is defined as an edge, or finitepoints, partially forming the boundary of the object. For example, a six-sided
segments (six edges).
SubpathMaster path24 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
Figure 1-6 Seg
For paths, segmpath has four se
Figure 1-7 Seg
The system assfollowed by a nuROD rectanglesdirection, startin
segment
segment
segmRelative Object Design Concepts
ments of a Polygon
ents include the width of the path and both edges. For example, the followinggments.
ments of a Path
igns a name to each segment of the object, using the prefix segmentmber: segmentn, where n begins at zero and is the segment number. For, segments are always numbered as if they were defined in a clockwiseg in the lower-left corner.
segment
segment
segment
segment
segment
ent segmentsegment25 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
Figure 1-8 Num
For ROD polygocreated, startingclockwise direct
Figure 1-9 Num
X
Tlo
segment 0
Starting pointRelative Object Design Concepts
bering the Segments of a Rectangle
ns, the system numbers segments in the direction in which the polygon was with the first point defined. The six-sided polygon below was created in aion.
bering the Segments of a Polygon
he starting point is always in thewer-left corner for rectangles.
segment 1
segment 3
segment 2
segment 2
X
segment 5
segment 0
segment 1 segment 3
segment 426 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
Note: If you creusing the rodNayou defined whe
The segments o
Figure 1-10 Nu
Segment Point
For rectangles a
For each sesegment. Twhere n is tfor the next
For the laststartLas
The six-sided pthe highest segRelative Object Design Concepts
ate a polygon with the Virtuoso layout editor and then assign a name to itmeShape function, the system numbers segments starting with the first pointn you created the polygon.
f the path below were created in a clockwise direction.
mbering the Segments of a Path
Handles for Polygons and Rectangles
nd polygons, the system calculates the following point handles:
gment, three point handles: one at the beginning, middle, and end of theheir names are: startn, midn, and endn,he segment number. The endn handle for a segment and the startn handle segment share the same point.
segment, the three handles described above, plus three more handles:t, midLast, and endLast.
olygon in the following figure was created starting in the upper-left corner ofment, with the segments defined clockwise.
Starting point
segment 1
segment 3
X
segment 0segment 227 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
Figure 1-11 Se
The starting poivalue of the stasystem calculatpolygon, whichsegment point h
For rectangles,segments in a c
Figure 1-12 Se
end2, start3
mid3
end3, start4
Segments of a po
start0, end3,endLast
end0, start1
mid0Relative Object Design Concepts
gment Point Handles for a Polygon
nt of the first segment is also the ending point of the sixth segment, so thert0 point handle is the same as the value of the end5 point handle. The
es values for three additional point handles for the last segment of thein this case is the sixth segment. The illustration shows three system-definedandlesstart0, end5, and endLastfor the same point.
the system always uses the lower-left corner as the starting point and defineslockwise direction.
gment Point Handles for a Rectangle
start0, end5,endLast
X
Xend0, start1
X
mid1Xend4, start5,startLast
X
mid0
X
mid4X
mid5, midLast
Xmid2
X
XX
end1, start2
X
Starting pointlygon
X
X
X
X
X
X
X
X
end1, start2
end2, start3,startLast
mid1
mid3, midLast
mid2
The starting point is always in thelower-left corner for rectangles.28 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
For rectangle, ththe handle valu
Segment Point
When naming sof the path. Thethe word Left, a
For example, if direction shownhandles and han
Figure 1-13 Se
The point handl
X
X
X
startRight0
startLeft0
start0Relative Object Design Concepts
e lower left corner is always its starting point, so when you rotate a rectangle,es change.
Handles for Paths
egment point handles for paths, the system takes into account the direction names of handles on the left in relation to the direction of the path containnd the names of handles on the right contain the word Right.
the single segment below was a road, and you were driving on it in the, then the handles on the top edge of the segment are named Left segmentdles on the bottom edge of the segment are named Right segment handles.
gment Point Handles for a Single-Segment Path
e names for a multisegment path are shown below.
X
X
X
X
X
X
endRight0
endLeft0
end0
midRight0
midLeft0
mid0
You are driving in this direction29 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
Figure 1-14 Se
For paths, the sand endCenter
For paths with ththe same valueextending beyonoctagon, the sstart0 and en
start0
startLeft0X
X
X
startRight0
endLstartL
Direction Relative Object Design Concepts
gment Point Handles for a Multisegment Path
ystem calculates the values of two additional point handles: startCenter0Last.
e end type flush, the startCenter0 and endCenterLast handles haves as the start0 and endLast handles. However, for paths with the layerd the centerline, which have an end type of variable, offset, ortartCenter0 and endCenterLast handles have different values than thedLast handles, as shown in the following figure.
end2,endLast
midLeft0XX
X
X
X
X
X
X
X
X
X
endRight2,endRightLast
endLeft2,endLeftLast
midRight0
mid0
endRight0,startRight1
eft0,eft1
end0,start1
X
X
X
midRight2, midRightLast
midLeft2, midLeftLast
mid2, midLast
endRight1,startRight2,startRightLast
endLeft1,startLeft2,startLeftLast
midLeft1
mid1
XX X
midRight1
of path
end1,start2,startLast
X30 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
Figure 1-15 Po
For paths with athe path boundasegment point hthe path bounda
For example, fostartRight1,point handles a
startLeft0
X
X
X
startRight0
XRelative Object Design Concepts
int Handles for Extended-Type Paths
n end type of flush, offset, or variable, segment point handles are onry or path centerline. However, for paths with the end type octagon, someandles at the path ends and where path segments join are actually outsidery.
r the following path, the startLeft0, startRight0, endRight0,endLeft1, endLeftLast, endRight1, and endRightLast segment
re located outside of the path itself.
endLast
startCenter0
X
X
endRight2,endRightLast
endLeft2,endLeftLastX
Direction of path
start0
X
endCenterLast31 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
Figure 1-16 Se
Segment Leng
The system prosegments. For pexcluding exten
Note: For multiponly, with the ex
The system namfor the length ofadditional segmcreated in a clothe handle leng
Direction
s
startCenter0Relative Object Design Concepts
gment Point Handles for Paths with Octagonal Ends
th Handles
vides one segment length handle for each segment for objects that haveaths, the system provides a length handle for the centerline of each segment,sions, if any.
art paths, the system defines handles based on the points of the master pathception of the mppBBox handle.
es length handles lengthn, where n is the segment number. The handle the first segment is length0. The system increases n by 1 for eachent, in the direction in which the object was created. (Rectangles are alwaysckwise direction, starting in the lower-left corner.) The system also providesthLast for the last segment.
of path
tartLeft0
X
XX
startRight0
XendRight0,startRight1
endLeft1,endLeftLast
X X
endRight1,endRightLast
X
start0
X
endCenter0
end0
X
endLeft0,startLeft1
X
end0,start1
X32 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
Figure 1-17 Se
For rectangle, ththe handle valu
The six-sided pthe highest seg
Figure 1-18 Se
Note: If you creusing the rodNayou defined whe
For a path, the centerline. The
The starting poinis always in thelower-left corner frectangles.
lenRelative Object Design Concepts
gment Length Handles for a Rectangle
e lower left corner is always its starting point, so when you rotate a rectangle,es change.
olygon in the following figure was created starting in the upper-left corner ofment, with the segments defined clockwise.
gment Length Handles for a Polygon
ate a polygon with the Virtuoso layout editor and then assign a name to itmeShape function, the system numbers segments starting with the first pointn you created the polygon.
system computes values for segment length handles along the pathnames of segment length handles for a four-segment path are shown next.
X
t
or
length1
length3,lengthLast
length2length0
length4
length0Starting point
X
length2
length1
length5,lengthLast
gth333 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
Figure 1-19 Se
Accessing the
The system doewidth handle maccess the pathof the object (dbFor a multipart prodId~>dbId~>w
Why Are There
In some cases, multiple handlesFor example, if yon the last segm
For example, fopoint in the upp
XRelative Object Design Concepts
gment Length Handles for a Multisegment Path
Path Width
s not automatically compute the value for the width of a ROD path. (Theeasures the width of the bounding box around a path.) However, you canwidth by using the ROD object ID and the ROD attribute for the database IDId) with the database access operator (~>).ath, for example, the following statement returns the width of the master path:idth
Multiple Handles for the Same Point?
the system provides more than one handle for the same point. Although for the same point might seem redundant, they provide you with flexibility.ou do not know the number of segments an object has, you can refer to pointsent by using point handle names containing the word Last.
r an eight-sided polygon created in a clockwise direction, with the startinger-right corner, the segments are numbered segment 0 through segment 7.
length0
Direction of path
Starting point length2
length1
length3,lengthLast34 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
Figure 1-20 Mu
User-Defined
You can define you define a nevalues of user-dany of the follow
If you let the namcellview, as follo
For example, if ahandle for eachhandle0 to the
If you create a hthe new handle.System-Assigne
pointBooleanstring
segme
segment 2Relative Object Design Concepts
ltiple Handle Names for the Same Point
Handles
your own handles to store points, calculations, and other information. Whenw handle, you specify the name (or let it default) and assign a value. Theefined handles are stored in the database. The information stored can haveing data types:
e of your new handle default, the system assigns a name unique within thews: handle0, handle1, handle2, etc.
layout cellview contains two ROD objects, and you create one user-defined object without specifying handle names, the system assigns the name handle on the first object and handle1 to the handle on the second object.andle without specifying a name, you can find out what the system named
integerfloating-point numberSKILL expression
end6, start7,startLast
nt 3
segment 5
start0, end7,endLast
Starting point
X
segment 1
mid6, midLast
segment 0segment 6
segment 7
segment 4
XX35 Product Version 6.1.3
For a code example showing how to do this, see Problem 3-6 Querying ad Handle Name on page 179.
-
Virtuoso Relative Object Design User Guide
September 2008
Aligning OYou can specifyrodAlign functio
To align two namobject or point yalign objects bybetween the two
The alignment bwhen you save athe aligned objeAn alignment cathat is defined in
For example, yoreference objecfor the layer in yversa.
A
ReferenceobjectRelative Object Design Concepts
bjectsthe position of one named object in relation to another named object with then. This is called relative alignment.
ed objects, identify the object you want to align (aligned object) and theou want to align it to (reference object or reference point). Usually, you specifying a point handle on each object. You can also specify the distance objects in the direction of the X axis, the Y axis, or both.etween two objects is preserved when you manipulate either object andnd close the layout cellview. For example, when you move a reference object,ct moves with it.n involve any named geometry at any level of hierarchy and any design rule your technology file.
u can align a point handle on object B to a point handle on object A (thet) and specify the distance between them as equal to the minimum design ruleour technology file. When you move object A, object B also moves, and vice
B
Align B with A
Alignedobject
X XPoint handle on object B isaligned to point handle onobject A.36 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
Or you might wainstance nTraninstance nTran
When Are RO
The system aut
A layout ce
Either objeetc.), at any
You reload
When you openalignments assi
CautionWhen youalignmentbe seeingsystem towarning thenvironme
Reference objec
nTrans1
A
BRelative Object Design Concepts
nt to align the centerLeft point handle on the object named D in thes2 to the centerRight point handle on the reference object, B in thes1.
D Alignments Recalculated?
omatically calculates and applies alignments for named objects wheneverllview is opened in edit mode
ct involved in an alignment is edited in any way (moved, rotated, stretched, level of the hierarchy
your technology file
a cellview in edit mode, the system automatically calculates and applies allgned to the ROD objects in the cellview.
open a cellview in read-only mode, the system cannot applys. If the cellview contains aligned ROD objects, you might not the most current version of the design data. If you want the display a message in the command interpreter window (CIW)at ROD alignments might not be current, turn on the RODnt variable readCellviewWarningOn by setting it equal to t.
t
nTrans2
Aligned object
nTrans2/D is aligned tonTrans1/B.
C
DXX
Separation37 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
Separating A
You can specifyboth. Usually, o
You can use a Sacross one or mexpressions use
ROD ObjectsWhen you accefunction or the Rautomatically trathe coordinate shierarchy in the
The following excontains the inssome zero-leve
The hierarchicais in the instancIB1/IA1/polyRe
The hierarchicaIB1/IA2/polyRe
For detailed exarodGetObj on p
IA1 of AAA
polyRRelative Object Design Concepts
ligned ROD Objects the separation for ROD objects in the direction of the X axis, the Y axis, orne or more design rules determines the value of the separation.
KILL expression with technology file variables to calculate the separationore levels of hierarchy. The system automatically reevaluates SKILLd in alignment whenever it needs to recalculate the alignment.
in Hierarchyss a point handle associated with a ROD object with the rodGetHandleOD object ID and the database access operator (~>), the systemnsforms (converts) the coordinates of the point up through the hierarchy intoystem of the top-most cellview containing the object. You specify levels of
name of the object.ample shows a cellview, CCC, containing two levels of hierarchy. The first leveltance IB1 of cell BBB; the second level contains two instances of AAA andl objects that are not shown.
l name for the shape polyRect in instance IA1 of AAA, where instance IA1e IB1 of BBB, isct
l name for the shape polyRect in instance IA2 isct
mples showing how to access objects through hierarchy, see Using
polyRectect
IB1 of BBB
Cellview CCC
IA2 of AAA
Top level ofhierarchy
Next level ofhierarchy38 Product Version 6.1.3
age 271.
-
Virtuoso Relative Object Design User Guide
September 2008
Querying Ob
You can query ahierarchical objeTo see the aligncommand (clickshowing how toInformation on
StretchabWhen you creathandles to the pThis kind of han
A pcell with streparameters letsafter you place command.
You are not actuyou are graphichandles. Graphusing the Edit P
Note: You cann
For more inform
You specify thea pcell containinassign the cent
pcellRelative Object Design Concepts
jects for Alignmentsny named object to see what the object is aligned to. When you query act, the system displays all top-level alignments for the object.ments for an object, you can use the Virtuoso layout editor Edit Propertieson ROD at the top of the form) or type commands in the CIW. For an example query an object in the CIW, see Examples of Using ~> to Displaypage 120.
le Parameterized Cellse a SKILL pcell, you can make its instances stretchable by assigning pointarameters of the pcell with the rodAssignHandleToParameter function.dle is called a stretch handle.
tch handles is called a stretchable pcell. Assigning stretch handles to pcell you graphically change the value of those parameters for pcell instancesthem. You do this by selecting one or more handles and using the Stretch
ally stretching objects within the pcell or stretching the pcell itself. Instead,ally updating the value of the parameters associated with the selectedically stretching a pcell instance has the same result as editing its parametersroperties form.
ot undo stretching a pcell instance.
ation about point handles, see Handles on ROD Objects on page 19.direction in which a handle stretches as either X or Y. For example, if you haveg a single rectangle and want to stretch the width of the rectangle, you coulderRight point handle to the width parameter of the pcell and specify a
Stretch handles display as smalldiamonds.39 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
stretch directionthe centerRig
When you assigvalue of the pceincrement or defunction as inpuparameter.
The Stretcha
The process for
As you do this:
Start the S
Note: If yoon the Layo
Click to ind
The system doe
When you fiis display inthe informa
As you movhandle-to-pfrequency s
Whenapplies
pcell
width getsRelative Object Design Concepts
of X. This lets you change the value of the width parameter by stretchinght point handle horizontally.
n a handle to a parameter, you can define your own function to calculate thell parameter to which you are assigning the handle. The system passes thecrement resulting from stretching the assigned handle(s) to the user-definedt and uses the value returned by the function to replace the value of the
ble Pcell Process
stretching pcells is described below.
tretch command and select one or more stretch handles.
u have trouble selecting stretch handles, try turning off the Gravity On optionut Editor Options form.
icate the new location.
s the following:
rst select a stretch handle (or more than one stretch handle) for which thereformation specified, such as a parameter name and value, the system showstion next to the upper-right corner of the pcell.
e the cursor, the system does the following, in the sequence in which thearameter assignments are specified in the pcell code and according to thepecified for regenerating the pcell:
there are no user-defined functions associated with the handles, the system the increment or decrement directly to the value of the parameters.
larger
centerRightpointhandle
pcell
width gets smaller40 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
When decremvalue o
Displayif any.
The steps of thissee Figure 1-21
Figure 1-21 FlRelative Object Design Concepts
there are user-defined functions, the system sends the increment orent to the user-defined functions, executes the functions, and replaces thef the parameters with the values returned by the functions.
s an outline of the regenerated pcell and updates the information displayed,
process repeat until you complete the stretch. For a flowchart of the process, on page 41.
owchart for the Stretchable Pcell Process
Move the cursor
Start the Stretch commandand select one or more
handles
System shows dragoutline and updatesdisplay information
System updatesparameter values
System executes user-defined functions, if any
exist
End the Stretch command
System displays handleinformation,if any exists41 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
Assigning H
To make a pcell
One point h
Multiple po
One point h
Three poin
To assign handleach rodAssighandles to one multiple paramefor the pcell.
Assigning Mul
You can assign upperRight, cpcell that contaithe value of thehorizontally.
Assigning One
You can assign stretch might af
For example, ifand Y axes, yourodAssignHan
pcell
width getsRelative Object Design Concepts
andles
stretchable, in your pcell code, you can assign
andle to one parameter
int handles to one parameter
andle to multiple parameters
t handles at once by specifying an edge
es to parameters, use the rodAssignHandleToParameter function. InnHandleToParameter statement, you can assign one or more point
parameter and specify one stretch direction (X or Y). To assign a handle toters, you must write multiple rodAssignHandleToParameter statements
tiple Handles to One Parameter
more than one handle to one parameter. For example, if you assign theenterRight, and lowerRight point handles to the width parameter of ans only a rectangle and specify a stretch direction of X, then you can changewidth parameter by stretching any or all of the three point handles
Handle to Multiple Parameters
one handle to two or more parameters. When you stretch the handle, thefect more than one of the associated parameters.
you want to use one handle to stretch an object in the direction of both the X assign the same handle to two parameters by writing two
larger
pcell
width gets smaller42 Product Version 6.1.3
dleToParameter statements. In one statement, you assign the handle to
-
Virtuoso Relative Object Design User Guide
September 2008
the first paramesame handle to
The following exupperRight pthe upperRighThen you can chhandle horizontparameter by st
Assigning the srodAssignHan
You can also chupperRight p
Assigning Han
You can assign once by specifyassigns all three
lengthgets larger
lengthRelative Object Design Concepts
ter with a stretch direction of X, and in the other statement, you assign the a second parameter with a stretch direction of Y.
ample shows a pcell containing only a rectangle. You could assign theoint handle to the width parameter with a stretch direction of X, and assignt point handle again to the length parameter with a stretch direction of Y.ange the value of the width parameter by stretching the upperRight point
ally as shown in a previous example and change the value of the lengthretching the upperRight point handle vertically.
ame handle to two different parameters requires two separatedleToParameter statements.
ange the value of both the width and length parameters by stretching theoint handle at any other angle.
dles by Specifying Bounding Box Edges
three bounding box point handles for a ROD object to a pcell parameter ating the name of the bounding box edge. Specifying an edge automatically
pcell
width
lengthgetssmallerpcell
width
upperRight pointhandle
pcell
width
upperRightpoint handle pcell
width
length43 Product Version 6.1.3
point handles on the edge to the same parameter. For example, for a
-
Virtuoso Relative Object Design User Guide
September 2008
rectangle that islowerEdge, le
When you specbounding box: u
Specifying E
You can set theyou stretch a ha
updatePCA floating-pupdates pcdefault is amfgGridR
If you wantwithin the srodAssigassignmenthe layout e
displaySA Boolean stretch hanhandles.
stretchHA string graare display
constraiA BooleanAssisted Mstretching t
upperLeftRelative Object Design Concepts
a pcell, the bounding box edges you can specify are upperEdge,ftEdge, rightEdge.
ify upperEdge, you simultaneously specify the three point handles on thepperLeft, upperCenter, and upperRight.
nvironment Variables for Stretchable Pcells
environment variables listed below to influence what the system does whenndle:
ellIncrementoint layout editor environment variable specifying how often the systemell parameters and regenerates the pcell during a stretch operation. Thet every grid snap, as defined by the technology file variableesolution.
to vary the update frequency for different handle-to-parameter assignmentsame pcell, you can specify the f_updateIncrement argument for thenHandleToParameter statement for each handle-to-parametert. The value of the f_updateIncrement argument overrides the value ofditor environment variable updatePCellIncrement.
tretchHandlesgraphic editor and layout editor environment variable specifying whetherdles are displayed in layout cellviews. The default is t, which displays stretch
andlesLayerphic editor environment variable specifying the layer on which stretch handlesed. The default is the y0 layer and drawing purpose.
ntAssistedModeVirtuoso XL Layout Editor environment variable that controls the Constraintode. When it is turned on, you might not be able to edit stretchable pcells by
upperRight
pcell
upperCenter44 Product Version 6.1.3
heir handles. You can turn off Constraint Assisted Mode on the Layout XL
-
Virtuoso Relative Object Design User Guide
September 2008
Options fornil.
For a descriptioEnvironment V
For a descriptioVirtuoso XL La
Specifying th
You specify howa stretch operateditor environmregeneration. That every grid sn
Results of St
The results youincluding
Where the
Whether st
Whether th
How the str
The data ty
Whether th
Whether th
The setting
How often
Results of Spe
The stretch typethe stretch direcRelative Object Design Concepts
m or by setting the XL environment variable constraintAssistedMode to
n of how to set graphic editor and layout editor environment variables, seeariable Functions in the Custom Layout SKILL Functions Reference.
n of the XL environment variables, see Setting Environment Variables in theyout Editor User Guide.
e Frequency of Pcell Regeneration
often the system updates pcell parameters and regenerates the pcell duringion with the f_updateIncrement argument. You can also use the layoutent variable updatePCellIncrement to control the frequency of pcelle default for both is to update the pcell parameters and regenerate the pcell
ap, as defined by the mfgGridResolution variable in your technology file.
retching a Handle
get from stretching a handle depend on the code written for the pcell,
stretch handle is located
retching the handle affects the instance boundary
e origin point of the instance is allowed to move
etch direction and stretch type are specified
pe of the parameter to which the handle is assigned
e parameter value is computed by a user-defined function
e instance is rotated
s of the environment variable that influence stretchable pcells
the system regenerates the pcell
cifying the Stretch Type
determines whether the parameter is increased or decreased in relation to45 Product Version 6.1.3
tion. The stretch type can be either relative or absolute.
-
Virtuoso Relative Object Design User Guide
September 2008
For a stretc
For a stretc
The results of acan move. The oresults of a strenot.
In the followingbox of the rectafunctions.
In the example width parametwidth of the rec
For this samplestretch type is ain the middle ofthis pcell.
Origin point
Y
0:0Relative Object Design Concepts
h type of relative, the stretch is in relation to the center of the pcell.
h type of absolute, the stretch is in relation to the X or Y axis.
stretch often depend on whether or not the origin point of the pcell instancerigin point is usually the lower-left corner. For handles in some locations, the
tch are the same for both stretch types, whether the origin point can move or
examples, the pcell contains a single rectangle, so handles on the boundingngle are also on the boundary of the instance. There are no user-defined
below, the centerRight point handle of a rectangle is assigned to theer of the pcell with the stretch direction X. The width parameter controls thetangle.
pcell, stretching to the right always increases width no matter what thend whether or not the origin point can move, because the handle is locatedthe right edge. Conversely, stretching to the left always decreases width for
pcell
X
Y
0:0
centerRightstretch handle
width
pcell
X
width
pcell
X
Y
0:0
width46 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
However, for hatype and when
Note: Definingtype is relative abox of the pcell
Results for the Re
For a stretch typincrements the object decremeobject larger anThe results of stcan move durinrectangle is assThe pcell conta
centerLeftstretch handleRelative Object Design Concepts
ndles in most locations, the results of stretching are different for each stretchthe instance origin point can move or not move.
the origin point of a pcell instance as movable is most useful when the stretchnd the location of the stretch handle coincides with and affects the boundinginstance.
lative Stretch Type
e of relative, stretching a handle away from the center of its ROD objectassociated pcell parameter, while stretching towards the center of the RODnts the associated pcell parameter. A stretch away from the center makes thed a stretch towards the center makes the object smaller.retching a handle might vary depending on whether the instance origin pointg a stretch. In the example below, the centerLeft point handle on theigned to the width parameter of the instance, with a stretch direction of X.ins only the rectangle.
pcell
Origin point
X
Y
0:0
width47 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
When you stretcwidth paramet
In both cases, torigin point can
For a relative stthe center of theand instance ge
In both cases, thorigin point can
Results for the Ab
For a stretch typincrements the decrements the
Relativorigin pY
0:0
Relativpoint cY
0:0Relative Object Design Concepts
h the centerLeft handle to the left (away from the center of the pcell), theer is incremented, so the width of the rectangle and instance gets larger.
he width of the rectangle and instance gets larger. However, if the instancenot move, the width of the rectangle and instance expands to the right.
retch, when you stretch the centerLeft handle to the right (towards from pcell), the width parameter is decremented, so the width of the rectanglets smaller.
e width of the rectangle and instance gets smaller. However, if the instancenot move, the width of the rectangle and instance shrinks from the right.
solute Stretch Type
e of absolute, stretching in a positive direction in relation to the X or Y axisassociated pcell parameter, while stretching in a negative direction associated pcell parameter.
pcell
e stretch away from center andoint can move
X
pcell
Relative stretch away from center andorigin point cannot move
X
Y
0:0
e stretch towards center and originan move
pcell
X
Relative stretch towards center andorigin point cannot move
pcell
X
Y
0:048 Product Version 6.1.3
-
Virtuoso Relative Object Design User Guide
September 2008
The results of stduring a stretchlength parameY.
For an absoluteupward (in a pothe object gets move.
When the originallows the handhandle upwardinstance larger
Origin point
0
Absoluorigin pY
0:0Relative Object Design Concepts
retching a handle might vary depending on whether the origin point can move. In the example below, the lowerCenter point handle is assigned to theter of a rectangle that comprises a pcell. The stretch direction is specified as
stretch, when the stretch handle is on the bottom of the object and you stretchsitive direction along the Y axis), the length parameter is incremented, solarger. How the rectangle expands depends on whether the origin point can
can move, the edge on which the handle is located can move also, whichle to move during the stretch. An absolute stretch of the lowerCenter pointalong the Y axis increases the length paramet