Академический Документы
Профессиональный Документы
Культура Документы
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
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
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
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
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
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
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
December 2005
10
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
December 2005
11
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.
text
text
[ ]
Titles of manuals
[ | ]
December 2005
12
{ | }
{[ ] [ ]}
{ }
...
.
.
.
Command Subcommand
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).
December 2005
13
December 2005
14
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:
December 2005
15
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
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
Support for Library Exchange Format (LEF) and Design Exchange Format (DEF)
versions 5.6, 5.5, and 5.4.
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 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
December 2005
18
The router might not be able to find a clean connection to a port with limited access
points.
Where the Router Fits into the Silicon Ensemble Flow on page 21
December 2005
19
December 2005
20
December 2005
21
December 2005
22
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
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.
December 2005
24
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
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
Stripes
Cell
Shielded net
December 2005
27
December 2005
28
2
Getting Started
This chapter contains the following sections:
December 2005
29
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.
December 2005
30
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)
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
In the NETS section, describe tie high/tie low pins in the power and ground net
descriptions.
In both the SPECIALNETS and the NETS sections, make sure that
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
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
For more information about LEF and DEF files, see the LEF/DEF Language Reference.
Specify the wire extension amount in the NETS section of the DEF file.
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
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.
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.
Look for the router version number near the beginning of the router log file.
December 2005
34
3
Using the Router
This chapter contains the following sections:
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
ALL
NONE
list
CDS_AUTO_64BIT
wroute
CDS_AUTO_64BIT
ALL
or,
setenv
On the WRoute Options form, enter a value in the text box adjacent to RunTime Limit
(CPU Minutes).
December 2005
36
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.
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
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.
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
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.
December 2005
39
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
Important
You must have a license for Silicon Ensemble-PKS to enable signal integrity
analysis.
December 2005
41
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
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;
December 2005
43
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
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 ;
45
Adjust the timing-related options in the placer and re-place and reroute the design.
December 2005
46
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.
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
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 ;
To specify how Wroute generates vias, use the inputViaGenMode configuration option.
48
Via origin
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
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.
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.
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
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.
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
Click the Variables button on the WRoute form and scroll down the list of variables.
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.
When you are ready to load a database back into Silicon Ensemble, do one of the
following before you run the router:
Timing Considerations
This section describes the following procedures and concepts to help you meet the timing
constraints for your design.
December 2005
52
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.
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.
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
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
Ds
Drc
buf1
buf2
Cb
December 2005
Cn
Cc
54
+ FALLMIN 4764.00
A1
buf1
a
F1
A2
buf2
b
buf3
December 2005
55
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
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
December 2005
58
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
December 2005
59
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 =
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
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.
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
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).
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
N2,1
N2,1
N1,1
G1
N2,2
N1,2
G2
G3
N1,3
G4
N2,3
N1,4
Diode
63
Changing the routing by breaking the metal layers into smaller pieces
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.
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
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.
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.
December 2005
65
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
antennaDiffArea
antennaGateArea
Measured in square
microns
factor
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
December 2005
66
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
December 2005
67
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
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)
December 2005
69
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)
December 2005
70
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)
December 2005
71
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)
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
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
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
December 2005
74
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
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
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
N3,1
N2,1
N2,1
N1,1
G1
N2,2
N1,2
G2
N1,3
G3
G4
N2,3
N1,4
Diode
N3,1
N2,1
N2,1
N1,1
G1
N2,2
N1,2
G2
G3
N1,3
G4
N2,3
N1,4
Diode
December 2005
77
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
December 2005
78
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 Figure 4-16 on page 80, the relevant areas for calculating CAR(N4,1,G4) are shaded.
December 2005
79
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
December 2005
80
NC12,2
NC12,2
N1,1
NC12,3
N1,2
G1
G2
NC12,4
N1,4
N1,3
G3
Diode
G4
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
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)
December 2005
82
Drawn area of Ni ,j
AntennaAreaFactor
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.
December 2005
83
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.
December 2005
84
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.
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
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
Change the routing by breaking the metal layers into smaller pieces.
December 2005
87
88
WRoute.Antenna.Cell.Pass (frouteAntennaCellPass)
WRoute.Fix.AntennaPass (frouteFixAntennaPass)
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
Figure 4-20
M3
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.
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
AntennaGateArea
AntennaDiffArea
AntennaPartialMetalArea
AntennaPartialMetalSideArea
AntennaPartialCutArea
AntennaMaxAreaCAR
AntennaMaxSideAreaCAR
AntennaMaxCutCar
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
antennaMethod
Verify.Antenna.Method
antennaSumGateArea
Verify.Antenna.SumGateArea
frouteAntennaCellPass
WRoute.Antenna.Cell.Pass
December 2005
91
X
Product Version 2.3
WR2.2 WR2.3
SE5.3 SE 5.4
frouteAntennaTopLayerLimit n/a
frouteFixAntennaPass
WRoute.Fix.AntennaPass
inputLEFName
WRoute.Addition.LefName
It refers to ...
Examples
area
sideArea
CAR
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,
December 2005
92
The area of the cut layer that connects node N3,1 and node N4,2 is area(NC34,1).
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
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
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 ;
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.
December 2005
94
December 2005
95
December 2005
96
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:
December 2005
97
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
December 2005
99
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
WRHELP
Describes the router configuration file options. When you specify
WRHELP, no routing is performed.
December 2005
100
To change the settings of the environment variables, change the settings on the forms.
To see the default values of options in the configuration file, use the WRHELP 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.
December 2005
101
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.
Other string values, such as filenames or cellnames, are converted to all uppercase, unless
one of the following conditions is met:
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
FRoute.Manufacturing.XGrid
Froute.Manufacturing.XGrid value
December 2005
103
FRoute.Manufacturing.YGrid
Froute.Manufacturing.YGrid integer_value
December 2005
104
Input.Comment.Delimiter
Input.Comment.Delimiter char
December 2005
105
Input.LEF.Stacking.OFF
Input.LEF.Stacking.OFF {TRUE | FALSE}
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
Rule.ClearanceMeasure
Rule.ClearanceMeasure {maxxy | euclidean}
E
Y
December 2005
107
Verify.Antenna.Method
Verify.Antenna.Method {layerOnly | accumulate}
December 2005
108
Verify.Antenna.SumGateArea
Verify.Antenna.SumGateArea {TRUE | FALSE}
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.
December 2005
109
WRoute.Addition.LefName
WRoute.Addition.LefName fileName
December 2005
110
WRoute.Allow.Port.Shorts
WRoute.Allow.Port.Shorts {TRUE | FALSE}
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
December 2005
112
WRoute.Antenna.Cell.Pass
WRoute.Antenna.Cell.Pass integer_value
December 2005
113
WRoute.Assign.RoutingDir
WRoute.Assign.RoutingDir {TRUE | FALSE}
December 2005
114
WRouteAssign.RoutingDir = TRUE
Macro block
Macro block
Congested
channels
December 2005
115
WRoute.Auto.Stop
WRoute.Auto.Stop {TRUE | FALSE}
December 2005
116
WRoute.AutoSave.Interval
WRoute.AutoSave.Interval minutes
December 2005
117
WRoute.BottomLayer.Limit
WRoute.BottomLayer.Limit integer_value
December 2005
118
WRoute.Extra.Config
WRoute.Extra.Config fileName
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
WRoute.Final
WRoute.Final {TRUE | FALSE}
If both WRoute.Final and WRoute.Global are TRUE, makes a full routing run (final
and global routing).
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
WRoute.Fix.AntennaPass
WRoute.Fix.AntennaPass pass_number
December 2005
121
December 2005
122
WRoute.GGridMode
WRoute.GGridMode {align | uniform | user}
December 2005
123
WRoute.Global
WRoute.Global {TRUE | FALSE}
December 2005
124
WRoute.Import
WRoute.Import {readDB | readDEF | noRead}
December 2005
125
WRoute.Incremental.Final
WRoute.Incremental.Final {TRUE | FALSE}
December 2005
126
WRoute.Incremental.Global
Wroute.Incremental.Global {TRUE | FALSE}
December 2005
127
WRoute.Input.DbName
WRoute.Input.DbName filename
December 2005
128
WRoute.LEFFile.Reuse
WRoute.LEFFile.Reuse {TRUE | FALSE}
December 2005
129
WRoute.MaxStackPages
WRoute.MaxStackPages minutes
December 2005
130
WRoute.Modify.PreroutePass
WRoute.Modify.PreroutePass integer_value
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
December 2005
131
WRoute.Optimization
WRoute.Optimization {TRUE | FALSE}
December 2005
132
WRoute.Output.DbName
WRoute.Output.DbName fileName
December 2005
133
WRoute.Output.DefName
Wroute.Output.DefName fileName
December 2005
134
WRoute.Pin.Access.Mode
WRoute.Pin.Access.Mode {auto | normal | offGrid | narrowpin | upVia
| upViaEnclosure | upViaReserve}
135
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
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
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
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
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.
December 2005
140
WRoute.Prefer.OnGrid
WRoute.Prefer.OnGrid {TRUE | FALSE}
WRoute.Optimization also affects which grid points are accessible for routing.
December 2005
141
WRoute.Processor
WRoute.Processor integer_value
During global routing, the router routes nets concurrently. If you have a four-processor
machine, you can route four nets 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.
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
December 2005
143
WRoute.Route.Area
WRoute.Route.Area {"x1 ,
y1 , x2 , y2 "}
December 2005
144
WRoute.RunTimeLimit
WRoute.RunTimeLimit minutes
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
December 2005
145
WRoute.SearchRepair
WRoute.SearchRepair {TRUE | FALSE}
December 2005
146
WRoute.SelectNet.First
WRoute.SelectNet.First {TRUE | FALSE}
December 2005
147
WRoute.SelectNets
WRoute.SelectNets [~]{netName | "list_of_nets" | "< fileName" | "> fileName"}
December 2005
148
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*"
December 2005
149
WRoute.SoftRuleRelaxPass
WRoute.SoftRuleRelaxPass pass_number
December 2005
150
WRoute.Taper.Distance
WRoute.Taper.Distance integer_value
December 2005
151
WRoute.Timing.Driven
WRoute.Timing.Driven {TRUE | FALSE}
December 2005
152
WRoute.Timing.Fall.Transition
Wroute.Timing.Fall.Transition real_value
December 2005
153
WRoute.Timing.Net.Percentage.Delta
WRoute.Timing.Net.Percentage.Delta real_value
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).
December 2005
154
WRoute.Timing.Rise.Transition
WRoute.Timing.Rise.Transition real_value
December 2005
155
WRoute.Timing.Use.Est.Cap
WRoute.Timing.Use.Est.Cap {TRUE | FALSE}
December 2005
156
WRoute.TopLayer.Limit
WRoute.TopLayer.Limit layer
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
December 2005
158
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.
December 2005
159
#---{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
:
:
:
:
:
:
:
:
:
December 2005
160
161
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
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
:
:
:
:
:
:
:
#---{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 :
:
:
:
:
:
:
:
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
: }
Blocked Gcells: Gcells for which every routing track intersects an obstruction
#---{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
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%)}
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
Down-Via
Over-track
Over-
26508
563532
0
575017
1199
1128 ( 0.26%)}
34682
15668 (
* WROUTE :
1807513
1104791
37120 17736 ( 0.68%)}
* WROUTE : End routing: cpu: 0:01:14, real: 0:00:20, peak: 674.35
164
#---{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
Over-track
Over-
44517
516539
0
558764
3168
2890 ( 0.67%)}
12471
5989 (
* 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:
Down-Via: The number of vias from the given layer to the layer below
December 2005
165
:
:
:
:
:
:
:
:
:
:
:
:
:
}
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 : }
#---{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
:
:
:
:
:
:
:
:
:
:
:
:
: }
166
December 2005
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
}
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
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 :
*
*
*
*
*
*
*
*
*
WROUTE :
WROUTE :
WROUTE :
WROUTE :
WROUTE :
WROUTE :
WROUTE :
WROUTE :
WROUTE :
*
*
*
*
*
*
*
*
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.}
}
:
:
:
:
:
:
:
:
168
11869060 (
1786695}
0}
9222 ( 0.36%)}
0:17:17}
817.23 megs}
Message Summary
At the end of the journal file, the router gives a summary of warnings and their severity.
December 2005
169
December 2005
170
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:
December 2005
171
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
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
Your configuration file must contain values for one of the following:
inputDbName
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:
December 2005
174
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).
December 2005
175
Option
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
Option
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
Option
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
Option
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
Specifies the antenna cells to use when replacing filler cells to fix process antenna violations.
Arguments
macro_name
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
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
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
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
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
Default
2
Related Options
frouteDoubleCutFirst
December 2005
184
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
frouteNumSearchRepairPass
frouteNumSearchRepairPass [pass_number]
December 2005
186
frouteOptimizeNumCutLimit
frouteOptimizeNumCutLimit [integer]
December 2005
187
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
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
Default
1
December 2005
189
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
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
frouteTaperPinSelection
frouteTaperPinSelection {ruleBased | inputOnly | 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
frouteUseRangeRule
frouteUseRangeRule {pin | obstruction | pin+obstruction}
December 2005
192
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.
December 2005
193
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:
Default
FALSE
December 2005
194
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
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
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
grouteStarNet
grouteStarNet [netname]
December 2005
198
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
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
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
inputDefName
inputDefName {fileName | "list_of_files"}
December 2005
202
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
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
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
"list_of_files"
Default
None
Related Options
inputGCFTimingLibraries
December 2005
205
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"
Default
None
Related Options
inputGCFConstraints
December 2005
206
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
"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
inputViaGenMode
inputViaGenMode
[allLayerNoSingleCut | singleCutAllHVCombo | singleCutOnFirstLayerOnly]
[deriveViaRule]
[regenerate]
regenerate
December 2005
208
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
outputDbName
outputDbName
fileName
December 2005
210
December 2005
211
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
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
routeAllowSameNetNotch
routeAllowSameNetNotch [TRUE | FALSE]
December 2005
214
routeAutoHalfGridThreshold
routeAutoHalfGridThreshold [layer]
Specifies the layer at or above which Wroute performs automatic half-grid routing.
Default
0 (disabled)
December 2005
215
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
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
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
December 2005
218
routeOnGridViaOnly
routeOnGridViaOnly [TRUE | FALSE]
December 2005
219
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
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
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 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
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
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
December 2005
225
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
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
December 2005
227
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
To specify that nets in the same class repel each other, type
xtalkRule "1+1, 2+2, 3+3"
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,
Related Options
xtalkRuleThreshold
December 2005
229
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
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