Skip to content

Commit 4f47673

Browse files
authored
Merge pull request #8480 from LucasYuki/gpl_remove_filler_removal_cap
Gpl: remove filler removal cap
2 parents 30edbc8 + 05af3af commit 4f47673

File tree

5 files changed

+296
-237
lines changed

5 files changed

+296
-237
lines changed

src/gpl/src/nesterovBase.cpp

Lines changed: 34 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -3354,42 +3354,40 @@ void NesterovBase::cutFillerCells(int64_t inflation_area)
33543354
int64_t availableFillerArea = single_filler_area * fillerStor_.size();
33553355
int64_t originalInflationArea = inflation_area;
33563356

3357-
if (totalFillerArea_ >= static_cast<int64_t>(initial_filler_area_ * 0.9)) {
3358-
for (int i = nb_gcells_.size() - 1;
3359-
i >= 0 && removed_count < max_fllers_to_remove;
3360-
--i) {
3361-
if (nb_gcells_[i]->isFiller()) {
3362-
const GCell& removed = fillerStor_[nb_gcells_[i].getStorageIndex()];
3363-
removed_fillers_.push_back(RemovedFillerState{
3364-
.gcell = removed,
3365-
.curSLPCoordi = curSLPCoordi_[i],
3366-
.curSLPWireLengthGrads = curSLPWireLengthGrads_[i],
3367-
.curSLPDensityGrads = curSLPDensityGrads_[i],
3368-
.curSLPSumGrads = curSLPSumGrads_[i],
3369-
3370-
.nextSLPCoordi = nextSLPCoordi_[i],
3371-
.nextSLPWireLengthGrads = nextSLPWireLengthGrads_[i],
3372-
.nextSLPDensityGrads = nextSLPDensityGrads_[i],
3373-
.nextSLPSumGrads = nextSLPSumGrads_[i],
3374-
3375-
.prevSLPCoordi = prevSLPCoordi_[i],
3376-
.prevSLPWireLengthGrads = prevSLPWireLengthGrads_[i],
3377-
.prevSLPDensityGrads = prevSLPDensityGrads_[i],
3378-
.prevSLPSumGrads = prevSLPSumGrads_[i],
3379-
3380-
.curCoordi = curCoordi_[i],
3381-
.nextCoordi = nextCoordi_[i],
3382-
.initCoordi = initCoordi_[i],
3383-
3384-
.snapshotCoordi = snapshotCoordi_[i],
3385-
.snapshotSLPCoordi = snapshotSLPCoordi_[i],
3386-
.snapshotSLPSumGrads = snapshotSLPSumGrads_[i]});
3387-
3388-
destroyFillerGCell(i);
3389-
availableFillerArea -= single_filler_area;
3390-
inflation_area -= single_filler_area;
3391-
++removed_count;
3392-
}
3357+
for (int i = nb_gcells_.size() - 1;
3358+
i >= 0 && removed_count < max_fllers_to_remove;
3359+
--i) {
3360+
if (nb_gcells_[i]->isFiller()) {
3361+
const GCell& removed = fillerStor_[nb_gcells_[i].getStorageIndex()];
3362+
removed_fillers_.push_back(RemovedFillerState{
3363+
.gcell = removed,
3364+
.curSLPCoordi = curSLPCoordi_[i],
3365+
.curSLPWireLengthGrads = curSLPWireLengthGrads_[i],
3366+
.curSLPDensityGrads = curSLPDensityGrads_[i],
3367+
.curSLPSumGrads = curSLPSumGrads_[i],
3368+
3369+
.nextSLPCoordi = nextSLPCoordi_[i],
3370+
.nextSLPWireLengthGrads = nextSLPWireLengthGrads_[i],
3371+
.nextSLPDensityGrads = nextSLPDensityGrads_[i],
3372+
.nextSLPSumGrads = nextSLPSumGrads_[i],
3373+
3374+
.prevSLPCoordi = prevSLPCoordi_[i],
3375+
.prevSLPWireLengthGrads = prevSLPWireLengthGrads_[i],
3376+
.prevSLPDensityGrads = prevSLPDensityGrads_[i],
3377+
.prevSLPSumGrads = prevSLPSumGrads_[i],
3378+
3379+
.curCoordi = curCoordi_[i],
3380+
.nextCoordi = nextCoordi_[i],
3381+
.initCoordi = initCoordi_[i],
3382+
3383+
.snapshotCoordi = snapshotCoordi_[i],
3384+
.snapshotSLPCoordi = snapshotSLPCoordi_[i],
3385+
.snapshotSLPSumGrads = snapshotSLPSumGrads_[i]});
3386+
3387+
destroyFillerGCell(i);
3388+
availableFillerArea -= single_filler_area;
3389+
inflation_area -= single_filler_area;
3390+
++removed_count;
33933391
}
33943392
}
33953393

test/jpeg_sky130hd.metrics

Lines changed: 109 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -3,110 +3,139 @@
33
"IFP::instance_count": "45634",
44
"floorplan__design__io": 47,
55
"design__io__hpwl": 13000488,
6-
"design__instance__displacement__total": 115694,
7-
"design__instance__displacement__mean": 1.573,
8-
"design__instance__displacement__max": 11.669,
9-
"route__wirelength__estimated": 1.48933e+06,
10-
"RSZ::repair_design_buffer_count": "285",
11-
"RSZ::max_slew_slack": "20.926187435785927",
6+
"design__instance__displacement__total": 113611,
7+
"design__instance__displacement__mean": 1.545,
8+
"design__instance__displacement__max": 11.311,
9+
"route__wirelength__estimated": 1.50884e+06,
10+
"RSZ::repair_design_buffer_count": "296",
11+
"RSZ::max_slew_slack": "20.36963574480933",
1212
"RSZ::max_fanout_slack": "100.0",
13-
"RSZ::max_capacitance_slack": "22.600106083938268",
14-
"design__instance__displacement__total": 3632.23,
13+
"RSZ::max_capacitance_slack": "23.238444923395658",
14+
"design__instance__displacement__total": 3618.85,
1515
"design__instance__displacement__mean": 0.048,
16-
"design__instance__displacement__max": 10.205,
17-
"route__wirelength__estimated": 1.54563e+06,
18-
"design__instance__count__setup_buffer": 236,
16+
"design__instance__displacement__max": 9.571,
17+
"route__wirelength__estimated": 1.56672e+06,
18+
"design__instance__count__setup_buffer": 203,
1919
"design__instance__count__hold_buffer": 38,
20-
"RSZ::worst_slack_min": "0.10826828628966674",
21-
"RSZ::worst_slack_max": "-0.12962520312918588",
22-
"RSZ::tns_max": "-0.3188001064481866",
20+
"RSZ::worst_slack_min": "0.15176571540164707",
21+
"RSZ::worst_slack_max": "-0.025830005532241487",
22+
"RSZ::tns_max": "-0.025830005532241487",
2323
"RSZ::hold_buffer_count": "38",
24-
"design__instance__displacement__total": 2168.43,
25-
"design__instance__displacement__mean": 0.029,
26-
"design__instance__displacement__max": 15.382,
27-
"route__wirelength__estimated": 1.5989e+06,
24+
"design__instance__displacement__total": 1786.17,
25+
"design__instance__displacement__mean": 0.023,
26+
"design__instance__displacement__max": 19.825,
27+
"route__wirelength__estimated": 1.61973e+06,
2828
"DPL::utilization": "21.1",
29-
"DPL::design_area": "460883",
30-
"route__net": 57397,
29+
"DPL::design_area": "460854",
30+
"route__net": 57383,
3131
"route__net__special": 2,
32-
"global_route__vias": 369867,
33-
"global_route__wirelength": 2640933,
34-
"grt__global_route__vias": 5209,
35-
"grt__global_route__vias": 155,
36-
"grt__antenna_diodes_count": 180,
37-
"grt__antenna__violating__nets": 0,
38-
"grt__antenna__violating__pins": 0,
39-
"GRT::ANT::errors": "0",
40-
"route__net": 57397,
32+
"global_route__vias": 368516,
33+
"global_route__wirelength": 2660170,
34+
"grt__global_route__vias": 7028,
35+
"grt__global_route__vias": 272,
36+
"grt__global_route__vias": 59,
37+
"grt__global_route__vias": 59,
38+
"grt__global_route__vias": 74,
39+
"grt__antenna_diodes_count": 200,
40+
"grt__antenna__violating__nets": 1,
41+
"grt__antenna__violating__pins": 1,
42+
"GRT::ANT::errors": "1",
43+
"route__net": 57383,
4144
"route__net__special": 2,
42-
"route__drc_errors__iter:0": 6392,
43-
"route__wirelength__iter:0": 1787880,
44-
"route__drc_errors__iter:1": 913,
45-
"route__wirelength__iter:1": 1779861,
46-
"route__drc_errors__iter:2": 397,
47-
"route__wirelength__iter:2": 1779373,
48-
"route__drc_errors__iter:3": 2,
49-
"route__wirelength__iter:3": 1779338,
45+
"route__drc_errors__iter:0": 6653,
46+
"route__wirelength__iter:0": 1810667,
47+
"route__drc_errors__iter:1": 925,
48+
"route__wirelength__iter:1": 1802970,
49+
"route__drc_errors__iter:2": 567,
50+
"route__wirelength__iter:2": 1802061,
51+
"route__drc_errors__iter:3": 14,
52+
"route__wirelength__iter:3": 1801961,
5053
"route__drc_errors__iter:4": 0,
51-
"route__wirelength__iter:4": 1779342,
54+
"route__wirelength__iter:4": 1801944,
5255
"route__drc_errors": 0,
53-
"route__wirelength": 1779342,
54-
"route__vias": 313894,
55-
"route__vias__singlecut": 313894,
56+
"route__wirelength": 1801944,
57+
"route__vias": 314080,
58+
"route__vias__singlecut": 314080,
5659
"route__vias__multicut": 0,
5760
"DRT::drv": "0",
58-
"drt__repair_antennas__pre_repair__antenna__violating__nets": 76,
59-
"drt__repair_antennas__pre_repair__antenna__violating__pins": 85,
60-
"drt__repair_antennas__iter_0__global_route__vias": 3592,
61-
"drt__repair_antennas__iter_0__antenna_diodes_count": 294,
62-
"drt__repair_antennas__iter_0__route__drc_errors__iter:0": 988,
63-
"drt__repair_antennas__iter_0__route__wirelength__iter:0": 1779453,
64-
"drt__repair_antennas__iter_0__route__drc_errors__iter:1": 321,
65-
"drt__repair_antennas__iter_0__route__wirelength__iter:1": 1779317,
66-
"drt__repair_antennas__iter_0__route__drc_errors__iter:2": 265,
67-
"drt__repair_antennas__iter_0__route__wirelength__iter:2": 1779320,
68-
"drt__repair_antennas__iter_0__route__drc_errors__iter:3": 3,
69-
"drt__repair_antennas__iter_0__route__wirelength__iter:3": 1779330,
61+
"drt__repair_antennas__pre_repair__antenna__violating__nets": 68,
62+
"drt__repair_antennas__pre_repair__antenna__violating__pins": 84,
63+
"drt__repair_antennas__iter_0__global_route__vias": 2401,
64+
"drt__repair_antennas__iter_0__antenna_diodes_count": 317,
65+
"drt__repair_antennas__iter_0__route__drc_errors__iter:0": 726,
66+
"drt__repair_antennas__iter_0__route__wirelength__iter:0": 1801735,
67+
"drt__repair_antennas__iter_0__route__drc_errors__iter:1": 246,
68+
"drt__repair_antennas__iter_0__route__wirelength__iter:1": 1801661,
69+
"drt__repair_antennas__iter_0__route__drc_errors__iter:2": 188,
70+
"drt__repair_antennas__iter_0__route__wirelength__iter:2": 1801586,
71+
"drt__repair_antennas__iter_0__route__drc_errors__iter:3": 7,
72+
"drt__repair_antennas__iter_0__route__wirelength__iter:3": 1801579,
7073
"drt__repair_antennas__iter_0__route__drc_errors__iter:4": 0,
71-
"drt__repair_antennas__iter_0__route__wirelength__iter:4": 1779325,
74+
"drt__repair_antennas__iter_0__route__wirelength__iter:4": 1801585,
7275
"drt__repair_antennas__iter_0__route__drc_errors": 0,
73-
"drt__repair_antennas__iter_0__route__wirelength": 1779325,
74-
"drt__repair_antennas__iter_0__route__vias": 313976,
75-
"drt__repair_antennas__iter_0__route__vias__singlecut": 313976,
76+
"drt__repair_antennas__iter_0__route__wirelength": 1801585,
77+
"drt__repair_antennas__iter_0__route__vias": 314101,
78+
"drt__repair_antennas__iter_0__route__vias__singlecut": 314101,
7679
"drt__repair_antennas__iter_0__route__vias__multicut": 0,
77-
"drt__repair_antennas__iter_0__antenna__violating__nets": 19,
78-
"drt__repair_antennas__iter_0__antenna__violating__pins": 21,
79-
"drt__repair_antennas__iter_1__global_route__vias": 997,
80-
"drt__repair_antennas__iter_1__antenna_diodes_count": 332,
81-
"drt__repair_antennas__iter_1__route__drc_errors__iter:0": 192,
82-
"drt__repair_antennas__iter_1__route__wirelength__iter:0": 1779348,
83-
"drt__repair_antennas__iter_1__route__drc_errors__iter:1": 42,
84-
"drt__repair_antennas__iter_1__route__wirelength__iter:1": 1779273,
85-
"drt__repair_antennas__iter_1__route__drc_errors__iter:2": 14,
86-
"drt__repair_antennas__iter_1__route__wirelength__iter:2": 1779283,
80+
"drt__repair_antennas__iter_0__antenna__violating__nets": 17,
81+
"drt__repair_antennas__iter_0__antenna__violating__pins": 23,
82+
"drt__repair_antennas__iter_1__global_route__vias": 1090,
83+
"drt__repair_antennas__iter_1__antenna_diodes_count": 340,
84+
"drt__repair_antennas__iter_1__route__drc_errors__iter:0": 177,
85+
"drt__repair_antennas__iter_1__route__wirelength__iter:0": 1801743,
86+
"drt__repair_antennas__iter_1__route__drc_errors__iter:1": 50,
87+
"drt__repair_antennas__iter_1__route__wirelength__iter:1": 1801696,
88+
"drt__repair_antennas__iter_1__route__drc_errors__iter:2": 38,
89+
"drt__repair_antennas__iter_1__route__wirelength__iter:2": 1801682,
8790
"drt__repair_antennas__iter_1__route__drc_errors__iter:3": 0,
88-
"drt__repair_antennas__iter_1__route__wirelength__iter:3": 1779276,
91+
"drt__repair_antennas__iter_1__route__wirelength__iter:3": 1801680,
8992
"drt__repair_antennas__iter_1__route__drc_errors": 0,
90-
"drt__repair_antennas__iter_1__route__wirelength": 1779276,
91-
"drt__repair_antennas__iter_1__route__vias": 314029,
92-
"drt__repair_antennas__iter_1__route__vias__singlecut": 314029,
93+
"drt__repair_antennas__iter_1__route__wirelength": 1801680,
94+
"drt__repair_antennas__iter_1__route__vias": 314141,
95+
"drt__repair_antennas__iter_1__route__vias__singlecut": 314141,
9396
"drt__repair_antennas__iter_1__route__vias__multicut": 0,
94-
"drt__repair_antennas__iter_1__antenna__violating__nets": 0,
95-
"drt__repair_antennas__iter_1__antenna__violating__pins": 0,
97+
"drt__repair_antennas__iter_1__antenna__violating__nets": 2,
98+
"drt__repair_antennas__iter_1__antenna__violating__pins": 2,
99+
"drt__repair_antennas__iter_2__global_route__vias": 219,
100+
"drt__repair_antennas__iter_2__antenna_diodes_count": 342,
101+
"drt__repair_antennas__iter_2__route__drc_errors__iter:0": 2,
102+
"drt__repair_antennas__iter_2__route__wirelength__iter:0": 1801750,
103+
"drt__repair_antennas__iter_2__route__drc_errors__iter:1": 0,
104+
"drt__repair_antennas__iter_2__route__wirelength__iter:1": 1801744,
105+
"drt__repair_antennas__iter_2__route__drc_errors": 0,
106+
"drt__repair_antennas__iter_2__route__wirelength": 1801744,
107+
"drt__repair_antennas__iter_2__route__vias": 314142,
108+
"drt__repair_antennas__iter_2__route__vias__singlecut": 314142,
109+
"drt__repair_antennas__iter_2__route__vias__multicut": 0,
110+
"drt__repair_antennas__iter_2__antenna__violating__nets": 1,
111+
"drt__repair_antennas__iter_2__antenna__violating__pins": 1,
112+
"drt__repair_antennas__iter_3__global_route__vias": 116,
113+
"drt__repair_antennas__iter_3__antenna_diodes_count": 343,
114+
"drt__repair_antennas__iter_3__route__drc_errors__iter:0": 2,
115+
"drt__repair_antennas__iter_3__route__wirelength__iter:0": 1801759,
116+
"drt__repair_antennas__iter_3__route__drc_errors__iter:1": 0,
117+
"drt__repair_antennas__iter_3__route__wirelength__iter:1": 1801752,
118+
"drt__repair_antennas__iter_3__route__drc_errors": 0,
119+
"drt__repair_antennas__iter_3__route__wirelength": 1801752,
120+
"drt__repair_antennas__iter_3__route__vias": 314145,
121+
"drt__repair_antennas__iter_3__route__vias__singlecut": 314145,
122+
"drt__repair_antennas__iter_3__route__vias__multicut": 0,
123+
"drt__repair_antennas__iter_3__antenna__violating__nets": 0,
124+
"drt__repair_antennas__iter_3__antenna__violating__pins": 0,
96125
"drt__antenna__violating__nets": 0,
97126
"drt__antenna__violating__pins": 0,
98127
"DRT::ANT::errors": "0",
99128
"design__violations": 0,
100129
"timing__drv__floating__nets": 0,
101130
"timing__drv__floating__pins": 0,
102-
"DRT::worst_slack_min": "0.0962816520429936",
103-
"DRT::worst_slack_max": "-0.31572167995844214",
104-
"DRT::tns_max": "-7.3133448034178",
105-
"DRT::clock_skew": "0.6811709167300511",
106-
"DRT::max_slew_slack": "-2.67742023180178",
131+
"DRT::worst_slack_min": "0.13984236386916732",
132+
"DRT::worst_slack_max": "-0.3013580581488207",
133+
"DRT::tns_max": "-7.357679118669411",
134+
"DRT::clock_skew": "0.6522729208047918",
135+
"DRT::max_slew_slack": "-2.7254298773877887",
107136
"DRT::max_fanout_slack": "100.0",
108-
"DRT::max_capacitance_slack": "-4.333322601907189",
137+
"DRT::max_capacitance_slack": "-3.960638285440248",
109138
"DRT::clock_period": "8.000000",
110-
"flow__warnings__count": 168,
139+
"flow__warnings__count": 245,
111140
"flow__errors__count": 0
112141
}

test/jpeg_sky130hd.metrics_limits

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
{
22
"IFP::instance_count" : "54760.799999999996"
3-
,"DPL::design_area" : "552991.2"
3+
,"DPL::design_area" : "553024.7999999999"
44
,"DPL::utilization" : "25.32"
5-
,"RSZ::repair_design_buffer_count" : "342"
5+
,"RSZ::repair_design_buffer_count" : "355"
66
,"RSZ::max_slew_slack" : "0"
77
,"RSZ::max_capacitance_slack" : "0"
88
,"RSZ::max_fanout_slack" : "0"
9-
,"RSZ::worst_slack_min" : "-0.6924424785108001"
10-
,"RSZ::worst_slack_max" : "-0.9769464624907256"
11-
,"RSZ::tns_max" : "-3651.606097442724"
9+
,"RSZ::worst_slack_min" : "-0.648234284598353"
10+
,"RSZ::worst_slack_max" : "-0.8258300055322415"
11+
,"RSZ::tns_max" : "-3650.7458300055328"
1212
,"RSZ::hold_buffer_count" : "45"
13-
,"GRT::ANT::errors" : "0"
13+
,"GRT::ANT::errors" : "1"
1414
,"DRT::drv" : "0"
15-
,"DRT::worst_slack_min" : "-0.7253617023449799"
16-
,"DRT::worst_slack_max" : "-1.2015650148286943"
17-
,"DRT::tns_max" : "-3664.7038269366544"
18-
,"DRT::clock_skew" : "0.7731927317249236"
19-
,"DRT::max_slew_slack" : "-2.827271730222794"
20-
,"DRT::max_capacitance_slack" : "-5.67271999856684"
15+
,"DRT::worst_slack_min" : "-0.6601576361308328"
16+
,"DRT::worst_slack_max" : "-1.1013580581488207"
17+
,"DRT::tns_max" : "-3658.07767911867"
18+
,"DRT::clock_skew" : "0.7827275049657502"
19+
,"DRT::max_slew_slack" : "-3.2705158528653464"
20+
,"DRT::max_capacitance_slack" : "-4.752765942528297"
2121
,"DRT::max_fanout_slack" : "0"
2222
,"DRT::clock_period" : "8.0"
23-
,"DRT::ANT::errors" : "1"
23+
,"DRT::ANT::errors" : "0"
2424
}

0 commit comments

Comments
 (0)