Skip to content

Commit 48ea2d3

Browse files
authored
Merge pull request #6862 from The-OpenROAD-Project-staging/gpl-modify-td-max-weight
gpl: modify timing-driven max weight
2 parents 07a87df + 250e48e commit 48ea2d3

File tree

10 files changed

+704
-699
lines changed

10 files changed

+704
-699
lines changed

src/gpl/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ global_placement
140140
| Switch Name | Description |
141141
| ----- | ----- |
142142
| `-timing_driven_net_reweight_overflow` | Set overflow threshold for timing-driven net reweighting. Allowed value is a Tcl list of integers where each number is `[0, 100]`. Default values are [79, 64, 49, 29, 21, 15] |
143-
| `-timing_driven_net_weight_max` | Set the multiplier for the most timing-critical nets. The default value is `1.9`, and the allowed values are floats. |
143+
| `-timing_driven_net_weight_max` | Set the multiplier for the most timing-critical nets. The default value is `5`, and the allowed values are floats. |
144144
| `-timing_driven_nets_percentage` | Set the reweighted percentage of nets in timing-driven mode. The default value is 10. Allowed values are floats `[0, 100]`. |
145145
| `-keep_resize_below_overflow` | When the overflow is below the set value, timing-driven iterations will retain the resizer changes instead of reverting them. The default value is 0.3. Allowed values are floats `[0, 1]`. |
146146

src/gpl/include/gpl/Replace.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ class Replace
199199

200200
int routabilityMaxInflationIter_ = 4;
201201

202-
float timingNetWeightMax_ = 1.9;
202+
float timingNetWeightMax_ = 5;
203203
float keepResizeBelowOverflow_ = 0.3;
204204

205205
bool timingDrivenMode_ = true;

src/gpl/src/replace.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ void Replace::reset()
124124

125125
timingNetWeightOverflows_.clear();
126126
timingNetWeightOverflows_.shrink_to_fit();
127-
timingNetWeightMax_ = 1.9;
127+
timingNetWeightMax_ = 5;
128128

129129
gui_debug_ = false;
130130
gui_debug_pause_iterations_ = 10;

src/gpl/src/timingBase.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ class TimingBase
8383

8484
std::vector<int> timingNetWeightOverflow_;
8585
std::vector<int> timingOverflowChk_;
86-
float net_weight_max_ = 1.9;
86+
float net_weight_max_ = 5;
8787
void initTimingOverflowChk();
8888
};
8989

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
---
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Start testing: Mar 19 22:01 UTC
2+
----------------------------------------------------------
3+
End testing: Mar 19 22:01 UTC

src/gpl/test/simple01-td-tune.defok

Lines changed: 292 additions & 292 deletions
Large diffs are not rendered by default.

src/gpl/test/simple01-td-tune.ok

Lines changed: 55 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -47,39 +47,40 @@ Iteration | Area | Resized | Buffers | Nets repaired | Remaining
4747
[INFO RSZ-0039] Resized 75 instances.
4848
[INFO GPL-0106] Timing-driven: worst slack 1.41e-09
4949
[INFO GPL-0103] Timing-driven: weighted 35 nets.
50-
[NesterovSolve] Iter: 10 overflow: 0.728 HPWL: 4021066
51-
[NesterovSolve] Iter: 20 overflow: 0.730 HPWL: 4007578
52-
[NesterovSolve] Iter: 30 overflow: 0.731 HPWL: 4003791
53-
[NesterovSolve] Iter: 40 overflow: 0.731 HPWL: 4003983
54-
[NesterovSolve] Iter: 50 overflow: 0.731 HPWL: 4004492
55-
[NesterovSolve] Iter: 60 overflow: 0.731 HPWL: 4004740
56-
[NesterovSolve] Iter: 70 overflow: 0.731 HPWL: 4004975
57-
[NesterovSolve] Iter: 80 overflow: 0.731 HPWL: 4005361
58-
[NesterovSolve] Iter: 90 overflow: 0.730 HPWL: 4005937
59-
[NesterovSolve] Iter: 100 overflow: 0.730 HPWL: 4007220
60-
[NesterovSolve] Iter: 110 overflow: 0.730 HPWL: 4009283
61-
[NesterovSolve] Iter: 120 overflow: 0.729 HPWL: 4012585
62-
[NesterovSolve] Iter: 130 overflow: 0.727 HPWL: 4017579
63-
[NesterovSolve] Iter: 140 overflow: 0.725 HPWL: 4024943
64-
[NesterovSolve] Iter: 150 overflow: 0.721 HPWL: 4035246
65-
[NesterovSolve] Iter: 160 overflow: 0.714 HPWL: 4050680
66-
[NesterovSolve] Iter: 170 overflow: 0.704 HPWL: 4073172
50+
[NesterovSolve] Iter: 10 overflow: 0.772 HPWL: 3888374
51+
[NesterovSolve] Iter: 20 overflow: 0.763 HPWL: 3916812
52+
[NesterovSolve] Iter: 30 overflow: 0.761 HPWL: 3910980
53+
[NesterovSolve] Iter: 40 overflow: 0.762 HPWL: 3905892
54+
[NesterovSolve] Iter: 50 overflow: 0.762 HPWL: 3904910
55+
[NesterovSolve] Iter: 60 overflow: 0.761 HPWL: 3906073
56+
[NesterovSolve] Iter: 70 overflow: 0.761 HPWL: 3906285
57+
[NesterovSolve] Iter: 80 overflow: 0.761 HPWL: 3906657
58+
[NesterovSolve] Iter: 90 overflow: 0.761 HPWL: 3907884
59+
[NesterovSolve] Iter: 100 overflow: 0.761 HPWL: 3909257
60+
[NesterovSolve] Iter: 110 overflow: 0.760 HPWL: 3911317
61+
[NesterovSolve] Iter: 120 overflow: 0.759 HPWL: 3914680
62+
[NesterovSolve] Iter: 130 overflow: 0.758 HPWL: 3920183
63+
[NesterovSolve] Iter: 140 overflow: 0.756 HPWL: 3929337
64+
[NesterovSolve] Iter: 150 overflow: 0.752 HPWL: 3943670
65+
[NesterovSolve] Iter: 160 overflow: 0.746 HPWL: 3964904
66+
[NesterovSolve] Iter: 170 overflow: 0.735 HPWL: 3995840
67+
[NesterovSolve] Iter: 180 overflow: 0.722 HPWL: 4038609
68+
[NesterovSolve] Iter: 190 overflow: 0.703 HPWL: 4097263
6769
[INFO GPL-0100] Timing-driven iteration 2/7, virtual: true.
68-
[INFO GPL-0101] Iter: 176, overflow: 0.694, keep rsz at: 0.3, HPWL: 4089801
70+
[INFO GPL-0101] Iter: 194, overflow: 0.694, keep rsz at: 0.3, HPWL: 4123042
6971
Iteration | Area | Resized | Buffers | Nets repaired | Remaining
7072
---------------------------------------------------------------------
7173
0 | +0.0% | 0 | 0 | 0 | 356
72-
final | -12.7% | 76 | 0 | 0 | 0
74+
final | -12.6% | 76 | 0 | 0 | 0
7375
---------------------------------------------------------------------
7476
[INFO RSZ-0039] Resized 76 instances.
75-
[INFO GPL-0106] Timing-driven: worst slack 1.4e-09
77+
[INFO GPL-0106] Timing-driven: worst slack 1.41e-09
7678
[INFO GPL-0103] Timing-driven: weighted 35 nets.
77-
[NesterovSolve] Iter: 180 overflow: 0.688 HPWL: 4103758
78-
[NesterovSolve] Iter: 190 overflow: 0.671 HPWL: 4143305
79-
[NesterovSolve] Iter: 200 overflow: 0.649 HPWL: 4195861
80-
[NesterovSolve] Iter: 210 overflow: 0.619 HPWL: 4257333
79+
[NesterovSolve] Iter: 200 overflow: 0.675 HPWL: 4168674
80+
[NesterovSolve] Iter: 210 overflow: 0.644 HPWL: 4239797
81+
[NesterovSolve] Iter: 220 overflow: 0.613 HPWL: 4330517
8182
[INFO GPL-0100] Timing-driven iteration 3/7, virtual: true.
82-
[INFO GPL-0101] Iter: 218, overflow: 0.592, keep rsz at: 0.3, HPWL: 4309782
83+
[INFO GPL-0101] Iter: 224, overflow: 0.595, keep rsz at: 0.3, HPWL: 4370091
8384
Iteration | Area | Resized | Buffers | Nets repaired | Remaining
8485
---------------------------------------------------------------------
8586
0 | +0.0% | 0 | 0 | 0 | 356
@@ -88,11 +89,10 @@ Iteration | Area | Resized | Buffers | Nets repaired | Remaining
8889
[INFO RSZ-0039] Resized 76 instances.
8990
[INFO GPL-0106] Timing-driven: worst slack 1.4e-09
9091
[INFO GPL-0103] Timing-driven: weighted 35 nets.
91-
[NesterovSolve] Iter: 220 overflow: 0.584 HPWL: 4324409
92-
[NesterovSolve] Iter: 230 overflow: 0.542 HPWL: 4388185
93-
[NesterovSolve] Iter: 240 overflow: 0.498 HPWL: 4444123
92+
[NesterovSolve] Iter: 230 overflow: 0.568 HPWL: 4421087
93+
[NesterovSolve] Iter: 240 overflow: 0.525 HPWL: 4500705
9494
[INFO GPL-0100] Timing-driven iteration 4/7, virtual: true.
95-
[INFO GPL-0101] Iter: 241, overflow: 0.493, keep rsz at: 0.3, HPWL: 4445843
95+
[INFO GPL-0101] Iter: 247, overflow: 0.491, keep rsz at: 0.3, HPWL: 4573895
9696
Iteration | Area | Resized | Buffers | Nets repaired | Remaining
9797
---------------------------------------------------------------------
9898
0 | +0.0% | 0 | 0 | 0 | 356
@@ -101,58 +101,58 @@ Iteration | Area | Resized | Buffers | Nets repaired | Remaining
101101
[INFO RSZ-0039] Resized 76 instances.
102102
[INFO GPL-0106] Timing-driven: worst slack 1.4e-09
103103
[INFO GPL-0103] Timing-driven: weighted 35 nets.
104-
[NesterovSolve] Iter: 250 overflow: 0.439 HPWL: 4444359
104+
[NesterovSolve] Iter: 250 overflow: 0.476 HPWL: 4593620
105+
[NesterovSolve] Iter: 260 overflow: 0.422 HPWL: 4639152
105106
[INFO GPL-0100] Timing-driven iteration 5/7, virtual: true.
106-
[INFO GPL-0101] Iter: 258, overflow: 0.392, keep rsz at: 0.3, HPWL: 4432042
107+
[INFO GPL-0101] Iter: 265, overflow: 0.393, keep rsz at: 0.3, HPWL: 4653629
107108
Iteration | Area | Resized | Buffers | Nets repaired | Remaining
108109
---------------------------------------------------------------------
109110
0 | +0.0% | 0 | 0 | 0 | 356
110111
final | -12.6% | 76 | 0 | 0 | 0
111112
---------------------------------------------------------------------
112113
[INFO RSZ-0039] Resized 76 instances.
113114
[INFO GPL-0106] Timing-driven: worst slack 1.4e-09
114-
[INFO GPL-0103] Timing-driven: weighted 34 nets.
115-
[NesterovSolve] Iter: 260 overflow: 0.385 HPWL: 4433170
116-
[NesterovSolve] Iter: 270 overflow: 0.334 HPWL: 4463515
117-
[NesterovSolve] Iter: 280 overflow: 0.301 HPWL: 4461794
115+
[INFO GPL-0103] Timing-driven: weighted 35 nets.
116+
[NesterovSolve] Iter: 270 overflow: 0.365 HPWL: 4678508
117+
[NesterovSolve] Iter: 280 overflow: 0.313 HPWL: 4689400
118118
[INFO GPL-0100] Timing-driven iteration 6/7, virtual: false.
119-
[INFO GPL-0101] Iter: 283, overflow: 0.294, keep rsz at: 0.3, HPWL: 4481604
119+
[INFO GPL-0101] Iter: 284, overflow: 0.288, keep rsz at: 0.3, HPWL: 4702543
120120
Iteration | Area | Resized | Buffers | Nets repaired | Remaining
121121
---------------------------------------------------------------------
122122
0 | +0.0% | 0 | 0 | 0 | 356
123123
final | -12.6% | 76 | 0 | 0 | 0
124124
---------------------------------------------------------------------
125125
[INFO RSZ-0039] Resized 76 instances.
126-
[INFO GPL-0106] Timing-driven: worst slack 1.39e-09
127-
[INFO GPL-0103] Timing-driven: weighted 35 nets.
128-
[INFO GPL-0107] Timing-driven: repair_design delta area: -69.958 um^2 (-12.64%)
126+
[INFO GPL-0106] Timing-driven: worst slack 1.4e-09
127+
[INFO GPL-0103] Timing-driven: weighted 34 nets.
128+
[INFO GPL-0107] Timing-driven: repair_design delta area: -69.692 um^2 (-12.60%)
129129
[INFO GPL-0108] Timing-driven: repair_design, gpl cells created: 0 (+0.00%)
130130
[INFO GPL-0109] Timing-driven: inserted buffers as reported by repair_design: 0
131-
[INFO GPL-0110] Timing-driven: new target density: 0.62665915
132-
[NesterovSolve] Iter: 290 overflow: 0.309 HPWL: 2658180
133-
[NesterovSolve] Iter: 300 overflow: 0.277 HPWL: 2600521
134-
[NesterovSolve] Iter: 310 overflow: 0.240 HPWL: 2620506
135-
[NesterovSolve] Iter: 320 overflow: 0.207 HPWL: 2630392
131+
[INFO GPL-0110] Timing-driven: new target density: 0.62693805
132+
[NesterovSolve] Iter: 290 overflow: 0.299 HPWL: 2899794
133+
[NesterovSolve] Iter: 300 overflow: 0.290 HPWL: 3011545
134+
[NesterovSolve] Iter: 310 overflow: 0.227 HPWL: 2948151
136135
[INFO GPL-0100] Timing-driven iteration 7/7, virtual: false.
137-
[INFO GPL-0101] Iter: 327, overflow: 0.192, keep rsz at: 0.3, HPWL: 2638573
136+
[INFO GPL-0101] Iter: 318, overflow: 0.193, keep rsz at: 0.3, HPWL: 2973941
138137
Iteration | Area | Resized | Buffers | Nets repaired | Remaining
139138
---------------------------------------------------------------------
140139
0 | +0.0% | 0 | 0 | 0 | 356
141-
final | +1.0% | 43 | 1 | 1 | 0
140+
final | +1.0% | 44 | 1 | 1 | 0
142141
---------------------------------------------------------------------
143142
[INFO RSZ-0036] Found 1 capacitance violations.
144-
[INFO RSZ-0039] Resized 43 instances.
143+
[INFO RSZ-0039] Resized 44 instances.
145144
[INFO RSZ-0038] Inserted 1 buffers in 1 nets.
146145
[INFO GPL-0106] Timing-driven: worst slack 1.4e-09
147146
[INFO GPL-0103] Timing-driven: weighted 34 nets.
148-
[INFO GPL-0107] Timing-driven: repair_design delta area: 5.054 um^2 (+1.05%)
147+
[INFO GPL-0107] Timing-driven: repair_design delta area: 4.788 um^2 (+0.99%)
149148
[INFO GPL-0108] Timing-driven: repair_design, gpl cells created: 1 (+0.00%)
150149
[INFO GPL-0109] Timing-driven: inserted buffers as reported by repair_design: 1
151-
[INFO GPL-0110] Timing-driven: new target density: 0.6319576
152-
[NesterovSolve] Iter: 330 overflow: 0.179 HPWL: 2655230
153-
[NesterovSolve] Iter: 340 overflow: 0.160 HPWL: 2675988
154-
[NesterovSolve] Iter: 350 overflow: 0.131 HPWL: 2698520
155-
[NesterovSolve] Iter: 360 overflow: 0.101 HPWL: 2724525
156-
[NesterovSolve] Finished with Overflow: 0.098508
157-
worst slack 1.39
150+
[INFO GPL-0110] Timing-driven: new target density: 0.63195753
151+
[NesterovSolve] Iter: 320 overflow: 0.188 HPWL: 3022250
152+
[NesterovSolve] Iter: 330 overflow: 0.173 HPWL: 3031660
153+
[NesterovSolve] Iter: 340 overflow: 0.147 HPWL: 3082839
154+
[NesterovSolve] Iter: 350 overflow: 0.127 HPWL: 3095701
155+
[NesterovSolve] Iter: 360 overflow: 0.106 HPWL: 3097717
156+
[NesterovSolve] Finished with Overflow: 0.099247
157+
worst slack 1.40
158158
No differences found.

0 commit comments

Comments
 (0)