Rod User

Embed Size (px)

DESCRIPTION

SKILL guidelines for ROD creation

Citation preview

  • 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