+ All Categories
Home > Documents > Auto User

Auto User

Date post: 26-Sep-2015
Category:
Upload: ram
View: 236 times
Download: 5 times
Share this document with a friend
Description:
cadence auto user
Popular Tags:
358
Virtuoso Space-based Router User Guide Product Version 6.1.5 January 2011
Transcript
  • Virtuoso Space-based Router User GuideProduct Version 6.1.5

    January 2011

  • 20062011 Cadence Design Systems, Inc. All rights reserved.

    Printed in the United States of America.

    Cadence Design Systems, Inc. (Cadence), 2655 Seely Ave., San Jose, CA 95134, USA. Open SystemC, Open SystemC Initiative, OSCI, SystemC, and SystemC Initiative are trademarks or registered trademarks of Open SystemC Initiative, Inc. in the United States and other countries and are used with permission.

    Trademarks: Trademarks and service marks of Cadence Design Systems, Inc. contained in this document are attributed to Cadence with the appropriate symbol. For queries regarding Cadences trademarks, contact the corporate legal department at the address shown above or call 800.862.4522. All other trademarks are the property of their respective holders.

    Restricted Permission: This publication is protected by copyright law and international treaties and contains trade secrets and proprietary information owned by Cadence. Unauthorized reproduction or distribution of this publication, or any portion of it, may result in civil and criminal penalties. Except as specified in this permission statement, this publication may not be copied, reproduced, modified, published, uploaded, posted, transmitted, or distributed in any way, without prior written permission from Cadence. Unless otherwise agreed to by Cadence in writing, this statement grants Cadence customers permission to print one (1) hard copy of this publication subject to the following conditions:

    1. The publication may be used only in accordance with a written agreement between Cadence and its customer.

    2. The publication may not be modified in any way. 3. Any authorized copy of the publication or portion thereof must include all original copyright,

    trademark, and other proprietary notices and this permission statement. 4. The information contained in this document cannot be used in the development of like products or

    software, whether for internal or external use, and shall not be used for the benefit of any other party, whether or not for consideration.

    Patents: Cadence Product Space-based Router, described in this document, is protected by U.S. Patents [1,111,111]; [2,222,222]; and [3,333,333].

    Disclaimer: Information in this publication is subject to change without notice and does not represent a commitment on the part of Cadence. Except as may be explicitly set forth in such agreement, Cadence does not make, and expressly disclaims, any representations or warranties as to the completeness, accuracy or usefulness of the information contained in this document. Cadence does not warrant that use of such information will not infringe any third party rights, nor does Cadence assume any liability for damages or costs of any kind that may result from use of such information.

    Restricted Rights: Use, duplication, or disclosure by the Government is subject to restrictions as set forth in FAR52.227-14 and DFAR252.227-7013 et seq. or its successor.

  • Virtuoso Space-based Router User GuidePreface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Licensing in Virtuoso Space-based Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Related Documents for Virtuoso Space-based Router . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    Installation, Environment, and Infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Technology Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Virtuoso Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Relative Object Design and Inherited Connections . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    Typographic and Syntax Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    1Getting Started with the Space-based Router . . . . . . . . . . . . . . . . . 1Enabling the Space-based Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Using Layout XL Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    Space-based Router Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Hierarchical Level Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    Considering Lower Level Shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    2Technology Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Technology File Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    Layer Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Routing Layer Directions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Via Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Valid Layers and Valid Vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Via Usage Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Technology File Requirements for Track Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Using Layer Purposes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    ContentsJanuary 2011 3 Product Version 6.1.5

    Poly Pins Over an Implant Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Support For 45 nm Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    Constraint Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

  • Virtuoso Space-based Router User GuideFoundry Constraint Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Application Constraint Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14virtuosoDefaultExtractorSetup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14virtuosoDefaultSetup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15LEFDefaultRouteSpec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Taper Constraint Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17User-Defined Constraint Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Storing Constraint Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Constraint Group Lookup Precedence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Scalar Versus Table Spacing Rule Precedence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    Virtuoso Space-based Router Supported Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    3Routing Your Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Router Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    Data Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Routing Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    Global Route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Local Route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Conduit Route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Detailed Route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Post-Route Refinement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    Engineering Change Order (ECO) Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Using the Automatic Routing Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    Specifying General Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Specifying Initialize Route Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Specifying Global Route Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Specifying Local Route Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Specifying Detail Route Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Specifying Refinement Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Design Rule Violations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

    Routing Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Tie Shielding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45Deleting Routes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45Highlighting Locked Nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46January 2011 4 Product Version 6.1.5

  • Virtuoso Space-based Router User Guide4Congestion Analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47Congestion Analysis Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    5Interactive Wire Editing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Introduction to Wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

    Types of Wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Wire Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54Wire Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    Setting Up the Wire Editing Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58Startup Warnings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58Mouse Button Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58Configuring Wire Editing Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59Tapping Wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Adding the lxStickyNet Property to Wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64Using Wire Editing Environment Variables and SKILL Functions . . . . . . . . . . . . . . . . 65

    Using Vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66Specifying a Valid Via List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66Changing Layers and Selecting Vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66Fanning Out Wires to Vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Using Via Assistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Creating an Array of Vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Stacking Vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

    Support for Voltage-Dependent Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75Working with Wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

    Creating a Wire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Creating a Diagonal Wire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85Creating a Floating Wire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85Creating Wires Snapped to Track Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86Editing Wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

    Working with Buses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90Creating a Bus Constraint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91Autopicking Bus Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92January 2011 5 Product Version 6.1.5

  • Virtuoso Space-based Router User GuideCreating a Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95Restarting a Bus From Existing Routes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100Using the Control Wire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

    Point to Point Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107Setting Point to Point Wires to Match Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

    Guided Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111Comparing Guided Routing with Point to Point Routing . . . . . . . . . . . . . . . . . . . . . . 114Guided Single Wire Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114Guided Bus Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

    Smart Snapping in Interactive Wire Editing and Assisted Routing Commands . . . . . . . 122Finishing Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

    Finishing a Wire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123Finishing a Net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

    Composing and Decomposing Trunks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126Displaying Wire Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127Selecting Wiring Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

    Object Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129Selecting a Single Object or Via . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130Routing Granularity Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

    Connectivity For Top Level I/O Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136Editing Routed Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

    Stretching Wires and Vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137Pushing Wires and Vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142Moving Wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143Copying Wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143Re-routing a Wire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144Reshaping Wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144Removing Loops From Wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146Self-intersecting Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148Merging Wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149Deleting Wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

    6Specialty Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155Creating Constraints With the Constraint Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155January 2011 6 Product Version 6.1.5

  • Virtuoso Space-based Router User GuideSymmetry Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155Types of Symmetry Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156Defining a Symmetry Constraint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158Automatic Symmetry Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160Interactive Two Net Symmetry and Self Symmetry Routing . . . . . . . . . . . . . . . . . . . 161

    Differential Pair Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162Defining a Differential Pair Constraint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162Changing Diff Pair Values in the Process Rules Editor . . . . . . . . . . . . . . . . . . . . . . 163Interactive Differential Pair Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

    Shield Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167Defining Shield Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167Shield Styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169Default Shielding Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170Changing Custom Shielding Values in the Process Rules Editor . . . . . . . . . . . . . . . 174Tying Shield Wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178Pin escapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

    7Space-based Router Batch Checking. . . . . . . . . . . . . . . . . . . . . . . . . 179Batch Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

    Using the Batch Checker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179Finding Violations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189Fixing Violations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192Optimize Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

    AForms Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197Automatic Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

    General Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199Initialize Route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202Global Route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202Local Route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202Detail Route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203Refinement Route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204January 2011 7 Product Version 6.1.5

    Net Options Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206

  • Virtuoso Space-based Router User GuideAutoRouter Extraction Options Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207Pre-Load Environment Variables Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210Batch Checker Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

    Routability Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211Process Rules Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211Connectivity Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211Speciality Routing Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212Placement Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212Fabrication Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

    Congestion Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214Differential Pair Spacing Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215Create Bus Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

    Create Bus Form in L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216Create Bus Form in XL and GXL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220Create Bus Context-Sensitive Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

    Create Geometric Wire Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232Create Geometric Wire Form in L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232Create Geometric Wire Form in XL and GXL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238

    Create Wire Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247Wire Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249Bus Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251Create Single Wire Context-Sensitive Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253

    Layout Editor Options Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262Snapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262Tap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262Wire Editing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262

    Point to Point Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264Point to Point Context-Sensitive Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268

    Guided Routing Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270Guided Routing Context-Sensitive Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276

    Select Via Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279Stretch Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287January 2011 8 Product Version 6.1.5

  • Virtuoso Space-based Router User GuideBEnvironment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291Automatic Router Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291

    Automatic Routing Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291Interactive Wire Editing Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296

    CBindkey Keyboard Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313

    DRouting Assistants. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317Wire Assistant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317

    Launching the Wire Assistant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318Wire Assistant User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319Wire Assistant Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324January 2011 9 Product Version 6.1.5

  • Virtuoso Space-based Router User GuideJanuary 2011 10 Product Version 6.1.5

  • Virtuoso Space-based Router User GuidePreface

    The Virtuoso Space-based Router enables high-speed shaped-based routing for physical designs. With Virtuoso Space-based Router you can quickly and efficiently edit, check, and manipulate interconnects. The hierarchical connectivity and shape model ensures edits are design-rule and connectivity correct by default.

    This user guide describes how to use Virtuoso Space-based Router. It is aimed at developers and designers of integrated circuits and assumes that you are familiar with:

    The Virtuoso design environment and application infrastructure mechanisms designed to support consistent operations between all Cadence tools.

    The applications used to design and develop integrated circuits in the Virtuoso design environment, notably Virtuoso Layout Suite and Virtuoso Schematic Editor.

    The design and use of Quick Cells and other types of parameterized cells. The OpenAccess version 2.2 technology file.

    Component description format (CDF), which lets you create and describe your own components for use with Layout XL.

    Licensing in Virtuoso Space-based RouterVirtuoso Space-based Router requires licenses for both IC 6.1.4 and ICS 6.1.4.

    For information on licensing in the Virtuoso design environment, see Virtuoso Software Licensing and Configuration Guide.

    Related Documents for Virtuoso Space-based RouterThis user guide does not contain information on all of the functions and commands that are enabled in Virtuoso Space-based Router.

    Commands enabled in a lower tier of Virtuoso Layout Suite are documented in the user guide for the application in which they are enabled. For example, the base Move command is January 2011 11 Product Version 6.1.5

    documented in the Virtuoso Layout Suite L User Guide; only its extended functionality is documented in this user guide.

  • Virtuoso Space-based Router User Guide

    Preface

    Many of the advanced features available in Layout XL are covered in dedicated user guides. Where this is the case, reference is always made to the book containing detailed information.

    The following documents provide more information about the topics discussed in this guide.

    Installation, Environment, and Infrastructure For information on installing Cadence products, see the Cadence Installation Guide.

    For information on the Virtuoso design environment, see the Virtuoso Design Environment User Guide.

    For information on database SKILL functions, including data access functions, see the Virtuoso Design Environment SKILL Reference.

    For information on library structure, the library definitions file, and name mapping for data shared by multiple Cadence tools, see the Cadence Application Infrastructure User Guide.

    Technology Information For information on how to create and maintain a technology file and display resource file,

    see the Virtuoso Technology Data User Guide and the Virtuoso Technology Data ASCII Files Reference.

    For information on how to access the technology file using SKILL functions, see the Virtuoso Technology Data SKILL Reference.

    Virtuoso Tools For whats new, refer to the Virtuoso Space-based Router Whats New.

    For outstanding Cadence Change Requests (CCRs), refer to the Virtuoso Space-based Router Known Problems and Solutions.

    For information about custom layout SKILL functions, see the Virtuoso Layout Suite SKILL Reference.

    For information on how to perform design tasks with the Virtuoso Layout Suite L layout editor, see the Virtuoso Layout Suite L User Guide

    For information on design rule driven editing, see the Virtuoso Design Rule Driven Editing User Guide.January 2011 12 Product Version 6.1.5

  • Virtuoso Space-based Router User Guide

    Preface

    For information on a collection of general layout tools designed to streamline command sequences and solve specific issues common to custom mask designers, see the Virtuoso Toolbox User Guide.

    For information on how to use the Virtuoso Layout Suite wire editing capability, see Virtuoso Space-based Router User Guide.

    For information on how to use the automatic custom digital placer to place your design components, see the Virtuoso Custom Digital Placer User Guide.

    For information on creating parameterized cells using the graphical user interface or low-level SKILL functions, see the Virtuoso Parameterized Cell Reference.

    For information on Quick Cells, see the Virtuoso Quick Cells User Guide. For information on Component Description Format, see the Component Description

    Format User Guide.

    For information on how to stream mask data, see the Design Data Translators Reference.

    For information on custom layout SKILL functions, see the Virtuoso Layout Suite SKILL Reference.

    Relative Object Design and Inherited Connections For information on using relative object design (ROD) functions, see the Virtuoso

    Relative Object Design User Guide. For information on connectivity and naming conventions for inherited connections, and

    how to add and edit net expressions in a schematic or symbol cellview, see Virtuoso Schematic Editor L User Guide.

    Typographic and Syntax ConventionsThe following typographic and syntax conventions are used in this manual.

    text Indicates text you must type exactly as it is presented.

    z_argument Indicates text that you must replace with an appropriate argument. The prefix (in this case, z_) indicates the data type the argument can accept. Do not type the data type or underscore.January 2011 13 Product Version 6.1.5

  • Virtuoso Space-based Router User Guide

    Preface

    [ ] Denotes an optional argument. When used with vertical bars, they enclose a list of choices from which you can choose one.

    { } Used with vertical bars, they denote a list of choices from which you must choose one.

    | Separates a choice of options. Indicates that you can repeat the previous argument.

    => Precedes the values returned by a Cadence SKILL language function.

    / Separates the possible values that can be returned by a Cadence SKILL language function.

    text Indicates names of manuals, menu commands, form buttons, and form fields.January 2011 14 Product Version 6.1.5

  • Virtuoso Space-based Router User Guide1Getting Started with the Space-based Router

    The Virtuoso Space-based Router GUIs aids designers in running the autorouter. It provides access to the options for various steps in a routing flow and also provides a template of TCL code that will run the steps so that the user can customize it as they become more familiar with the routing commands.

    This section discusses the following.

    Enabling the Space-based Router

    Using Layout XL Extraction

    Hierarchical Level Control

    Enabling the Space-based RouterThe Virtuoso Space-based router is available in Virtuoso Layout Suite XL and GXL. You can access the Space-based Router functionality using the Route menu, which is available by default in Layout XL and GXL.

    The VSR toolbar is not available by default in the layout window. To activate the VSR toolbar from Virtuoso Layout Editor GXL, perform the following steps:

    1. Click Launch Layout GXL.

    The VLS GXL window is displayed. January 2011 1 Product Version 6.1.5

  • Virtuoso Space-based Router User Guide

    Getting Started with the Space-based Router

    2. Click Window Toolbars Space-based Router. The Space-based Router toolbar is displayed. You can access the Space-based Router functionality using the icons on the Space-based Router toolbar as shown in the following figure.

    Automatic Routing

    The Automatic Routing menu option or icon displays the Automatic Routing form. The form has sub forms allowing you to set up and route the Initialize, Global, Local, Conduit, Detailed, and Refinement routing modes. See Using the Automatic Routing Form for more information.

    Routing Scripts

    An existing routing flow may be captured in the form of TCL routing commands within a TCL script. You can execute the TCL script to view the desired routing results. The Routing Scripts menu option allows you to execute the TCL script.

    Tie Shield

    Ties shield wires to shield nets in the design and allows you to set the tie frequency. Tie frequency is the distance between the ties.

    Delete Routing

    This is an interactive action where you explicitly ask for the routing to be deleted. Clicking the Delete Routing menu option deletes all the routes that were not in the constraints or were in FIXED constraints. However, the routes in the LOCKED constraint are not deleted.

    Automatic Routing

    Delete Routing

    Straighten Wires

    Fix Antenna

    Fix Violations

    Optimize Route

    Toolbar Customize

    Congestion Analysis

    Highlight Locked NetsJanuary 2011 2 Product Version 6.1.5

  • Virtuoso Space-based Router User Guide

    Getting Started with the Space-based Router

    Straighten Wires

    Straighten Wires View Area

    Runs a critic pass that smooths wires by removing unnecessary jogs where possible after routing for a selected area.

    Straighten Wires Entire Cell View

    Runs a critic pass that smooths wires by removing unnecessary jogs where possible after routing for entire cell view.

    Straighten Wires Selected Nets

    Runs a critic pass that smooths wires by removing unnecessary jogs where possible after routing for the selected nets in the design.

    Fix Antenna

    Fix Antenna attempts to fix the error types. It takes all nets in the visible window into account. No selections or exclusions are considered.

    Fix Violation

    Fixing View Area

    Allows you to fix the violation operations for a selected area

    Fixing Entire Cell View

    Allows you to fix the violation operations for the entire cell view.

    Optimize Route

    Optimize Route View Area

    Allows you to perform various wire optimization post processes for a selected area.

    Optimize Route Entire Cell View

    Allows you to perform various wire optimization post processes for entire cell view.January 2011 3 Product Version 6.1.5

    Optimize Route Selected Nets

  • Virtuoso Space-based Router User Guide

    Getting Started with the Space-based Router

    Allows you to perform various wire optimization post processes for the selected nets in the design.

    Congestion Analysis

    Allows you to do a quick global route to calculate a congestion map that allows the user to identify areas of heavy routing congestion.See Congestion Analysis for information.

    Highlight Locked Nets

    Highlights locked nets in the design.

    Note: You can also access the menu items using your keyboard. With the Route menu displayed, press the corresponding key to display each form as follows.

    for the Automatic Routing form, press a.

    for the Delete Routing form, press d.

    for Straighten Wires, press s.

    for Congestion Analysis, press c.

    to Highlight Locked Nets, press h.

    Using Layout XL Extraction When using the wire editing commands in Virtuoso Layout XL and GXL, be sure that the XL extractor is enabled by checking Verify connectivity during interactive editing in the Layout XL Options form. The DRD Enforce and Notify interactive modes use the XL extractor to correctly handle unassigned shapes during the commands, Create Wire, Stretch, Reshape, and Point to Point. If the XL extractor is disabled, these commands may not work as expected on unassigned shapes (shapes not assigned to a net).

    Space-based Router Extraction

    The Space-based Router Extract option on the Extraction tab of the Layout XL Options form provides a means to extract connectivity for instances whose master does not have its shapes properly stamped with connectivity. Shapes without connectivity are considered blockages and the router cannot create connections to the instance. January 2011 4 Product Version 6.1.5

  • Virtuoso Space-based Router User Guide

    Getting Started with the Space-based Router

    The extraction process is called at the start of routing commands or when remastering instances. By default, pcells are extracted. Two other options are available, none and all. The none option by passes the extraction process, and the all option runs the extraction process on all instance masters. The all option can be useful for designs that have pcells nested two or more levels down in the hierarchy, as the XL connectivity extractor does not extract pcell masters during hierarchical extraction.

    When working on the top levels of a large hierarchical design, setting the Space-based Router Extract option to all can have a performance impact.

    Hierarchical Level ControlYou can control the hierarchy depth for the following.

    Display - set Start and Stop Display Levels in the Display Options form.

    The stopLevel setting controls the range of hierarchy levels displayed in the canvas window. The initial display stopLevel for a given design is determined in the current session when the design is opened and levels of nested design data are displayed.

    Routing - set Start and Stop Display Levels in the Display Options form.

    Hierarchy depth is the level of hierarchical design data processed by interactive and automatic routing commands including point-to-point, finish routing, power routing, and signal routing.

    For routing, the hierarchy depth is determined by the display stopLevel at the time you run any interactive or automatic routing command. The router sees and processes data to the currently set display stopLevel. For example, the router sees blockages down to that level of the design data hierarchy.

    Subsequent changes to the display stopLevel add, but do not subtract, levels of hierarchy. If the display stopLevel is reduced, for example from 32 to 1, then the levels of nested data processed remain unchanged. If display stopLevel is subsequently increased, then the additional levels of nested data are processed.

    For example, if the display level is set to 32 and you return up the hierarchy to display level 1, data to display level 32 is still recognized. If the display level is set to 1and you descend to display level 32, a display level of 32 is now recognized.

    Note: If you change the stopLevel while you are in a command, for example, Create Wire, the additional levels of hierarchy will not be recognized by the command. You need to exit the command, change the stopLevel, then execute command. January 2011 5 Product Version 6.1.5

    Routing hierarchy depth is re-established, and therefore can be reduced, when the design is reopened for routing after Discard Edits. For example, set display level to 32.

  • Virtuoso Space-based Router User Guide

    Getting Started with the Space-based Router

    Route. The hierarchy depth is 32. Discard Edits. Reduce the display level to 2. Route. The routing hierarchy depth is now 2.

    Extraction - set Extract connectivity to level in the Extraction tab of the Layout XL Options form.

    This setting controls the number of hierarchy levels to check when extracting connectivity.

    Interactive rule checking - set the Hierarchy Depth in the DRD Options form.

    This settings tells the DRD rule checker the level to which to check for violations.

    It is important to be aware of all three depth settings to ensure intended results.

    Considering Lower Level Shapes

    The environment variable allLowerLevelShapeForRoute controls the pin model used for extraction. A value of t causes the entire net to be modelled as a pin. A value of nil will cause only the labelled shapes to be modelled as a pin. The use model for considering lower level shapes is, once the cellview is loaded in Virtuoso XL or GXL,

    1. Set the Options Display Stop (Display Levels) to 1 This controls the extraction level or hierarchy depth that the extractor will use.

    2. Set the Extract connectivity to level in the Extraction tab of the Layout XL Options form to all

    This controls the type of instances to be extracted.

    3. Set the environment variable allLowerLevelShapeForRoute as follows:envSetVal("rte" "allowLowerLevelShapeForRoute" 'boolean t)) This controls the pin model used by the extractor. Alternatively this setting can be add to the .cdsenv.January 2011 6 Product Version 6.1.5

  • Virtuoso Space-based Router User Guide2Technology Requirements

    This section discusses the following:

    Technology File Requirements

    Constraint Groups

    Virtuoso Space-based Router Supported Constraints

    Technology File RequirementsThis section specifies minimum requirements for the technology file.

    Layer Definitions

    The layerDefinitions section of the technology file defines the layers that can be used throughout the technology file. layerRules in the layerDefinitions section defines a layer function and unique mask number for each layer.

    Defining the layer function and the mask number in the technology file functions section, gives explicit information about which layers are adjacent to each other. Specify layers and mask numbers for all interconnect layers in the technology file.

    The mask number is used to,

    order the layers in the Select Via form

    determine which layer is the next layer up and the next layer down from the current layer when selecting Via Up or Via Down

    determine the next or previous layer automatically when the Create Wire command is initiated and a non-routing layer is the current layer.

    In absence of mask numbers, the layer purpose priority is used. However, this is not as January 2011 7 Product Version 6.1.5

    reliable as defining the mask number since the mask number is not dependent on purposes.

  • Virtuoso Space-based Router User Guide

    Technology Requirements

    Note: The router may not work if the mask numbers are not specified correctly.

    Valid Values: cut, li, metal, ndiff, pdiff, nplus, pplus, nwell, pwell, poly, diff, recognition, other, unknown

    The following example is specific to Space-based routing. The layerRules section in your techfile will have more layers and layer definitions.layerRules(

    functions(;( layer function [maskNumber]);( ----- -------- ------------) ( POLY "poly" 0 ) ( CO "cut" 1 ) ( Metal1 "metal" 2 ) ( VIA "cut" 3 ) ( Metal2 "metal" 4 )

    ...Note: The router currently understands only one poly layer, so include only one poly layer in the technology file.

    Define one and only one cut layer between each pair of metal layers.

    Note: When the function table is not defined or it is defined but the mask numbers are not defined, vias are still available through the Create Wire command. However, the following warning message is issued.

    \w *WARNING* geViaSet : Incomplete layer maskNumber, the order of the vias may not be correct.

    For more information, see Technology File Layer Definitions in the Virtuoso Technology Data ASCII Files Reference.

    Routing Layer Directions

    Set a preferred routing direction for each routing layer. layerRules(

    routingDirections(;( layer direction );( ----- --------- )

    ( POLY "none" )( Metal1 "horizontal" )( Metal2 "vertical" )

    ...January 2011 8 Product Version 6.1.5

    For more information, see Routing Directions in the Virtuoso Technology Data ASCII Files Reference.

  • Virtuoso Space-based Router User Guide

    Technology Requirements

    Via Definitions

    At a minimum, define all standard vias for interconnect using routing layers in the viaDefs section of the technology file. Typically, this is a set of standard vias between the poly layer and the highest metal layer.

    For example.viaDefs( standardViaDefs(;( viaDefName layer1 layer2 (cutLayer cutWidth cutHeight [resistancePerCut]); (cutRows cutCol (cutSpace)); (layer1Enc) (layer2Enc) (layer1Offset) (layer2Offset) (origOffset); [implant1 (implant1Enc) [implant2 (implant2Enc) [well/substrate]]]);( -------------------------------------------------------------------------- )

    ( mpoly Metal1 POLY ("CO" 0.09 0.09)(1 1 (0.11 0.11))(0.04 0.0) (0.04 0.01) (0.0 0.0) (0.0 0.0) (0.0 0.0)

    )( m1m2 Metal1 Metal2 ("VIA" 0.1 0.1)

    (1 1 (0.1 0.1))(0.04 0.0) (0.04 0.0) (0.0 0.0) (0.0 0.0) (0.0 0.0)

    )...

    Define custom vias required for routing. customViaDefs( ;(

    viaDefName libName cellName viewName layer1 layer2 resistancePerCut) ;(------------ --------- --------- --------- ------- ------ --------------) (VIAm1m2_2CUT_N tsmc65lp VIAm1m2 via Metal1 Metal2 0.95) (VIAm1m2_2CUT_S tsmc65lp VIAm1m2 via Metal1 Metal2 0.95) (VIAm1m2_2CUT_E tsmc65lp VIAm1m2 via Metal1 Metal2 0.95) (VIAm1m2_2CUT_W tsmc65lp VIAm1m2 via Metal1 Metal2 0.95)

    ...

    In constraint groups, include appropriate subset of vias.

    Note: Via variants used by other tools are not currently recognized by Virtuoso.

    For more information, see Technology File Via Definitions and Via Specifications in the Virtuoso Technology Data ASCII Files Reference.January 2011 9 Product Version 6.1.5

  • Virtuoso Space-based Router User Guide

    Technology Requirements

    Valid Layers and Valid Vias

    Define valid layers and vias in a default constraint group. Do not use the foundry constraint group for validLayers and validVias. Define only process rules in the foundry constraint group.

    For example.;( group [override] );( ----- ---------- )( "virtuosoDefaultSetup" nil

    interconnect(( validLayers (POLY Metal1 Metal2 ...) )( validVias (mpoly m1m2 ... ) )) ;interconnect

    ) ;virtuosoDefaultSetup

    Note: If no validVias statement exists, a full set of standard vias is defined for the session based on the layers in the validLayers statement.

    The autorouter only uses vias having both layers defined as valid routing layers. If a via has a metal layer that is not a valid routing layer, the router can still use it for pin access if it is in the valid via list. In particular, vias for which the bottom layer is oxide, well or implant are not used. Virtuoso Space-based Router issues a warning message when initializing a design if the constraint group contains such vias.

    For more information, see validLayers and validVias in the Technology File Constraint Groups and Constraints section of the Virtuoso Technology Data ASCII Files Reference.

    Via Usage Model

    For Detail routing, Virtuoso Space-based Router considers a limited number of vias and via variations for each layer pair. The standard via variations are based on the constraints and the type of route (e.g. taper). The detail router chooses a limited number to use during routing from the custom vias and the derived standard via variations based on the amount of routing resource required by each. The vias/via variations chosen are those that require the fewest resources.

    Technology File Requirements for Track Patterns

    Following is an example of the technology file requirements that support track patterns. January 2011 10 Product Version 6.1.5

  • Virtuoso Space-based Router User Guide

    Technology Requirements

    layerDefinitions( techPurposes((track 229 trk)...)Note: techPurposes are system reserved purposes found in the default cdsDefTechLib techDisplays((METAL1 track m1_Packet t t t t t)...)techLayerPurposePriorites((METAL1 track) ...) layerRules(functions((METAL1 "metal" 3)...)

    Using Layer Purposes

    In the Virtuoso design environment technology file, it is possible to define technology rules for layer purpose pairs (LPP). However, OpenAccess rules/constraints are only applicable to layers, not layer purpose pairs. In the Virtuoso design environment, any technology rule which is defined for a layer purpose pair is stored as a private extension and is only available for Virtuoso applications. The private extension is not visible outside Virtuoso applications.

    Layers based on a purpose can be selected from the LSW (LPPs must be valid and visible). However, when tapping an existing shape, the layer purpose is not used directly. You can create a prioritized list of purposes that allow you to use a layer based on a purpose. See Tapping Wires.

    Poly Pins Over an Implant Layer

    If minSpacing is defined between poly and implant layers, then any poly pin shape which is fully overlapped by an implant layer will be viewed as blocked and will not be accessible by the automatic router, Point to Point router, and Finish Wire and will result in routing failures.

    Support For 45 nm Rules

    In order to use the newer 45 nm technology rules, these rules must coded in the technology file techLayerProperties section. The following example shows LEF57_AREA, January 2011 11 Product Version 6.1.5

    LEF57_ENCLOSUREEDGE, and LEF57_SPACING for second EOL rule support.

  • Virtuoso Space-based Router User Guide

    Technology Requirements

    techLayerProperties( ;( PropName Layer1 [ Layer2 ] PropValue ) ;( -------- ------ ---------- --------- )( LEF57_AREA Metal1 "AREA 0.07 EXCEPTEDGELENGTH 0.41 EXCEPTMINSIZE 0.41 0.14 ;" )( LEF57_ENCLOSUREEDGE Via2 "ENCLOSUREEDGE 0.08 WIDTH 0.26 PARALLEL 0.5 WITHIN 0.4 ;" )( LEF57_SPACING metal1 "SPACING 0.12 ENDOFLINE 0.10 WITHIN 0.035 MINLENGTH 0.07 PARALLELEDGE 0.12 WITHIN 0.10 ENCLOSECUT BELOW 0.05 CUTSPACING 0.15 ;")) ;techLayerProperties

    Constraint Groups Using constraint groups within Virtuoso is a very powerful and versatile way to control both interactive and automatic routing behavior and ultimately the final design results. Constraint group application spans a wide array of usage from dictating the technology foundry rules to application-specific rules to user-defined constraint groups to aid layout designers in design-specific tasks.

    It is important to understand that there are two distinct steps necessary to realize the application of any constraint group within the physical layout.

    1. Definition of a constraint group

    2. Application of the constraint group

    Constraint groups can be defined within the technology database (provided you have write permission) or on the design (i.e. lib/cell/cellview). But until constraint groups are actually applied to objects within your design or set as the default constraint group, they are meaningless. The exception to this rule is the foundry constraint group which defines the technology rules.

    There are three types of constraint groups you can create.

    1. Foundry constraint group

    Example: foundry

    2. Application-specific constraint group(s)Examples: virtuosoDefaultExtractorSetup, virtuosoDefaultSetup, LEFDefaultRouteSpec

    3. User-defined constraint group(s)January 2011 12 Product Version 6.1.5

    Examples are unlimited: shieldTheseNets, wideWires

  • Virtuoso Space-based Router User Guide

    Technology Requirements

    There can only be one foundry constraint group, but there can be any number of application-specific constraint groups and user-defined constraint groups for routing specific nets or net types.

    Foundry, Application-specific and User-defined constraint groups may be created automatically during a translation process such as cdb2oa or lef2oa, and are based on the information in either the CDB techfile or LEF/DEF files. Other constraint groups may be created by your CAD group, and still others created by the individual layout designer. Some can be stored in a technology database and/or on the design itself.

    In Virtuoso XL/GXL, you typically have the following three constraint groups as a required minimum.

    Foundry

    virtuosoDefaultExtractorSetup

    virtuosoDefaultSetup

    Foundry Constraint Group

    The foundry constraint group represents the absolute minimum rules (i.e. minWidth/minSpacing, etc.,) which must be adhered to in order to manufacture the design. These are commonly referred to as the base process rules and are stored only in the technology database.

    Define the complete set of process rules in the foundry constraint group. Do not depend on a technology file translated from elsewhere to contain all needed rules. For example, a 65nm tech file translated from CDB will not include all required rules because not all 65nm rules are code able in CDB.

    Creation and usage

    Creating the Foundry Constraint Group

    The foundry constraint group is created and populated with information during cdb2oa translation or lef2oa translation. The translators get the information from sections within the CDB techfile and the LEF file.

    Alternatively, you can create the foundry constraint group by loading an ASCII technology file containing the foundry constraint group information through the Technology File Manager Toolbox, which you can invoke from the CIW.

    Information in the foundry constraint groupJanuary 2011 13 Product Version 6.1.5

  • Virtuoso Space-based Router User Guide

    Technology Requirements

    The foundry constraint group contains all of the information necessary to manufacture the design. Everything from minSpacing/minWidth for layers, minEnclosure, minStep, to via rules, to electrical constraints such as antenna rules.

    Using the foundry constraint group in Virtuoso

    The foundry constraint group is the final stop along the constraint precedence lookup trail. If a constraint override is not defined elsewhere, the tools use the value(s) in the foundry constraint group.

    Most all functionality uses the foundry constraint group at some point. As the last stop in constraint precedence lookup, the foundry constraint group is the final place and many times the only place the value(s) for a constraint are defined.The foundry constraint group is not typically writable for most users, but can be viewed in the Process Rule Editor. You can launch the Process Rule Editor by clicking the RMB in the Constraint Manager assistant or by clicking the PRE icon from the toolbar in the Constraint Manger assistant. Within this dialog you can set the scope to Technology and view the foundry constraint group.

    Application Constraint Groups

    An application constraint group is used to target a basic set of rules within a given application. Although you can define numerous application specific constraint groups and switch between them at any time, you can reference only one as the default by setting the Wire cyclic field in the Layout Editor Options form (Options Editor...) at any given time. It is important to note, however, that at any given time during routing or wire editing, the rules to apply to specific objects may be derived from a number of different constraint groups, based on specific constraint group lookup precedence.

    Application-specific constraint groups can be stored within the technology database or directly on the design itself (i.e. lib/cell/cellview).Examples: virtuosoDefaultExtractorSetup, virtuosoDefaultSetup, LEFDefaultRouteSpec

    virtuosoDefaultExtractorSetup

    Creation and usage

    Creating the virtuosoDefaultExtractorSetup Constraint Group

    The virtuosoDefaultExtractorSetup constraint group is created during cdb2oa January 2011 14 Product Version 6.1.5

    translation. The lxExtractLayers and lxNoOverlapLayers sections are converted to layers belonging to a constraint group named virtuosoDefaultExtractorSetup.

  • Virtuoso Space-based Router User Guide

    Technology Requirements

    Alternatively, this constraint group may be created by loading an ASCII technology file containing the constraint group section, or through the Process Rule Editor.

    Information in the virtuosoDefaultExtractorSetup Constraint Group

    The virtuosoDefaultExtractorSetup constraint group includes layers needed for extracting connectivity, plus poly, all metal layers, and cut layers.

    Using the virtuosoDefaultExtractorSetup Constraint Group in Virtuoso

    A constraint group for extraction is required to specify the extractable layers for Virtuoso XL/GXL.

    Connectivity extraction gets the constraint group name from the value of the setupConstraintGroup variable in your .cdsenv file. The default value is virtuosoDefaultExtractorSetup. You can change the name of the constraint group by resetting the value.

    If the setupConstraintGroup variable has no value set, the extractor prompts you for a constraint group to use for extraction.

    Note: Cadence does not recommend using the virtuosoDefaultExtractorSetup constraint group as the Wire constraint group in the Wire Editing section of the Layout Editor Options form (Options > Editor...).The purpose of the virtuosoDefaultExtractorSetup constraint group is to supply XL/GXL with the layers from which to extract connectivity. Also, this constraint group will not contain any validVias for the router to use. So, although it is technically possible to set the virtuosoDefaultExtractorSetup constraint group as the Default Constraint Group, which is used for default wiring, it serves a different purpose and will therefore most likely contain validLayers not suitable for wire editing.

    virtuosoDefaultSetup

    The purpose of the virtuosoDefaultSetup constraint group is to supply a default set of constraints for both interactive and automatic routing.

    Creation and usage

    Creating the virtuosoDefaultSetup Constraint Group

    The virtuosoDefaultSetup constraint group is created during the cdb2oa translation using one of the following methods.

    If the CDB techfile includes the iccRules section, the cdb2oa translator automatically translates the rules from the iccRules section to create the virtuosoDefaultSetup January 2011 15 Product Version 6.1.5

    constraint group.

  • Virtuoso Space-based Router User Guide

    Technology Requirements

    If the ASCII VCAR rule file is available during cdb2oa translation, use the -iccrulesfile option of the cdb2oa translator to create the virtuosoDefaultSetup constraint group. The syntax is the following. cdb2oa -iccrulesfile

    Information in the virtuosoDefaultSetup Constraint Group

    The virtuosoDefaultSetup constraint group contains validVias and validLayers for routing (no cut layers), and possibly other rules such as minWidth and minSpacing for the layers, overriding the foundry rules.

    Using the virtuosoDefaultSetup Constraint Group in Virtuoso

    The virtuosoDefaultSetup constraint group is typically used to defined a full set of validLayers and validVias for the purpose of default interactive and automatic routing.

    For example, if any particular signal is selected for routing and does not have a constraint group assigned to it, the constraints in the virtuosoDefaultSetup constraint group apply. The contents of validLayers in virtuosoDefaultSetup are usually a subset of those defined in the virtuosoDefaultExtractorSetup constraint group because, while you may want to extract connectivity for non-metal layers, you do not want interactive and automatic routing to use the non-metal layers.

    The virtuosoDefaultSetup constraint group is the constraint group most commonly used as the default constraint group for routing.

    An application constraint group targets a basic set of rules within a given application. Although you can define numerous application specific constraint groups and switch between them, you can reference only one at any given time.

    The name given the wire editing default constraint group can be anything you choose as a standard. Cadence has chosen virtuosoDefaultSetup as the name of the constraint group created by the cdb2oa translator. You can control the name of the Default Constraint Group from the GUI or by setting an environment variable in the .cdsenv file.

    a. Wire constraint group in the Wire Editing section of the Layout Editor Options form (Options > Editor...).

    b. Environment variable wireConstraintGroup in the .cdsenv file.

    Note: If the wireConstraintGroup variable is not set, interactive and automatic routing use the value of the setupConstraintGroup as the default constraint group. Because the constraint group specified in setupConstraintGroup is for January 2011 16 Product Version 6.1.5

    extraction, you do not want it used for routing. So, be sure to set a default constraint group for routing purposes.

  • Virtuoso Space-based Router User Guide

    Technology Requirements

    LEFDefaultRouteSpec

    The LEFDefaultRouteSpec constraint group contains rule definitions typically used in digital standard cell applications or custom/mixed signal applications that require metal layers only.

    Creation and usage

    Creating the LEFDefaultRouteSpec Constraint Group

    The LEFDefaultRouteSpec constraint group is specific to a LEF/DEF design flow and is created during lef2oa translation. Since a LEF file serves as the library source for technology information, the lef2oa translator puts all the technology information into the LEFDefaultRouteSpec constraint group.

    All layers, via definitions, and layer rules also become part of the LEFDefaultRouteSpec constraint group.

    Note: The lef2oa translator translates any NONDEFAULTRULES in LEF as constraint groups in the OpenAccess tech database.

    Information in the LEFDefaultRouteSpec Constraint Group

    The LEFDefaultRouteSpec contains layer and via definitions. The via definitions are typically standard vias and several custom vias used by other routers such as NanoRoute in the Encounter environment. The LEFDefaultRouteSpec also contains process rules for metal shapes that are wide.

    Using the LEFDefaultRouteSpec Constraint Group in Virtuoso

    You can select the LEFDefaultRouteSpec as the default constraint group for interactive or automatic routing in the Wire Editing section of the Layout Editor Options form (Options > Editor...).

    Taper Constraint Group

    The taper constraint group can be used for several purposes. The primary purpose is to taper the width of a wire to match the width of the pin to which it connects where there is not enough room to connect to the pin with the specified wire width. You can also adjust the widths of taper routing. Many different constraints can be included in the taper constraint group.

    Another purpose is to restrict routing on the poly layer to the taper and set a taperHalo to control the length of the taper routing. See Limiting routing on a layer for more explanation and an example of the syntax. January 2011 17 Product Version 6.1.5

  • Virtuoso Space-based Router User Guide

    Technology Requirements

    Note: Once you specialize the taper constraint group, for example to restricting routing on poly, you cannot use the taper constraint group to also taper the widths of wires on other layers.

    How the Router Uses the Taper Constraint Group

    When you invoke the design, there are three constraint groups the application searches for by default. These constraint groups, whether they are defined in your technology library or not, are specified in the default .cdsenv with the following environment variables.

    layout setupConstraintGroup string "virtuosoDefaultExtractorSetup"

    layout wireConstraintGroup string "virtuosoDefaultSetup"

    layout wireTaperConstraintGroup string "virtuosoDefaultTaper"

    First, the router attempts to route a net using constraints from the net constraint group, design constraint group, and application default constraint group. The precedence order is

    a. net constraint group

    b. application default constraint group

    c. design constraint group

    d. foundry constraint group

    If the router cannot connect to a pin for some reason, it attempts to connect using constraints from the input/output taper constraint group, application default taper constraint group. The precedence order is

    a. input/output taper constraint groups

    b. application taper constraint group

    Some possible reasons the router may not connect to a pin are

    a layer conflict. For example, a poly pin but, poly is not in the validLayers constraint of the net, design, or application default constraint group

    a spacing conflict. For example, the width + spacing of the net is larger than the distance between the target pin and a neighboring pin or blockage

    The taper constraint group is only used when the router cannot connect to a target pin using the regular net/design/default constraints. If the router is able to complete a route using the January 2011 18 Product Version 6.1.5

    regular net/design/default constraints, it does not use the taper constraint group.

  • Virtuoso Space-based Router User Guide

    Technology Requirements

    Defining the Taper Constraint Group

    When routing requires tapering, for best results define a virtuosoDefaultTaper constraint group. Explicitly defining a taper constraint group ensures that the correct layers and widths are being used for the tapered wires. You can control the global taper routing mode using the environment variable setTaperMode.

    When defining the validLayers constraint in your taper constraint group, it is best to include all the layers defined in the validLayers constraint in the Wire constraint group in the Wire Editing section of the Layout Editor Options form.

    Note: If you include all the layers in the validLayers constraint of the taper constraint group, but some of your nets require a more restricted layer set, use the input/output taper constraint groups to reduce the validLayers list for those specific nets. Use the Process Rule Editor to assign the validLayers constraint to the input/output taper constraint groups.

    In the event that the virtuosoDefaultTaper constraint group is not defined, the application will derive a constraint group using values from the wireConstraintGroup which defaults to virtuosoDefaultSetup. If the wireConstraintGroup is not defined, then the application will derive a constraint group from the setupConstraintGroup which defaults to virtuosoDefaultExtractorSetup. However, allowing a different constraint group to be used as the default taper constraint group could result in unexpected results and inappropriate layers or constraints for taper routing.

    Note: If you have a taper constraint group attached to the net and the minWidth defined in that constraint group is greater than the width of the pins, the router may taper down using the minWidth defined in the wire constraint group when connecting to those pins. This optimizes routing for pin connections. The router does not consider the behavior as a violation of the net based constraint group. See the illustration below.

    pin width 0.14

    minWidth 0.14 inwiring constraint group

    minWidth 0.20 in net-basedvirtuosoDefaultTaper constraint groupJanuary 2011 19 Product Version 6.1.5

  • Virtuoso Space-based Router User Guide

    Technology Requirements

    User-Defined Constraint Groups

    User-defined constraint groups are specific to the design or to objects in the design. You may use any name as long as it has not already been used for another constraint group.

    Examples are constraint groups for double width/double space rules, for shielding wires, for setting symmetry constraints, or for a specific layer set.

    Creation and usage

    Non-default constraint groups defined in the technology LEF will be translated as user-defined constraint groups and stored in the technology database.

    You can also create a user-defined constraint group by loading an ASCII technology file that contains a constraint group section, or through the process rule editor.

    You can have any number of user defined constraint groups and you can store them either in the technology database (if you have write permissions) or on the design itself (i.e. lib/cell/cellview). A common example of a user-defined constraint group would be for wide wire rules for a particular set of signals. User-defined constraint groups can be used whenever particular routing considerations need to be applied to signal(s).Note: If you attach a constraint group to a net and the minWidth defined in that constraint group is greater than the width of the pins, the router may taper down using the minWidth defined in the wire constraint group when connecting to those pins. This optimizes routing for pin connections. The router does not consider the behavior as a violation of the net based constraint group.

    Examples: wideWireCG, shieldedWiresCG, onlyM7M8layersCG, etc.

    Storing Constraint Groups

    The foundry constraint group is stored in the OpenAccess technology library database. You can also store any user-defined constraint groups within the technology library database, provided you have write permission to the technology library. This has the advantage of being a centrally accessible location and provides added control over the definitions in the constraint groups.

    Note: Constraint groups defined within the technology library should be generally applicable to any type of design derived from the specific technology.

    Application-specific and user-defined constraint groups can also be stored on the design itself and should be when constraints are not applicable to the entire technology. January 2011 20 Product Version 6.1.5

  • Virtuoso Space-based Router User Guide

    Technology Requirements

    Storing user-defined constraint groups within the technology database enables reuse for anyone accessing that particular technology library.

    Note: You need to have write access to the technology library for setting foundry constraints.

    An application constraint group can be stored within the technology database or directly on the design itself (i.e. lib/cell/cellview).

    Constraint Group Lookup Precedence

    In Virtuoso, the foundry constraint group provides process rules for all objects. However, you can override the rules in the foundry constraint group for specific objects or for the design.

    Multiple constraint groups defining the same constraints can exist in a single technology file. When this is the case, the constraint groups are applied according to the following precedence:

    1. The default constraint group, which is the constraint group currently being referred to by a command and currently applied to the window.

    2. Any setup or other constraint group recognized as the constraint group of first precedence by Virtuoso.

    3. The foundry constraint group. This constraint group must be named foundry.

    Virtuoso searches the constraint groups it recognizes in the order of precedence it has set. It applies the first hard constraint it finds, or, if it searches all of the constraint groups without finding a hard constraint, it applies the first soft constraint it finds. January 2011 21 Product Version 6.1.5

  • Virtuoso Space-based Router User Guide

    Technology Requirements

    The following diagram shows the simplified constraint search hierarchy.

    Override

    Route

    Net

    NetGroup

    Global Net Default(LEFDefaultRouteSpec)

    Design route spec

    Foundry route spec

    TransReflexive Reflexive

    minSpacingcrossTalkNeighborIndex

    oaPreferredRoutingDirection

    minSpacingminWidthvalidRoutingLayersvalidRoutingViasminNumCutminDualExtension*

    (*create_derived_vias only)

    all constraints

    Group Level

    Object Level

    all constraints

    Shape(blockage)

    Region

    minSpacingeffectiveWidth

    Interchild

    all constraints

    minSpacingminWidthvalidRoutingLayersvalidRoutingViasminNumCutoaPreferredRoutingDirectionminDualExtension*

    (*create_derived_vias only)

    minSpacingJanuary 2011 22 Product Version 6.1.5

  • Virtuoso Space-based Router User Guide

    Technology Requirements

    The following table shows constraint group lookup precedence in the Virtuoso Space-based Router. Precedence starts with constraints attached to objects and ends with constraints in the Foundry constraint group.

    For more information, see Getting Started with Virtuoso Unified Custom Constraints and Technology File Constraint Groups and Constraints in the Virtuoso Technology Data ASCII Files Reference.

    ImportantWhen routing a design, it is important to maintain the constraint group definition used for specific nets throughout the routing process. Changing constraint groups on a net can result in unpredictable layers and constraints being applied during routing.

    Scalar Versus Table Spacing Rule Precedence

    When both scalar and table spacing rules exist in the technology database, the rules are applied as follows.

    When both are present in a single constraint group, the first spacing rule found is the one applied. The second one is ignored. This precedence holds true regardless of whether the value is a scalar spacing rule or a table spacing rule.

    When each exists alone in its own constraint group, the scalar value is used as a default regardless of the precedence order. The table values are also used, but only for the larger widths, not the default.

    Entities ExamplesNet

    Net group reflexive, transreflexive, default Application-specific constraint group

    virtuosoDefaultSetup constraint group

    Design constraints specific to this designFoundry process technology rulesJanuary 2011 23 Product Version 6.1.5

  • Virtuoso Space-based Router User Guide

    Technology Requirements

    Virtuoso Space-based Router Supported ConstraintsThe following table shows the constraints supported by the Virtuoso Space-based Router.

    Note: For information about constraints supported by DRD, see Supported Constraints in the Virtuoso Design Rule Driven Editing User Guide. DRD includes options to check for errors during interactive editing or to turn off checking during editing and check for errors after editing the layout.

    Technology Process Rule Constraints Supported byCreate Wire/BusSupported byAutomatic Router

    allowedWidthRanges no yescutClasses no yeshorizontalOffset no yeshorizontalPitch no yeslargeRectViaArrayAllowed no yesmaxDensity no yesmaxDiffDensity no yesmaxFloatingArea no yesmaxLength yes nomaxNumMinEdges no yesmaxWidth yes nominArea yes yesminAreaEdgeLength no yesminCutClassSpacing(two layer) no yesminDensity no yesminDiagonalSpacing yes nominDiagonalWidth yes nominEdgeAdjacentDistance no yesminEdgeAdjacentLength no yesJanuary 2011 24 Product Version 6.1.5

    minEnclosure yes yes

  • Virtuoso Space-based Router User Guide

    Technology Requirements

    minEndOfLinePerpSpacing no yesminEndOfLineSpacing no yesminEndOfLineExtensionSpacing no yesminExtension yes nominExtensionEdge no yesminFillToFillSpacing no yesminHoleArea no yesminLargeViaArrayCutSpacing no yesminLargeViaArraySpacing no yesminLargeViaArrayWidth no yesminLength yes yesminNeighborViaSpacing no yesminNumCut no yesminOppExtension yes yesminOppSpanSpacing no yesminOutsideCornerEdgeLength no yesminParallelSpanSpacing no yesminParallelViaSpacing no yesminParallelWithinViaSpacing no yesminProtrusionNumCut no yesminRectArea no yesminSameMetalSharedEdgeViaSpacing no yesminSameNetSpacing yes yesminSpacing yes yesminWidth yes yesminViaExtension no yes

    Technology Process Rule Constraints Supported byCreate Wire/BusSupported byAutomatic RouterJanuary 2011 25 Product Version 6.1.5

    minViaSpacing no yes

  • Virtuoso Space-based Router User Guide

    Technology Requirements

    minVoltageSpacing(two layer) no yesredundantViaSetback no yesstackable no yestaperHalo no yesverticalOffset no yesverticalPitch no yesviaSpacing no yesviaStackingLimits no yes

    Constraint Manager Constraints Supported byCreate Wire/BusSupported byAutomatic Router

    symmetry yes yesdiffPair yes yesshielding yes yesnet priority no yesprocess rule overrides yes yes

    Technology Process Rule Constraints Supported byCreate Wire/BusSupported byAutomatic RouterJanuary 2011 26 Product Version 6.1.5

  • Virtuoso Space-based Router User Guide3Routing Your Design

    This chapter describes the Virtuoso Space-based Router routing flow.

    The following sections are included:

    Router Features

    Routing Flow

    Engineering Change Order (ECO) Routing Using the Automatic Routing Form

    Design Rule Violations

    Routing Scripts

    Tie Shielding

    Deleting Routes

    Highlighting Locked NetsJanuary 2011 27 Product Version 6.1.5

  • Virtuoso Space-based Router User Guide

    Routing Your Design

    Router FeaturesSpace-based Router provides many features for routing your placed design:

    Gridded or Gridless

    In gridless mode, the edges of all shapes must be on the manufacturing grid.

    In gridded mode, the centerlines and endpoints of route segments must be on a routing grid, and the origins of vias must coincide with the X and Y of a routing grid.

    ECO Routing

    You can perform a sequence of design changes, then use the router to make connections.

    You can select modified nets only for routing by the global and the detail router.

    You can rerun routing after changing design rules for new technology rules.

    Tapering

    Space-based Router will taper when necessary to connect pins. Tapering can be controlled independently by each constraint group.

    Tie-up and Tie-down Routing for Power Connections

    Connecting to a wide poly pin using a narrow metal wire. The full width of the poly pin is used to place vias to reduce the resistance of the connection.

    Data Model

    It is important to note that running the automatic router will change an OpenAccess Data Model 2 or 3 (DM2 or DM3) design to Data Model 4 (DM4). January 2011 28 Product Version 6.1.5

  • Virtuoso Space-based Router User Guide

    Routing Your Design

    Routing FlowThe Space-based Router routing flow includes the following steps:

    Preparation involves setting constraints, or rules, and options for features such as blockages, tapering, and net priorities, to customize your environment.

    Global Route replaces all opens with global routes and re-routes to reduce congestion.

    Local Route escapes pins in the entire top cellview or in a given region or for nets in a set.

    Conduit Route lays down as many wires as possible along routing conduits.

    Detailed Route completes the routing of all nets and resolves violations.

    Post-Route Refinement fixes some violations, re-routes short connections, and removes unnecessary vias.

    Global Route

    The Space-based Router global router replaces all opens with global routes and reduces congestion so that the resulting interconnection closely approximates a legally routed design. The information from the global router can be used to seed the detailed routing stages and provide a good estimation of the detailed routes.

    To localize congestion problems, the design is divided into uniform square areas, called global routing cells, or gcells. Three types of gcells are identified:

    Cell gcells occupy an area of the design

    Edge gcells represent the region between two cell gcells on the same layer

    Down-via gcells represent the region between two cell gcells on different layers

    A gcell is overcongested if the routing demand exceeds its available resources. The number of overcongested gcells is crucial in determining whether the design can be routed without design rule violations. While the goal for the global router is to have no overcongested gcells, due to a variety of approximations and abstractions, it can be possible to route the design when some gcells are overcongested.

    The global router runs a sequence of passes, with a congestion analysis run at the start and end of each pass. In the first pass, the congestion analysis divides the design into gcells and analyzes the gcells to determine their blockages and capacity. Following this step, the router updates the net connectivity of the design, creates guides where opens occur. Next, the January 2011 29 Product Version 6.1.5

    router replaces the guides with global routes comprised of route segments and vias. Finally, the router will re-route global routes to reduce congestion in overcongested gcells. Detailed

  • Virtuoso Space-based Router User Guide

    Routing Your Design

    routes are not modified, but portions of detailed routes can be deleted to remove antennas (dangling routes). For each pass, the routing summary reports guide lengths and wire lengths for detailed and global routes. The congestion summary reports the number of gcells by layer and gcell type, and the number of overcongested gcells.

    The Space-based Router global router differs from other global routers in several ways. First, it uses a detailed routing representation that provides very accurate estimations for via counts and wire lengths. Global routes behave exactly like detailed routes, but global routes can contain shorts. Second, the router uses a sophisticated resource model that accurately measures resource usage and demand, which allows the router to handle incremental net list changes without excessive detouring. Finally, the router was built to be incremental in every way. Besides simply and naturally completing net list changes, it can work off of pre-routed designs containing any mixture of global routes, detailed routes, and guides.

    Local Route

    In the local route step, Space-based Router escapes pins in the entire top cellview or for nets in a set. Metal1 and poly pins are escaped to Metal2.Any disconnect between the ends of the new connections and the existing global routes are connected with guides to keep the connectivity legal.

    Conduit Route

    In the conduit route step, Space-based Router assigns tracks for the globally routed design and, guided by the global routes, lays down as many wires as possible along routing conduits. On completion of this step, guides indicate where connections need to be completed in the detail route stage. Space-based Router strives to make these guides short in length and ensure that spacing violations can be easily corrected in the final step.

    Detailed Route

    During detailed routing, Space-based Router runs multiple passes in cycles to complete the routing of all nets and resolve violations. The initial passes of cycle one attempt to connect all the unroutes and resolve certain violations (different net and same net spacing, minimum area, grids and weak connects). Subsequent routing passes modify the routed wiring using rip-up and retry methods that strive to continuously improve overall results. Additional cycles deal with any remaining DRC violations including same net violations, minimum width, minimum area and minimum enclosed area violations.January 2011 30 Product Version 6.1.5

  • Virtuoso Space-based Router User Guide

    Routing Your Design

    Post-Route Refinement

    In post-route refinement, Space-based Router checks for and attempts to fix specific types of violations by ripping up wiring and re-routing. In addition, wiring can be improved by re-routing short connections and removing unnecessary vias.

    Engineering Change Order (ECO) RoutingECO routing completes partial routes while maintaining the existing wire segments as much as possible and is useful in cases such as the following:

    The initial routing is completed and minor changes have been made to a design.

    The design has general spacing or connectivity violations.

    ECO routing does the following:

    Deletes all shapes, but not nets, to resolve spacing violations, leaving guides for the opens.

    Completes routing on the nets to close the opens. January 2011 31 Product Version 6.1.5

  • Virtuoso Space-based Router User Guide

    Routing Your Design

    Using the Automatic Routing Form Choose RouteAutomatic Routing or the Automatic Routing icon from the Routing

    toolbar.

    The Automatic Routing form displays. The top-level form contains all the information that a designer would require to set basic operations.January 2011 32 Product Version 6.1.5

  • Virtuoso Space-based Router User Guide

    Routing Your Design

    Specifying General Options1. Choose the area that you want to Operate On:

    Cellview

    Routes the entire design.

    Selected Set

    Routes the nets which are selected from the Navigator or the Search Assistant of the type selected in the Route Nets of Type option.

    Note: To perform routing operations within a block, first descend into the instance then select the nets to route. The router recognizes nets selected in the descended cellview only.

    2. Choose the routing style

    Device

    ASIC

    Chip Assembly

    3. Choose the default constraint group for routing. By default, the virtuosoDefaultExtractorSetup constraint group is used, if defined inside the technology file.

    virtuosoDefaultExtractorSetup

    LEFDefaultRouteSpec

    virtuosoDefaultSetup

    virtuosoDefaultTaper

    VLMDefaultSetup

    4. Choose the routing layer

    Choose the Top Layer for routing from the drop-down list.

    Choose the Bottom Layer for routing from the drop-down list.

    The selected layers need to i


Recommended