Вы находитесь на странице: 1из 231

Ultra Router Reference

Product Version 2.3


December 2005

1999-2005 Cadence Design Systems, Inc. All rights reserved.


Printed in the United States of America.
Cadence Design Systems, Inc., 555 River Oaks Parkway, San Jose, CA 95134, USA
Trademarks: Trademarks and service marks of Cadence Design Systems, Inc. (Cadence) 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.
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.
All other trademarks are the property of their respective holders.
Restricted Print Permission: This publication is protected by copyright and any unauthorized use of this
publication may violate copyright, trademark, and other laws. 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. This statement grants you permission to
print one (1) hard copy of this publication subject to the following conditions:
1. The publication may be used solely for personal, informational, and noncommercial purposes;
2. The publication may not be modified in any way;
3. Any copy of the publication or portion thereof must include all original copyright, trademark, and other
proprietary notices and this permission statement; and
4. Cadence reserves the right to revoke this authorization at any time, and any such use shall be
discontinued immediately upon written notice from Cadence.
Disclaimer: Information in this publication is subject to change without notice and does not represent a
commitment on the part of Cadence. The information contained herein is the proprietary and confidential
information of Cadence or its licensors, and is supplied subject to, and may be used only by Cadences customer
in accordance with, a written agreement between Cadence and its customer. 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.

Ultra Router Reference

Contents
About This Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Conventions Used in This Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Related Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11
11
12
13

1
Introduction to the Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
About Silicon Ensemble Routing Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Router Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How the Router Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Where the Router Fits into the Silicon Ensemble Flow . . . . . . . . . . . . . . . . . . . . . . .
Routing Phases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Incremental Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Timing-Driven Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Shielded Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16
16
19
21
23
25
26
26

2
Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Providing Sufficient Virtual Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Prerouting Special Nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The Router Input and Output Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Preparing the LEF and DEF Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Wire Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fixing the Location of Prerouted Regular Nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuring the Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Determining the Version of the Router You Are Running . . . . . . . . . . . . . . . . . . . . . . . . .
.....................................................................

December 2005

30
30
31
32
33
33
34
34
34

Product Version 2.3

Ultra Router Reference

3
Using the Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Starting the Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Running 64-bit Version of Wroute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stopping the Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Checking Congestion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Checking Congestion with the Congestion Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Checking Congestion with the Log File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Performing Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Routing the Design with the WRoute Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setting the Options on the WRoute Options Form . . . . . . . . . . . . . . . . . . . . . . . . . . .
Routing the Design with the WROUTE Command . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tuning for Routability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Performing Shielded Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Specifying Preferred Routing Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Repairing Crosstalk Violations with the Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tuning Timing-Driven Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Resolving Local Congestion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Routing Wide Wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Generating Vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Stacked Vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Minimum Area Rule Vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Double-Cut Vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Defining MAR and Double-Cut Vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Multiple Vias when Connecting to Shapes of a Specified Width . . . . . . . . . . .
Additional Tuning Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Saving the Best of Multiple Runs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Timing Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
When Both CTLF and LEF Timing Libraries Exist . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating SDF Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Understanding How the Router Calculates Delays . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Types of Delays Calculated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Path Constraints Control the Delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How the Router Calculates Slew Rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

December 2005

36
36
36
37
37
38
38
39
41
43
43
44
45
45
46
47
47
47
48
48
49
49
50
50
51
52
52
53
53
54
54
55

Product Version 2.3

Ultra Router Reference

4
Calculating and Fixing
Process Antenna Violations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
What Are Process Antennas? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
What Is the Process Antenna Effect (PAE)? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
What Is the Antenna Ratio? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
What Can Be Done to Improve the Antenna Ratio? . . . . . . . . . . . . . . . . . . . . . . . . . .
What is the Process Antenna Flow? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Process Antenna Keywords in the LEF and DEF Files . . . . . . . . . . . . . . . . . . . . .
Calculating Antenna Ratios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Calculating the Antenna Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Calculating a PAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Calculating a CAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Calculating Ratios for a Cut Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Checking for Antenna Violations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Area Ratio Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Side Area Ratio Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cumulative Area Ratio Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cumulative Side Area Ratio Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example Using the Antenna Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fixing Antenna Violations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Changing the Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Inserting Antenna Diode Cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using DiffUseOnly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Preparing Your Library for Antenna Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Process Antenna Configuration Options and Environment Variables . . . . . . . . . . . . . . .
Calculations for Hierarchical Designs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LEF and DEF Keywords for Hierarchical Designs . . . . . . . . . . . . . . . . . . . . . . . . . . .
Design Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Top-Down Hierarchical Design Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

December 2005

60
61
62
63
63
64
65
66
67
68
73
80
82
83
83
84
85
86
87
87
88
89
91
91
92
92
92
95

Product Version 2.3

Ultra Router Reference

5
The WROUTE Command and the Environment Variables . . 97
The WROUTE Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Environment Variables and Configuration File Options . . . . . . . . . . . . . . . . . . . . . . . . . 100
When You Use the GUI Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
When You Use Text Commands on the Command Line . . . . . . . . . . . . . . . . . . . . . . 101
Case Sensitivity of the Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Environment Variable Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
FRoute.Manufacturing.XGrid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
FRoute.Manufacturing.YGrid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Input.Comment.Delimiter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Input.LEF.Stacking.OFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Rule.ClearanceMeasure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Verify.Antenna.Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Verify.Antenna.SumGateArea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
WRoute.Addition.LefName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
WRoute.Allow.Port.Shorts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
WRoute.Antenna.Cell.Pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
WRoute.Assign.RoutingDir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
WRoute.Auto.Stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
WRoute.AutoSave.Interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
WRoute.BottomLayer.Limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
WRoute.Extra.Config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
WRoute.Final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
WRoute.Fix.AntennaPass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
WRoute.GGridMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
WRoute.Global . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
WRoute.Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
WRoute.Incremental.Final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
WRoute.Incremental.Global . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
WRoute.Input.DbName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
WRoute.LEFFile.Reuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
WRoute.MaxStackPages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

December 2005

Product Version 2.3

Ultra Router Reference

WRoute.Modify.PreroutePass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WRoute.Optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WRoute.Output.DbName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WRoute.Output.DefName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WRoute.Pin.Access.Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WRoute.Prefer.OnGrid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WRoute.Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WRoute.Route.Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WRoute.RunTimeLimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WRoute.SearchRepair . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WRoute.SelectNet.First . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WRoute.SelectNets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WRoute.SoftRuleRelaxPass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WRoute.Taper.Distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WRoute.Timing.Driven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WRoute.Timing.Fall.Transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WRoute.Timing.Net.Percentage.Delta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WRoute.Timing.Rise.Transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WRoute.Timing.Use.Est.Cap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WRoute.TopLayer.Limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

131
132
133
134
135
141
142
144
145
146
147
148
150
151
152
153
154
155
156
157

A
The Router Journal (Log) File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Starting Up and Setting Environmental Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Processing Options for This Run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Checking Licenses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reading In LEF and DEF Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Global Routing: Building Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Global Routing: Routing Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Global Routing: Optimizing Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Final Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Final Routing: Search and Repair . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Writing Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Summarizing the Run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reading Back the Database to Silicon Ensemble . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

December 2005

160
160
162
162
163
164
165
165
166
168
168
169

Product Version 2.3

Ultra Router Reference

Message Summary

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

B
Running the Router in Standalone Mode and Using the
Configuration File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Starting the Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stopping the Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Configuration File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setting the Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Case Sensitivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Checking for Available Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Multiple Instances of an Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Checking Option Values for a Given Run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Comments to Customize the Configuration File . . . . . . . . . . . . . . . . . . . . . . .
Table of Configuration Options and Environment Variables . . . . . . . . . . . . . . . . . . . . . .
Configuration Option Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
frouteAntennaCellSelection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
frouteAntennaTopLayerLimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
frouteConcurrentViaOptimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
frouteDoubleCutFirst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
frouteDoubleCutFirstRelaxPass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
frouteMinHoleArea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
frouteNumSearchRepairPass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
frouteOptimizeNumCutLimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
frouteOptimizeViaResOnly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
frouteSoftRuleRelaxPass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
frouteSpacerCellSelection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
frouteTaperPinSelection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
frouteUseRangeRule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
frouteXtalkThreshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
grouteDiscouragePlanarRouting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
grouteGgridMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
grouteStarClusterImbalance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
grouteStarClusterSize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
grouteStarNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

December 2005

172
172
174
174
174
175
175
175
175
176
180
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198

Product Version 2.3

Ultra Router Reference

grouteStarRatio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
include . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
inputDbName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
inputDefName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
inputECO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
inputECODefName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
inputGCFConstraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
inputGCFTimingLibraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
inputLefName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
inputViaGenMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
licenseMultiThreadOnly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
outputDbName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
quickMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
routeAllowGapFillOverlap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
routeAllowSameNetNotch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
routeAutoHalfGridThreshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
routeChipAssemblyMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
routeDetectFeedThru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
routeLayerRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
routeOnGridViaOnly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
routeOnGridViaThreshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
routeOnGridViaUpperThreshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
routeSelectNetLayerRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
routeSoftTopLayerLimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
routeStraightenNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
routeStripeCenterConnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xtalkFixNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xtalkRule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xtalkRuleThreshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

December 2005

199
200
201
202
203
204
205
206
207
208
209
210
212
213
214
215
216
217
218
219
220
221
222
223
224
226
227
228
230

Product Version 2.3

Ultra Router Reference

December 2005

10

Product Version 2.3

Ultra Router Reference

About This Manual


The Cadence Ultra Router is a signal router used in the Cadence Silicon Ensemble and
Cadence Encounter family of products. This manual describes how to use the router in both
graphical and text modes, and how to run it in standalone mode.

Audience
This manual is written for experienced designers of digital integrated circuits. Such designers
must be familiar with design planning, placement and routing. Designers must also have a
solid understanding of UNIX.

Chapter Summary

Chapter 1, Introduction to the Router


Describes router features and how the router works.

Chapter 2, Getting Started


Describes router requirements, input file preparation and how to determine the version
of the router you are running.

Chapter 3, Using the Router


Describes how to start and stop the router, how to perform routing, check congestion,
and tune your design for routability. The chapter also describes some timing
considerations and how the router calculates delays.

Chapter 4, Calculating and Fixing Process Antenna Violations


Describes how the router calculates process antenna ratios, performs antenna checks,
and repairs process antenna violations. The chapter also describes how to use the
antenna configuration options, environment variables, and LEF and DEF antenna
keywords.

Chapter 5, The WROUTE Command and the Environment Variables


Describes the Silicon Ensemble environment variables the router uses.

December 2005

11

Product Version 2.3

Ultra Router Reference


About This Manual

Appendix A, The Router Journal (Log) File


Includes a sample of a journal file, with an explanation of each section of the file.

Appendix B, Running the Router in Standalone Mode and Using the Configuration File
Describes how to run the router in standalone mode and the router configuration options
that do not have affiliate Silicon Ensemble environment variables. The chapter also
includes a table that lists the Silicon Ensemble environment variables and the affiliate
router configuration options.

Conventions Used in This Manual


text

Indicates text that you must type exactly as shown. For


example:
analyze_connectivity -analyze all

text

Indicates information for which you must substitute a name


or value.
In the following example, you must substitute the name of a
specific file for configfile:
wroute filename configfile

text

[ ]

Indicates the following:

Text found in the graphical user interface (GUI),


including form names, button labels, and field names

Terms that are new to the manual, are the subject of


discussion, or need special emphasis

Titles of manuals

Indicates optional arguments.


In the following example, you can specify none, one, or
both of the bracketed arguments:
command [-arg1] [arg2 value]

[ | ]

Indicates an optional choice from a mutually exclusive list.


In the following example, you can specify any of the
arguments or none of the arguments, but you cannot
specify more than one:
command [arg1 | arg2 | arg3 | arg4]

December 2005

12

Product Version 2.3

Ultra Router Reference


About This Manual

{ | }

Indicates a required choice from a mutually exclusive list.


In the following example, you must specify one, and only
one, of the arguments:
command {arg1 | arg2 | arg3}

{[ ] [ ]}

Indicates a required choice of one or more items in a list.


In the following example, you must choose one argument
from the list, but you can choose more than one:
command {[arg1] [arg2] [arg3]}

{ }

Indicates curly braces that must be entered with the


command syntax.
In the following example, you must type the curly braces:
command arg1 {x y}

...

Indicates that you can repeat the previous argument.

.
.
.

Indicates an omission in an example of computer output or


input.

Command Subcommand

Indicates a command sequence, which shows the order in


which you choose commands and subcommands from the
GUI menu.
In the following example, you choose Route from the
menu, then Wroute from the submenu.
This sequence opens the Wroute form.

Related Documents
For information about related Cadence tools, file formats, and design flows you might use with
the router, you can consult the documents listed here. You can access these and other
Cadence documents using the Cadence online documentation system (CDSDoc).

Abstract Generator User Guide

capRulesGen Capacitance Coefficient Generator User Guide

CeltIC User Guide

Clock Tree Generator (CT-Gen) User Guide

Delay Calculation Algorithm Guide

December 2005

13

Product Version 2.3

Ultra Router Reference


About This Manual

General Constraint Format Reference

HyperExtract Parasitic Extractor User Guide

LEF/DEF Language Reference

Netlist Comparator User Guide

Pearl Timing Analyzer User Guide

Silicon Ensemble Text Command Reference

Silicon Ensemble Menu Command Reference

Silicon Ensemble Getting Started Guide

Synthesis Place-and-Route Flow Guide

Timing Library Format Reference

Ultra Placer Reference

December 2005

14

Product Version 2.3

Ultra Router Reference

1
Introduction to the Router
The Cadence Ultra Router and Wroute Router quickly route placed components using
information described in Library Exchange Format (LEF) and Design Exchange Format
(DEF) files, options set in a configuration file or environmental variables set in Cadence
Silicon Ensemble, and optional timing library format (TLF) data for timing-driven routing.
This chapter contains the following sections:

About Silicon Ensemble Routing Technology on page 16

Router Features on page 16

How the Router Works on page 19.

December 2005

15

Product Version 2.3

Ultra Router Reference


Introduction to the Router

About Silicon Ensemble Routing Technology


Cadence provides two levels of routing technology in the Silicon Ensemble environment:

Wroute Router
This router performs both global and detailed routing of signal and clock nets on up to
six metal layers. It runs in standalone mode or integrated with Silicon Ensemble-DSM.
You can run Wroute Router from the command line or from the Silicon Ensemble menu.

Ultra Router
This router extends the performance and speed of Wroute Router to nine routing layers
and has shielded routing capability. In addition, if you have a license for Silicon
Ensemble-PKS or one of the products in the Cadence Encounter family and multithread routing (MTR) licenses, you can use the router for multi-thread routing.
Ultra Router runs in standalone mode or integrated with the following products:

Silicon Ensemble-Ultra

Silicon Ensemble-PKS

Cadence Encounter family

You can run Ultra Router from the command line or from the menu. A license check
determines whether the interface runs Ultra Router or Wroute Router.
Important
Throughout this manual, the term the router refers to both Wroute Router and Ultra
Router; and when it is used to describe features and behaviors, those features and
behaviors apply to both Wroute Router and Ultra Router, unless noted otherwise.
For information on using Silicon Ensemble routing commands that are not part of Ultra Router
or Wroute Router, see the Silicon Ensemble Text Command Reference or the Silicon
Ensemble Menu Command Reference.
For information about LEF and DEF, see the LEF/DEF Language Reference.

Router Features
The router has the following features and capabilities:

December 2005

16

Product Version 2.3

Ultra Router Reference


Introduction to the Router

Support for Library Exchange Format (LEF) and Design Exchange Format (DEF)
versions 5.6, 5.5, and 5.4.

Limited support of version 5.6 45-degree angle routing


Ability to avoid basic 45-degree routes and polygons without causing DRC
violations.

Important
To use LEF and DEF versions 5.5 and 5.6, you must have a license for one of the
products in the Cadence Encounter family.

Shielded routing
Shielded routing helps you avoid crosstalk-induced errors in your design. To alleviate
crosstalk, you tell the router which nets to shield and whether to use power wires, ground
wires, or both as shield wires for the crosstalk-susceptible nets. The router generates
shield wires on either side of the nets and connects them to the power nets as
appropriate. You can route the shielded nets before the rest of the nets, or route all the
nets at the same time.
When using Silicon Ensemble, you can set up shielded routing with the Silicon Ensemble
Edit Properties form, or by editing your DEF file. When using Encounter, you can set up
shielded routing by editing your DEF file. For details, see Performing Shielded Routing
on page 44.

Ability to honor a wider wire via overhang rule for tie high/tie low connections
You can define specific via overhang rules when connecting to wide wires. For example,
you can define a rule for overhangs equal to or greater than 0.05 m for wires less than
10m wid, and overhangs equal to or greater than 0.75m for wires equal to or greater
than 10m. The router then connects tie high and tie low nets to the center of existing
power and ground routing, such as stripes or rings. The configuration option that
addresses this feature is routeStripeCenterConnect.

Ability to honor a wire extension rule at a 90-degree corner (jog) with via
As via enclosures get very small, they require a wire extension at the end of the via.
Additionally, the foundry also requires a wire extension when a routing layer makes a jog
and a via exists at the turn of the jog.

Support for up to nine routing layers

Support for timing-driven global and final routing, with up to 100 percent of the nets
constrained

Support for prerouted nets (ECO routing) and for incremental routing

December 2005

17

Product Version 2.3

Ultra Router Reference


Introduction to the Router

Automatic search-and-repair in final routing

Support for off-grid pins


The router preprocesses libraries with off-grid pins and finds the best location to connect
to the pin geometries without creating violations in neighboring geometries. This feature
improves the routers speed two to three times in handling off-grid libraries.

Avoidance of process antenna violations


During deep submicron wafer fabrication, gate damage can occur when a conducting
layer discharges, passing current through a gate. If the area of the layer connected
directly to the gate or connected to the gate through lower layers is large relative to the
gate size, the current that is discharged damages the gate. This is called a process
antenna violation. The router automatically avoids this problem by detecting antenna
violations and correcting them automatically.

Support for routing of selected nets or specified areas


You can specify the nets to route and the area to be routed. You can also specify the
order in which the nets are routed, for example, clock nets first and then the remaining
nets.

Support for automatic routing direction assignment along channels


The router minimizes congestion in mixed cell and block three-layer designs by
automatically tuning the routing directions in the channels between blocks. This feature
is useful, for example, in a design with many blocks. In such a design, there can be
channel congestion between blocks because the preferred routing tracks are
perpendicular to the channel orientation. The router reassigns the preferred routing
direction appropriately for channel orientation.

End-of-line wire extension rules at vias


In traditional technology, a metal enclosure via is a square via, and the width of the metal
layer in the via is larger than the minimum width of the corresponding metal wire. To
increase routing density, the new technology allows the width of the metal layer in the
metal enclosure via to be the same as that of the corresponding metal wire. To satisfy
the metal enclosure rule for the cut layers, however, the metal layers must extend beyond
the normal half-width of the wire. Because photolithography underexposes the ends of
long, thin metal lines, the actual wires will be slightly shorter than the drawn wires.
To solve this problem, the router supports end-of-line wire extension rules.

No wire extension rule at pins


Previously, the router extended all regular wire segments by a half-width at each end.
This could cause a problem for libraries with port geometries smaller than the default

December 2005

18

Product Version 2.3

Ultra Router Reference


Introduction to the Router
wire width. If a violation occurred between the end of a wire segment and an obstruction,
one of the following could occur:

The router might not recognize the violation.

The router might not be able to find a clean connection to a port with limited access
points.

To solve this problem, the router supports a no-wire-extension rule at pins.

Support for automatic tapering for wide wire routing


The router switches to the default rule if accessing a pin with wide wires causes a
violation.

Support for OpenAccess version 2.2


Important
To read in, or write to, an OpenAccess database, you must have a license for one of
the products in the Cadence Encounter family. For more information, see
inputDbName and outputDbName.

Support for rectilinear die area


Wroute routes within the rectilinear area. However, geometric shapes (such as
blockages, pins, and special net routing) can be outside of the die area, to allow proper
modeling of pushed down routing from top-level designs into sub blocks.

Support for via generation


Vias are classified by the number of cuts they contain. Within the same number of cuts,
vias are further divided into two groups: regular and minimum area rule (MAR) vias.
During via generation, Wroute examines each via group. If a via is defined for a particular
group, that group is not touched. Wroute generates any missing regular via groups, if
there is a matching via rule. For MAR via groups, Wroute creates only single cut vias.
The configuration option that addresses this feature is inputViaGenMode. For more
information, see Generating Vias on page 47.

How the Router Works


This section describes the routing process and shows where routing fits into the design flow.
It contains the following sections:

Where the Router Fits into the Silicon Ensemble Flow on page 21

Routing Phases on page 23

December 2005

19

Product Version 2.3

Ultra Router Reference


Introduction to the Router

Incremental Routing on page 25

Timing-Driven Routing on page 26

Shielded Routing on page 26

December 2005

20

Product Version 2.3

Ultra Router Reference


Introduction to the Router

Where the Router Fits into the Silicon Ensemble Flow


The following figure shows where the router fits into a design flow. The figure is based on a
timing-driven flow using system-level constraints (SLCs). Routing and signal integrity fixing
with the router are highlighted in the figure and described in this manual.
Important
To perform some of the actions listed in the flow diagram, you must have a license
for Silicon Ensemble-PKS.

December 2005

21

Product Version 2.3

Ultra Router Reference


Introduction to the Router
Routing and postrouting signal integrity fixing are highlighted in the figure and described in
this manual. To read about the other processes and the formats you use in the design flow,
see the documents listed in Related Documents on page 13.

Import Library Files


Import Design Data
Create Floorplan
Plan Power
Check Timing
Place Cells
Analyze Timing, SI, Power
Create Clock Trees
Analyze Skew, Timing, Power
Optimize Timing, SI
Route Chip
Extract Parasitics
Analyze SI, Timing
Fix SI Problems
Verify Chip
Analyze Timing
Export Data

December 2005

22

Product Version 2.3

Ultra Router Reference


Introduction to the Router

Routing Phases
A full routing pass consists of global routing, final routing, and search-and-repair routing.
Global Routing
During this phase, the router breaks the design into rectangles called global routing cells
(gcells). It finds connections for the regular nets defined in the NETS section of the DEF file
by assigning them to the gcells. The goals of global routing are to distribute and minimize
congestion and to minimize the number of gcells that have more nets assigned than routing
resources available. Global routing has two subphases:

Initial global routing, during which the router completes all the connections. During this
subphase, the router makes a rough plan for the nets by creating connections in the
preferred routing direction without making any optimizations.

Global optimization routing, during which the router revises the connections until the
available routing tracks are used evenly across the design, wire length is as short as
possible, and the use of vias is minimized. Optimization is an iterative process which
includes several passes.

During global routing, the router also updates the congestion map. In some cases, you might
choose to run global routing solely to update the congestion map.
Note: The global router is conservative when determining open and blocked tracks. If any
portion of a track is blocked, the global router considers the entire track to be blocked.
The following figure represents a portion of a floorplanned design broken into gcells. The
shaded area represents a path chosen by the global router.

December 2005

23

Product Version 2.3

Ultra Router Reference


Introduction to the Router
Final Routing
During this phase, the router follows the global routing plan and lays down actual wires that
connect the pins to their corresponding nets. The primary goal of final routing is to complete
all of the required interconnect without creating shorts or spacing violations. Unlike the global
router, however, the final router is not conservative. It will create shorts or spacing violations
rather than leave unconnected nets. Final routing stops automatically if it exceeds the time
limit you set for routing, or if it cannot make further progress on routing the design.
After final routing, the router automatically runs search-and-repair routing, unless you specify
otherwise.
Final routing has these subphases:

The router builds the data from the global routes. You must run global routing before final
routing.

The router divides the chip into areas called switch boxes (SBoxes), which align with the
gcell boundaries. The SBoxes overlap with each other, and their size and amount of
overlap might vary during search-and-repair iterations.

The router runs final routing over the design, one SBox at a time.

Final routing stops if one of the following conditions is met:

No violations remain on the chip

Run-time limit is exceeded

The router cannot improve the results

December 2005

24

Product Version 2.3

Ultra Router Reference


Introduction to the Router
The following figure represents a portion of a design with both global and final routes. The
line within the shaded area represents the tracks assigned to the route by the final router.

Search-and-Repair Routing
During this phase, the router locates shorts and spacing violations and reroutes the areas to
eliminate the violations and the shorts. If necessary, the router propagates shorts toward less
congested parts of the design by replacing difficult shorts with others on the boundaries of
the areas, where they are easier to resolve.
You can run search and repair on a final routed design only.

Incremental Routing
During incremental routing, the router makes additional passes on a routed design, and
makes changes to make the design more efficient.

During global incremental routing, the router removes the routes for nets that cause
violations and reroutes them. For example, if final routing cannot remove all violations,
you can run global incremental routing to reroute the problem nets entirely.

During final incremental routing, the router runs final routing on a routed design that has
already had at least one final routing pass. For example, if the final routing pass exceeds
the time limit you set before it removes all violations, you can run final incremental routing
to remove the remaining violations.

December 2005

25

Product Version 2.3

Ultra Router Reference


Introduction to the Router

Timing-Driven Routing
During timing-driven routing, the router routes nets based on their timing criticality. It routes
the most timing-critical nets first, to achieve the shortest routes.
The router modifies its priorities during the routing process. For example, if the router places
a net low on the priority list, but later realizes that the net must be routed more directly to meet
timing constraints, it changes its priorities and routes the net sooner than others. It also
considers the layers RC values when determining how to route timing-critical nets.

Shielded Routing
During shielded routing, the router generates a shield and connects it to the preroute in the
special net. The router can route shielded nets before routing the rest of the nets, or it can
route all the nets at the same time.
After it routes signal nets, the router generates the shield, using the default routing rule. When
part of a shield goes under or over the preroute of the corresponding special net, the shield
can be connected to it using a via.
To use the router to perform shielded routing, you must have a license for Silicon EnsembleUltra or Silicon Ensemble-PKS.
If you do not have the proper license or if the router cannot connect the shield to the preroute,
the software displays an error message.

December 2005

26

Product Version 2.3

Ultra Router Reference


Introduction to the Router
The following figure shows a net that is shielded with a VSS net on one side and a VDD net
on the other side. The shield nets are open ended.

Stripes

VSS shield net

Cell

Shielded net

VDD shield net

For instructions on performing shielded routing, see Performing Shielded Routing on


page 44.

December 2005

27

Product Version 2.3

Ultra Router Reference


Introduction to the Router

December 2005

28

Product Version 2.3

Ultra Router Reference

2
Getting Started
This chapter contains the following sections:

Providing Sufficient Virtual Memory on page 30

Prerouting Special Nets on page 30

The Router Input and Output Files on page 31

Configuring the Router on page 34

Determining the Version of the Router You Are Running on page 34

December 2005

29

Product Version 2.3

Ultra Router Reference


Getting Started

Providing Sufficient Virtual Memory


The router has dynamic memory allocation. Sometimes you might have to decrease the boot
size for Silicon Ensemble so the router can complete the routing. For example, if you are
using a machine with 200 MB of virtual memory and you want to leave 50 MB available for
the router, start Silicon Ensemble with one of the following commands, depending on your
license:

If you have a license for Silicon Ensemble-DSM, type


sedsm -m=150

If you have a license for Silicon Ensemble-Ultra, type


seultra -m=150

If you have a license for Silicon Ensemble-PKS, type


sesi -m=150

These commands allocate 150 MB of virtual memory to Silicon Ensemble and 50 MB to the
router. If the router needs more than 50 MB of virtual memory, it will fail.
If the router fails, decrease the boot size for Silicon Ensemble to allocate more memory to the
router.
Important
If the router does not find enough virtual memory, it might not generate an error
message or warning. If it fails without reporting an error message or warning, it will
report a segmentation violation in the UNIX window where you started Silicon
Ensemble.

Prerouting Special Nets


The router does not route special nets, such as power and ground nets. You must route
special nets before you run the router.
When using Silicon Ensemble, see the Silicon Ensemble Text Command Reference or
the Silicon Ensemble Menu Command Reference for descriptions of routing commands
for special nets.
See also Fixing the Location of Prerouted Regular Nets on page 33, for information on
prerouted nets.

December 2005

30

Product Version 2.3

Ultra Router Reference


Getting Started

The Router Input and Output Files


Silicon Ensemble provides the input files the router requires. The files can come from the
following sources:

The Library Exchange Format (LEF) and placed Design Exchange Format (DEF) files for
your design

A previously created database for your design (created with your current version of the
router)

For timing-driven routing, timing data in General Constraint Format (GCF)

The router creates the following output files:

A binary database that contains the routed data


By default, the router stores the database in ./wroute.wdb.

A journal (log) file


The router creates an ASCII log, or journal, file in the working directory. The journal file
records

Design session events

Commands issued

Messages returned

Each design session has a unique journal file. You must delete journal files manually; the
system does not delete them automatically.

If you are running the router in standalone mode, the router saves the file as
wr*.log in the current directory.

If you are running the router integrated with Silicon Ensemble, the software saves
the file as se*.jnl in the current directory.

Important
If you find a software error, or if the session terminates abnormally, save the journal
file and any existing database files. You can use the journal file to isolate design and
software problems.
For a detailed description of the journal file, see The Router Journal (Log) File on
page 159.

December 2005

31

Product Version 2.3

Ultra Router Reference


Getting Started

Preparing the LEF and DEF Files


In general, Cadence tools generate LEF and DEF files with appropriate settings for the
router. You can edit the files with a text editor.
Note: For shielded routing, you must use LEF and DEF version 5.3 or later.
Describing Special Nets in the DEF File
Follow these guidelines when you describe special nets in the DEF file:

In the NETS section, describe tie high/tie low pins in the power and ground net
descriptions.

In the SPECIALNETS section, describe

Partially or specially routed power, ground, and clock nets

Power and ground pins

In both the SPECIALNETS and the NETS sections, make sure that

All clock nets are marked + USE CLOCK

All power nets are marked + USE POWER

All ground nets are marked + USE GROUND

Note: If you use the same net name for pins in the NETS section and a net in the
SPECIALNETS section, the router connects the pins in the NETS section to the net in the
SPECIALNETS section that has the same net name.
Preparing the LEF file

Certain LEF keywords cannot be used with a license for Silicon Ensemble-DSM. You
must have a license for Silicon Ensemble-Ultra or Silicon Ensemble-PKS to use the
following keywords in your LEF layer statement:

MINIMCUT

INFLUENCE

AREA

RANGE RANGE

Regenerate the LEF file from Silicon Ensemble if one of the following conditions is true:

December 2005

32

Product Version 2.3

Ultra Router Reference


Getting Started

Blockages have been added to the database

Blockages are stored in a special macro cell that is referenced in the DEF file

The original LEF file does not contain blockages that were added by the ADD
BLOCKAGE command

LENGTHTHRESHOLD rules are not designed for signal-integrity avoidance. To avoid


signal integrity effects with the router, use the xtalkRule or frouteXtalkThreshold
options. For information, see xtalkRule on page 228 and frouteXtalkThreshold on
page 193.
The router is more conservative than some other tools. It applies length threshold
spacing rules to pins, obstructions, or vias, but not to wire-to-wire spacing.

For more information about LEF and DEF files, see the LEF/DEF Language Reference.

Using Wire Extensions


Use wire extensions to avoid current flow problems caused by manufacturing errors around
vias. The errors occur in advanced process technologies when the width of the metal layer in
the metal enclosure via is the same as the minimum width of the metal wire, with no allowance
for the rounded corners created by etching and photolithography. In traditional process
technologies, the rounded corners are not a problem because the vias are larger than the
wires.
To use wire extensions:

Add WIREEXTENSION statements to the LAYER and NONDEFAULTRULE sections of the


LEF file.

Specify the wire extension amount in the NETS section of the DEF file.

For more information, see the description of WIREXTENSION in the NONDEFAULTRULE


statement in the LEF/DEF Language Reference.

Fixing the Location of Prerouted Regular Nets


You can preroute regular nets and fix their locations to prevent the router from moving them.
To fix the location of a prerouted regular net

If the net is either fully or partially routed, mark the wires as FIXED in the DEF file. The
router will not touch nets or wires in the NETS section that are marked FIXED.

December 2005

33

Product Version 2.3

Ultra Router Reference


Getting Started

If some of the pins of the prerouted net are unconnected, place them in the NETS section
of the DEF file. The router will connect the unconnected pins to the rest of the net.

Configuring the Router


You control the behavior of the router with graphical user interface (GUI) forms or text
commands and with environment variables or configuration file options.

When you use GUI forms, you set environment variables with the Variables form, and the
interface sets the configuration options automatically, based on the environment variable
settings.
When using Silicon Ensemble, see Chapter 3, Using the Router, for a description of the
forms.

When you use text commands, the router uses a default configuration file, ./
.wrconfig, or a configuration file you create.
When using Silicon Ensemble, see Chapter 5, The WROUTE Command and the
Environment Variables, for a description of the WROUTE command and configuration file.
Some configuration options do not have corresponding environment variables. They are
described in Table of Configuration Options and Environment Variables on page 176.
When using Encounter, see the Cadence Encounter Text Command Reference for
a description of the wroute command.
The standalone options are described in Table of Configuration Options and
Environment Variables on page 176.

Determining the Version of the Router You Are Running


To see what version of the router you are running, do one of the following:

Look for the router version number near the beginning of the router log file.

In standalone mode, type wroute -v.

December 2005

34

Product Version 2.3

Ultra Router Reference

3
Using the Router
This chapter contains the following sections:

Starting the Router on page 36

Stopping the Router on page 36

Checking Congestion on page 37

Performing Routing on page 38

Tuning for Routability on page 43

Saving the Best of Multiple Runs on page 51

Timing Considerations on page 52

Understanding How the Router Calculates Delays on page 53

See Chapter 5, The WROUTE Command and the Environment Variables, for detailed
information about the command and environment variables the router uses.

December 2005

35

Product Version 2.3

Ultra Router Reference


Using the Router

Starting the Router


To start the router within Silicon Ensemble, select Route Wroute on the graphical user
interface (GUI) menu, and fill in the form that appears, or enter WROUTE; in the text area.
To start the router within Encounter, select Route WRoute on the graphical user interface
menu, and fill in the form that appears, or enter wroute in the Encounter console.
To start the router in standalone mode, enter WROUTE at the UNIX prompt.

Running 64-bit Version of Wroute


To use the 64-bit version of Wroute in the Silicon Ensemble environment, you must set the
following environment variable:
CDS_AUTO_64BIT {ALL | NONE | list}

ALL

All applications are run as 64-bit where possible.

NONE

All applications are executed as 32-bit.

list

A list of case-sensitive application names can be supplied


(delimited by space, semicolon, or colon) and only these
applications will run as 64-bit.

For Wroute, you can specify CDS_AUTO_64BIT as follows:


setenv

CDS_AUTO_64BIT

wroute

CDS_AUTO_64BIT

ALL

or,
setenv

Stopping the Router


To stop the router within Silicon Ensemble, set a run-time limit by doing one of the following
before running routing:

On the WRoute Options form, enter a value in the text box adjacent to RunTime Limit
(CPU Minutes).

Set the WRoute.RunTimeLimit variable.

December 2005

36

Product Version 2.3

Ultra Router Reference


Using the Router
To stop the router within Encounter, set a run-time limit by entering a value in the text box
adjacent to Runtime Limit (CPU Minutes) on the Job Control page of the Advanced tab
of the WRoute form.
To stop the router after you start routing, do one of the following:

To save the data, even if global routing is not complete, press Control-C or enter
kill -3 at the UNIX prompt. This causes the router to stop, save the database in its
current state, and exit. You can then look at the congestion map to analyze the
congestion even if the routing is incomplete.

To cause the router to exit without saving the routing, press Control-C two or more
times.
Tip
To cause the router to report progress and continue routing, enter kill -16 at the
prompt. The router will report CPU time, elapsed time, memory use, date, and time.

Checking Congestion
You can check congestion by generating and interpreting a congestion map and by looking
at the router log file.

Checking Congestion with the Congestion Map


You can generate a congestion map to check for obstructions and congested areas in a
design. The congestion map shows the edges of the global routing cells (gcells) created by
during global routing. The colors in the map represent a ratio between the numbers of wires
planned to cross the edge and the number of tracks represented by the edge.
When using Silicon Ensemble, you can generate the map by doing one of the following:

Selecting Place Cells on the menu and Generate Congestion Map on the Place
Cells form

Selecting View Display Options on the menu and Congestion Map on the Display
Options form

The placer generates the congestion map, and the router updates the congestion map when
you route using a Silicon Ensemble process.

December 2005

37

Product Version 2.3

Ultra Router Reference


Using the Router
If you use the router in standalone mode, you can write the congestion map to a file and view
it later using a Silicon Ensemble process.
See the Ultra Placer Reference for help generating the congestion map.

Checking Congestion with the Log File


You can also check congestion by reading the global routing/optimization section of the log
file.
For each routing layer, the log file reports the following:

Estimated wire length and number of vias

Over-capacity gcells (the number of gcells where demand for routing tracks exceeds
number of unobstructed routing tracks that cross the gcell)
The difference between the demand for routing tracks in a gcell and the number of tracks
available for routing (the number of unobstructed routing tracks that cross the gcell) is
the over-supply.

Over-tracks (the sum of over-supply values in the over-capacity gcells)

For an example of the global routing/optimization section of the log file, see Global Routing:
Optimizing Phase on page 165.

Performing Routing
After you place the design, check the memory allocation, prepare the input files, and route
the special nets, you can route the signal nets and clock nets with Wroute Router/Ultra
Router.
Note: Use Route Power to route power. Use Route Connect Ring to connect power
and ground pins on the block to match the width of the ring abound the blocks.
Within Silicon Ensemble, you run the router by selecting Route WRoute on the menu bar,
or by setting variables and entering the WROUTE command on the command line.
Note: WROUTE is the command that runs both Ultra Router and Wroute Router. See The
WROUTE Command on page 98 for descriptions of the command and arguments.

December 2005

38

Product Version 2.3

Ultra Router Reference


Using the Router

Routing the Design with the WRoute Form


1. On the Silicon Ensemble menu, choose Route WRoute to open the Wroute form.

2. Choose the Routing Mode you want to run. The software sets the routers environment
variables for you.

Choose Global Route Only to plan the interconnect of regular nets and update the
congestion map.
Sets the WRoute.Global environment variable. For more information about global
routing, see Global Routing on page 23.

Choose Global and Final Route to plan the interconnect of regular nets and run
final routing. Final routing connects pins with wires and vias.
Sets the WRoute.Global and WRoute.Final environment variables. For more
information about final routing, see Final Routing on page 24.

Choose Auto Search And Repair if you want the router to repair design violations
automatically after final routing.
Sets the WRoute.SearchRepair environment variable. For more information
about search-and-repair routing, see Search-and-Repair Routing on page 25.

Choose Incremental Final Route to rerun final routing on an already-routed


design. This option is useful, for example, if the previous final route ran out of time
before removing all violations.

December 2005

39

Product Version 2.3

Ultra Router Reference


Using the Router
Sets the WRoute.Incremental.Final environment variable. For more
information on incremental routing, see Incremental Routing on page 25.

Choose Redo Global Route for violations if you ran both global routing and final
routing with search and repair turned on, and all violations were not resolved. This
option updates global routing for nets that have violations.
Sets the WRoute.Incremental.Global environment variable.

3. Click Timing Driven Routing to let the router determine the routing order of the layers
based on the timing constraints. It routes critical nets first on layers with lower parasitics.
Sets the WRoute.Timing.Driven environment variable.
4. Click the Options button to set additional options, such as which nets to route, routing
direction assignment, auto tapering, or wire length options. See the section Setting the
Options on the WRoute Options Form on page 41.
5. Click the Variables button if you want to use values other than the default values for the
other router environment variables. Scroll to the variables whose values you want to
change, and enter new values. For environment variable descriptions, including default
values, see Environment Variable Descriptions on page 103.
Important
The default values of the router environment values are set to optimize routing. You
do not have to manually set or change any of the variable values the first time you
route your design.
6. Click OK to route your design or Cancel to cancel.
7. Run the Silicon Ensemble Verify Geometry menu command or VERIFY GEOMETRY
text command to make sure your design meets all the design rules.
After routing is complete, the router sometimes leaves false violations. These are
artificial violations that the router creates in order to avoid undesirable routing patterns.
When you run Verify Geometry or VERIFY GEOMETRY, these violations will not
appear.
See the Silicon Ensemble Menu Command Reference for information about Verify
Geometry or the Silicon Ensemble Text Command Reference for information
about VERIFY GEOMETRY.
8. Save the routed design.
After routing, analyze your design for timing and signal integrity problems. See Tuning for
Routability on page 43.

December 2005

40

Product Version 2.3

Ultra Router Reference


Using the Router

Important
You must have a license for Silicon Ensemble-PKS to enable signal integrity
analysis.

Setting the Options on the WRoute Options Form


Open the WRoute Options form by selecting Options on the WRoute form.

December 2005

41

Product Version 2.3

Ultra Router Reference


Using the Router
1. Select an option in the Nets to Route area if you want to route certain nets, for example,
clock nets, before the rest of the nets.
Sets the WRoute.SelectNets environment variable.
When you type information in the Nets to Route box

You can type as many characters as necessary in the box. Use


@CLOCK to route clock nets
@RULE to route wide wires
@SHIELD to route shielded nets

Separate net names with a comma or a space.

You can use wildcards.

2. If your design has many blocks, select Automatic Routing Direction Assignment.
With this option turned on, the software minimizes congestion by setting the routing
direction in the channels between blocks to take advantage of the available routing
tracks.
Sets the WRoute.Assign.RoutingDir environment variable.
Note: Automatic Routing Direction Assignment is disabled on two-layer designs.
3. After all violations are removed, select Optimize Wire Length to minimize wire length
and the number of vias. Optimization takes approximately the same amount of time as
the first final routing pass and decreases wire length and the number of vias by a few
percent.
Sets the WRoute.Optimization environment variable.
4. De-select Auto Taper if you do not want to preroute wide wires. By default, the router
automatically tapers pins to remove violations.
Sets the WRoute.Taper.Distance environment variable.
5. Enter a value in the text box adjacent to RunTime Limit (CPU Minutes) if you want to
set a run-time limit for routing.
Sets the WRoute.RunTimeLimit environment variable.
6. To use more than one processor for routing, move the slider bar to the right until the
correct number of processors is displayed. To enable this option, you must have a license
for Silicon Ensemble-PKS and additional licenses for the Multi-Thread Route Option to
Silicon Ensemble-PKS.
Sets the WRoute.Processor environment variable.

December 2005

42

Product Version 2.3

Ultra Router Reference


Using the Router
Click the Variables button to see the available environment variables, their descriptions, and
possible values. You do not have to set variables manuallythe software will set them for you
when you click the buttons on the GUI forms. For more information about the variables, see
Environment Variable Descriptions on page 103.

Routing the Design with the WROUTE Command


1. Set the variables as appropriate.
For example, to perform timing-driven global and final routing with search and repair,
enter
SET
SET
SET
SET

VARIABLE
VARIABLE
VARIABLE
VARIABLE

WROUTE.TIMING.MODE TRUE;
WROUTE.GLOBAL TRUE;
WROUTE.FINAL TRUE;
WROUTE.SEARCHREPAIR TRUE;

For information on the variables, see Environment Variable Descriptions on page 103.
2. Enter the following command:
WROUTE NOCONFIG;

Tuning for Routability


The following sections describe some things you can do to increase the routability of your
design.

Performing Shielded Routing on page 44

Repairing Crosstalk Violations with the Router on page 45

Tuning Timing-Driven Routing on page 46

Resolving Local Congestion on page 47

Routing Wide Wires on page 47

Generating Vias on page 47

Using Stacked Vias on page 48

Using Minimum Area Rule Vias on page 48

Using Double-Cut Vias on page 49

Additional Tuning Options on page 50

December 2005

43

Product Version 2.3

Ultra Router Reference


Using the Router

Performing Shielded Routing


If you have a license for Silicon Ensemble-Ultra or Silicon Ensemble-PKS, you can use the
router to perform shielded routing by doing one of the following:

On the Silicon Ensemble command line, use the CHANGE NET command.

In the Silicon Ensemble GUI select the nets to be shielded and use the Edit Properties
form to add the power or ground nets as appropriate shielding nets.

See the Silicon Ensemble Text Command Reference or the Silicon Ensemble Menu
Command Reference for information on using Silicon Ensemble text commands and the
Edit Properties form.

Add + SHIELDNET statements to the NETS section of the DEF file for nets that you want
to shield.

Decide which nets to shield and which nets to use to shield them. The router cannot
shield subnets.

You must shield both sides of the net. You can use ground wires for both sides,
power wires for both sides, or one ground and one power wire on each side.
To shield both sides with VSS, use + SHIELDNET VSS.
To shield both sides with VDD, use + SHIELDNET VDD.
To shield one side with VDD and one side with VSS. use
+ SHIELDNET VDD
+ SHIELDNET VSS

Set the options for routing on the Wroute Options form. You can route the shielded nets
first or route all the nets at the same time. For example, if you want to shield the clock
nets, and route them before the rest of the nets:
a. Set Nets to Route to All with Named Nets First
b. Type @SHIELD, @CLOCK in the text box.
c. Click OK.
The router routes the nets to be shielded first, then it routes the clock nets, then it routes
the remaining nets.

When part of a shield goes under or over the preroute of the corresponding special net, the
shield can be connected to it using a via. Generally, the router picks the correct via to use as
the shield via. However, if the router complains that there are too many default vias, include

December 2005

44

Product Version 2.3

Ultra Router Reference


Using the Router
a SHIELDVIA property with the via description in your LEF file to specify which via to use as
the shield via. Only one via per layer can have this property.
For example,
PROPERTYDEFINITIONS
VIA SHIELDVIA INTEGER ;
END PROPERTYDEFINITIONS
VIA VIA12 DEFAULT
...
PROPERTY SHIELDVIA 1 ;
END VIA12

Note: The value specified can be any non zero number.

Specifying Preferred Routing Layers


You can route a particular net to a specific layer range by adding a PREFERLAYERRANGE
property to the net definition in your DEF file. For example, if you want the router to route a
particular net with metal layers 2 and 3, add the following property to the net definition:
+ PROPERTY PREFERLAYERRANGE 2:3 ;

If you want the router to route a particular net with metal layers 4, 5, and 6, add the following
property to the net definition:
+ PROPERTY PREFERLAYERRANGE 4:6 ;

Repairing Crosstalk Violations with the Router


You can repair crosstalk violations with shielded routing, described in the previous section, or
use wide-space routing, described here. Both methods reduce coupling between adjacent
layers, but at the expense of routing area. You can use a third method, buffer insertion with
Ultra Placer, if you have a license for Silicon Ensemble-PKS. See the Ultra Placer
Reference for a description of buffer insertion using the Post-Routing Optimization form.
Using Wide-Space Routing
Wide-space routing uses LEF nondefault rules to define new routing rules. It cuts down
coupling between adjacent layers, but charges you a routing resource penalty because it
uses extra tracks.
To perform wide-space routing
December 2005

45

Product Version 2.3

Ultra Router Reference


Using the Router
1. Define a nondefault rule in the LEF file that doubles the required space between same
layers.
2. Select the nets to route.
3. Select Edit Properties from the Silicon Ensemble menu.
4. Find RULE.NAME.
5. Change the rule to the new rule.
6. Route the design with the Wroute form.
a. Select Route WRoute from the Silicon Ensemble menu to open the Wroute form.
b. Click the Options button on the Wroute form to open the Wroute Options form.
c. Click All with Named Nets First on the Wroute Options form and type the net
names in the text box if they are not already there.
d. Click OK on the Wroute Options form to return to the Wroute form.
e. Make sure the correct routing mode is selected and click OK on the Wroute form to
route the design.
The router reroutes the design, using the new rule for the selected nets. It increases the
spacing between these nets to avoid crosstalk problems.
7. Zoom in to the design and check the routing.

Tuning Timing-Driven Routing


In general, the router autotunes the timing options to provide the best possible routing results,
and you do not need to tune the router.
If your results are not satisfactory, and you need to tune the router, you can do one or more
of the following:

Adjust the WRoute.Timing.Net.Percentage.Delta variable to increase the


number of nets that are considered timing critical.

Adjust the timing-related options in the placer and re-place and reroute the design.

Move critical components and re-place and reroute the design.


You might also consider preplacing and fixing the location of critical components before
running placement.

December 2005

46

Product Version 2.3

Ultra Router Reference


Using the Router

Update the wire-load model with the current RC data and rerun synthesis, placement,
and routing.

Adjust the delay constraints for timing inconsistencies between placement and the
synthesis tool.

Resolving Local Congestion


If your design contains areas with a high concentration of violations, run the placer and router
to re-place and reroute the area to resolve the congestion.
1. Run incremental placement on the current routed design database to re-place the
congested area. Set the placement area to an area that encloses and is larger than the
congested area.
The placement removes all routes that are affected by the re-placed area.
2. Run a global and final route on the re-placed design to reroute the design, including
rerouting the re-placed area.

Routing Wide Wires


The router automatically tapers wide wires when WRoute.Taper.Distance is set. Set
WRoute.Taper.Distance to 0 to disable wide-wire routing.

Generating Vias
Vias are classified by the number of cuts they contain. Within the same number of cuts, vias
are further divided into two groups: regular and minimum area rule (MAR) vias. During via
generation, Wroute examines each via group. If a via is defined for a particular group, that
group is not touched. Wroute generates any missing regular via groups, if there is a matching
via rule. For MAR via groups, Wroute creates only single cut vias.
Single and double cut vias are always created by default. Vias with more than two cuts can
only be created if there is a MINIMUMCUT statement defined for the routing layer. For
example, if the following MINIMUMCUT statement is defined, a via with four cuts is created:
MINIMUMCUT 4 WIDTH 0.98 ;

Wroute attempts to fit a via into the metal width. Therefore, it might actually create a via with
more than four cuts, if the metal width is wide enough.

December 2005

47

Product Version 2.3

Ultra Router Reference


Using the Router
Wroute also checks for any ADJACENCUTS statements for the cut layer, to ensure that the
created via does not violate the rule. For example,
SPACING 0.17 ADJACENTCUTS 3 WITHIN 0.19 ;

Via rules are computed for all pre-defined vias. If a generated via has a matching via rule that
contains a pre-defined via, the pre-defined via is used.
The following requirements must be met to use via generation with Wroute:

You must define ENCLOSURE rules and a RESISTANCE value for the cut layer. For
example,
ENCLOSURE 0.005 0.05 ;
RESISTANCE 10.0 ;

You must define a VIARULE GENERATE DEFAULT statement. For example,


VIARULE VR12 GENERATE DEFAULT
LAYER M1 ;
ENCLOSURE 0.005 0.05 ;
LAYER M2 ;
ENCLOSURE 0.005 0.05 ;
LAYER VIA1 ;
RECT -0.065 -0.065 0.065 0.065 ;
SPACING 0.28 BY 0.28 ;
END VR12

To specify how Wroute generates vias, use the inputViaGenMode configuration option.

Using Stacked Vias


You do not need to define same-net spacing rules in the LEF file in order to stack vias. By
default, the router allows via stacking. In previous versions of the software, you had to define
same-net rules in order to allow via stacking. To revert to this behavior (for example, if you
want to allow stacking on certain layers), you can specify
routeDisableDefaultStacking true (Input.Lef.Stacking.Off true). For more
information, see Input.LEF.Stacking.OFF on page 106.

Using Minimum Area Rule Vias


To prevent lithography problems, some deep submicron design processes require that the
middle layer of a stacked via be larger than the top metal layer of the default vias if the bottom
metal layer does not connect to any routing segment. This is referred to as the minimum area
rule (MAR).
December 2005

48

Product Version 2.3

Ultra Router Reference


Using the Router
There is no restriction to the number of vias you can usethe router tries to choose vias that
prevent MAR violations. To make routing more efficient, however, try to minimize the number
of vias you define for each layer.

Using Double-Cut Vias


You can use double-cut vias (also called asymmetric or offset vias) to strengthen the
connections between routing layers in designs with narrow default wire widths. You can use
any combination of MAR and double-cut vias up to a total of ten vias per layer-pair.
To use double-cut vias, specify in the LEF file any combination of double-cut vias up to six
default vias between each adjacent layer pair. The router automatically chooses the via that
minimizes violations and maximizes routability.
In the example below, four default vias are specified in the LEF file. The router chooses the
via that minimizes violations.

The four default vias (from left to right, below)


are via_west, via_east, via_south, via_north.

Via origin

The router chooses via_west because it


minimizes violations.

Defining MAR and Double-Cut Vias


You define MAR and double-cut vias for each layer in the LEF file. Use MAR and double-cut
vias judiciously, however, because they increase the congestion in the design, making it more
difficult to route. To complete routing, you might have to adjust the floorplan and utilization.
This might also increase the die size.

You must define multiple-cut vias in the LEF VIA statement.

Include an AREA in the LAYER statement to define the MAR for that layer.

Include TOPOFSTACKONLY to ensure that the router uses the the via for via stacking.

If you do not define an AREA for a layer, the router extracts the MAR from
TOPOFSTACKONLY via defined for the layer. The router checks the via-to-via spacing to
ensure it satisfies a MAR.

December 2005

49

Product Version 2.3

Ultra Router Reference


Using the Router

If you define both AREA and TOPOFSTACKONLY, the router uses the value from AREA for
the MAR. However, it also checks to ensure that top-of-stack vias satisfy the minimum
area rule.

Use MINIMUMCUT in the LAYER statement for vias with a specified number of cuts when
connecting to shapes of a specified width.

Note: To use MINIMUMCUT and AREA, you must have a license for Silicon Ensemble-Ultra or
higher.
For more information about defining vias, see the LEF/DEF Language Reference.

Using Multiple Vias when Connecting to Shapes of a Specified Width


You can define a nondefault rule for connecting to shapes of a specified width.
Use the MINIMUMCUT keyword in the LEF LAYER statement to connect a default-width wire
to a wider pin or wire. MINIMUMCUT specifies the number of cuts a via must have when it is
on a wide pin or wire.
For more information, see the LEF/DEF Language Reference

Additional Tuning Options


1. If violations remain after you run final routing, rerun final routing to reroute the design and
save the design into a new database.

To reroute the design from the GUI, select Incremental Final Route on the
WRoute form.
Note: Incremental Final Route means rerunning final routing on an existing
routed design.
If you saved the routed database to a location other than the default location, be sure
the correct filenames appear in the boxes next to Input Wroute DBname and
Output Wroute DBname on the WRoute Options form.

To reroute the design from the command line, enter


SET VARIABLE wroute.incremental.final true;
WROUTE NOCONFIG INCREMENTAL;

2. If violations remain after you make another routing pass on a database on which you
have already made a final routing pass, you can rerun both global and final routing to
route the design again.

December 2005

50

Product Version 2.3

Ultra Router Reference


Using the Router
When you rerun both global and final routing, the global router reroutes all nets with
violations.

To rerun both global and final routing from the GUI, select Incremental Final
Route and Redo Global Route for violations on the WRoute form.
If you saved the routed database to a location other than the default location, be sure
to identify the input database on the WRoute Options form.
Click OK.

To rerun both global and final routing from the command line, enter
SET VARIABLE wroute.incremental.global true;
WROUTE NOCONFIG INCREMENTAL

3. If the design contains large blocks, and violations still remain around blocks or between
pads and core cells, use the Wroute form to reset WRoute.Assign.RoutingDir rerun
global and final routing on the original design.
Reset WRoute.Assign.RoutingDir to true by selecting Automatic Routing
Direction Assignment on the WRoute Options form.
If problems remain after routing with WRoute.Assign.RoutingDir, and rerun final
routing.
Note: WRoute.Assign.RoutingDir is disabled on two-layer designs.
4. If changing the settings does not repair the violations in your design, modify the special
routing, the placement, or the floorplan, and reroute the design.
5. When all violations are repaired, optimize routing with WRoute.Optimization set to
true to minimize wire length and the number of vias.
To optimize routing, set WRoute.Optimization by selecting Optimize Wire Length
on the WRoute Options form.

Saving the Best of Multiple Runs


Following are some tips for routing your design multiple times, using different settings for each
run, and saving the run with the best results.

Create a script to save the best of multiple runs. You can write the script by using the GUI
for the first router run, then using the router journal file as a starting place to experiment
with option settings and variable values.
See The Router Journal (Log) File on page 159 for a description of the journal file.

December 2005

51

Product Version 2.3

Ultra Router Reference


Using the Router

Set the environment variable WRoute.Import to NOREAD before performing multiple


runs.
Setting WRoute.Import to NOREAD keeps the software from automatically loading a
routed database back into Silicon Ensemble. This saves you time if the results are bad.
When you are satisfied with the results, reset WRoute.Import to READDB and run an
incremental final route.
To set WRoute.Import, do one of the following:

Click the Variables button on the WRoute form and scroll down the list of variables.

Use the Silicon Ensemble SET VARIABLE command.

Save the design into a different database each time you run routing.
You set the input and output database names for the router with the
WRoute.Input.DbName and the WRoute.Output.DbName environment variables. To
set these variables, do one of the following:

Fill in the Input Wroute DBName and Output Wroute DBname fields on the
WRoute Options form.

Click the Variables button on the WRoute form and enter values for
WRoute.Input.DbName and WRoute.Output.DbName.

Use the Silicon Ensemble SET VARIABLE command.

When you are ready to load a database back into Silicon Ensemble, do one of the
following before you run the router:

Set WRoute.Import to READB

Enter the command INPUT WROUTE DBNAME databasename

Timing Considerations
This section describes the following procedures and concepts to help you meet the timing
constraints for your design.

When Both CTLF and LEF Timing Libraries Exist


Note: Cadence recommends that you use timing library format (TLF) instead of compiled
timing library format (CTLF). This section is provided for backward compatibility only.

December 2005

52

Product Version 2.3

Ultra Router Reference


Using the Router
When both library exchange format (LEF) and CTLF timing libraries exist for a macro, the
router uses the CTLF data first. The router reads delay table, transition (slew) table,
unateness, and pin capacitance information from the CTLF library.

If both libraries contain pin capacitance data, the PIN_CAP value in the CTLF library
overrides the CAPACITANCE value defined in the macro PIN section in the LEF file.

If pin capacitance is defined in the LEF file only, this value is used.

If pin capacitance is not defined in LEF or CTLF, the capacitance is assumed to be zero.

Creating SDF Constraints


The router supports full, compact, and partial standard delay format (SDF) constraints. For
designs with more than 10,000 components, full SDF constraints are not recommended
because of the time and storage space required to process them.
Use the cover_design or max_path_timing option when you write out compact or partial
SDF constraints from the Synopsys Design Compiler. The appropriate Synopsys Design
Compiler syntax is
write_constraints -cover_design -format sdf -output filename
write_constraints -max_path_timing -format sdf ...

To avoid the problems caused by large SDF files, use system-level constraints in a GCF file.
See the General Constraint Format Reference for information about using the GCF file.

Understanding How the Router Calculates Delays


This section contains the following information:

Types of Delays Calculated on page 54

How Path Constraints Control the Delay on page 54

How the Router Calculates Slew Rates on page 55

Note: In the Silicon Ensemble environment, the delay calculation performed by the router is
the same as the delay calculation performed by the placer.

December 2005

53

Product Version 2.3

Ultra Router Reference


Using the Router

Types of Delays Calculated


This section describes the types of delays that the router calculates, based on the following
sample circuit.
Di

Ds

Drc

buf1

buf2

Cb

Cn

Cc

The router uses both the delay table and slew table for calculating path delay.
Depending on where a path constraint starts, different types of delay are considered:
Si (i=a,b,c) = Input Slew at point i
Ci (i=b,n,c) = Capacitance load at point i
Delay_b = Function( all Ci, Sa) from Delay Table of buf1
Slew_b = Function( all Ci, Sa) from Slew table of buf1
Di = Intrinsic Delay of buf1 = Function(Cb, Sa) from Delay table of buf1
Ds = Extra Source Gate Delay = Delay_b - Di
Drc = Elmore Delay contributed by the RC effect due to interconnect

How Path Constraints Control the Delay


Through a single path, there are different kinds of delays, such as the intrinsic delay,
interconnect delay, and extra source gate delay. How you define the path affects which delays
are calculated. This section again uses the following sample circuit to illustrate how path
delays are calculated.
Di

Ds

Drc

buf1

buf2

Cb

December 2005

Cn

Cc

54

Product Version 2.3

Ultra Router Reference


Using the Router
Following is an example of a path constraints section in the DEF file:
CONSTRAINTS 1;
- SUM (
PATH |buf1 A |buf1 F ,
PATH |buf1 F |buf2 A )
+ RISEMIN 4764.00 + RISEMAX 4764.00
+ FALLMAX 4764.00
;
END CONSTRAINTS

+ FALLMIN 4764.00

Suppose you specified the following path in this section of code:


PATH |buf1 A |buf2 A
In this case, you define a full path from input pin A of buf1 to input pin A of buf2. Thus, the
router calculates the delay (Di + Ds + Drc).
If you defined the path starting at the output of buf1, such as
PATH |buf1 F |buf2 A
the router does not consider the intrinsic delay of buffer buf1. The router considers only the
(Ds+Drc) contributed by the loading at point b and the bc wire.
If the path ends on an output pin such as point b,
PATH |buf1 A |buf1 F
the only delay considered by the router is the intrinsic delay of the gate (Di of buf1 in this
case). Any interconnect starting from this pin has no effect in this specification.

How the Router Calculates Slew Rates


This section describes how the router calculates the slew rates (transition times) applied to
the pins affected by a delay constraint. The description is based on the following sample
circuit. In the sample circuit, assume that the first pin affected by a delay constraint is pin A1
of buf2.
Pin A1 of buf2 is the first pin
affected by the constraint.
F

A1

buf1
a

F1

A2

buf2
b

buf3

The router calculates slew rates as follows:

December 2005

55

Product Version 2.3

Ultra Router Reference


Using the Router
1. The router checks whether the slew rate for pin A1 of buf2 is specified in the IOTIMING
section in the DEF file.

If the slew rate is specified in the IOTIMING section, the router applies the specified
slew rate to pin A1 of buf2.
The router then skips to Step 6.

If the slew rate is not specified in the IOTIMING section, the router goes on to
Step 2.

Note: The router applies all pin slew rates defined in the IOTIMING section in the DEF
file. In other words, if a pins slew rate is defined in the IOTIMING section, the router
applies it rather than calculating a slew rate for the pin.
2. The router checks whether pin A1 of buf2 is connected to a clock net or to a net with more
than 100 fanouts.

If pin A is connected to a clock net or a net with more than 100 fanouts, the router
applies the default slew rate to pin A1.
The default value for the default slew rate is 0 ns. You can modify the default value
by setting the router environment variables for the rise and fall transition values.
The environment variables (and corresponding options) are
WRoute.Timing.Fall.Transition (timingFallTransition)
WRoute.Timing.Rise.Transition (timingRiseTransition)
The router then skips to Step 6.

If pin A is not connected to a clock net or a net with more than 100 fanouts, the router
goes on to Step 3.

3. The router applies the default slew rate to pin A of buf1 (point a), that is, to the input pin
to the gate before the gate at which the timing constraint starts.
The router always starts its slew calculation at the gate before the gate at which the
timing constraint starts.
4. The router looks up the slew rate for pin F (point b) in the slew table, based on the slew
rate for pin A, and applies this slew rate to pin F.
5. The router calculates the slew rate for pin A1 (point c) by applying the RC (Elmore) effect
caused by the b-to-c interconnect to the slew rate for pin F. The router applies this slew
rate to pin A1.

December 2005

56

Product Version 2.3

Ultra Router Reference


Using the Router
6. The router looks up the slew rate for pin F1 (point d) in the slew table, based on the slew
rate for pin A1, and applies this slew rate to pin F1.
7. The router checks whether the slew rate for pin A2 of buf3 is defined in the IOTIMING
section in the DEF file.

If the slew rate is specified in the IOTIMING section, the router applies the specified
slew rate to pin A2.

If the slew rate for pin A2 is not specified in the IOTIMING section, the router goes
on to Step 8.

8. The router calculates the slew rate for pin A2 by applying the RC effect caused by the dto-e interconnect to the slew rate for pin F1.
Slew rates to the end of the constraint are calculated similarly. Note that the default slew rate
is applied in Step 2 or Step 3 only. The input slew rates that follow the calculation in Step 2
or Step 3 are based on the previous output slew rates or taken from the IOTIMING section
in the DEF file.

December 2005

57

Product Version 2.3

Ultra Router Reference


Using the Router

December 2005

58

Product Version 2.3

Ultra Router Reference

4
Calculating and Fixing
Process Antenna Violations
This chapter describes process antenna violations and how you can use the router to fix
them. It includes the following sections:

Overview on page 60

Using Process Antenna Keywords in the LEF and DEF Files on page 65

Calculating Antenna Ratios on page 66

Checking for Antenna Violations on page 82

Fixing Antenna Violations on page 87

Using DiffUseOnly on page 89

Preparing Your Library for Antenna Calculations on page 91

Process Antenna Configuration Options and Environment Variables on page 91

Calculations for Hierarchical Designs on page 92

December 2005

59

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations

Overview
During deep submicron wafer fabrication, gate damage can occur when excessive static
charges accumulate and discharge, passing current through a gate. If the area of the layer
connected directly to the gate or connected to the gate through lower layers is large relative
to the area of the gate and the static charges are discharged through the gate, the discharge
can damage the oxide that insulates the gate and cause the chip to fail. This phenomenon is
called the process antenna effect (PAE).
To determine the extent of the PAE, the router calculates the area of the layer relative to the
area of the gates connected to it, or connected to it through lower layers. The number it
calculates is called the antenna ratio. Each foundry sets a maximum allowable antenna ratio
for the chips it fabricates.
For example, assume a foundry sets a maximum allowable antenna ratio of 500. If a net has
two input gates that each have an area of 1 square micron, any metal layers that connect to
the gates and have an area larger than 1,000 square microns have process antenna
violations because they would cause the antenna ratio to be higher than 500:
Antenna Ratio =

Area of metal layer


Area of gates

500 =

1000
1+1

To tell the router the values to use when it calculates the antenna ratio, you set antenna
keywords in the LEF and DEF files. The router measures potential damage caused by PAE
by checking the ratio it calculates against the values specified by the antenna keywords.
When it finds a net whose antenna ratio for a specified layer exceeds the maximum allowed
value for that layer, it finds a process antenna violation and attempts to fix it using one or
both of the following methods:

Changing the routing so the routing layers connected to a gate or connected to a gate
through lower layers are not so large that they build enough static charge to damage the
gate

Inserting diodes that protect the gate by providing an alternate path to discharge the
static charge

The routers default behavior is to switch automatically between the two methods to fix the
violations. You can specify one method by setting router options in the configuration file.
The router can calculate several types of antenna ratios, including ratios for PAE damage on
one layer only and ratios calculated by adding accumulated damage on several layers. In
addition, the router can calculate ratios based on the area of the metal wires or the cut area
of vias.

December 2005

60

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations

What Are Process Antennas?


In a chip manufacturing process, metal layers are built up, layer by layer, starting with the firstlevel metal layer (usually referred to as metal1). Next, the metal1-metal2 vias are created,
then the second-level metal layer, then metal2-metal3 vias, and so on.
On each metal layer, metal is initially deposited so it covers the entire chip. Then, the
unneeded portions of the metal are removed by etching, typically in plasma (charged
particles).
Figure 4-1 on page 61 shows a section of an imaginary chip after the unneeded metal from
metal2 is removed.
Figure 4-1
N2,1

N2,1

N1,1

G1

N2,2

N1,2

G2

G3

N1,3

G4

N2,3

N1,4

Diode

In the figure,

Gate areas for transistors are labelled Gk , where k is a sequential number starting with 1.

Wire segments are labelled Ni,j

N signifies that the wire segment is an electrically connected node

i specifies the metal layer to which the node belongs

j is a sequential number for the node on that metal layer

Nodes are labelled so that all pieces of the metal geometry on layer metal i that are
electrically connected by conductors at layers below metal i belong to the same node.
For example, the two metal2 wire segments that belong to node N2,1 are electrically
connected to gates G1, G2, and G3 by a piece of wire on metal1 (labelled N1,2).

Thick oxide insulates the already-fabricated structures below metal2, preventing them from
direct contact with the plasma. The metal2 geometries, however, are exposed to the plasma,

December 2005

61

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations
and collect charge from it. As the metal geometries collect charge, they build up voltage
potential.
Because the metal geometries collect charge during the metallization process, they are
referred to as process antennas. In general, the more area covered by the metal geometries
that are exposed to the plasma (that is, the larger the process antennas), the more charge
they can collect.
In the figure, note the following:

Node N1,1 is electrically connected to gates G1 and G2.

Node N1,2 is electrically connected to gate G3.

Node N2,1 (node N2,1 has two pieces of metal) is electrically connected to gates G1, G2,
and G3.

Node N1,3 and node N2,2 are electrically connected to gate G4.

Node N1,4 and node N2,3 are electrically connected to the diffusion (diode).

What Is the Process Antenna Effect (PAE)?


If the voltage potential across the gate oxide becomes large enough to cause current to flow
across the gate oxide, from the process antennas to the gates to which the process antennas
are electrically connected, the current can damage the gate oxide. The process antenna
effect (PAE) is the term used to describe the build-up of charge and increase in voltage
potential. The larger the total gate area that is electrically connected to the process antennas
on a specific layer, the more charge the connected gates can withstand.
In the imaginary chip in the figure, if the current were to flow, the following would happen, as
a result of the node-gate connections:

The charge collected by process antennas on nodes N1,1, N1,2, and N2,1 would be
discharged through one or more of gates G1, G2, and G3.

The charge collected by process antennas on nodes N1,3 and N2,2 would be discharged
through gate G4.

The charge collected by process antennas on node N1,4 and N2,3 would be discharged
through the diode.

December 2005

62

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations

What Is the Antenna Ratio?


Because the total gate area that is electrically connected to a node (and therefore connected
to the process antennas) determines the amount of charge from the process antennas the
electrically connected gates can withstand, and because the size of the process antennas
connected to the node determines how much charge the antennas collect, it is useful to
calculate the ratio of the size of the process antennas on a node to the size of the gate area
that is electrically connected to the node. This is the antenna ratio. The greater the antenna
ratio, the greater the potential for damage to the gate oxide.
If you check a chip and obtain an antenna ratio greater than the threshold specified by the
foundry, gate damage is likely to occur.
Figure 4-2 on page 63 shows the same section of the imaginary chip as the previous figure.
The shaded areas in this figure represent the process antennas on node N2,1 and the gates
to which they connect: gates G1, G2, and G3. The shaded gates discharge the electricity
collected by the process antennas on node N2,1.
Figure 4-2
Area of process antennas on a node
Antenna Ratio =
Area of gates electrically connected to the node

N2,1

N2,1

N1,1

G1

N2,2

N1,2

G2

G3

N1,3

G4

N2,3

N1,4

Diode

What Can Be Done to Improve the Antenna Ratio?


If there is an alternate path for the current to flow, the charge on the node can be discharged
through the alternate path before the voltage potential reaches a level that damages the gate.
For example, a Zener diode, which allows current to flow in the reverse direction when the
reverse bias reaches a specified breakdown voltage, provides an alternate path, and helps
avoid building up so much charge at the node that the charge is discharged through the gate
December 2005

63

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations
oxide. Diffusion features that form the output of a logic gate (source and drain of transistors)
can provide such an alternate discharge path.
The router typically uses two methods to decrease the antenna ratio:

Changing the routing by breaking the metal layers into smaller pieces

Inserting antenna diode cells to discharge the current

Both of these methods supply alternate paths for the current. For details about how the router
uses these methods, see Fixing Antenna Violations on page 87.

What is the Process Antenna Flow?


The following steps describe the flow for calculating and fixing process antenna violations
with the router.
1. Set the appropriate antenna parameters in the LEF and DEF files for your library and
design.
Do not mix antenna syntax from LEF and DEF 5.3 with LEF and DEF 5.4. See the LEF/
DEF Language Reference for more information about the antenna parameters.
You can use the Abstract Generator to write the library antenna models to LEF. See
Preparing Your Library for Antenna Calculations on page 91 and Abstract
Generator User Guide for details.
2. Set the appropriate antenna options in the router configuration file if you are running the
router in standalone mode, or the appropriate environment variables if you are running
the router in integrated mode with Silicon Ensemble.
See Configuration Option Descriptions on page 180 for descriptions of the standalone
options. See Environment Variable Descriptions on page 103 for descriptions of the
router environment variables.
3. Perform all the steps in the design flow prior to routing.
4. Route the design.

In standalone mode, run the router.

In integrated mode with Silicon Ensemble, run the WROUTE text command or the
Route WRoute menu command.

See Running the Router in Standalone Mode and Using the Configuration File on
page 171 for help running the router in standalone mode. See Using the Router on
page 35 for help running the router in integrated mode with Silicon Ensemble.
December 2005

64

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations

The router calculates the antenna values during final routing.

The router starts fixing the violations during search and repair routing. It fixes nonantenna violations first, until the number of non-antenna violations is comparable to
the number of antenna violations.

5. If you are running the router in standalone mode, input the routed database into Silicon
Ensemble.

To input a router database (*.wdb), use INPUT WROUTE.

To input a database in DEF format, use INPUT DEF.


See the Silicon Ensemble Text Command Reference for help with both of these
commands.

6. Run the Silicon Ensemble VERIFY ANTENNA text command or the Verify Antenna
menu command to check for any remaining antenna violations.
See the Silicon Ensemble Text Command Reference for help with VERIFY
ANTENNA or the Silicon Ensemble Menu Command Reference for help with Verify
Antenna.
7. If any violations remain, adjust the antenna parameters, options, and environments
variables as appropriate.
8. Fix the remaining violations by running the router in incremental final mode, or by fixing
them manually, using ADD WIRE, MOVE WIRE, and DELETE WIRE.
See the Silicon Ensemble Text Command Reference for help with ADD WIRE, MOVE
WIRE, and DELETE WIRE.
9. Rerun VERIFY ANTENNA or Verify Antenna.
Repeat Step 7, Step 8, and Step 9 until no violations remain.

Using Process Antenna Keywords in the LEF and DEF


Files
You tell the router the values to use for the gate, diffusion, and metal areas by setting values
for process antenna keywords in the LEF and DEF files for you design. You also tell the router
the values to use for the threshold process antenna ratios by setting the keywords.

December 2005

65

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations

Caution
The process antenna syntax in LEF and DEF version 5.3 is different from
later versions. You can use LEF and DEF version 5.3 process antenna
keywords or the process antenna keywords from a later LEF and DEF
version to set the parameters for the routerbut do not mix keywords
from both LEF and DEF versions. If you include keywords from both
versions, the router issues a fatal error and stops.
The following table lists LEF version 5.4 and later antenna keywords.

If the keyword
ends with ...
area

It refers to ...

Examples

Area of the gates or


diffusion

antennaDiffArea
antennaGateArea

Measured in square
microns
factor

Area multiplier used


for the metal nodes

antennaAreaFactor
antennaSideAreaFactor
Note: Use DiffUseOnly if you want the
multiplier to apply only when connecting to
diffusion. For more information, see Using
DiffUseOnly on page 89.

ratio

Relationship the
router is calculating
Cum is used in
keywords for
cumulative antenna
ratio.

antennaAreaRatio
antennaSideAreaRatio
antennaDiffAreaRatio
antennaDiffSideAreaRatio
antennaCumAreaRatio
antennaCumSideAreaRatio
antennaCumDiffAreaRatio
antennaCumDiffSideAreaRatio

Calculating Antenna Ratios


The router calculates antenna ratios using one of the following models:

The partial checking model

December 2005

66

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations
Using this model, you calculate damage to gates by process antennas on one layer. For
example, if you use the partial checking model to calculate the PAE referred to a gate
from metal3, you do not consider any potential damages referred to that gate from
metallization steps on metal1 or metal2.
You use this model to calculate a partial antenna ratio (PAR). A PAR tells you if any single
metallization step is likely to inflict damage to a gate.

The cumulative checking model


This model is more conservative than the partial checking model. It adds damage to a
gate caused by the PAE referred to the gate from each metallization step, starting from
metal1 up to the layer that is being checked. For example, if you use the cumulative
checking model to calculate the PAE referred to a gate from metal3, you add the PAR
from the relevant antenna areas on metal1, metal2, and metal3.
You use this model to calculate a cumulative antenna ratio (CAR). A CAR adds the
damages on successive layers together to accumulate them as the layers are built up.

Calculating the Antenna Area


The area used to model the charge-collecting ability of a node is called the antenna area.
The router calculates the antenna area for one of the following areas:

The drawn area (the top surface area of the process antenna)

The side area (the area of the sides of the process antenna)

Figure 4-3

Drawn area

Side area

Antenna Area Factor


You can increase or decrease the calculated antenna area by specifying an antenna area
factor in the LEF file.

Use AntennaAreaFactor to adjust the calculation of the drawn area.

Use AntennaSideAreaFactor to adjust the calculation of the side area.

December 2005

67

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations
The default value of both factors is 1. See the LEF/DEF Language Reference for more
information about these keywords.

Calculating a PAR
The formula to calculate a PAR is

Area ( N i,j ) F
PAR ( N i,j ,G k ) = -------------------------------------------------------------G k C ( N i,j )
Area ( G k )

Gk
PAR(Ni ,j , Gk ) is the partial antenna ratio for node j on metal i with respect to gate Gk , where
Gk is electrically connected to node Ni,j by layer i or below.
Area(Ni,j ) is the drawn or side area of node Ni,j .
F is an optional scaling factor (AntennaAreaFactor or AntennaSideAreaFactor).
C(Ni,j ) is the set of gates Gk that are electrically connected to Ni,j through the layers below
metal i.
Area(Gk ) is the drawn or side area of gate Gk . (The reason to include the Gk parameter for
PAR is to maintain uniformity with the notation for CAR.)
Note: For a specified node Ni,j , the PAR(Ni,j , Gk ) for all gates Gk that are connected to
the node Ni,j using metal i or below are identical.
Calculations for PAR on the First Metal Layer
Figure 4-4 on page 69 shows a section of an imaginary chip after the first metal layer is
processed.

December 2005

68

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations
Figure 4-4
N1,1

G1

N1,2

G2

G3

N1,4

N1,3

G4

Diode

The shaded areas in the figure represent the wire segment and the
gates whose areas you must compute to evaluate the formula below.

To calculate PAR(Ni ,j , Gk ) for node N1,1, a node on the first metal layer, with respect to gate
G1, use the following formula:
PAR (N1,1,G1) =

Area(N1,1) F
Area(G1) + Area(G2)

Because gates G1 and G2 both connect to node N1,1, the following statement is true:
PAR(N1,1,G1) = PAR(N1,1,G2)

To calculate PAR for node N1,2, another node on the first metal layer, with respect to gate G3,
use the following formula:
PAR (N1,2,G3) =

Area(N1,2) F
Area(G3)

To calculate PAR(Ni ,j , Gk ) for node N1,3, another node on the first metal layer, with respect
to gate G4, use the following formula:
PAR (N1,3,G4) =

Area(N1,3) F
Area(G4)

Calculations for PAR on the Second Metal Layer


Figure 4-5 on page 70 shows the chip after the second metal layer is processed.

December 2005

69

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations
Figure 4-5

N2,1

N2,1

N1,1

N1,2

G1

G2

G3

N2,3

N2,2

N1,4

N1,3

Diode

G4

The shaded areas in the figure represent the wire segments and the
gates whose areas you must compute to evaluate the formula below.

N2,1 consists of two pieces of metal on the second layer that are electrically connected at this
step in the fabrication process. Therefore, to calculate PAR(N2,1,G1), you must add the area
of both pieces together.
To calculate PAR(Ni ,j ,Gk ) for node N2,1, a node on the second metal layer, with respect to
gate G1, use the following formula:
PAR (N2,1,G1) =

Area(N2,1) F
Area(G1) + Area(G2) + Area(G3)

As on the first layer,


PAR(N2,1,G1) = PAR(N2,1,G2) = PAR(N2,1,G3)

Calculations for PAR on the Third Metal Layer


Figure 4-6 on page 71 shows the chip after the third metal layer is processed.

December 2005

70

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations
Figure 4-6
N3,2

N3,1

N2,1

N2,1

N1,1

G1

N1,2

G2

N2,3

N2,2

N1,4

N1,3

G3

G4

Diode

The shaded areas in the figure represent the wire segment and the
gates whose areas you must compute to evaluate the formula below.

To calculate PAR(Ni ,j , Gk )for node N3,1, a node on the third metal layer, with respect to gate
G1, use the following formula:
PAR (N3,1,G1) =

Area(N3,1) F
Area(G1) + Area(G2) + Area(G3) + Area(G4)

As on the prior layers,


PAR(N3,1,G1) = PAR(N3,1,G2) = PAR(N3,1,G3) = PAR(N3,1,G4)

Calculations for PAR on the Fourth Metal Layer


Figure 4-7 on page 72 shows the chip after the fourth metal layer is processed.

December 2005

71

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations
Figure 4-7
N4,1

N3,2

N3,1

N2,1

N2,1

N1,1

G1

N1,2

G2

N2,3

N2,2

N1,4

N1,3

G3

G4

Diode

The shaded areas in the figure represent the wire segment and the
gates whose areas you must compute to evaluate the formula below.

To calculate PAR(Ni ,j , Gk ) for the fourth metal layer, use the following formula:
PAR (N4,1,G1) =

Area(N4,1) F
Area(G1) + Area(G2) + Area(G3) + Area(G4)

As on the prior layers,


PAR(N4,1,G1) = PAR(N4,1,G2) = PAR(N4,1,G3) = PAR(N4,1,G4)

Note: Node N4,1 is connected to the diffusion layer through the output diode. After the router
calculates the antenna ratio, it compares its calculations to the area of the diffusion, instead
of the area of the gates.

December 2005

72

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations

Calculating a CAR
To calculate a CAR, the router adds the PARs for all the relevant nodes on the specified or
lower metal layers that are electrically connected to a gate. Therefore, CAR(Ni ,j ,Gk )
designates the cumulative damage to gate Gk by metallization steps up to the current level of
metal, i.
Note: In practice, the router only needs to keep track of the worst-case CAR; however, the
CARs for all the gates shown in Figure 4-8 on page 73 are shown here.
The router calculates an antenna ratio with respect to a node-gate pair. To find the CAR for
the node Ni ,j - gate Gk pair, you trace the path of the current between gate Gk and node Ni ,j
and add the PAR with respect to gate Gk for the all nodes in the path between the first metal
layer and layer i that you can trace back to Gk .
Figure 4-8
N4,1

N3,2

N3,1

N2,1

N2,1

N1,1

G1

N1,2

G2

G3

N2,3

N2,2

N1,4

N1,3

G4

Diode

The shaded areas in the figure represent the wire segment and the
gates whose areas you must compute to evaluate the formula below.

Important
In Figure 4-8 on page 73, node N1,2 is not shaded because it was not electrically
connected to G2 when metal1 was processed. That is, because the charge
accumulated on N1,2 when metal1 was processed cannot damage gate G1, the
router does not include it in the calculations for CAR(N2,1,G1).

December 2005

73

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations

Another way to explain this is to say that the PAE from node N1,2 with respect to gate
G2 is 0.
Calculations for CAR on the First Metal Layer
Figure 4-9 on page 74 shows the chip after the first metal layer is processed.
Figure 4-9
N1,1

G1

N1,2

G2

G3

N1,4

N1,3

G4

Diode

In the figure above,


CAR(N1,1,G1) = PAR(N1,1,G1)
CAR(N1,1,G2) = PAR(N1,1,G2)
Because PAR(N1,1,G1) equals PAR(N1,1,G2), CAR(N1,1,G1) equals CAR(N1,1,G2).
Note: In general, CAR(Ni,j ,Gk ) equals CAR(Ni,j ,Gk ) if the two gates Gk and Gk are
electrically connected to the same node on metal1, the lowest layer that is subject to the
process antenna effect.
Calculations for CAR on the Second Metal Layer
Figure 4-10 on page 75 shows the chip after the second metal layer is processed.

December 2005

74

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations
Figure 4-10
N2,1

N2,1

N1,1

N1,2

G1

G2

G3

N2,3

N2,2

N1,4

N1,3

Diode

G4

The path of the current between gate G1 and node N2,1 is shaded.
Note that node N2,1 comprises two pieces of metal.

Important
In figure Figure 4-10 on page 75, N1,2 is not included in the calculations for
CAR(N2,1,G1) because it was not electrically connected to G1 when metal1 was
processed. That is, because the charge accumulated on N1,2 when metal1 was
processed cannot damage gate G1, the router does not include it in the calculations
for CAR(N2,1,G1).
In the figure above,
CAR(N2,1,G1) = PAR(N1,1,G1) + PAR(N2,1,G1)
CAR(N2,1,G2) = PAR(N1,1,G2) + PAR(N2,1,G2)
Gates G1 and G2 have the same history with regard to PAE because they are connected to
the same piece of metal1, so they have the same CAR for any node on a specified layer:
CAR(N2,1,G1) = CAR(N2,1,G2)
Calculations for CAR on the Third Metal Layer
Figure 4-11 on page 76 shows the chip after the third metal layer is processed.

December 2005

75

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations
Figure 4-11
N3,2

N3,1

N2,1

N2,1

N1,1

G1

N2,2

N1,2

G2

G3

N1,3

G4

N2,3

N1,4

Diode

The path of the current between gate G1 and node N3,1 is shaded.

Gate G1

In the figure above,


CAR(N3,1,G1) = PAR(N1,1,G1) + PAR(N2,1,G1) + PAR(N3,1,G1)
Gate G2

In the figure above,


CAR(N3,1,G2) = PAR(N1,1,G2) + PAR(N2,1,G2) + PAR(N3,1,G2)
CAR(N3,1,G1) equals CAR(N3,1,G2) because gates G1 and G2 are both electrically
connected to the same node, N1,1, on metal1 and therefore have the same history with
regard to PAE. Therefore, the formula for CAR(N3,2, G2) is CAR(N3,1,G1) = CAR(N3,1,G2)
Gates G3 and G4

Gates G3 and G4 are not connected to the same node on metal1 and therefore do not have
the same history with regard to PAE. Therefore, the CAR(N3,1,G3) and CAR(N3,1,G4) do
not necessarily equal CAR(N3,1,G1) or CAR(N3,1,G2).
n Figure 4-12 on page 77, the relevant areas for calculating CAR for gate G3 are shaded.

December 2005

76

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations
Figure 4-12
N3,2

N3,1

N2,1

N2,1

N1,1

G1

N2,2

N1,2

G2

N1,3

G3

G4

N2,3

N1,4

Diode

In the figure above,


CAR(N3,1,G3) = PAR(N1,2,G3) + PAR(N2,1,G3) + PAR(N3,1,G3)
In Figure 4-13 on page 77, the relevant areas for calculating CAR for gate G4 are shaded.
Figure 4-13
N3,2

N3,1

N2,1

N2,1

N1,1

G1

N2,2

N1,2

G2

G3

N1,3

G4

N2,3

N1,4

Diode

In the figure above,


CAR(N3,1,G4) = PAR(N1,3,G4) + PAR(N2,2,G4) + PAR(N3,1,G4)

December 2005

77

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations
Calculations for CAR on the Fourth Metal Layer
The following figure shows the chip after the fourth metal layer is processed.
Note: Node N4,1 is connected to the diffusion layer through the output diode. After the router
calculates the antenna ratio, it compares its calculations to the area of the diffusion, instead
of the area of the gates.
Gates G1 and G2

In Figure 4-14 on page 78, the relevant areas for calculating CAR(N4,1,G1) and
CAR(N4,1,G2) are shaded.
Figure 4-14
N4,1

N3,2

N3,1

N2,1

N2,1

N1,1

G1

N2,2

N1,2

G2

G3

N1,3

G4

N2,3

N1,4

Diode

In the figure above,


CAR(N4,1,G1) = PAR(N1,1,G1) + PAR(N2,1,G1)
+ PAR(N3,1,G1) + PAR(N4,1,G1)
CAR(N4,1,G2) = PAR(N1,1,G2) + PAR(N2,1,G2)
+ PAR(N3,1,G2) + PAR(N4,1,G2)
CAR(N4,1,G1) = CAR(N4,1,G2)

December 2005

78

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations
Gate G3

In Figure 4-15 on page 79, the relevant areas for calculating CAR(N4,1,G3) are shaded.
Figure 4-15
N4,1

N3,2

N3,1

N2,1

N2,1

N1,1

G1

N2,2

N1,2

G2

G3

N1,3

G4

N2,3

N1,4

Diode

In the figure above,


CAR(N4,1,G3) = PAR(N1,2,G3) + PAR(N2,1,G3)
+ PAR(N3,1,G3) + PAR(N4,1,G3)
CAR(N4,1,G3) does not equal CAR(N4,1,G1) or CAR(N4,1,G2) because it is not connected
to the same node on metal1.
Gate G4

In Figure 4-16 on page 80, the relevant areas for calculating CAR(N4,1,G4) are shaded.

December 2005

79

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations
Figure 4-16
N4,1

N3,2

N3,1

N2,1

N2,1

N1,1

G1

N2,2

N1,2

G2

G3

N1,3

G4

N2,3

N1,4

Diode

In the figure above,


CAR(N4,1,G4) = PAR(N1,3,G4) + PAR(N2,2,G4)
+ PAR(N3,1,G4) + PAR(N4,1,G4)
CAR(N4,1,G4) does not equal CAR(N4,1,G1), CAR(N4,1,G2), or CAR(N4,1,G3) because
it is not connected to the same node on metal1.

Calculating Ratios for a Cut Layer


The router calculates damage from a cut layer separately from damage from a metal layer.
Calculations for the cut layers do not use side area modelling.
In the figures and text that follow,

Cij is the cut layer between metal i and metal j .

NCij,k specifies an electrically connected node on Cij.

The nodes are numbered sequentially, from left to right.

Calculating a PAR on a Cut Layer


Figure 4-17 on page 81 shows the chip after the C12 process step.

December 2005

80

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations
Figure 4-17
NC12,1

NC12,2

NC12,2

N1,1

NC12,3

N1,2

G1

G2

NC12,4
N1,4

N1,3

G3

Diode

G4

In the figure above,


Area(NC12,1,G1) F
PAR(NC12,1,G1) =
Area(G1) + Area(G2)

As in calculations on the metal layers,


PAR(NC12,1,G1) = PAR(NC12,2,G2)
Calculating a CAR on a Cut Layer
Figure 4-18 on page 81 shows the chip after the C23 process step.
Figure 4-18
NC23,1
N2,1
NC12,1

N2,1

NC12,2

NC12,2

N1,1

G1

December 2005

NC23,2
N2,2
NC12,3
N1,3

N1,2

G2

G3

G4

81

NC23,2
N2,3
NC12,4
N1,4

Diode

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations
The router calculates the CAR with respect to gate G3 after the cut C23 process step as
follows:

CAR(NC23,1,G3) =

Area(NC23,1,G3) F
Area(G3)

Area(NC12,2,G3) F
Area(G3)

Figure 4-19 on page 82 shows the chip after the C34 process step.
Figure 4-19
NC34,1

NC34,2
N3,2

N3,1
NC23,1
N2,1
NC12,1

N2,1

NC12,2

N2,3

NC12,3

N1,2

G2

NC23,2

N2,2

NC12,2

N1,1

G1

NC23,2

NC12,4
N1,4

N1,3

G3

Diode

G4

The router calculates the CAR with respect to gate G3 after the cut C34 process step as
follows:

CAR(NC34,1,G3) =

Area(NC34,1,G3) F
+
Area(G3)

Area(NC23,1,G3) F
Area(G3)

Area(NC12,2,G3) F
Area(G3)

Checking for Antenna Violations


For each metal layer, the router performs several antenna checks, using the keywords and
values specified in the LEF or DEF file. The router can perform the following four types of
antenna checks, depending on the keywords you set in the LEF file:

Area Ratio Check

Side Area Ratio Check

December 2005

82

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations

Cumulative Area Ratio Check

Cumulative Side Area Ratio Check

Area Ratio Check


The area ratio check compares the PAR for each layer to the value of the
AntennaAreaRatio or AntennaDiffAreaRatio.
The router calculates the PAR as follows:
PAR (Ni ,j , Gk ) =

Drawn area of Ni ,j

AntennaAreaFactor

Area of gates connected below Ni ,j

Note: The AntennaAreaFactor has a default value of 1.


According to the formula above, the area ratio check finds the PAR for node Ni,j with respect
to gate Gk by dividing the drawn area of the node by the area of the gates that are electrically
connected to it. If the PAR is greater than the AntennaAreaRatio or
AntennaDiffAreaRatio specified in the LEF file, the router finds a process antenna
violation and attempts to fix it.
The link between PAR(Ni,j ,Gk ) and a PAE violation at node Ni,j depends on whether
node Ni,j is connected to a piece of diffusion, as follows:

If there is no connection from node Ni,j to a diffusion area through the current and lower
layers, a violation occurs when the PAR is greater than the AntennaAreaRatio.

If there is a connection from node Ni,j to a diffusion area through current and lower
layers, a violation occurs when the PAR is greater than the AntennaDiffAreaRatio.

If there is a connection from node Ni,j to a diffusion area through current and lower
layers, and AntennaDiffArea is not specified for an output or inout pin, value is 0.

Side Area Ratio Check


The side area ratio check compares the PAR computed based on the side area of the nodes
for each layer to the value of the AntennaSideAreaRatio or
AntennaDiffSideAreaRatio.

December 2005

83

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations
The router calculates the PAR as follows:
PAR (Ni ,j Gk ) =

Side area of Ni,j AntennaSideAreaFactor


Area of gates connected below Ni,j

Note: The AntennaSideAreaFactor has a default value of 1.


According to the formula above, the area ratio check finds the PAR for node Ni,j with respect
to gate Gk by dividing the side area of the node by the area of the gates that are electrically
connected to Ni,j . If the PAR is greater than the AntennaSideAreaRatio or
AntennaDiffSideAreaRatio specified in the LEF file, the router finds a process antenna
violation and attempts to fix it.
The link between PAR(Ni,j ,Gk ) and a PAE violation at node Ni,j depends on whether
node Ni,j is connected to a piece of diffusion, as follows:

If there is no connection to the diffusion area through the current and lower layers, a
violation occurs when the PAR is greater than the AntennaSideAreaRatio.

If there is a connection to the diffusion area through current and lower layers, a violation
occurs when the PAR is greater than the AntennaDiffSideAreaRatio.

If there is a connection to the diffusion area through current and lower layers, and
AntennaDiffArea is not specified for an output or inout pin, the value is 0.

Cumulative Area Ratio Check


The cumulative area ratio check compares the CAR to the value of AntennaCumAreaRatio
or AntennaCumDiffAreaRatio. The CAR is equal to the sum of the PARs of all nodes on
the same or lower layers that are electrically connected to the gate.
Note: When you use CARs, you can ignore metal layers by not specifying the CAR keywords
for those layers. For example, if you want to check metal1 using a PAR and the remaining
metal layers using a CAR, you can define AntennaAreaRatio or
AntennaSideAreaRatio for metal1, and AntennaCumAreaRatio or
AntennaCumSideAreaRatio for the remaining metal layers.
The cumulative area ratio check finds the CAR for node Ni,j with respect to gate Gk by
adding the PARs for all layers of metal, from the current layer down to metal1, for all nodes
that are electrically connected Gk. If the CAR is greater than the AntennaCumAreaRatio or
AntennaCumDiffAreaRatio specified in the LEF file, the router finds a process antenna
violation and attempts to fix it.

December 2005

84

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations
The link between CAR(Ni,j ,Gk ) and a PAE violation at node Ni,j depends on whether
node Ni,j is connected to a piece of diffusion, as follows:

If there is no connection to a diffusion area through the current and lower layers, a
violation occurs when the CAR is greater than the AntennaCumAreaRatio.

If there is a connection to a diffusion area through current and lower layers, a violation
occurs when the CAR is greater than the AntennaCumDiffAreaRatio.

If there is a connection to a diffusion area through current and lower layers, and
AntennaCumDiffArea is not specified for an output or inout pin, the value is 0.

Cumulative Side Area Ratio Check


The cumulative side area ratio check compares the CAR to the value of the
AntennaCumSideAreaRatio or AntennaCumDiffSideAreaRatio.
Note: When you use CARs, you can ignore metal layers by not specifying the CAR keywords
for those layers. For example, if you want to check metal1 using a PAR and the remaining
metal layers using a CAR, you can define AntennaAreaRatio or
AntennaSideAreaRatio for metal1, and AntennaCumAreaRatio or
AntennaCumSideAreaRatio for the remaining metal layers.
The formula for this check is the same as for the AntennaCumAreaRatio check, except that
the router uses the AntennaSideAreaFactor instead of the AntennaAreaFactor in the
calculations.
The cumulative side area ratio check finds the CAR for node Ni,j with respect to gate Gk by
adding the PARs for all layers of metal, from the current layer down to metal1, for all nodes
that are electrically connected Gk. If the CAR is greater than the
AntennaCumSideAreaRatio or AntennaCumDiffSideAreaRatio specified in the LEF
file, the router finds a process antenna violation and attempts to fix it.

If there is no connection to a diffusion area through the current and lower layers, a
violation occurs when the CAR is greater than the AntennaCumSideAreaRatio.

If there is a connection to a diffusion area through current and lower layers, a violation
occurs when the CAR is greater than the AntennaCumDiffSideAreaRatio.

If there is a connection to a diffusion area through current and lower layers, and
AntennaCumDiffArea is not specified for an output or inout pin, the value is 0.

December 2005

85

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations

Example Using the Antenna Keywords


The following example is a portion of a LEF file that shows the antenna keywords for a
process that has cumulative area ratio damage for metal and cut layers.
Assume you have the following antenna rules for your process:
1. A maximum cumulative metal to gate area ratio of 1000
2. If a diode of greater than .1 microns is connected to the metal, the maximum metal ratio
is: ratio = diode_area x 2000 + 5000
3. A maximum cumulative via to gate area ratio of 20
4. If a diode of greater than .1 microns is connected to the via, the maximum via ratio is:
ratio = diode_area x 200 + 100
The corresponding LEF file would include:
LAYER M1
TYPE ROUTING ;
...
ANTENNACUMAREARATIO 1000 ;
ANTENNACUMDIFFAREARATIO
PWL ( ( 0 1000 ) ( 0.099 1000 ) ( 0.1 5200 ) ( 100 205000 ) ) ;
END M1
LAYER VIA1
TYPE CUT ;
...
ANTENNACUMAREARATIO 20 ;
ANTENNACUMDIFFAREARATIO
PWL ( ( 0 20 ) ( 0.099 20 ) ( 0.1 120 ) ( 100 20100 ) ) ;
END VIA1

A typical standard cell that has only M1 pins and routing inside of it would have:
MACRO INV1X
CLASS CORE ;
...
PIN IN
DIRECTION INPUT ;
ANTENNAGATEAREA .5 LAYER M1 ; # connects to 0.5 m^2 poly gate
ANTENNAPARTIALMETALAREA 1.0 LAYER M1 ; # has 1.0 m^2 M1 area.
# Note that it should not include the M1 pin area, just the M1 routing

December 2005

86

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations
# area that is not included in the PIN shapes. In many cases, all of the
# M1 routing is included in the PIN, so this value is 0, and not in the
# LEF at all.
ANTENNAMAXAREACAR 10.0 LAYER M1 ; # has 10.0 cumulative ratio so far.
# This value can include area from internal poly routing if poly routing
# damage is accumulated with the metal layers. It does not include
# the area of the M1 pin area, just the M1 routing area that is not
# included in the PIN shapes. If poly damage is not included, and all
# of the M1 routing is included in the PIN, this value will be 0, and
# not in the LEF at all.
...
END IN
PIN OUT
DIRECTION OUTPUT ;
ANTENNADIFFAREA .2 LAYER M1 ; # connects to 0.2 m^2 difusion area
ANTENNAPARTIALMETALAREA 1.0 LAYER M1 ; # has 1.0 m^2 M1 area
# No ANTENNAMAXAREACAR value because no internal poly gate is connected
...
END OUT
END INV1X

Fixing Antenna Violations


The router generally uses one of two methods to fix process antenna violations:

Change the routing by breaking the metal layers into smaller pieces.

Insert antenna diode cells to discharge the current.

Changing the Routing


One method the router uses to fix antenna violations is to limit the charge that is collected
through the metal nodes exposed to the plasma. To do this, it goes up one layer or pushes
the routing down one layer whenever the process antenna ratio exceeds the ratio set in the
LEF file.
The router changes the routing by disconnecting nets with antenna violations and making the
connections to higher metal layers instead. It does not make the connections to lower layers.
This method works because the top metal layer always completes the connection from the
gate to the output drain area of the driver, which is a diode that provides a discharge path.

December 2005

87

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations

Inserting Antenna Diode Cells


The second method the router uses to repair antenna violations is to insert antenna diode
cells in the design. You must use LEF version 5.4 or later to use this method to fix process
antenna violations.
The electrical charges on the metal that connects to the diodes is then discharged through
the diode diffusion layer and substrate. The router inserts the diode cells automatically unless
the design has filler cells. If it does, the router replaces the filler cells with equivalent antenna
diode cells that have the same orientation.
If a filler cell is larger than the diode cell, Wroute swaps the filler cell with the antenna diode
cell, then fills the gap with smaller filler cells that have the same orientation as the original
filler cell. When filling the gap, Wroute attempts to place the largest filler cells first, to minimize
the number of total instances in the design.
Note: Cadence recommends that you try fixing the antenna violations without using filler
cells.
To fix antenna violations by inserting antenna diode cells, complete the following steps.
1. If your design uses filler cells, define an antenna diode cell for each filler cell in the
design. If necessary, define the filler cell as CLASS CORE SPACER. The origin,
symmetry, site, power, and ground pin of the antenna diode cell must match those of the
filler cell.
2. If your design does not use filler cells, define one or more antenna diode cells, with either
AntennaGateArea or AntennaDiffArea. You must define the cells as CLASS CORE
ANTENNACELL.
Note: If you have unfixed process antenna violations when the router finishes routing,
and no diodes were inserted in the DEF file, check the antenna LEF file to make sure
that AntennaDiffArea is specified in the PIN section of the antenna cell. The router
will not insert diodes if this parameter is not specified.
The following example shows a LEF definition of an antenna diode cell, with the CLASS
CORE ANTENNACELL and ANTENNADIFFAREA defined:
MACRO antenna1
CLASS CORE ANTENNACELL ;
...
PIN ANT1
AntennaDiffArea 1.0 ;
PORT
LAYER metal1 ;
RECT 0.190 2.380 0.470 2.660 ;
December 2005

88

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations
END
END ANT1
END antenna1

3. Set the following environment variables (configuration options):

WRoute.Antenna.Cell.Pass (frouteAntennaCellPass)

WRoute.Fix.AntennaPass (frouteFixAntennaPass)

4. Route the design.


Important
After routing, use the Silicon Ensemble VERIFY ANTENNA command to ensure that
the process antenna violations in your design have been fixed. Cadence
recommends using this command because Wroute Router/Ultra Router does not
check for process antenna violations in special nets.
If VERIFY ANTENNA finds violations that the router did not fix, you can fix them manually,
using the Silicon Ensemble ADD WIRE, MOVE WIRE, and DELETE WIRE commands.
For information about these commands, see the Silicon Ensemble Text Command
Reference.

Using DiffUseOnly
The router stores only one value for AntennaAreaFactor and one value for
AntennaSideAreaFactor, with or without DiffUseOnly, per layer. If you specify more
than one antenna area or side area factor for a layer, the router uses the last one it reads. The
AreaFactor value lets you scale the value of the metal area. If you use the DiffUseOnly
keyword, only metal attached to diffusion is scaled.

December 2005

89

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations
Suppose you have the following LEF file:
Antenna.lef
----------LAYER M3
TYPE ROUTING ;
PITCH 0.56 ;
DIRECTION HORIZONTAL ;
WIDTH 0.28 ; SPACING 0.28 ;
SPACING 0.36 RANGE 1.0 250.0 ;
CAPACITANCE CPERSQDIST 0.0009762 ;
RESISTANCE RPERSQ 0.129 ;
THICKNESS 0.60 ;
AntennaAreaRatio 10000 ;
AntennaDiffAreaRatio 10000 ;
AntennaAreaFactor 1.2 DiffUseOnly ;
AntennaSideAreaRatio 5000 ;
AntennaDiffSideAreaRatio 5000 ;
AntennaSideAreaFactor 1.4 DiffUseOnly ;
END M3

Figure 4-20
M3

Pin N01 of DIFF_M2_M3 is not connected


to the rest until M3 is fabricated.
M2
M1

Pin N01 of DIFF_M2_M3

Pin H01 of GATE_M2_M3

In Figure 4-20 on page 90,

The input pin H01 of GATE_M2_M3 connects the metal wires to metal1, metal2, and
metal3 in sequence.

The diffusion area of pin N01 of DIFF_M2_M3 defaults to the library default of 0.1936
if not explicitly specified in the MACRO section of the LEF file.

The AntennaAreaFactor 2.2 DiffUseOnly and AntennaSideAreaFactor 2.4


DiffUseOnly apply to metal3 routing.

Prior to metal3 fabrication, there is no path to the diffusion diode. This causes the default
factor of 1.0 to apply to the metal1 and metal2 segments shown when calculating
PARs.

December 2005

90

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations

Preparing Your Library for Antenna Calculations


You can use the Abstract Generator to calculate the process antenna data for your cell library.
If you export LEF models from Silicon Ensemble, Abstract Generator writes the library
antenna models to LEF along with the abstract models.
Abstract Generator calculates the following antenna values:

AntennaGateArea

AntennaDiffArea

AntennaPartialMetalArea

AntennaPartialMetalSideArea

AntennaPartialCutArea

AntennaMaxAreaCAR

AntennaMaxSideAreaCAR

AntennaMaxCutCar

For more details, see Abstract Generator User Guide.

Process Antenna Configuration Options and


Environment Variables
The following table shows configuration options and environment variables you can use for
process antenna calculations and fixing with the router.

The column labeled WR2.2/SE5.3 shows whether the option or environment variable is
supported by version 2.2 of the router and version 5.3 of Silicon Ensemble.

The column labeled WR2.3/SE5.4 shows whether the option or environment variable is
supported by version 2.3 of the router and version 5.4 of Silicon Ensemble.
WR2.2 WR2.3
SE5.3 SE 5.4

Configuration Option Name

Environment Variable Name

antennaMethod

Verify.Antenna.Method

antennaSumGateArea

Verify.Antenna.SumGateArea

frouteAntennaCellPass

WRoute.Antenna.Cell.Pass

December 2005

91

X
Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations

Configuration Option Name

Environment Variable Name

WR2.2 WR2.3
SE5.3 SE 5.4

frouteAntennaTopLayerLimit n/a

frouteFixAntennaPass

WRoute.Fix.AntennaPass

inputLEFName

WRoute.Addition.LefName

Calculations for Hierarchical Designs


The following section illustrates computation of antenna ratios for hierarchical designs.

LEF and DEF Keywords for Hierarchical Designs


If the keyword
ends with ...

It refers to ...

Examples

area
sideArea

Drawn area or side area of the antennaPartialCutArea


metal wires. Measured in
antennaPartialMetalArea
square microns.
antennaPartialMetalSideArea
antennaPinDiffArea
antennaPinGateArea
antennaPinPartialCutArea

CAR

Relationship the router is


calculating
CAR is used in keywords for
cumulative antenna ratio.

antennaMaxAreaCAR
antennaMaxCutCAR
antennaMaxSideAreaCAR
antennaPinMaxAreaCAR
antennaPinMaxCutCAR
antennaPinMaxSideAreaCAR

Design Example
Figure 4-21 on page 93 represents a macro block. This block can be a custom hard block or
part of a bottom-up hierarchical flow. The resulting PAE values will be the same in either case.
In the example,

Gates G1, G2, G3, and G4 are the same size.

Node N1,3 is larger than node N1,2.

December 2005

92

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations

Vias (cuts) are all the same size.

The I/O pin is on metal3.

The area of diffusion for D1 is area(Diff1).

The area of diffusion for D2 is area(Diff2).

The area of the cut layer that connects node N3,1 and node N4,2 is area(NC34,1).

Any damage from the poly layer or poly-to-metal1 via is ignored.

Figure 4-21
Macro block
N4,2

N4,1
N3,1

N34,1

N23,1
N2,1
N12,1
N1,1

G1

I/O
pin

N3,2
N23,2

N2,2
N12,3
N12,4
N1,3

N12,2
N1,2

G2

NC34,2

G3

G4

N12,5
N1,4

D1

N34,3
N3,3
N23,3
N2,3
N12,6
N1,5

D2

Relevant Metal Areas

The relevant metal area for PAE calculations is the partial metal drawn area and side
area connected directly to the I/O pin on the inside of the macro on the specified layer.

Only the same metal layer as the I/O pin or above is needed for PAR calculations in
hierarchical designs.
Important
Do not include the drawn area or side area of the I/O pin in the area calculations for
the block, because the router includes these areas in the calculations for the upper
level. Only the internal routing area that is not part of the I/O pin should be included.

For the design in the figure above, you must specify values for the following metal areas in
the LEF file:
December 2005

93

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations
AntennaPartialMetalArea area(N3,1) LAYER Metal3 ;
AntennaPartialMetalArea area(N4,2) LAYER Metal4 ;
AntennaPartialMetalSideArea sideArea(N3,2) LAYER Metal3 ;
AntennaPartialMetalSideArea sideArea(N4,2) LAYER Metal4 ;

You do not need to specify an AntennaPartialMetalArea or


AntennaPartialMetalSideArea for any layer lower than metal3 because the I/O pin is
on metal3; that is, there is no connection outside the block until metal3 is processed.
See the LEF/DEF Language Reference for keyword descriptions.
Relevant Gate, Diffusion, and Cut Areas

The relevant gate and diffusion areas are the gate and diffusion areas that connect
directly to the I/O pin on the specified layer or are electrically connected to the pin
through lower layers.
Note: The gate area defaults to 0 unless you specify an AntennaInputGateArea.

The relevant partial cut area is above the current pin layer and inside the macro on the
specified layer.

For the example in the figure above, you must specify values for the following gate, diffusion,
and cut areas in the LEF file:
AntennaGateArea area(G2 + G3 + G4) LAYER Metal3 ;
AntennaDiffArea area(Diff1) LAYER Metal3 ;
AntennaDiffArea area(Diff1 + Diff2) LAYER Metal4 ;
AntennaPartialCutArea area(NC34,1) LAYER via34 ;

Calculating the CAR


Use the following keywords to calculate the actual CAR on the I/O pin layer or above.

The relevant maximum CAR value of the drawn and side areas are from the metal layer
that is on or below the I/O pin layer.

The relevant maximum CAR value of the cut layer is from the cut layer that is immediately
above the I/O pin layer.

Use the following keywords to calculate the maximum CAR values:

December 2005

94

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations

Sample LEF File for a Bottom-Up Hierarchical Design


For a macro block like that shown in Figure 4-21 on page 93, you should have the following
pin information in your LEF file, ignoring SIDEAREA values:
PIN example
ANTENNAGATEAREA 0.3 LAYER METAL3 ; # area of G2 + G3 + G4
ANTENNADIFFAREA 1.0 LAYER METAL3 ; # area of D1
ANTENNAPARTIALMETALAREA 10.0 LAYER METAL3 ; # area of N3,1
ANTENNAMAXAREACAR 100.0 LAYER METAL3 ; # max CAR of N3,1
ANTENNAPARTIALCUTAREA 0.1 LAYER VIA34 ; # area of N34,2
ANTENNAMAXCUTCAR 5.0 LAYER VIA34 ; # max cut CAR of N34,2
ANTENNAGATEAREA 0.3 LAYER METAL4 ; # area of G2 + G3 + G4
ANTENNADIFFAREA 2.0 LAYER METAL4 ; # area of D1 + D2
ANTENNAPARTIALMETALAREA 12.0 LAYER METAL4 ; # area of N4,2
ANTENNAMAXAREACAR 130.0 LAYER METAL4 ; # max CAR of N4,2
END example

Top-Down Hierarchical Design Example


In a top-down design, the router uses the top-level antenna values to check for process
antennas inside the block. If the top level is routed first, the top-level routing CAR and PAR
values can be passed down into the DEF for the sub-block. This method can also be used to
pass down estimated budgets for PAR and CAR values.
Set the following keywords in the DEF file for the design. In a top-down design you assign a
value to the I/O pin that indicates how much routing, CAR, and PAR occurred outside the
block already.
MACRO macroName

December 2005

95

Product Version 2.3

Ultra Router Reference


Calculating and Fixing Process Antenna Violations
CLASS BLOCK ;
PIN pinName
DIRECTION OUTPUT ;
[AntennaPinPartialMetalArea value [LAYER layerName] ;] ...
[AntennaPinPartialMetalSideArea value [LAYER layerName] ;] ...
[AntennaPinGateArea value [LAYER layerName] ;] ...
[AntennaPinDiffArea value [LAYER layerName] ;] ...
[AntennaPinMaxAreaCAR value [LAYER layerName] ;] ...
[AntennaPinMaxSideAreaCAR value [LAYER layerName] ;] ...
[AntennaPinPartialCutArea value [LAYER cutlayerName] ;] ...
[AntennaPinMaxCutCAR value LAYER cutlayerName] ;] ...
END Z
END macroName

Sample DEF File for a Top-Down Hierarchical Design


An example of the DEF keywords for Figure 4-21 on page 93 would be:
PINS 100 ;
- example + NET example1
+ ANTENNAPINPARTIALMETALAREA (N3,1) LAYER Metal3 ;
+ ANTENNAPINPARTIALMETALSIDEAREA (N3,1) LAYER Metal3 ;
+ ANTENNAPINGATEAREA (G1) LAYER Metal3 ;
# No ANTENNAPINDIFFAREA for this example

+ ANTENNAPINPARTIALCUTAREA (N34,1) LAYER via34 ;

+ ANTENNAPINGATEAREA (G1) LAYER Metal4 ;


+ ANTENNAPINPARTIALMETALAREA (N4,1) LAYER Metal4 ;
+ ANTENNAPINPARTIALMETALSIDEAREA (N4,1) LAYER Metal4 ;
...
END PINS

December 2005

96

Product Version 2.3

Ultra Router Reference

5
The WROUTE Command and the
Environment Variables
You control the behavior of the router using graphical user interface (GUI) forms or text
commands and environment variables or configuration file options.
When you use the GUI forms, the default settings work for most designs. The GUI sets the
arguments automatically.
This chapter describes the command that runs the router, the environment variables, and the
configuration file.
This chapter contains the following sections:

The WROUTE Command on page 98

Environment Variables and Configuration File Options on page 100

Environment Variable Descriptions on page 103

December 2005

97

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

The WROUTE Command


WROUTE is the command that starts the router.

Syntax
WR*OUTE
[F*ILENAME configFileName]
[NOC*ONFIG]
[I*NCREMENTAL]
[D*BNAME dbName]
[NE*WDBNAME dbName]
[GL*OBALONLY
[AR*EA pt1 pt2]
[W*RHELP];

Note: An asterisk indicates the minimum number of characters you must type to use the
command or argument. Type the letters to the left of the asterisk, but do not type the asterisk.
If there is no asterisk, type the entire word.

Arguments
Without arguments, the WROUTE command runs the router using the default configuration file,
.wrconfig. If this file does not exist, the router uses the default values for the configuration
file options. (It ignores the settings for the environment variables.)
FILENAME configFileName
Runs the router with the configuration file you specify. When you
use the FILENAME argument, the router ignores the environment
variables. To read about the configuration file, see Appendix B,
Running the Router in Standalone Mode and Using the
Configuration File.
NOCONFIG
Runs the router using the existing settings for the WROUTE
environment variables. When you use the NOCONFIG argument,
the router ignores the configuration file settings (unless you set
the WRoute.Extra.Config variable).
INCREMENTAL
Runs final routing on an existing router database. Use
INCREMENTAL only when you want the router to use an existing
binary router database instead of creating one with library
December 2005

98

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables
exchange format (LEF) and design exchange format (DEF) files.
This can save time if your LEF and DEF files are very large.
By default, the routers database is stored in ./wroute.wdb.
The INCREMENTAL argument checks whether ./wroute.wdb
(or the database specified with DBNAME) exists, runs final routing
on this database, and reads the database back.
Note: Perform a complete router run (global and final routing)
on the design rather than an incremental run (final routing only)
if you change your design or make significant changes to your
environment variables or configuration file options. Examples of
significant changes are turning on timing-driven routing or
setting WRoute.Assign.RoutingDir.
DBNAME dbName
Specifies the database that is input to the router from Silicon
Ensemble.
NEWDBNAME dbName
Specifies the database the router sends to Silicon Ensemble.
Important
If you are running the router integrated with Silicon Ensemble, by default, the router
stores the router database in wroute.wdb. During final routing, the router
overwrites wroute.wdb each time it runs unless you specify another location.
Silicon Ensemble outputs LEF and DEF files to create the router database. When the
router finishes routing, it inputs the database to Silicon Ensemble.
During a full route (global and final route), use DBNAME to specify the output database
directory.
During an incremental route, you can use DBNAME and NEWDBNAME interchangeably to
specify the input and output databases, although DBNAME is intended to identify the input
to the router and NEWDBNAME is intended to identify the output from the router. If you
identify one database only, it is used as the input and output database. If you identify
separate input and output databases, the output database must appear second.
For example, the following command reads in wrdbs_1 and saves the database in
wrdbs_2:
WROUTE INCREMENTAL dbname wrdbs_1 newdbname wrdbs_2;

December 2005

99

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables
Both of the following commands run an incremental route on ./wrdbs_1 and save the
results in the same database:
WROUTE INCREMENTAL dbname wrdbs_1;
WROUTE INCREMENTAL newdbname wrdbs_1;

The location of the directory you specify is relative to the current working directory rather
than to the design directory. If the directory does not exist, the router creates it. The
router can create one level of directory only. If you enter a path with multiple directories,
all the directories must exist except the final directory (the database directory). For
example, if you type the following command, the wroutedb directory must already exist:
If the dbs1 directory does not exist, the router creates it.
WROUTE dbname wroutedb/dbs1;

Caution
If, during a full route, you specify an existing directory with
DBNAMEregardless of what it containsthe router deletes all data in
that directory and saves the router database under the directory. (This
applies for a full route only. During an incremental route, the router will
not overwrite an existing directory unless it contains a router database.)
GLOBALONLY
Runs a global route, updates the congestion map, and returns to
the Silicon Ensemble main window.
AREA pt1 pt2
Routes the specified area only. If you do not specify an area, the
router routes the entire area. Corresponds to the
WRoute.Route.Area environment variable.
pt1
Specifies the coordinate pair x1y1.
pt2

Specifies the coordinate pair x2y2.

WRHELP
Describes the router configuration file options. When you specify
WRHELP, no routing is performed.

Environment Variables and Configuration File Options


Use the environment variables for the WROUTE command in the same way you use the
environment variables for other commands in the Silicon Ensemble environmentset them

December 2005

100

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables
on the command line or on the Environment Variables form, or make selections on the
command forms.
The environment variables for the WROUTE command are derived from configuration file
options for the router. In general, there is an environment variable that maps to each
configuration option. However, in some cases, there are options for which no environment
variable exists. You set the WRoute.Extra.Config environment variable to use the
additional options.
Important
The extra configuration file can contain options other than the extra options. The
values of the options that are not extra, however, are overwritten by the values of the
corresponding environment variables.
See Table of Configuration Options and Environment Variables on page 176 for a complete
list of environment variables and the configuration options to which they correspond.

When You Use the GUI Forms

The forms use the environment variables.

To change the settings of the environment variables, change the settings on the forms.

To use options in addition to the environment variables, set the


Wroute.Extra.Config environment variable and create a configuration file.

When You Use Text Commands on the Command Line

The command line uses a default configuration file.

To see the default values of options in the configuration file, use the WRHELP argument.

To specify a different configuration file, use the FILENAME argument.

To use environment variables instead of the options, use the NOCONFIG argument.

To use environment variables and options, use the NOCONFIG argument and set the
WRoute.Extra.Config environment variable.

Case Sensitivity of the Environment Variables


The following items are not case sensitive:

December 2005

101

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

Variable names
For example, wroute.final, WRoute.Final, and WROUTE.FINAL are all equivalent.

Boolean values
For example, true, True, and TRUE are all equivalent.

String values for an argument


For example, readDEF, readdef, and READDEF are all equivalent.

Other string values, such as filenames or cellnames, are converted to all uppercase, unless
one of the following conditions is met:

You enclose the string in quotation marks (")

You set the NAMESCASESENSITIVE statement in the LEF syntax to ON. See the
LEF/DEF Language Reference for more information.

Note: In this reference manual, the environment variables are shown in uppercase and
lowercase letters to improve readability.

December 2005

102

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

Environment Variable Descriptions


This section describes the router environment variables in alphabetical order.
Important
For a complete list of environment variables and the configuration options to which
they correspond, see Table of Configuration Options and Environment Variables
on page 176.

FRoute.Manufacturing.XGrid
Froute.Manufacturing.XGrid value

Data Type: Integer


Default: 0 (disabled)
User Level: Novice
Description
Snaps all routes to the manufacturing grid. The router snaps the routes at x coordinate
locations that are multiples of the specified argument.
The manufacturing grid is measured in database units.
This environment variable is useful for designs that contain off-grid pins or off-grid preroutes.
The router builds off-grid routing tracks to connect to the off-grid geometries; this environment
variable tells it where to place these off-grid routing tracks.
Note: If the keyword VERSION 5.4 is specified in either LEF or DEF, this environment
variable is disabled. To set this value, use the LEF MANUFACTURINGGRID statement. See the
LEF/DEF Language Reference for more information.
Related Environment Variable
FRoute.Manufacturing.YGrid
Corresponding Configuration Option
frouteManufacturingGrid

December 2005

103

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

FRoute.Manufacturing.YGrid
Froute.Manufacturing.YGrid integer_value

Data Type: Integer


Default: 0 (disabled)
User Level: Novice
Description
Snaps all routes to the manufacturing grid. The router snaps the routes at y coordinate
locations that are multiples of the specified argument.
The manufacturing grid is measured in database units.
This environment variable is useful for designs that contain off-grid pins or off-grid preroutes.
The router builds off-grid routing tracks to connect to the off-grid geometries; this environment
variable tells it where to place these off-grid routing tracks.
Note: If the keyword VERSION 5.4 is specified in either LEF or DEF, this environment
variable is disabled. To set this value, use the LEF MANUFACTURINGGRID statement. See the
LEF/DEF Language Reference for more information.
Related Environment Variable
FRoute.Manufacturing.XGrid
Corresponding Configuration Option
frouteManufacturingGrid

December 2005

104

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

Input.Comment.Delimiter
Input.Comment.Delimiter char

Data Type: String


Default: #
User Level: Novice
Description
Sets the comment character for the DEF and LEF files. When processing LEF and DEF files
the router ignores everything after the comment character to the end of the line.
Corresponding Configuration Option
inputLdefCommentChar

December 2005

105

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

Input.LEF.Stacking.OFF
Input.LEF.Stacking.OFF {TRUE | FALSE}

Data Type: Boolean


Default: FALSE
User Level: Novice
Description
Disables via stacking by default if there is no same-net spacing rule for adjacent cut layers.
By default, the routers behavior is the following:

The router allows via stacking without same-net spacing rules for adjacent cut layers in
the LEF file.

The router ignores metal layer same-net spacing rules with regard to stacking.

Note: In previous versions of the software, in order to allow via stacking, you had to define a
set of same-net spacing rules in the LEF file. To revert to this behavior, specify TRUE for this
option.
Corresponding Configuration Option
routeDisableDefaultStacking

December 2005

106

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

Rule.ClearanceMeasure
Rule.ClearanceMeasure {maxxy | euclidean}

Data Type: String


Default: euclidean
User Level: Novice
Note: If the keyword VERSION 5.4 is specified in either LEF or DEF, this environment
variable is disabled. To set this value, use the LEF CLEARANCEMEASURE statement. See the
LEF/DEF Language Reference for more information.
Description
Specifies the clearance distance for spacing rule checks.
The arguments for this environment variable are as follows:
maxxy
Use the larger of the x or y distance.
euclidean
Use the Euclidean distance.

E
Y

euclidean uses the E distance.


maxxy uses the larger of the x or y distance.

Corresponding Configuration Option


frouteUseMaxXYSpacing

December 2005

107

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

Verify.Antenna.Method
Verify.Antenna.Method {layerOnly | accumulate}

Data Type: String


Default: layeronly
User Level: Novice
Description
Determines how the Silicon Ensemble command VERIFY ANTENNA calculates damage on
a pin.
The arguments for this environment variable are as follows:
layeronly
Detects damage from the current layer only.
accumulate
Adds the damage from previous layers to the damage on the
current layer.
Note: If the keyword VERSION 5.4 is specified in either LEF or DEF, this environment
variable is disabled. Cadence recommends you use the VERIFY ANTENNA command
instead. See the Silicon Ensemble Text Command Reference for information about
VERIFY ANTENNA.
Corresponding Configuration Option
antennaMethod

December 2005

108

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

Verify.Antenna.SumGateArea
Verify.Antenna.SumGateArea {TRUE | FALSE}

Data Type: Boolean


Default: TRUE
User Level: Novice
Description
Controls the method the router uses to determine if process antenna violations exist.

When this environment variable is TRUE, the router compares the sum of the
AntennaSize values for all connected gates to the antenna effect to determine if a
process antenna violation exists. (The AntennaSize values are set in the LEF file.)

When this environment variable is FALSE, the router compares the AntennaSize value
for each gate to the process antenna effect to determine if an antenna violation exists.

See the LEF/DEF Language Reference for more information.


Related Environment Variable
WRoute.Fix.AntennaPass
Corresponding Configuration Option
antennaSumGateArea

December 2005

109

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Addition.LefName
WRoute.Addition.LefName fileName

Data Type: String


Default: ""
User Level: Novice
Description
Passes a separate LEF file to the router that contains additional LEF definitions, such as the
process antenna rule.
Related Configuration Option
inputLefName

December 2005

110

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Allow.Port.Shorts
WRoute.Allow.Port.Shorts {TRUE | FALSE}

Data Type: Boolean


Default: TRUE
User Level: Novice
Description
Allows different ports of the same pin to be shorted.
A pin can have multiple ports, as defined in the LEF file. When multiple ports are defined for
a pin, the router chooses one port and makes all connections to it.

When this environment variable is TRUE, the router might generate wires that short
geometries in the chosen port to other geometries in other ports on the same pin.

When this environment variable is FALSE, the router will not short other geometries in
the chosen port or other ports defined for the pin, and it will have a slightly harder time
making connections because it has fewer options.

Example
You can describe pins with multiple RECT statements in the same PORT statement or with
multiple RECT statements in different PORT statements. In the following example, RECT xy1
and RECT xy2 are in the same PORT statement for PIN A. RECT xy3 is in a different PORT
statement:
PIN A
PORT
RECT xy1
RECT xy2
END
PORT
RECT xy3
END
END A
When the router tries to connect to PIN A, it will try to connect to, for example, RECT xy1.
In order to connect to RECT xy1, it must short RECT xy3.

When this environment variable is TRUE, the router shorts RECT xy3.

When this environment variable is FALSE, the router does not short xy3. Instead it finds
some other way to make a connection.

December 2005

111

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables
Related Environment Variables
WRoute.Optimization
WRoute.Prefer.OnGrid
Corresponding Configuration Option
frouteAllowPortShort

December 2005

112

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Antenna.Cell.Pass
WRoute.Antenna.Cell.Pass integer_value

Data Type: Integer


Default: -1 (autotuned)
User Level: Novice
Adds antenna diode cells to repair process antenna violations at or after the specified
search-and-repair routing pass. To disable, specify 0.
This environment variable requires LEF and DEF version 5.4 syntax. To use it, you must

Define antenna cells as type CLASS CORE ANTENNACELL.

Define antenna pins by specifying either AntennaGateArea or AntennaDiffArea.

See the LEF/DEF Language Reference for details.


Configuration Option
frouteAntennaCellPass

December 2005

113

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Assign.RoutingDir
WRoute.Assign.RoutingDir {TRUE | FALSE}

Data Type: Boolean


Default: FALSE
User Level: Novice
Description
Specifies whether to assign routing directions in the channels between blocks to take
advantage of available routing tracks. This environment variable is useful, for example, if
channel congestion between blocks occurs because the preferred routing tracks are
perpendicular to the orientation of the channel. In this case, the router reassigns the preferred
routing direction in the channel.
When you set this environment variable to TRUE, the router
1. Subdivides the routing area into a standard cell region and several channel regions
around the blocks
2. Determines whether the design is row-based (preferred routing directions are
horizontal-vertical-horizontal) or column-based (preferred routing directions are
vertical-horizontal-vertical)
3. Modifies the routing direction in the channel regions near large blocks as necessary to
take advantage of available routing tracks in the non-preferred direction
This environment variable is disabled on two-layer designs.
Example
The three-layer design in the following figure contains large blocks and is congested around
the channels defined by the blocks. When you set WRoute.Assign.RoutingDir to TRUE,

December 2005

114

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables
the router reassigns the preferred routing direction in the congested channels, and makes
more tracks available for routing in the channels.
WRoute.Assign.RoutingDir = FALSE

WRouteAssign.RoutingDir = TRUE

The preferred routing direction for metal1 is


horizontal on the top, bottom, left, and right of
the block.

The preferred routing direction for metal1 is


horizontal on the top and bottom, and vertical in
the channels on the left and right of the block.

Macro block

Macro block

Preferred routing direction for metal1

Preferred routing direction for metal1

Congested
channels

Corresponding Configuration Option


grouteAssignRoutingDirection

December 2005

115

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Auto.Stop
WRoute.Auto.Stop {TRUE | FALSE}

Data Type: Boolean


Default: TRUE
User Level: Novice
Description
Stops the router if it encounters so many violations that it cannot complete routing, or if the
search-and-repair run time is three times longer than the initial routing run time. The router
completes global routing and makes an initial pass at final routing, saves the routing
database, generates a warning message, and stops.
On occasion, the router stops automatically if the design has a small number of nets. Set
WRoute.Auto.Stop to FALSE if you want to route the design anyway.
Corresponding Configuration Option
frouteAutoStop

December 2005

116

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.AutoSave.Interval
WRoute.AutoSave.Interval minutes

Data Type: Integer


Default: 120
User Level: Novice
Description
Saves the routing data at the specifiedinterval. The argument is the number of real-time
minutes.
Corresponding Configuration Option
frouteAutoSaveInterval

December 2005

117

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.BottomLayer.Limit
WRoute.BottomLayer.Limit integer_value

Data Type: Integer


Default: 0 (disabled)
User Level: Novice
Description
Allows routing below the specified layer, but at a very high cost. This limits the wire length
below the specified layer.
Example
To request that the router start routing on the fourth layer of a six-layer design, type
Wroute.BottomLayer.Limit 4

Related Environment Variable


WRoute.TopLayer.Limit
Corresponding Configuration Option
routeBottomLayerLimit

December 2005

118

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Extra.Config
WRoute.Extra.Config fileName

Data Type: String


Default: ""
User Level: Novice
Description
Runs the router using the specified configuration file and appends the current environment
variable settings. The environment variable settings overwrite the corresponding
configuration file option settings. Set this environment variable to use configuration file
options that do not have corresponding environment variables.
To use WRoute.Extra.Config,
1. Create a configuration file that contains the new extra configuration options.
2. Set WRoute.Extra.Config to point to the configuration file you created in step 1.
You can set the environment variable from the GUI Variables form or on the command
line. For example, if your configuration file is./wrnewcfg, you would type the following
on the command line:
SET VARIABLE WRoute.Extra.Config wrnewcfg;
3. Run the router using the environment variables by doing one of the following:

Using the WRoute form

Running the WROUTE command with the NOCONFIG option

The software runs the router based on the environment variable values and on the values
for the new configuration options.
Note: The extra configuration file can contain options other than the new options. The values
of the options that are not extra, however, are overwritten by the values of the corresponding
environment variables.
Corresponding Configuration Option
None

December 2005

119

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Final
WRoute.Final {TRUE | FALSE}

Data Type: Boolean


Default: TRUE
User Level: Novice
Description
Runs final or incremental routing, depending on the value of WRoute.Global.

If both WRoute.Final and WRoute.Global are TRUE, makes a full routing run (final
and global routing).

If WRoute.Final is TRUE and WRoute.Global is FALSE, makes an incremental


routing run (final routing only).

You can run final routing on a globally routed design only. During final routing, the router
checks whether the routers design database specified by WRoute.Input.DbName exists
(wroute.wdb in the current directory by default) and runs final routing on this database. If
the specified router design database does not exist, the router stops and issues an error.
Related Environment Variables
WRoute.Global
WRoute.Incremental.Final
WRoute.Incremental.Global
WRoute.SearchRepair
Corresponding Configuration Option
routeFinal

December 2005

120

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Fix.AntennaPass
WRoute.Fix.AntennaPass pass_number

Data Type: Integer


Default: -1 (autotuned)
User Level: Novice
Description
Checks and repairs process antenna violations after the specified search-and-repair pass.
The router fixes design rule violations first, until the number of design rule violations is
comparable to the number of antenna violations, then it starts fixing process antenna
violations.
Setting this environment variable does not guarantee that the router will resolve all process
antenna violations. If the routing area is congested, process antenna violations might still
occur, just as shorts and spacing violations might occur.
When WRoute.Fix.AntennaPass is set, the router fixes process antenna violations by
automatically shortening any wire whose area exceeds the gate/wire area ratio set in the LEF.
For information about process antennas, see Calculating and Fixing Process Antenna
Violations on page 59.
Note: The value specified for this option must be less than the value specified for
WRoute.Antenna.Cell.Pass.
This environment variable can use LEF and DEF version 5.3 or later syntax. See the
LEF/DEF Language Reference for help with the LEF file.
Important
Do not change the value of this environment variable unless you want to disable the
antenna check. Set this environment variable to 0 to disable the antenna check.
Using this environment variable does not guarantee that the router will resolve all
antenna violations. If the routing area is congested, antenna violations might still
occur, just as shorts and spacing violations might occur.
Related Environment Variable
WRoute.Antenna.Cell.Pass

December 2005

121

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables
Corresponding Configuration Option
frouteFixAntennaPass

December 2005

122

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.GGridMode
WRoute.GGridMode {align | uniform | user}

Data Type: String


Default: user
User Type: Novice
Description
Sets the global routing grid generation mode. The global routing grid partitions the routing
portion of a standard cell design into rectangles called global routing cells (gcells). The
arguments are
align
Generates a global routing grid that aligns with the channels and
macro block boundaries in your design. This option improves
routing quality for block-based designs because, by aligning the
grids, the global router can route more effectively in empty gcells
in the channel area.
uniform
Generates a uniform global routing grid.
user
Uses the global routing grid defined in the DEF file.
Corresponding Configuration Option
grouteGgridMode

December 2005

123

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Global
WRoute.Global {TRUE | FALSE}

Data Type: Boolean


Default: TRUE
User Level: Novice
Description
Specifies whether to run global routing.
During global routing, the router interconnects the regular (signal) nets defined in the NETS
section of the DEF file for the design, based on the supply and demand of routing tracks. It
finds generalized pathways, without laying down actual wires, and makes iterative passes to
optimize the global routing, shorten wire length, and minimize the use of vias.
If WRoute.Global is FALSE and WRoute.Final is TRUE, the software performs
incremental routing. It checks whether the routers design database specified in
WRoute.Input.DbName exists (wroute.wdb in the current directory by default) and runs
final routing on this database. If the specified router design database does not exist, the router
stops and issues an error.
Related Environment Variables
WRoute.Final
WRoute.SearchRepair
WRoute.Incremental.Final
WRoute.Incremental.Global
Corresponding Configuration Option
routeGlobal

December 2005

124

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Import
WRoute.Import {readDB | readDEF | noRead}

Data Type: String


Default: readDB
User Level: Novice
Description
Controls how the routers database is read back into Silicon Ensemble. The arguments are
readDB
Loads the database into Silicon Ensemble.
readDEF
Uses IMPORT DEF to load the DEF file into Silicon Ensemble.
Use readDEF only if readDB fails.
noRead
Does not load the routers results back into Silicon Ensemble.
Corresponding Configuration Option
None

December 2005

125

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Incremental.Final
WRoute.Incremental.Final {TRUE | FALSE}

Data Type: Boolean


Default: FALSE
User Type: Novice
Description
Specifies whether to run final routing on an existing database and read the contents of the
database back into Silicon Ensemble. To specify the database, use
WRoute.Input.DbName.
If you make significant changes to the settings of the environment variables or configuration
file options, you might need to perform a complete router run (global and final routing) on the
design, instead of a final (incremental) run only. Examples of significant changes are turning
on timing-driven routing or setting WRoute.Assign.RoutingDir.
Note: When you use the GUI forms, the router does incremental final routing automatically
if you select Route Final on the WRoute form. The only requirement is that the design must
have some routing already complete.
Related Environment Variables
WRoute.Final
WRoute.Global
WRoute.Incremental.Global
WRoute.Input.DbName
Corresponding Configuration Options
routeFinal (TRUE)
routeGlobal (FALSE)
inputDbName (current design)

December 2005

126

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Incremental.Global
Wroute.Incremental.Global {TRUE | FALSE}

Data Type: Boolean


Default: FALSE
User Level: Novice
Description
Runs global routing in incremental mode on an existing database. During incremental global
routing, the router deletes and globally reroutes nets with violations.
Set this environment variable to TRUE if final routing with search and repair has a difficult time
removing all violations. To run final routing on the rerouted nets, set WRoute.Final to TRUE.
If you make significant changes to the settings of the environment variables or configuration
file options, you might need to perform a complete router run (global and final routing) on the
design, rather than an incremental (global) run. Examples of significant changes are turning
on timing-driven routing or setting WRoute.Assign.RoutingDir.
Note: When you use the GUI forms, the router does incremental global routing automatically
if you select Route Global on the WRoute form. The only requirement is that the design must
have some routing already complete.
Related Environment Variables
WRoute.Final
WRoute.Global
WRoute.Incremental.Final
Corresponding Configuration Option
grouteIncremental

December 2005

127

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Input.DbName
WRoute.Input.DbName filename

Data Type: String


Default: wroute.wdb
User Level: Novice
Description
Specifies the name of the database to be input to the router. Use this environment variable to
identify the database for incremental routing.
Related Environment Variables
WRoute.Incremental.Final
WRoute.Output.DbName
Corresponding Configuration Option
inputDbName

December 2005

128

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.LEFFile.Reuse
WRoute.LEFFile.Reuse {TRUE | FALSE}

Data Type: Boolean


Default: FALSE
User Level: Novice
Specifies whether to reuse the LEF file from a previous routing session and output a LEF file
for the current routing session.
For example, set WRoute.LEFFile.Reuse to TRUE when you run a command that invokes
the router several times. Silicon Ensemble saves time because it reads the LEF file just once.
Corresponding Configuration Option
None

December 2005

129

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.MaxStackPages
WRoute.MaxStackPages minutes

Data Type: Integer


Default: 120
User Level: Expert
Description
Allocates memory for the stack dynamically, based on user input.
Corresponding Configuration Option
None

December 2005

130

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Modify.PreroutePass
WRoute.Modify.PreroutePass integer_value

Data Type: Integer


Default: 2
User Level: Novice
Description
Specifies the search-and-repair pass when the router can begin modifying prerouted regular
nets. The router will not modify nets whose location is fixed.
Use this environment variable to prevent the router from modifying preroutes unless
absolutely necessary. Any partially prerouted nets might still be modified, as required to
complete the routing.
Fully prerouted nets also can still be modified, if you do not specify 0 as the value of this
environment variable. If you specify a value other than 0, any part of the net that is not marked
FIXED or COVERED can be modified.
To fix the locations of the prerouted nets, do one of the following:

Specify 0 as the value of this environment variable.

Mark the nets FIXED in the DEF file.

Put regular nets in the SPECIALNETS section of the DEF file. The router does not touch
nets in the SPECIALNETS section.

Example
To modify prerouted nets during or after the second search-and-repair pass, type
Wroute.Modify.PreroutePass 2

Corresponding Configuration Option


routeModifyPreroutePass

December 2005

131

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Optimization
WRoute.Optimization {TRUE | FALSE}

Data Type: Boolean


Default: FALSE
User Level: Novice
Description
Specifies whether to optimize routing to minimize wire length, the number of vias, and via
resistance. Routing optimization is designed to run after final routing is complete and
violation-free. At that point, it attempts to remove extra vias by jogging on wires in the
nonpreferred direction. This blocks tracks but does not cause problems because routing is
already complete.
Note: When you set this environment variable to TRUE, the router does not repair process
antenna violations until after optimization.
Do not run the router with WRoute.Optimization set to TRUE on designs that have design
violations. If you do, the router does not run optimization. It writes the following warning in
your log file:
*WARNING* Final route optimization disabled because of violation(s)!
Corresponding Configuration Option
frouteOptimization
Related Environment Variables
WRoute.Allow.Port.Shorts
WRoute.Prefer.OnGrid

December 2005

132

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Output.DbName
WRoute.Output.DbName fileName

Data Type: String


Default: wroute.wdb
User Level: Novice
Description
Specifies the routers output database. The database is in binary form.
To save your design into a router database without running routing, specify the database
name with this environment variable and set all the routing variables to false. The router saves
your design in database format (.wdb) without making any routing passes.
This environment variable is useful, for example, if you are routing several different floorplans
or placements. You can use this environment variable to save each database that the router
creates to a different routing binary. Then you can load the best results from the saved
database.
Corresponding Configuration Option
outputDbName

December 2005

133

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Output.DefName
Wroute.Output.DefName fileName

Data Type: String


Default: ""
User Level: Novice
Description
Specifies the routers output DEF file.
Corresponding Configuration Option
outputDefName

December 2005

134

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Pin.Access.Mode
WRoute.Pin.Access.Mode {auto | normal | offGrid | narrowpin | upVia
| upViaEnclosure | upViaReserve}

Data Type: String


Default: auto
User Level: Novice
Description
Determines the portion of the pin geometry to which the router can connect and the minimum
spacing required between a wire and adjacent obstructions. The arguments specify the
routers target area within the pin geometry. The normal, offgrid, and narrowpin
arguments specify target areas for horizontal or vertical pin access. The upVia,
upViaEnclosure, and upViaReserve arguments specify target areas for pin access by
dropping a via.
Arguments
auto
Lets the router determine the proper access mode. In the mode,
the router looks at the spacing rules and determines what to do
on each pin of each macro based on the spacing rules. This
mode improves the handling of offgrid libraries, allowing the track
pitch to be at line-to-via distance, without creating a pin access
problem.
Important
auto mode is turned on by default regardless of the
argument you use for this environment variable.
narrowpin
Lets the router connect anywhere within the pin geometry. To
avoid a violation, the minimum distance between the target area
on the pin and an obstruction must be half the minimum wire
width on the layer plus the minimum spacing defined for the layer
(minimum spacing is defined in the LEF).
The following figure illustrates a connection where the minimum
wire width on the layer is 1.2 and the minimum spacing on the
December 2005

135

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables
layer is 1.0. The distance between the target area and the
obstruction is 1.6.

Obstruction

1.0

Wire

1.6

1.2
Pin

The shaded area in the pin geometry represents the target area. The router
can connect anywhere in the target area.

normal
Lets the router connect anywhere within the pin geometry,
except that connections cannot be made any further from the pin
geometry than one-half the minimum wire width for that layer. To
prevent a violation, the distance between the target area and an
obstruction must be half the minimum wire width on the layer plus
the minimum spacing defined for the layer (minimum spacing is
defined in the LEF LAYER (Routing) statement).
The following figure illustrates a connection in which the
minimum wire width on the layer is 1.2 and the minimum spacing

December 2005

136

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables
on the layer is 1.0. The distance between the target area and the
obstruction is 1.6.
Note: When you set Wroute.Pin.Access normal, the
router does not access off-grid pins.

Obstruction

Obstruction

1.0

1.6
0.6

1.2

Wire

Pin

0.6

The shaded area in the pin geometry represents the target area. The router
can connect anywhere in the target area.

offGrid
Lets the router connect anywhere within the pin geometry. To
prevent a violation, the minimum spacing between the wire and
an adjacent obstruction must be half the minimum wire width on
the layer plus the minimum spacing defined for the layer
(minimum spacing is defined in the LEF LAYER (Routing)
statement).
Note: The difference between offGrid and normal is that
offGrid accesses both off-grid and on-grid pins; normal
accesses on-grid pins only. See the above illustration for
normal for a sample obstruction-wire-pin layout.

December 2005

137

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables
upVia
Lets the router connect anywhere within the pin geometry. To
avoid a violation, the minimum distance between the target area
and an obstruction is half the width of the via plus the minimum
spacing defined for the layer (minimum spacing is defined in the
LEF LAYER (Routing) statement).
The following figure illustrates a connection made by dropping a
via to a pin on metal layer 1. The via width is 1.4. The minimum
wire width on the layer is 1.2. The minimum spacing on the layer
is 1.0. The distance between the target area and the obstruction
is 1.7.
Obstruction

1.7

1.0

Via
Pin

The shaded area in the pin geometry represents the target area. The router
can connect anywhere in the target area.

December 2005

138

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables
upViaEnclosure
Lets the router connect anywhere within the pin geometry,
except for a target area within the pin geometry no further from
the edge of the pin geometry than one-half the width of a via. To
avoid a violation, the distance between the target area and an
obstruction must be a minimum of half the via width plus the
minimum spacing defined for the layer (minimum spacing is
defined in the LEF LAYER (Routing) statement).
The following figure illustrates a connection made by dropping a
via to a pin on metal layer 1. The width of the via is 1.4. The
minimum spacing on metal layer 1 is 1.0. The distance between
the target area and the obstruction is 1.7.
Obstruction

1.7

1.0

Via

Pin

0.7
0.7
The shaded area in the pin geometry represents the target area. The router
can connect anywhere in the target area.

December 2005

139

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables
upViaReserve
Lets the router connect anywhere within the pin geometry,
except for the area around the perimeter of the pin that is equal
to half the minimum wire width on the layer. To avoid a violation,
the minimum distance between the target area and an
obstruction is half the width of the via plus the minimum spacing
defined for the layer (minimum spacing is defined in the LEF
LAYER (Routing) statement).
The following figure illustrates a connection made by dropping a
via to a pin on metal layer 1. The via width is 1.4. The minimum
wire width on metal layer 1 is 1.2. The minimum spacing on the
layer is 1.0. The distance between the target area and the
obstruction is 1.7.
Obstruction

1.7

Pin

1.0

Via

0.6
0.6
The shaded area in the pin geometry represents the target area. The router
can connect anywhere in the target area.

Corresponding Configuration Option


routePinAccessMode (The router also accepts froutePinAccessMode as the name of
the corresponding option.)

December 2005

140

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Prefer.OnGrid
WRoute.Prefer.OnGrid {TRUE | FALSE}

Data Type: Boolean


Default: TRUE
User Level: Novice
Description
Specifies whether the router must connect wires to a ports on-grid geometry, if one exists. If
no on-grid geometry exists for the port, the router enables the ports off-grid geometries by
assigning a grid to the middle of each one.
When FALSE, all geometries are enabled (grids are assigned to the middle of each
geometry).
Note: Setting this environment variable to FALSE slows the router significantly.
Related Environment Variables

WRoute.Optimization also affects which grid points are accessible for routing.

WRoute.Allow.Port.Shorts allows the router to short different ports of the same


pin.

Corresponding Configuration Option


froutePreferOnGrid

December 2005

141

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Processor
WRoute.Processor integer_value

Data Type: Integer


Range: 1 to 16
Default: 1
User Level: Novice
Description
Specifies the number of processors to use for routing.
Important
To enable this environment variable, you must have a license for Silicon
Ensemble-PKS. You must have an additional license for the Multi-Thread Route
Option to Silicon Ensemble-PKS for each additional processor you plan to use.
The router can use up to four processors during global routing and 16 processors during final
routing. If you enter a number higher than 16 or you do not have the appropriate licenses, the
router outputs a warning message and resets the number of processors to a legal number.

During global routing, the router routes nets concurrently. If you have a four-processor
machine, you can route four nets concurrently.

During final routing, the router routes switch boxes concurrently.

During search-and-repair routing, the router repairs violations in the same region
sequentially. Therefore, if your design has stubborn violations at a particular location,
multi-processor routing has little speed advantage in that location. The router repairs
violations in different regions concurrently.

To get the greatest benefit from multiprocessor routing

If you are running the router in standalone mode, run it in terse mode (this is the default)
so it does not output a lot of information to the log file.

Set the value of Wroute.AutoSave.Interval to long intervals so the router does not
stop to save the database very often.

Ensure you have unused processors on your machine. If you have a two-processor
machine and are running two routing jobs, setting Wroute.Processor to 2 does not
speed up routing.

December 2005

142

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables
Related Environment Variable
WRoute.AutoSave.Interval
Corresponding Configuration Option
processor

December 2005

143

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Route.Area
WRoute.Route.Area {"x1 ,

y1 , x2 , y2 "}

Data Type: String


Default: "0, 0, 0, 0" (entire core area)
User Level: Novice
Description
Routes the specified area.
Arguments
x1, y1
Specify the lower-left coordinates.
x2, y2
Specify the upper-right coordinates.
Corresponding Configuration Option
routeArea

December 2005

144

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.RunTimeLimit
WRoute.RunTimeLimit minutes

Data Type: Integer


Default: 1440
User Level: Novice
Description
Specifies the maximum run time for the router, in CPU minutes. For example, set this
environment variable

Before running the router, when you want to make sure it stops after the amount of time
you specify

When you want to look at the environment variables or option settings and route a
specific area to see if the area is easily routable, but you do not want to optimize the
routing

Corresponding Configuration Option


frouteRuntimeLimit

December 2005

145

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.SearchRepair
WRoute.SearchRepair {TRUE | FALSE}

Data Type: Boolean


Default: TRUE
User Level: Novice
Description
Specifies whether to run search-and-repair routing after final routing.
During search-and-repair routing, the router tries to correct problems that remain after final
routing. During search and repair, the router creates switch boxes centered on design rule
violations, then reroutes each switch box to eliminate the violation. Sometimes there are more
violations after search and repair, but usually the new violations are easier to fix. Search and
repair propagates shorts toward less congested parts of the design by replacing difficult
shorts with others on the boundaries of switch boxes, where they are easier to resolve.
Related Environment Variables
WRoute.Final
WRoute.Global
Corresponding Configuration Option
frouteSearchRepair

December 2005

146

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.SelectNet.First
WRoute.SelectNet.First {TRUE | FALSE}

Data Type: Boolean


Default: FALSE
User Level: Novice
Description
When set to TRUE, routes nets specified by WRoute.SelectNets before routing the rest of
the design. When set to TRUE, the router
1. Routes the net that you specify with WRoute.SelectNets.
2. Fixes the location of the routed nets so that the routing cannot be changed (except as
allowed by WRoute.Modify.PreroutePass).
3. Routes the rest of the design.
Note: To speed up the routing, the router might route all nets in one final routing pass, even
if you set Wroute.SelectNets and Wroute.SelectNet.First. The router keeps the
selected nets as straight as possible during the final routing pass.
Related Environment Variables and speeds up routing
WRoute.Modify.PreroutePass
WRoute.SelectNets
WRoute.LEFFile.Reuse
Corresponding Configuration Option
routeSelectNetFirst
routeStraightenNetYou cannot use routeSelectNetFirst with
routeStraightenNet.

December 2005

147

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.SelectNets
WRoute.SelectNets [~]{netName | "list_of_nets" | "< fileName" | "> fileName"}

Data Type: String


Default: "" (all nets)
User Level: Novice
Description
Routes only the nets specified.
The arguments for this environment variable are as follows:
~
Routes all nets except the specified nets.
netName
Specifies the name of a net to route.
"list_of_nets"
Lists the DEF names of the nets to route. The list has a
4,000-character limit. Enclose the list in quotation marks.
Use the following to specify multiple nets:
"@clock" selects all nets marked with + USE CLOCK.
"@subnet" selects all nets with subnets.
"@rule" selects all nets using a nondefault rule.
"@rule:rulename" selects all nets using the specified
nondefault rule (rulename).
"@shield" selects all shielded nets.
"@power" selects all nets marked + USE POWER.
"@ground" selects all nets marked + USE GROUND.
"< fileName"
Specifies a file that contains the list of names of all the nets to
route, with one name on each line. You cannot use regular
expressions with the <.

December 2005

148

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables
"> fileName"
Specifies a file that contains the list of names of all the nets to
route, with one name on each line. You can use regular
expressions with the >.
Examples

To route the nets listed in the file netlist.txt, type


WRoute.SelectNet "< netlist.txt"

To route all nets that begin with clk, plus net1 and net2, type
WRoute.SelectNet "clk*, net1, net2"

To route all nets except nets whose names begin with clk, type
WRoute.SelectNet "~ clk*"

To route all nets marked with + USE CLOCK, type


WRoute.SelectNet "@clock"

Related Environment Variable


WRoute.SelectNet.First
Corresponding Configuration Option
routeSelectNet

December 2005

149

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.SoftRuleRelaxPass
WRoute.SoftRuleRelaxPass pass_number

Data Type: Integer


Default: 0
User Level: Novice
Description
Specifies the search-and-repair pass after which to relax the nondefault rule and allow
violation of the extra spacing.
By default, the extra spacing nondefault rule is considered a hard rule; if the extra spacing is
not met, Wroute marks it as a violation.
Corresponding Configuration Option
frouteSoftRuleRelaxPass
Note: The default behavior of frouteSoftRuleRelaxPass differs from the default
behavior of WRoute.SoftRulePassRepair.

December 2005

150

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Taper.Distance
WRoute.Taper.Distance integer_value

Data Type: Integer


Default: -1 (autotuned)
User Level: Novice
Description
Specifies the maximum allowable taper distance, starting from the bounding box of a pin, in
database units. To disable automatic tapering, set this option to 0.
Important
This option does not force the router to taper pinsit just sets the maximum
distance for tapering. Do not set this option except to disable automatic tapering.
Corresponding Configuration Option
frouteTaperDistance

December 2005

151

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Timing.Driven
WRoute.Timing.Driven {TRUE | FALSE}

Data Type: Boolean


Default: FALSE
User Level: Novice
Description
Specifies whether to enable timing-driven routing.
To perform timing-driven routing, the router decides the order in which to route the
constrained nets based on their timing criticality, and routes them accordingly. The most
timing-critical nets are routed first to achieve the shortest routes.
The router modifies its routing priorities as appropriate during the routing process. For
example, if the router places a net low on the priority list to start, but later realizes that the net
must be routed more directly to meet timing constraints, it will reroute the net. The router also
considers the layer RC values when determining how to route the timing-critical nets.
Related Environment Variable
WRoute.Timing.Net.Percentage.Delta
WRoute.TopLayer.Limit
Corresponding Configuration Option
timingDrivenRouting

December 2005

152

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Timing.Fall.Transition
Wroute.Timing.Fall.Transition real_value

Data Type: Real


Value Range: 0.0 to 10.0
Default: 0.0
User Level: Novice
Description
Sets the standard falling transition time, in nanoseconds. Set this environment variable to the
default input slew rate.
Corresponding Configuration Option
timingFallTransition

December 2005

153

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Timing.Net.Percentage.Delta
WRoute.Timing.Net.Percentage.Delta real_value

Data Type: Real


Value Range: -100.0 to 100.0
Default: 0
User Level: Novice
Description
Specifies the percentage of constrained nets that are considered timing critical. There is a
trade-off between timing constraints and congestion: If too many nets are considered timing
critical, some nets might not be optimally routed. If too few nets are considered timing critical,
timing violations can occur.
The value you specify for this environment variable is dependent on your netlist, your
floorplan, and how tight your timing constraints are. When specifying a value for this
environment variable, consider the following suggestions:

If nets in your design that you consider to be timing-critical are not routed as directly as
possible, set this environment variable to 10 (10 percent more of your constrained nets
will be routed preferentially).

If too many nets in your design are routed preferentially at the expense of routing
resources, set this environment variable to -10 (10 percent fewer of your constrained
nets will be routed preferentially).

Related Environment Variable


WRoute.Timing.DrivenTo enable WRoute.Timing.Net.Percentage.Delta, set
this environment variable to TRUE.
Corresponding Configuration Option
timingNetPercentageDelta

December 2005

154

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Timing.Rise.Transition
WRoute.Timing.Rise.Transition real_value

Data Type: Real


Value Range: 0.0 to 10.0
Default: 0.0
User Level: Novice
Description
Sets the standard rising transition time, in nanoseconds. Set this environment variable to the
default input slew rate.
Corresponding Configuration Option
timingRiseTransition

December 2005

155

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.Timing.Use.Est.Cap
WRoute.Timing.Use.Est.Cap {TRUE | FALSE}

Data Type: Boolean


Default: FALSE
User Level: Novice
Description
Specifies whether the router uses the estimated capacitance constraints defined for nets (net
delay constraints), to provide for backward compatibility with previous versions of the placer.
Use net delay constraints only in conjunction with path or system-level delay constraints.
Used alone, net constraints do not fully capture the clock cycle requirements for the design.
The net delay constraints are defined in the DEF and LEF files.
Note: If both an estimated capacitance constraint and a path constraint are defined for a net,
the router uses the smaller of the two values.
Important
This environment variable is included for backward compatibility only. Cadence
recommends that you do not use it in new designs.
Related Environment Variable
WRoute.Timing.DrivenSet this variable to TRUE to enable
WRoute.Timing.Use.Est.Cap.
Corresponding Configuration Option
timingUseEstCap

December 2005

156

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

WRoute.TopLayer.Limit
WRoute.TopLayer.Limit layer

Data Type: Integer


Value Range: 0 to 6
Default: 0 (disabled)
User Level: Novice
Description
Limits the top routing layer to the specified value.

A value of 0 disables this environment variable.

A value of n means the placer uses routing resources from layer 1 to layer n.

This environment variable is useful if you want to reserve the top layers for power or ground
or other special net routing.
Related Environment Variable
WRoute.BottomLayer.Limit
WRoute.Timing.Driven
Corresponding Configuration Option
routeTopLayerLimit

December 2005

157

Product Version 2.3

Ultra Router Reference


The WROUTE Command and the Environment Variables

December 2005

158

Product Version 2.3

Ultra Router Reference

A
The Router Journal (Log) File
The journal file is an automatically generated ASCII file that records the events of a routing
session. It logs all commands issued and all messages returned during the session. If you
run the router within Silicon Ensemble, the messages in the journal file appear in the text
window as the run progresses. If you remove comments from the file, you can execute all or
part of the file with a command script.

When you run the router within Silicon Ensemble, it saves the file in the working directory,
with a .jnl extension.

When you run the router in standalone mode, it saves the file as wr*.log in the current
directory.

The router generates a new journal file for each design session. You must delete the journal
files manually; the system does not delete them automatically.
If you find a software error, or if the session terminates abnormally, rename and save the
journal file and any existing database files. You can use the journal file to isolate design and
software problems.
This appendix shows an excerpt from a journal file from an Ultra Router run on four CPUs.

The name of the design exchange format (DEF) file is design.opt.def.

The name of the library exchange format (LEF) file is library.opt.lef.

The name of the target place-and-route tool is Silicon Ensemble.

This appendix contains the following sections:

Starting Up and Setting Environmental Variables on page 160

Processing Options for This Run on page 160

Checking Licenses on page 162

Reading In LEF and DEF Files on page 162

Global Routing: Building Phase on page 163

December 2005

159

Product Version 2.3

Ultra Router Reference


The Router Journal (Log) File

Global Routing: Optimizing Phase on page 165

Final Routing on page 165

Final Routing: Search and Repair on page 166

Writing Data on page 168

Summarizing the Run on page 168

Reading Back the Database to Silicon Ensemble on page 169

Message Summary on page 169

Starting Up and Setting Environmental Variables


Within Silicon Ensemble, the first section of the journal file that deals with the router lists startup information such as the date, machine name, run directory, and router version.

#---{10:11:45 * WROUTE
#---{10:11:45 * WROUTE
#---{10:11:50 * WROUTE
#---{10:14:22 * WROUTE
#---{10:14:22 * WROUTE
#---{version 1.01}
#---{10:14:22 * WROUTE
#---{10:14:22 * WROUTE
#---{10:14:22 * WROUTE
#---{10:14:22 * WROUTE

:
:
:
:
:

##### Welcome to WROUTE ####}


Dump the LEF file}
Dump the DEF file }
*** Begin WROUTE on mm dd time yyyy ***}
WROUTE pathName version X.x.x db}

:
:
:
:

WROUTE compiled on mm/dd/yyyy 18:50 (infhp4)}


WROUTE ran on directory: pathName}
WROUTE ran on machine: machineName}
}

Processing Options for This Run


This section of the file displays the configuration option settings for the run.

#---{10:14:22 * WROUTE : Begin option processing ...}


#---{10:14:22 * WROUTE : (from tempWroute.cfg) inputDbName set to """"}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) inputLefName set to}
#---{"pathName/library.opt.lef"}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) inputDefName set to}
#---{"pathName//design.opt.def"}

December 2005

160

Product Version 2.3

Ultra Router Reference


The Router Journal (Log) File
#---{10:14:22 * WROUTE : (from tempWroute.cfg) outputDbName set to "wroute.wdb"}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) inputLdefCommentChar set to "#"}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) routeGlobal set to true}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) routeFinal set to true}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) routeSelectNet set to """"}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) routeSelectNetFirst set to false}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) routeFinal set to true}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) routeGlobal set to true}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) frouteOptimization set to false}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) timingDrivenRouting set to false}
#---{10:14:22 * WROUTE : (from tempWroute.cfg, hidden option)
grouteAssignRoutingDirection set to false}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) frouteTaperDistance set to -1}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) frouteRuntimeLimit set to 1440}
#---{10:14:22 * WROUTE : (from tempWroute.cfg, hidden option)
frouteManufacturingGrid set to "5x5"}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) outputDbName set to "wroute.wdb"}
#---{10:14:22 * WROUTE : (from tempWroute.cfg, hidden option) frouteUseMaxXYSpacing
set to false}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) frouteAllowPortShort set to true}
#---{10:14:22 * WROUTE : (from tempWroute.cfg, hidden option) antennaSumGateArea
set to true}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) frouteAutoSaveInterval set to 120}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) frouteAutoStop set to true}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) frouteFixAntennaPass set to -1}
#---{10:14:22 * WROUTE : (from tempWroute.cfg, hidden option) antennaFullReport set
to false}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) frouteAntennaCellPass set to -1}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) grouteGgridMode set to "user"}
#---{10:14:22 * WROUTE : (from tempWroute.cfg, hidden option) antennaMethod set to
"layerOnly"}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) inputLdefCommentChar set to "#"}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) routeModifyPreroutePass set to 2}
#---{10:14:22 * WROUTE : (from tempWroute.cfg, hidden option) frouteOnGridViaOnly
set to false}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) frouteOnGridViaThreshold set to 0}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) froutePinAccessMode set to "normal"}
#---{10:14:22 * WROUTE : (from tempWroute.cfg, hidden option) froutePreferOnGrid
set to true}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) routeArea set to "[0, 0, 0, 0]"}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) frouteSearchRepair set to true}
#---{10:14:22 * WROUTE : (from tempWroute.cfg, hidden option) timingFallTransition
set to 0}
#---{10:14:22 * WROUTE : (from tempWroute.cfg) timingNetPercentageDelta set to 0}
December 2005

161

Product Version 2.3

Ultra Router Reference


The Router Journal (Log) File
#---{10:14:22
set to 0}
#---{10:14:22
#---{10:14:22
#---{10:14:22
#---{10:14:22
set to "pin"}
#---{10:14:22
#---{10:14:22
0.85 megs.}

* WROUTE : (from tempWroute.cfg, hidden option) timingRiseTransition


*
*
*
*

WROUTE
WROUTE
WROUTE
WROUTE

:
:
:
:

(from
(from
(from
(from

tempWroute.cfg)
tempWroute.cfg)
tempWroute.cfg)
tempWroute.cfg,

routeTopLayerLimit set to 6}
routeBottomLayerLimit set to 0}
processor set to 4}
hidden option) frouteUseRangeRule

* WROUTE : (from input) }


* WROUTE : End option processing: cpu: 0:00:00, real: 0:00:00, peak:

Checking Licenses
In this section of the file, the router reports on license checkouts for the products.

#---{10:14:22
#---{10:14:22
#---{10:14:23
#---{10:14:23
#---{10:14:23
#---{10:14:23
#---{10:14:23

*
*
*
*
*
*
*

WROUTE
WROUTE
WROUTE
WROUTE
WROUTE
WROUTE
WROUTE

:
:
:
:
:
:
:

Begin checkout products ...}


Envisia_SE_SI_place_route}
Envisia_SE_ultra_place_route}
Silicon_Ensemble_DSM}
Silicon_Ensemble}
End checkout products.}
}

Reading In LEF and DEF Files


In this section of the file, the router reads in the design data, audits the data, reports the
design statistics, and prints out problems it encounters.

#---{10:14:23
#---{10:14:23
#---{10:14:25
#---{10:16:41
#---{10:16:41
#---{10:16:41
#---{10:16:41
fixed}
#---{10:16:41
#---{10:16:41
#---{10:16:41
December 2005

* WROUTE :
* WROUTE :
* WROUTE :
* WROUTE :
* WROUTE :
* WROUTE :
* WROUTE :
* WROUTE :
* WROUTE :
* WROUTE :

Begin LEF/DEF in ...}


Reading "pathName//library.opt.lef" ...}
Reading "/pathName//design.opt.def" ...}
Read in 11 layers, 6 routing layers, 0 overlap layer}
Read in 649 macros, 290 used}
Read in 395794 components}
394817 core components: 0 unplaced, 128693 placed, 266124
959 pad components: 0 unplaced, 0 placed, 959 fixed}
14 block/ring components: 0 unplaced, 0 placed, 14 fixed}
4 other components: 0 unplaced, 0 placed, 4 fixed}
162

Product Version 2.3

Ultra Router Reference


The Router Journal (Log) File
#---{10:16:41 * WROUTE
#---{10:16:41 * WROUTE
#---{10:16:41 * WROUTE
#---{10:16:41 * WROUTE
#---{10:16:41 * WROUTE
#---{10:16:41 * WROUTE
#---{10:16:41 * WROUTE
( 3
term),}
#---{10:16:41 * WROUTE
( 6
term),}
#---{10:16:41 * WROUTE
( 9
term),}
#---{10:16:41 * WROUTE
(30-39
term),}
#---{10:16:41 * WROUTE
(60-69
term),}
#---{10:16:41 * WROUTE
(90-99
term),}
#---{10:16:41 * WROUTE
#---{10:16:41 * WROUTE
megs.}
#---{10:16:41 * WROUTE

:
:
:
:
:
:
:

Read in 152 logical pins}


Read in 171574 nets}
Read in 2 special nets, 2 routed}
Read in 1438470 terminals}
}
Distribution of nets (excluding special nets):}
1426 ( 1
term), 89442 ( 2
term),

33994

18810 ( 4

term),

8266 ( 5

term),

4483

2599 ( 7

term),

1674 ( 8

term),

1876

8147 (10-19

term),

71 (20-29

term),

16

16 (40-49

term),

124 (50-59

term),

308

63 (70-79

term),

3 (80-89

term),

:
255 (100-199
term),
0 (>=2000
term).}
: End LEF/DEF in: cpu: 0:02:18, real: 0:02:18, peak: 157.61
: }

Global Routing: Building Phase


The router begins by generating a gcell summary, which reports the total number of gcells on
each layer, as well as the following:

Blocked Gcells: Gcells for which every routing track intersects an obstruction

0-track Gcells: Gcells that contain no routing tracks

#---{10:16:41
#---{10:16:42
#---{10:17:42
#---{10:17:42
#---{10:17:42
#---{10:17:42
------}
#---{10:17:42
#---{10:17:42
#---{10:17:42
#---{10:17:42
December 2005

*
*
*
*
*
*

WROUTE : Begin global routing ...}


WROUTE : Begin building data ...}
WROUTE : }
WROUTE : Gcell summary:}
WROUTE : Layer
Gcell
Blocked Gcell
0-Track Gcell}
WROUTE : --------------------------------------------------------

*
*
*
*

WROUTE
WROUTE
WROUTE
WROUTE

:
:
:
:

1st
2nd
3rd
4th

routing
routing
routing
routing

431566
431566
431566
431566
163

381188
283183
283181
283405

(88.33%)
(65.62%)
(65.62%)
(65.67%)

0
0
0
0

(
(
(
(

0.00%)}
0.00%)}
0.00%)}
0.00%)}

Product Version 2.3

Ultra Router Reference


The Router Journal (Log) File
#---{10:17:42
#---{10:17:42
#---{10:17:42
------}
#---{10:17:42
#---{10:17:42
324.10 megs.}
#---{10:17:43

* WROUTE : 5th routing


431566
217060 (50.30%)
0 ( 0.00%)}
* WROUTE : 6th routing
431566
217342 (50.36%)
0 ( 0.00%)}
* WROUTE : -------------------------------------------------------* WROUTE :
2589396
1665359 (64.31%)
0 ( 0.00%)}
* WROUTE : End building data: cpu: 0:01:01, real: 0:01:00, peak:
* WROUTE : }

Global Routing: Routing Phase


Global routing determines the rough routing pattern (at an all-gcell level) of all nets. After each
global routing pass, the router reports the following:

Length: The wire length (in number of gccells crossed)

Down-Via: The number of vias from the given layer to the one below it

Over-track and Over-capacity gcells: The internal supply and demand for each gcell.
Supply represents the available routing resource and demand represents the amount of
routing resource assigned to the gcell. Typically, the supply is the number of
unobstructed tracks crossing the gcell, and the demand is the number of wires assigned
to it. A gcell is over-capacity if its demand exceeds its supply. If the difference between
demand and supply is the oversupply, the over-track number is the sum of the oversupply
values in the over-capacity gcells.

#---{10:17:43
#---{10:18:03
capacity}
#---{10:18:03
-------}
#---{10:18:03
#---{10:18:03
3.63%)}
#---{10:18:03
#---{10:18:03
#---{10:18:03
#---{10:18:03
#---{10:18:03
-------}
#---{10:18:03
#---{10:18:03
megs.}
December 2005

* WROUTE : Begin routing ...}


* WROUTE : Layer
Length

Down-Via

Over-track

Over-

* WROUTE : -------------------------------------------------------* WROUTE : 1st routing


* WROUTE : 2nd routing
*
*
*
*
*

26508
563532

0
575017

1199

1128 ( 0.26%)}
34682
15668 (

WROUTE : 3rd routing


693836
446479
997
713 ( 0.17%)}
WROUTE : 4th routing
390741
70786
86
81 ( 0.02%)}
WROUTE : 5th routing
77189
9365
143
133 ( 0.03%)}
WROUTE : 6th routing
55707
3144
13
13 ( 0.00%)}
WROUTE : --------------------------------------------------------

* WROUTE :
1807513
1104791
37120 17736 ( 0.68%)}
* WROUTE : End routing: cpu: 0:01:14, real: 0:00:20, peak: 674.35

164

Product Version 2.3

Ultra Router Reference


The Router Journal (Log) File
#---{10:18:04 * WROUTE : }

Global Routing: Optimizing Phase


The router performs multiple optimization passes to try to optimize the global routing to
minimize congestion and timing.

#---{10:18:04
#---{10:18:23
capacity}
#---{10:18:23
-------}
#---{10:18:23
#---{10:18:23
1.39%)}
#---{10:18:23
#---{10:18:23
#---{10:18:23
#---{10:18:23
#---{10:18:23
-------}
#---{10:18:23
#---{10:18:23
676.23 megs.}
#---{10:18:25
676.23 megs.}
#---{10:18:25

* WROUTE : Begin pass 1 optimization ...}


* WROUTE : Layer
Length
Down-Via

Over-track

Over-

* WROUTE : -------------------------------------------------------* WROUTE : 1st routing


* WROUTE : 2nd routing
*
*
*
*
*

44517
516539

0
558764

3168

2890 ( 0.67%)}
12471
5989 (

WROUTE : 3rd routing


704401
449416
244
221 ( 0.05%)}
WROUTE : 4th routing
426799
102115
41
41 ( 0.01%)}
WROUTE : 5th routing
76865
12590
83
80 ( 0.02%)}
WROUTE : 6th routing
65514
5639
1
1 ( 0.00%)}
WROUTE : --------------------------------------------------------

* WROUTE :
1834635
1128524
16008
9222 ( 0.36%)}
* WROUTE : End pass 1 optimization: cpu: 0:01:07, real: 0:00:19, peak:
* WROUTE : End global routing: cpu: 0:03:26, real: 0:01:44, peak:
* WROUTE : }

Final Routing
During final routing, the router performs detailed routing on all nets that obey all relevant
design rules. The router reports the following:

H-Length: The length of horizontal wire on the layer

V-Length: The length of vertical wire

Down-Via: The number of vias from the given layer to the layer below

Violation: The number of design rule violations on the layer

December 2005

165

Product Version 2.3

Ultra Router Reference


The Router Journal (Log) File
#---{10:18:25 *
#---{10:18:55 *
#---{10:18:56 *
(36.9%) mode.}
#---{10:19:16 *
676.23 megs.}
#---{10:19:16 *
#---{10:19:16 *
#---{10:30:04 *
#---{10:30:04 *
#---{10:30:04 *
#---{10:30:04 *
#---{10:30:04 *
#---{10:30:04 *
#---{10:30:04 *
#---{10:30:04 *
#---{10:30:04 *
#---{10:30:04 *
#---{10:30:04 *
megs.}
#---{10:30:04 *

WROUTE : Begin final routing ...}


WROUTE : Begin building data ...}
WROUTE : Running in mix chip assembly (63.1%) and standard cell
WROUTE : End building data: cpu: 0:00:21, real: 0:00:21, peak:
WROUTE
WROUTE
WROUTE
WROUTE
WROUTE
WROUTE
WROUTE
WROUTE
WROUTE
WROUTE
WROUTE
WROUTE
WROUTE

:
:
:
:
:
:
:
:
:
:
:
:
:

}
Begin routing ...}
Layer
H-Length
V-Length
Down-Via Violation}
-------------------------------------------------------}
1st routing
384905
5505
0
158}
2nd routing
36576
2813056
851880
370}
3rd routing
4760359
1119
563661
6}
4th routing
1815
2844265
336374
18}
5th routing
588933
33
23030
10}
6th routing
83
432093
11223
12}
-------------------------------------------------------}
5772673
6096073
1786168
574}
End routing: cpu: 0:38:08, real: 0:10:48, peak: 817.23

WROUTE : }

Final Routing: Search and Repair


During this stage, the router repairs the violations using different switch boxes and heuristics.

#---{10:30:05 * WROUTE
#---{10:30:13 * WROUTE
#---{10:30:13 * WROUTE
#---{10:30:13 * WROUTE
#---{10:30:13 * WROUTE
#---{10:30:13 * WROUTE
#---{10:30:13 * WROUTE
#---{10:30:13 * WROUTE
#---{10:30:13 * WROUTE
#---{10:30:13 * WROUTE
#---{10:30:13 * WROUTE
#---{10:30:13 * WROUTE
peak: 817.23 megs.}
#---{10:30:14 * WROUTE

December 2005

:
:
:
:
:
:
:
:
:
:
:
:

Begin pass 1 search repair ...}


Layer
H-Length
V-Length
Down-Via Violation}
-------------------------------------------------------}
1st routing
384774
5513
0
4}
2nd routing
36623
2812519
851863
2}
3rd routing
4760548
1123
563841
0}
4th routing
1817
2844921
336697
0}
5th routing
588977
25
23041
0}
6th routing
79
432122
11241
0}
-------------------------------------------------------}
5772821
6096226
1786683
6}
End pass 1 search repair: cpu: 0:00:32, real: 0:00:09,

: }

166

Product Version 2.3

Ultra Router Reference


The Router Journal (Log) File
#---{10:30:14 * WROUTE
#---{10:30:21 * WROUTE
#---{10:30:21 * WROUTE
#---{10:30:21 * WROUTE
#---{10:30:21 * WROUTE
#---{10:30:21 * WROUTE
#---{10:30:21 * WROUTE
#---{10:30:21 * WROUTE
#---{10:30:21 * WROUTE
#---{10:30:21 * WROUTE
#---{10:30:21 * WROUTE
#---{10:30:21 * WROUTE
peak: 817.23 megs.}
#---{10:30:21 * WROUTE
#---{10:30:21 * WROUTE
#---{10:30:30 * WROUTE
#---{10:30:30 * WROUTE
#---{10:30:30 * WROUTE
#---{10:30:30 * WROUTE
#---{10:30:30 * WROUTE
#---{10:30:30 * WROUTE
#---{10:30:30 * WROUTE
#---{10:30:30 * WROUTE
#---{10:30:30 * WROUTE
#---{10:30:30 * WROUTE
#---{10:30:30 * WROUTE
peak: 817.23 megs.}
#---{10:30:30 * WROUTE
#---{10:30:30 * WROUTE
#---{10:30:30 * WROUTE
#---{10:30:30 * WROUTE
#---{10:30:30 * WROUTE
#---{10:30:30 * WROUTE
#---{10:30:30 * WROUTE
#---{10:30:31 * WROUTE
#---{10:30:31 * WROUTE
#---{10:30:31 * WROUTE
#---{10:30:31 * WROUTE
#---{10:30:31 * WROUTE
#---{10:30:31 * WROUTE
peak: 817.23 megs.}

December 2005

:
:
:
:
:
:
:
:
:
:
:
:

Begin pass 2 search repair ...}


Layer
H-Length
V-Length
Down-Via Violation}
-------------------------------------------------------}
1st routing
384773
5513
0
1}
2nd routing
36626
2812509
851864
0}
3rd routing
4760553
1123
563843
0}
4th routing
1817
2844937
336705
0}
5th routing
588977
25
23041
0}
6th routing
79
432122
11241
0}
-------------------------------------------------------}
5772828
6096232
1786694
1}
End pass 2 search repair: cpu: 0:00:08, real: 0:00:08,

:
:
:
:
:
:
:
:
:
:
:
:
:

}
Begin pass 3 search repair ...}
Layer
H-Length
V-Length
Down-Via Violation}
-------------------------------------------------------}
1st routing
384773
5513
0
1}
2nd routing
36626
2812509
851864
0}
3rd routing
4760553
1123
563843
0}
4th routing
1817
2844937
336705
0}
5th routing
588977
25
23041
0}
6th routing
79
432122
11241
0}
-------------------------------------------------------}
5772828
6096232
1786694
1}
End pass 3 search repair: cpu: 0:00:09, real: 0:00:09,

:
:
:
:
:
:
:
:
:
:
:
:
:

}
Begin pass 4 search repair ...}
Layer
H-Length
V-Length
Down-Via Violation}
-------------------------------------------------------}
1st routing
384772
5513
0
0}
2nd routing
36626
2812510
851864
0}
3rd routing
4760553
1123
563844
0}
4th routing
1817
2844937
336705
0}
5th routing
588977
25
23041
0}
6th routing
79
432122
11241
0}
-------------------------------------------------------}
5772827
6096233
1786695
0}
End pass 4 search repair: cpu: 0:00:00, real: 0:00:00,

167

Product Version 2.3

Ultra Router Reference


The Router Journal (Log) File
#---{10:30:51 * WROUTE : End final routing: cpu: 0:40:35, real: 0:12:26, peak:
817.23 megs.}

Writing Data
After it completes the routing, the router saves the routing information.

#---{10:30:51
#---{10:30:51
#---{10:31:38
#---{10:31:38
#---{10:31:38
#---{10:31:38
fixed}
#---{10:31:38
#---{10:31:38
#---{10:31:38
#---{10:31:38
#---{10:31:38
#---{10:31:38
#---{10:31:38
#---{10:31:38
#---{10:31:39
megs.}
#---{10:31:39
#---{10:31:39
#---{10:31:39
#---{10:31:39
#---{10:31:39
#---{10:31:39
#---{10:31:39
#---{10:31:39

* WROUTE :
* WROUTE :
* WROUTE :
* WROUTE :
* WROUTE :
* WROUTE :

Begin DB out ...}


Writing "wroute.wdb" ...}
Written out 11 layers, 6 routing layers, 0 overlap layer}
Written out 649 macros, 290 used}
Written out 395794 components}
394817 core components: 0 unplaced, 128693 placed, 266124

*
*
*
*
*
*
*
*
*

WROUTE :
WROUTE :
WROUTE :
WROUTE :
WROUTE :
WROUTE :
WROUTE :
WROUTE :
WROUTE :

959 pad components: 0 unplaced, 0 placed, 959 fixed}


14 block/ring components: 0 unplaced, 0 placed, 14 fixed}
4 other components: 0 unplaced, 0 placed, 4 fixed}
Written out 152 logical pins}
Written out 171574 nets, 170148 routed}
Written out 2 special nets, 2 routed}
Written out 1438470 terminals}
Written out 900046 real and virtual terminals}
End DB out: cpu: 0:00:00, real: 0:00:48, peak: 817.23

*
*
*
*
*
*
*
*

WROUTE
WROUTE
WROUTE
WROUTE
WROUTE
WROUTE
WROUTE
WROUTE

}
Begin checkin products ...}
Envisia_SE_SI_place_route}
Envisia_SE_ultra_place_route}
Silicon_Ensemble_DSM}
Silicon_Ensemble}
End checkin products.}
}

:
:
:
:
:
:
:
:

Summarizing the Run


The final report lists the total wire length, total number of vias, total number of violations, total
number of overcapacity gcells, and the CPU time used.

#---{10:31:39 * WROUTE : Begin final report ...}


December 2005

168

Product Version 2.3

Ultra Router Reference


The Router Journal (Log) File
#---{10:31:39 * WROUTE : Total wire length
=
5772827x
6096233y)}
#---{10:31:39 * WROUTE : Total number of vias
=
#---{10:31:39 * WROUTE : Total number of violations
=
#---{10:31:39 * WROUTE : Total number of over capacity gcells =
#---{10:31:39 * WROUTE : CPU time used =
0:46:32}
#---{10:31:39 * WROUTE : Total real time used
=
#---{10:31:39 * WROUTE : Maximum memory used
=
#---{10:31:39 * WROUTE : End final report.}
#---{10:31:39 * WROUTE : }

11869060 (
1786695}
0}
9222 ( 0.36%)}
0:17:17}
817.23 megs}

Reading Back the Database to Silicon Ensemble


After generating the report, the router reads the database back into Silicon Ensemble.

#---{10:31:41 * WROUTE : Reading back the WRoute DB: wroute.wdb}


#---{10:31:46 * WROUTE : Reading delta file ...}
#---{10:31:46 * WROUTE : No delta file found in wroute db}
#---{10:31:46 * WROUTE : Reading routing segments ...}
#---{Lock file for this session is: dbcaaa.dtp}
#---{10:39:20 * WROUTE : Reading net violation infos ...}
#---{10:39:20 * WROUTE : Reading global router congestion map ...}
#---{10:39:27 * WROUTE : WROUTE finishes successfully}

Message Summary
At the end of the journal file, the router gives a summary of warnings and their severity.

#---{Current time is: dd mm yyyy 10:51:00.}


#---{There were 261 messages this session:}
#---{
261 of severity INFO}
#---{
0 of severity WARNING}
#---{
0 of severity PROBLEM}
#---{
0 of severity ERROR}
#---{
0 of severity DISASTER}

December 2005

169

Product Version 2.3

Ultra Router Reference


The Router Journal (Log) File

December 2005

170

Product Version 2.3

Ultra Router Reference

B
Running the Router in Standalone Mode
and Using the Configuration File
This appendix contains information on running the router in standalone mode. It contains the
following sections:

Starting the Router on page 172

Stopping the Router on page 172

Using the Configuration File on page 174

Table of Configuration Options and Environment Variables on page 176

Configuration Option Descriptions on page 180

December 2005

171

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

Starting the Router


The syntax for running the router in standalone mode is
WROUTE [-q configFileName] [-l filename] [-v] [-h]

The elements of the syntax are as follows:


-q configFileName
Specifies the router configuration file.
Default: .wrconfig in the current directory.
-l filename
Specifies the journal (log) file.
Default: wr.log in the current directory.
-v
Outputs the router version number.
Default: Off
-h
Displays a brief description of the configuration file options. The
configuration file contains the configuration option settings for
this run. Creating a configuration file and the router configuration
options are described in Environment Variables and
Configuration File Options on page 100 and in Table of
Configuration Options and Environment Variables on page 176
Default: Off

Stopping the Router


To stop the router during global routing, do one of the following:

To save the data, even if global routing is not complete, press Control-C. This causes
the router to stop, save the database in its current state, and exit. You can then use the
congestion map to analyze the congestion even if the routing is incomplete. Do not use
the saved database for final routing if routing is incomplete.

To cause the router to exit without saving the routing, press Control-C two or more
times.

December 2005

172

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

Tip
To cause the router to report progress and continue routing, enter kill -16 at the
prompt. The router will report CPU time, elapsed time, memory use, date, and time.

December 2005

173

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

Using the Configuration File


The default configuration file is .wrconfig in the current directory. You can also specify your
own configuration file, as described in the preceding section.
To set or change option values, open the configuration file and edit it with a text editor.

Setting the Options


If you are running the router as a standalone tool, you can use the default values for all options
except for the following:

Your configuration file must contain values for one of the following:

inputDbName

inputDefName and inputLefName

If you want the router to route your design, set the following two options to true:

routeFinal

routeGlobal

If you want the router to save the routed data, set one of the following:

outputDbName

outputDefName

Important
To run the router in constraint compatibility update (CCU) mode with Ultra Placer
and the Pearl Timing Analyzer, ensure that nsccu is in your search path; or, if you
run the router with an absolute path, make sure that nsccu is in the same directory
as your WROUTE executable. In CCU mode, the router, the placer, and the timing
analyzer use the same timing engine.

Case Sensitivity
The following items are not case sensitive:

Option names (for example, inputdefname, inputDefName, and INPUTDEFNAME


are equivalent)

December 2005

174

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

Boolean values (for example, true, True, and TRUE are equivalent)

Unless noted otherwise in the option description, all other string values, such as filenames or
cell names, are case sensitive (that is, you must enter upper- and lowercase letters exactly
as used in the string value).

Checking for Available Options


Check the list of configuration file options by typing the following at the UNIX prompt:
wroute -h

Multiple Instances of an Option


If an option appears more than once in the configuration file, the final instance defines the
option. That is, the router uses the last instance it reads.

Checking Option Values for a Given Run


You can identify the option values defined for a given router run by looking at the options
processing section that appears close to the end of the journal file. The following excerpt from
a journal file shows option values:
Begin option processing ...
(from .wrconfig) inputLefName set to test.lef
(from .wrconfig) inputDefName set to test.def
(from command line) routeFinal set to true
(from command line) routeGlobal set to true
(from command line) outputDbName set to wroute.wdb
End option processing: cpu: 0:00:00, real: 0:00:00, peak: 2.46 megs.

Using Comments to Customize the Configuration File

To comment out a block of options, surround the lines with /* */.


The router ignores all characters between /* and */.

To comment out a single line, type # as the first character.


The router ignores everything after the # to the end of the line.

December 2005

175

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

Table of Configuration Options and Environment


Variables
The table in this section lists the router configuration options in alphabetical order and the
Silicon Ensemble environment variables to which they correspond.
Most of the router options map directly to Silicon Ensemble environment variables.
Note: Some options do not have corresponding environment variables. There are also
several environment variables that do not map to options.
Use the table below to find descriptions of the options and variables.

If an option in the table below is underlined, it is described in this appendix.

If an environment variable in the table below is underlined, it is described in Chapter 5,


The WROUTE Command and the Environment Variables.
Important
Some options and environment variables are not used with LEF and DEF version
5.4 and later. They are included in the table for backward compatibility.

Option

Corresponding Environment Variable


WRoute.Extra.Config
WRoute.Import
WRoute.LEFFile.Reuse
WRoute.MaxStackPages
FRoute.Manufacturing.YGrid

antennaMethod

Verify.Antenna.Method

antennaSumGateArea

Verify.Antenna.SumGateArea

frouteAllowPortShort

WRoute.Allow.Port.Shorts

frouteAntennaCellPass

WRoute.Antenna.Cell.Pass

frouteAntennaCellSelection
frouteAntennaTopLayerLimit
frouteAutoSaveInterval

December 2005

WRoute.AutoSave.Interval

176

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

Option

Corresponding Environment Variable

frouteAutoStop

WRoute.Auto.Stop

frouteConcurrentViaOptimization
frouteDoubleCutFirst
frouteDoubleCutFirstRelaxPass
frouteFixAntennaPass

WRoute.Fix.AntennaPass

frouteManufacturingGrid

FRoute.Manufacturing.XGrid

frouteMinHoleArea
frouteNumSearchRepairPass
frouteOptimization

WRoute.Optimization

frouteOptimizeNumCutLimit
frouteOptimizeViaResOnly
froutePreferOnGrid

WRoute.Prefer.OnGrid

frouteRuntimeLimit

WRoute.RunTimeLimit

frouteSearchRepair

WRoute.SearchRepair

frouteSoftRuleRelaxPass

WRoute.SoftRuleRelaxPass

frouteSpacerCellSelection
frouteTaperDistance

WRoute.Taper.Distance

frouteTaperPinSelection
frouteUseMaxXYSpacing

Rule.ClearanceMeasure

frouteUseRangeRule
frouteXtalkThreshold
grouteAssignRoutingDirection

WRoute.Assign.RoutingDir

grouteDiscouragePlanarRouting
grouteGgridMode

WRoute.GGridMode

grouteStarClusterImbalance
grouteStarClusterSize
grouteStarNet

December 2005

177

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

Option

Corresponding Environment Variable

grouteStarRatio
grouteIncremental

WRoute.Incremental.Global

include
inputDbName

WRoute.Input.DbName

inputDefName
inputECO
inputECODefName
inputGCFConstraints
inputGCFTimingLibraries
inputLdefCommentChar

Input.Comment.Delimiter

inputLefName

WRoute.Addition.LefName

inputLefName
inputViaGenMode
licenseMultiThreadOnly
outputDbName

WRoute.Output.DbName

outputDefName

WRoute.Output.DefName

processor

WRoute.Processor

quickMode
routeAllowGapFillOverlap
routeAllowSameNetNotch
routeArea

WRoute.Route.Area

routeAutoHalfGridThreshold
routeBottomLayerLimit

WRoute.BottomLayer.Limit

routeChipAssemblyMode
routeDetectFeedThru
routeDisableDefaultStacking

Input.LEF.Stacking.OFF

routeFinal

WRoute.Final

December 2005

178

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

Option

Corresponding Environment Variable

routeFinal (TRUE)
routeGlobal (FALSE)
inputDbName (current design)

WRoute.Incremental.Final

routeGlobal

WRoute.Global

routeLayerRange
routeModifyPreroutePass

WRoute.Modify.PreroutePass

routeOnGridViaOnly
routeOnGridViaThreshold
routeOnGridViaUpperThreshold
routePinAccessMode
(renamed from froutePinAccessMode)

WRoute.Pin.Access.Mode

routeSelectNet

WRoute.SelectNets

routeSelectNetFirst

WRoute.SelectNet.First

routeSelectNetLayerRange
routeSoftTopLayerLimit
routeStraightenNet
routeStripeCenterConnect
routeTopLayerLimit

WRoute.TopLayer.Limit

timingDrivenRouting

WRoute.Timing.Driven

timingFallTransition

WRoute.Timing.Fall.Transition

timingNetPercentageDelta

WRoute.Timing.Net.Percentage.Del
ta

timingRiseTransition

WRoute.Timing.Rise.Transition

timingUseEstCap

WRoute.Timing.Use.Est.Cap

xtalkFixNet
xtalkRule
xtalkRuleThreshold

December 2005

179

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

Configuration Option Descriptions


frouteAntennaCellSelection
frouteAntennaCellSelection ["macro_name"]

Specifies the antenna cells to use when replacing filler cells to fix process antenna violations.
Arguments
macro_name

Specifies a list of antenna cells.

Default
Uses all antenna cells
Related Option
frouteSpacerCellSelection
Example
The following example specifies that Wroute use antenna2_1 and any antenna cell whose
name starts with antenna1_ when replacing filler cells:
frouteAntennaCellSelection "antenna1_*, antenna2_1"

December 2005

180

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

frouteAntennaTopLayerLimit
frouteAntennaTopLayerLimit integer_value

Starts adding antenna diode cells if process antenna violations remain after layer hopping
reaches the specified layer.
This option is useful in newer technologies to minimize congestion. For example, if you are
working on a design with six or more layers, you might want to set the value of this option to 4.
Default
0 (disabled)
Example

To limit layer hopping to metal layer 4 and force the router to add antenna diode cells to
fix violations that remain, type
frouteAntennaTopLayerLimit 4

Related Option
frouteAntennaCellPass

December 2005

181

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

frouteConcurrentViaOptimization
frouteConcurrentViaOptimization [TRUE | FALSE]

Specifies whether to minimize via resistance during final routing. If set to TRUE, Wroute
attempts to replace single-cut vias with double-cut vias during both the initial and
search-and-repair phases of final routing. Wroute attempts the replacement even if the
design has violations.
This configuration option overrides the frouteOptimizeViaResOnly option. However,
you can use this option with the frouteOptimization option. If both are set, Wroute
attempts to do single-cut to double-cut optimization during final routing first. After it finishes
the routing, Wroute does both via and wire length minimization, as well as single-cut to
double-cut optimization, if the design has no violations.
Note: Setting frouteConcurrentViaOptimization for congested designs can cause
the design to be more difficult to route because it takes away routing resources due to via
replacement.
Default
FALSE
Related Options
frouteOptimization
frouteOptimizeNumCutLimit
frouteOptimizeViaResOnly

December 2005

182

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

frouteDoubleCutFirst
frouteDoubleCutFirst [TRUE | FALSE]

Determines whether to use double-cut vias first instead of single-cut vias during final routing.
Using this option increases the run time significantly. However, it also finishes with a much
higher double-cut percentage.
Default
False (Does not force Wroute to use double-cut vias first)
Related Options
frouteDoubleCutFirstRelaxPass

December 2005

183

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

frouteDoubleCutFirstRelaxPass
frouteDoubleCutFirstRelaxPass [number]

Specifies the search-and-repair pass at or after which Wroute can use single-cut vias instead
of double-cut vias to correct spacing violations.
Specify 0 to disable this variable.
Arguments
number

Specifies the search-and-repair pass at or after which Wroute


can use single-cut vias.

Default
2
Related Options
frouteDoubleCutFirst

December 2005

184

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

frouteMinHoleArea
frouteMinHoleArea [float]

Specifies the minimum area size limit for an empty area that is enclosed by metal (that is, a
donut hole formed by the metal).
Note: Use this configuration option with LEF version 5.4 or earlier. For LEF version 5.5, use
the LEF MINENCLOSEDAREA statement.
Arguments
float

Specifies the minimum hole size that Wroute can create, in user
units.

Default
0 (Can create any size hole)

December 2005

185

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

frouteNumSearchRepairPass
frouteNumSearchRepairPass [pass_number]

Specifies the maximum number of passes to make during search-and-repair routing.


Default
-1 (autotuned)
Related Options
frouteSearchRepair

December 2005

186

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

frouteOptimizeNumCutLimit
frouteOptimizeNumCutLimit [integer]

Limits vias to the specified number of cuts during via optimization.


Default
2
Related Options
frouteOptimization
frouteConcurrentViaOptimization
frouteOptimizeViaResOnly

December 2005

187

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

frouteOptimizeViaResOnly
frouteOptimizeViaResOnly [TRUE | FALSE]

Specifies whether to optimize only via resistance after all design violations are removed. If set
to FALSE, Wroute also performs wire length optimization.
Default
FALSE
Related Options
frouteOptimization
frouteConcurrentViaOptimization
frouteOptimizeNumCutLimit

December 2005

188

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

frouteSoftRuleRelaxPass
frouteSoftRuleRelaxPass [pass_number]

Specifies the search-and-repair pass after which to relax the nondefault rule and allow
violation of the extra spacing.
Note: In previous versions of the software, the extra spacing nondefault rule was a hard rule;
if the extra spacing was not met, Wroute marked it as a violation. To revert to this behavior,
specify 0.
Arguments
pass_number

Specifies the search-and-repair pass after which the extra


spacing rule can be violated.

Default
1

December 2005

189

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

frouteSpacerCellSelection
frouteSpacerCellSelection ["macro_name"]

Specifies the filler cells that can be used by Wroute to fix process antenna violations. These
filler cells are either replaced with antenna cells, or used by Wroute to fill in the remaining
gaps after antenna cells are inserted.
Arguments
macro_name

Specifies a list of filler cells to be replaced, or to use to fill gaps


after antenna cells are inserted.

Default
Replaces all filler cells
Related Option
frouteAntennaCellSelection
Example
The following example specifies Wroute to replace filler_8, filler_2, and filler_1
with antenna cells:
frouteSpacerCellSelection "filler_8, filler_2, filler_1"

However, if you want to replace filler_8, but the antenna cell is the same size as
filler_1, you cannot specify the following variable:
frouteSpacerCellSelection "filler_8"

In order to replace filler_8 with an antenna cell, you must specify a combination of smaller
filler cells that can be used to fill the remaining gap, such as:
frouteSpacerCellSelection "filler_8, filler_1"

December 2005

190

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

frouteTaperPinSelection
frouteTaperPinSelection {ruleBased | inputOnly | all}

Specifies which wires the router tapers.


Note: This option lets the router taper wires; It does not tell the router when to taper the wires.
The router might taper wires because of violations, congestion, or other reasons.
Arguments
ruleBased
Tapers wires based on the nondefault spacing rules defined in
the technology library. You can specify several wire widths and
associate special wire spacing with the widths.

If the spacing associated with a wide wire is the same as


for a regular wire, the router assumes that the wire is
widened to avoid wire self-heat effects. In this case, the
router tapers wide wires at input pins. (The behavior is like
inputOnly.)

If the spacing associated with a wide wire is larger than for


a regular wire, the router assumes that the wider spacing is
used to control crosstalk effects. In this case, the router
tapers wires at all pins where violations occur. (The
behavior is like all.)

inputOnly
Tapers wires at input pins if violations occur. Does not taper wide
wires at the output or inout pin.
all
Tapers wires at all pins where violations occur.
Default
ruleBased

December 2005

191

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

frouteUseRangeRule
frouteUseRangeRule {pin | obstruction | pin+obstruction}

Uses the spacing rule that is defined in the LEF file.


Note: If the keyword VERSION in either LEF or DEF is specified with a value of 5.4 or later,
this environment variable is disabled. To set this value, use the LEF USEMINSPACING
statement. See the LEF/DEF Language Reference for more information.
Default
pin

December 2005

192

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

frouteXtalkThreshold
frouteXTalkThreshold integer_value

Specifies the maximum length for parallel wire segments. If the router finds parallel wire
segments that exceed the specified length, it attempts to space out the wires by one
additional track within a global routing cell (gcell) to avoid crosstalk. If the gcell does not have
enough room, the router completes the routing without the additional spacing.
Note: To enable this option, you must have a license for Silicon Ensemble-PKS or one of the
products in the Cadence Encounter family.
Arguments
integer_value
Specifies the length threshold, in database units, of the longest
allowable parallel wire segments.
Specify 0 to disable.
Default
0 (disabled)
Example
During initial routing, if the following conditions are met, the router spaces out wire segments
longer than 100 m, if possible.

The LEF file contains the following:


DATABASE UNITS 100

The router configuration file contains the following:


frouteXtalkThreshold 10000

December 2005

193

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

grouteDiscouragePlanarRouting
grouteDiscouragePlanarRouting {TRUE | FALSE}

Specifies whether to penalize routing over blocks when only one routing layer is available.
Planar routing (routing on one layer) increases the possibility that wires will cross.
Setting this option to TRUE might help route your design if the following three conditions are
met:

Violations that are generated when grouteDiscouragePlanarRouting is set to


false are on top of the blocks.

Only one routing layer is on top of the blocks.

Routing resources are available between the blocks.

Default
FALSE

December 2005

194

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

grouteGgridMode
grouteGgridMode {align | uniform | user}

Sets the global routing grid generation mode. The global routing grid partitions the routing
portion of a standard cell design into rectangles called global routing cells (gcells).
Arguments
align
Generates a global routing grid that aligns with the channels and
macro block boundaries in your design. This option improves
routing quality for block-based designs because, by aligning the
grids, the global router can route more effectively in empty gcells
in the channel area.
uniform
Generates a uniform global routing grid.
user
Uses the global routing grid defined in the DEF file.
Default
uniform

December 2005

195

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

grouteStarClusterImbalance
grouteStarClusterImbalance [integer]

Specifies the allowed input pin number difference between pin star clusters when using the
star routing pattern.
Default
0 (Allows any imbalance)
Related Options
grouteStarClusterSize
grouteStarNet
grouteStarRatio
Example
The following variable allows there to be a two-pin difference between the number of input
pins in the star clusters:
grouteStarClusterImbalance 2

This means that if one pin cluster has five pins, the rest of the clusters can have between
three and five pins.

December 2005

196

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

grouteStarClusterSize
grouteStarClusterSize [ratio_or_constant]

Specifies the preferred number of input pins in a star cluster. You can specify an explicit
number, or a percentage of the total number of input pins. If the specified number (t) is a
percentage of the total number of input pins (between 0.00 and 0.99), the cluster size is
computed using the following equation:
t * sqrt(fanout_number)
Default
The square root of the total pin number.
Related Options
grouteStarClusterImbalance
grouteStarNet
grouteStarRatio
Example
The following variable specifies that the preferred number of pins in a star cluster should be
50 percent of the total number of pins:
grouteStarClusterSize .50

If the total number of input pins is 100, than the number of input pins per cluster becomes 5.

December 2005

197

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

grouteStarNet
grouteStarNet [netname]

Applies the star routing pattern to the specified nets.


Default

Related Options
grouteStarClusterImbalance
grouteStarClusterSize
grouteStarRatio
Example
The follwing variable applies the star routing pattern to nets named net1 and net2, and to
all nets whose names start with clk:
grouteStarNet clk*, net1, net2

December 2005

198

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

grouteStarRatio
grouteStarRatio [float]

Specifies the amount of the route from the output pin that can be shared by any of the input
pins, as a percentage.
Default
0.25
Related Options
grouteStarClusterImbalance
grouteStarClusterSize
grouteStarNet
Example
The following variable allows the first 20 percent of the route from the output pin to be shared
among any of the input pins:
grouteStarRatio 0.2

December 2005

199

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

include
include

fileName ...

Lets you use secondary configuration files for the router, so you can include options in
additional files. You can have up to ten nesting levels of options.
This option is useful if you want to use separate configuration file for separate routing steps.
Arguments
fileName
Specifies the name of a file containing the option settings.
Example
The following example shows an excerpt from a router configuration file that includes three
secondary configuration files:
inputDBName ""
include "wrouteTest1.cfg"
include "wrouteTest2.cfg"
include "wrouteTest3.cfg"
inputLdefCommentChar "#"
routeGlobal TRUE

December 2005

200

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

inputDbName
inputDbName

fileName

Specifies the name of the database to be input to the router. Use this configuration option to
identify the database for incremental routing.
You can also use this configuration option to access OpenAccess databases. To read in an
OpenAccess database, specify the library, cell, and view name of the cell using following
standalone configuration option:
inputDbName lib,cell,view
For example,
inputDbName lib,top,netlist
Important
To use this option for OpenAccess databases, you must have a license for one of
the products in the Cadence Encounter family.
To access OpenAccess databases, you must have the Nsdba executable, which is included
in the Wroute tarkit. Wroute does not create an entire OpenAccess database; it only updates
the netlist and routing. To create the netlist database, use the lef2oa or def2oa
OpenAccess text commands.
Arguments
fileName
Specifies the name of the database to be input.
Default
wroute.wdb
Related Options
inputDefName
inputLefName
outputDbName

December 2005

201

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

inputDefName
inputDefName {fileName | "list_of_files"}

Specifies the name of the DEF file to be input to the router.


When you run the router in standalone mode, you must specify the DEF and LEF files with
inputDefName and inputLefName or specify an existing router database with
inputDbName.
Arguments
fileName
Specifies the DEF file to input to the router.
"list_of_files"
Specifies a list of DEF files to input to the router. Enclose the list
in quotation marks. Separate DEF filenames with spaces,
commas, or both.
Default
If the target place-and-route tool is Silicon Ensemble, currentDBName.def in the database
directory.
Related Options
inputLefName
inputDbName

December 2005

202

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

inputECO
inputECO {TRUE | FALSE}

Makes the router more error tolerant by allowing it to delete problematic nets and reroute the
affected nets. Examples of problematic nets are nets with loops and nets for which the router
cannot extract connectivity
Use this option during the postroute optimization flow.
Default
FALSE
Examples
If you get the following warning during postroute optimization, you might decide to set this
option.
*WARNING* Fail to extract routing pattern from net X

To remove routing from net X and route unrouted nets straight, set inputECO to TRUE.

To leave routing untouched, do not set inputECO. In this case, if there are open errors
in the input DEF file, they will still be open in the output DEF file.

December 2005

203

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

inputECODefName
inputECODefName fileName

Specifies the name of the DEF file to use for ECO routing. When specified, the router reads
the netlist and routing from the existing .wdb, then updates the wroute netlist from the
specified DEF file, ignoring any routing in that DEF file. The router then incrementally corrects
any routing violations and routes any new nets.
This is typically used when doing gate-resizing buffer insertion and deletion during a
postroute repair for timing or signal integrity violations. Using the existing .wdb is much faster
because the router does not have to analyze all of the DEF routing.
Note: Any routing changes done manually are lost if they were not in the original .wdb from
a previous routing run.
Default
""
Example
The following example shows the configuration options to set in the configuration file to
perform DEF ECO routing:
For input, specify:
inputLefName my.lef
inputDefName my.def

or
inputDBName wroute.wdb

Then specify:
routeGlobal true
routeFinal true
inputECODefName eco.def

December 2005

204

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

inputGCFConstraints
inputGCFConstraints {fileName | "list_of_files"}

Specifies the general constraint format (GCF) constraint file or files. You use GCF files to
define system-level constraints (SLCs) and timing libraries. You can use the same GCF file
for the constraints and the timing libraries.
A GCF constraint file is required when you use the SLC flow.
Arguments
fileName

Specifies the file the router uses to define SLCs.

"list_of_files"

Specifies a list of files the router uses to define SLCs. Enclose


the list in quotation marks. Separate file names with spaces.

Default
None
Related Options
inputGCFTimingLibraries

December 2005

205

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

inputGCFTimingLibraries
inputGCFTimingLibraries {fileName | "list_of_files"}

Specifies the GCF file or files containing the timing libraries. This option is required to run
timing-driven routing.
You can use the same GCF file for the constraints and timing libraries.
Arguments
fileName
Specifies the file the router uses to define timing libraries.
"list_of_files"

Specifies a list of files the router uses to define timing libraries.


Enclose the list in quotation marks. Separate file names with
spaces.

Default
None
Related Options
inputGCFConstraints

December 2005

206

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

inputLefName
inputLefName {fileName | "list_of_files"}

Specifies the name of the LEF file that is input to the router.
When you run the router in standalone mode, you must specify the DEF and LEF files with
inputLefName and inputDefName or specify an existing router database with
inputDbName.
Arguments
fileName

Specifies the name of a LEF file that is input to the router.

"list_of_files"

Specifies a list of LEF files that are input to the router. Enclose
the list in quotation marks. Separate file names with spaces,
commas, or both.

Default
If the target place-and-route tool is Silicon Ensemble, currentDBName.lef in the database
directory.
Related Options
inputDbName
inputDefName

December 2005

207

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

inputViaGenMode
inputViaGenMode
[allLayerNoSingleCut | singleCutAllHVCombo | singleCutOnFirstLayerOnly]
[deriveViaRule]
[regenerate]

Specifies how to generate vias.


Arguments
allLayerNoSingleCut Does not generate any single-cut vias.
deriveViaRule

Derives the via rule from an existing via.

regenerate

Regenerates all vias, even if a particular via group already exists.


If you are using LEF/DEF version 5.5 or earlier, this option works
similar to deriveViaRule).

singleCutAllHVCombo Generates all possible combinations of single-cut horizontal and


vertical vias.
singleCutOnFirstLayerOnly
Generates single-cut vias for metal1/metal2 only.
Default

December 2005

208

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

licenseMultiThreadOnly
licenseMultiThreadOnly [TRUE | FALSE]

Specifies whether to use the multi-thread license only when running Wroute.
If you specify FALSE, Wroute checks out the multi-thread license first, then other valid
licenses.
Default
FALSE

December 2005

209

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

outputDbName
outputDbName

fileName

Specifies the routers output database. The database is in binary form.


To save your design into a router database without running routing, specify the database
name with this configuration option and set all the routing options to false. The router saves
your design in database format (.wdb) without making any routing passes.
This configuration option is useful, for example, if you are routing several different floorplans
or placements. You can use this option to save each database that the router creates to a
different routing binary. Then you can load the best results from the saved database.
You can also use this configuration option to write to an OpenAccess database. Specify the
library, cell, and view name of the cell using the following configuration option:
outputDbName lib,cell,view
For example,
outputDbName lib,top,frouted
Important
To use this option for OpenAccess databases, you must have a license for one of
the products in the Cadence Encounter family.
To access OpenAccess databases, you must have the Nsdba executable, which is included
in the Wroute tarkit. Wroute does not create an entire OpenAccess database; it only updates
the netlist and routing. To create the netlist database, use the lef2oa or def2oa
OpenAccess text commands.
Arguments
fileName
Specifies the output database.
Default
wroute.wdb

December 2005

210

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File
Related Options
inputDbName

December 2005

211

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

quickMode
quickMode [TRUE | FALSE]

Specifies whether to turn off certain time consuming options and limit the number of search
and repair passes, in order for Wroute to run faster.
Use this option to test route a design in the early phases of the design.
Default
FALSE

December 2005

212

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

routeAllowGapFillOverlap
routeAllowGapFillOverlap [TRUE | FALSE]

Specifies whether to allow two vias to be closer to each other than the minimum spacing, if
the wire width is the same width as the vias, the gap between the vias is filled by the wire, and
there is no DRC violation.
If you specify FALSE, the right edge of the first via must be at least the minimum spacing away
from the left edge of the second via.
Default
FALSE

December 2005

213

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

routeAllowSameNetNotch
routeAllowSameNetNotch [TRUE | FALSE]

Determines whether to allow same-net notch violations during routing.


Default
FALSE (Does not allow same-net notch violations)

December 2005

214

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

routeAutoHalfGridThreshold
routeAutoHalfGridThreshold [layer]

Specifies the layer at or above which Wroute performs automatic half-grid routing.
Default
0 (disabled)

December 2005

215

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

routeChipAssemblyMode
routeChipAssemblyMode {TRUE | FALSE}

Specifies whether to scan the design to determine the necessity for chip-assembly routing
and changes heuristics during detailed routing, depending on the percentage of the area of
the design that is covered by blocks, rings, or pads. In chip-assembly mode, the router runs
an order of magnitude faster than in non-chip-assembly mode at the expense of slightly
degraded routing quality.
You can override the routers default behavior by specifying this option explicitly.
Note: The router is tuned so that the default options should be used in most cases. Cadence
recommends that you change the setting of this option only when you are certain that you
need to override the default.
Default
Auto-detect

December 2005

216

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

routeDetectFeedThru
routeDetectFeedThru [TRUE | FALSE]

Specifies whether to detect fixed preroutes for a net, and use them to route to unconnected
or partially connected pins on the net.
In order to use this option, the following conditions must be met:

The net must have one connected section of a regular preroute that is marked +FIXED
or +COVER.

The number of dangling end points for the preroute must be the same as the number of
unconnected or partially connected pins.

Default
FALSE

December 2005

217

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

routeLayerRange
routeLayerRange {"bottom_layer" | "top_layer" | "bottom_layer:top_layer"}

Routes only on the specified layers and freezes routing on all other layers. You can specify a
single layer to route, or a range of layers.
Arguments
bottom_layer

Specifies the bottom layer to route.


bottom_layer :top_layer

Specifies the bottom and top layers of a layer range to route.


top_layer

Specifies the top layer to route.


Default
Route on all layers.
Examples

To route only layer 3, specify


routeLayerRange "3:3"

To route only on layers 3 through 5, specify


routeLayerRange "3:5"

To route only from layer 3 to the top layer, specify


routeLayerRange "3"

To route only from the bottom layer to layer 3, specify


routeLayerRange ":3"

December 2005

218

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

routeOnGridViaOnly
routeOnGridViaOnly [TRUE | FALSE]

Specifies whether all vias must be placed on the track grid.


Note: This option affects vias on all routing layers. To limit the routing layers on which vias
are required to be placed on the track grid, use the routeOnGridViaThreshold and
routeOnGridViaUpperThreshold options.
Default
FALSE
Related Options
routeOnGridViaThreshold
routeOnGridViaUpperThreshold

December 2005

219

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

routeOnGridViaThreshold
routeOnGridViaThreshold [integer ]

Specifies the routing layer below which all vias must be placed on the track grid.
Default
0 (Vias do not have to be placed on the track grid)
Related Options
routeOnGridViaOnly
routeOnGridViaUpperThreshold

December 2005

220

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

routeOnGridViaUpperThreshold
routeOnGridViaUpperThreshold [integer ]

Specifies the routing layer above which all vias must be placed on the track grid.
Default
0 (Vias do not have to be placed on the track grid)
Related Options
routeOnGridViaOnly
routeOnGridViaThreshold

December 2005

221

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

routeSelectNetLayerRange
routeSelectNetLayerRange {bottom_layer | "bottom_layer:top_layer"}

Specifies a layer range for selected nets if all nets are being routed. You can specify a bottom
layer for routing the selected nets or both a bottom and top layer.
Note: To enable the routeSelectNetLayerRange option, you must first set the
routeSelectNet and routeSelectNetFirst options. If you set
routeTopLayerLimit or routeBottomLayerLimit, routeSelectNetLayerRange is
ignored.
Arguments
bottom_layer

Specifies the bottom layer for routing the selected nets.


bottom_layer:top_layer

Specifies the bottom and top layers for routing the selected nets.
Default
Use the same range for selected nets as for other nets.
Related Options
routeSelectNet
routeSelectNetFirst
Examples

To make layer metal3 the bottom routing layer for selected nets, type
routeSelectNetLayerRange 3

To make layer metal3 the bottom routing layer and layer metal5 the top routing layer for
selected nets, type
routeSelectNetLayerRange "3:5"

December 2005

222

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

routeSoftTopLayerLimit
routeSoftTopLayerLimit {TRUE | FALSE}

Specifies whether to allow routing on layers higher than the one set by
routeTopLayerLimit.
When set to TRUE, the router might route to a layer higher than the one set by
routeTopLayerLimit, but at a high cost.
Default
FALSE
Related Options
routeTopLayerLimit

December 2005

223

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

routeStraightenNet
routeStraightenNet [~]{netName | "list_of_nets" | "< fileName" | "> fileName"}

Deletes specified nets in a fully routed design and reroutes them as straight as possible.
Note: You cannot use this option with the routeSelectNet option.
Arguments
~
Straightens all nets except the specified nets.
netName
Specifies the name of a net to straighten.
"< fileName"
Specifies a file that contains the list of names of all the nets to
straighten, with one name on each line. The file has a 4 KB limit.
You cannot use regular expressions with the <.
"> fileName"
Specifies a file that contains the list of names of all the nets to
straighten, with one name on each line. You can use regular
expressions with the >.
"list_of_nets"
Lists the DEF names of the nets to straighten. The list has a
4,000-character limit. Enclose the list in quotation marks.
Separate the names with spaces.
Use the following to specify multiple nets:
"@clock" selects all nets marked with +USE CLOCK.
"@subnet" selects all nets with subnets.
"@rule" selects all nets using a nondefault rule.
"@shield" selects all shielded nets

Default
None
December 2005

224

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File
Related Options
inputDbName
routeGlobal
routeFinal

December 2005

225

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

routeStripeCenterConnect
routeStripeCenterConnect {TRUE | FALSE}

Controls whether the router connects to the center of wide stripes only, not to power or ground
pins.
Use this option to force the router to connect tie-high and tie-low nets to stripes.
Default
FALSE

December 2005

226

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

xtalkFixNet
xtalkFixNet { netName | "list_of_nets" | <

fileName }

Performs postroute crosstalk fixing on selected nets by pushing adjacent routing aside. Use
this option on a fully routed database during final routing only.
Arguments
< filename
Specifies the name of a file of nets with crosstalk problems. The
file can be generated by CeltIC Crosstalk Analyzer or another
crosstalk analyzer.
netName
Specifies the name of a net with crosstalk problems.
list_of_nets
Lists the DEF names of the nets to straighten. The list has a
4,000-character limit. Enclose the list in quotation marks.
Separate the names with spaces.
Use "@clock" to specify all nets marked + USE CLOCK.
Default
""
Example
To fix crosstalk on nets in a database named wroute.wdb using the file generated by CeltIC,
named xtalk_vio.list, include the following lines in your router configuration file:
inputDBName "wroute.wdb"
xtalkFixNet "< xtalk_vio.list"
routeFinal

Note: Do not include routeGlobal in your configuration file.

December 2005

227

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

xtalkRule
xtalkRule {prevention | "class_a [|class_b] + class_a [|class_b]
[,class_a [|class_b] + class_a [|class_b] ] "}

Specifies the interaction rules for crosstalk classes. The default crosstalk class for all nets is
0. Cadence recommends you use xtalkRule "0+0" if you need to minimize crosstalk.
The rules apply to regular and special wires, but not to pins or obstructions. Class interactions
are symmetric. For example, if class_a repels class_b, then class_b repels
class_a. Class interactions might add slight routing penalties to your design.
To use interaction rules, you must specify + XTALK class as a net attribute in your DEF file.
See the LEF/DEF Language Reference for details.
Important
To use xtalkRule, you must have a license for Silicon Ensemble-PKS or one of
the products in the Cadence Encounter family.
Arguments
prevention
Spaces out wires over the blocks by one track if possible. Specify
xtalkRule prevention during chip-assembly or mixed
chip-assembly and block routing to prevent crosstalk.
Note: Specifying xtalk prevention has the same effect as
specifying xtalkRule "0+0".
class
Specifies the crosstalk class.
Default: 0
Type: Integer
Value Range: 0 to 200. Values higher than 200 default to 200.
Note: If the class is 0 (the default) XTALK will not be written to
the DEF file. See the LEF/DEF Language Reference for
more information.
"
Specifies the beginning or the end of string that defines the class
interaction rules.
December 2005

228

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File
+
Specifies repulsion. This is the class interaction operator. Other
operators might be added in future releases.
|
Separates the classes.
,
Separates the class groups.
Examples

To specify that nets in the same class repel each other, type
xtalkRule "1+1, 2+2, 3+3"

This is the most common application of the class interaction rule.

To specify classes, or groups of classes, that repel nets in other classes, type
xtalkRule "1|2|3+2|3, 4+0"

In this example,

Nets in classes 1, 2, and 3 repel nets in classes 2 and 3.

Nets in classes 2 and 3 repel nets in classes 1, 2, and 3.

Nets in class 4 repel nets in class 0.

Nets in class 0 repel nets in class 4.

Related Options
xtalkRuleThreshold

December 2005

229

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File

xtalkRuleThreshold
xTalkRuleThreshold

threshold

Specifies the wire-length threshold for nets to be affected by the class interaction rule for
crosstalk.
Important
To use xtalkRuleThreshold, you must have a license for Silicon Ensemble-PKS
or one of the products in the Cadence Encounter family.

The router considers nets whose estimated wire length after global routing is equal to or
greater than the threshold as active nets for class interaction.

The router considers nets whose estimated wire length after global routing is less than
the threshold as inactive nets and removes their class assignments.

Note: To use xtalkRuleThreshold, you must specify + XTALK class as a net attribute
in your DEF file. The default class for any net without a class number is 0. See the LEF/DEF
Language Reference for details.
Argument
threshold
Specifies the minimum estimated wire length, in database units,
of nets that will be affected by crosstalk interaction rules. The
router measures the estimated wire length after global routing.
Default
100 m (approximately)
Related Options
xtalkRule
Examples

To specify that all nets whose estimated wire length is equal to or greater than
10,000 database units after global routing should be affected by the class interaction
rule, type

December 2005

230

Product Version 2.3

Ultra Router Reference


Running the Router in Standalone Mode and Using the Configuration File
xtalkRuleThreshold 10,000

If you set the threshold to 10,000, the router does not apply the class interaction rule to
any nets whose estimated wire length is less than 10,000 database units.

To space out all wires without making any changes to the DEF file, type
xtalkRule " 0 + 0 "
xtalkRuleThreshold 0

The first statement specifies that nets in class 0 (or have no defined class, since 0
is the default class) repel other nets in class 0.

The second statement specifies that all nets whose estimated wire length is equal
to or greater than 0 (that is, all nets) are affected by the rule.

December 2005

231

Product Version 2.3

Вам также может понравиться