Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 34 additions & 36 deletions src/gpl/src/nesterovBase.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3354,42 +3354,40 @@ void NesterovBase::cutFillerCells(int64_t inflation_area)
int64_t availableFillerArea = single_filler_area * fillerStor_.size();
int64_t originalInflationArea = inflation_area;

if (totalFillerArea_ >= static_cast<int64_t>(initial_filler_area_ * 0.9)) {
for (int i = nb_gcells_.size() - 1;
i >= 0 && removed_count < max_fllers_to_remove;
--i) {
if (nb_gcells_[i]->isFiller()) {
const GCell& removed = fillerStor_[nb_gcells_[i].getStorageIndex()];
removed_fillers_.push_back(RemovedFillerState{
.gcell = removed,
.curSLPCoordi = curSLPCoordi_[i],
.curSLPWireLengthGrads = curSLPWireLengthGrads_[i],
.curSLPDensityGrads = curSLPDensityGrads_[i],
.curSLPSumGrads = curSLPSumGrads_[i],

.nextSLPCoordi = nextSLPCoordi_[i],
.nextSLPWireLengthGrads = nextSLPWireLengthGrads_[i],
.nextSLPDensityGrads = nextSLPDensityGrads_[i],
.nextSLPSumGrads = nextSLPSumGrads_[i],

.prevSLPCoordi = prevSLPCoordi_[i],
.prevSLPWireLengthGrads = prevSLPWireLengthGrads_[i],
.prevSLPDensityGrads = prevSLPDensityGrads_[i],
.prevSLPSumGrads = prevSLPSumGrads_[i],

.curCoordi = curCoordi_[i],
.nextCoordi = nextCoordi_[i],
.initCoordi = initCoordi_[i],

.snapshotCoordi = snapshotCoordi_[i],
.snapshotSLPCoordi = snapshotSLPCoordi_[i],
.snapshotSLPSumGrads = snapshotSLPSumGrads_[i]});

destroyFillerGCell(i);
availableFillerArea -= single_filler_area;
inflation_area -= single_filler_area;
++removed_count;
}
for (int i = nb_gcells_.size() - 1;
i >= 0 && removed_count < max_fllers_to_remove;
--i) {
if (nb_gcells_[i]->isFiller()) {
const GCell& removed = fillerStor_[nb_gcells_[i].getStorageIndex()];
removed_fillers_.push_back(RemovedFillerState{
.gcell = removed,
.curSLPCoordi = curSLPCoordi_[i],
.curSLPWireLengthGrads = curSLPWireLengthGrads_[i],
.curSLPDensityGrads = curSLPDensityGrads_[i],
.curSLPSumGrads = curSLPSumGrads_[i],

.nextSLPCoordi = nextSLPCoordi_[i],
.nextSLPWireLengthGrads = nextSLPWireLengthGrads_[i],
.nextSLPDensityGrads = nextSLPDensityGrads_[i],
.nextSLPSumGrads = nextSLPSumGrads_[i],

.prevSLPCoordi = prevSLPCoordi_[i],
.prevSLPWireLengthGrads = prevSLPWireLengthGrads_[i],
.prevSLPDensityGrads = prevSLPDensityGrads_[i],
.prevSLPSumGrads = prevSLPSumGrads_[i],

.curCoordi = curCoordi_[i],
.nextCoordi = nextCoordi_[i],
.initCoordi = initCoordi_[i],

.snapshotCoordi = snapshotCoordi_[i],
.snapshotSLPCoordi = snapshotSLPCoordi_[i],
.snapshotSLPSumGrads = snapshotSLPSumGrads_[i]});

destroyFillerGCell(i);
availableFillerArea -= single_filler_area;
inflation_area -= single_filler_area;
++removed_count;
}
}

Expand Down
189 changes: 109 additions & 80 deletions test/jpeg_sky130hd.metrics
Original file line number Diff line number Diff line change
Expand Up @@ -3,110 +3,139 @@
"IFP::instance_count": "45634",
"floorplan__design__io": 47,
"design__io__hpwl": 13000488,
"design__instance__displacement__total": 115694,
"design__instance__displacement__mean": 1.573,
"design__instance__displacement__max": 11.669,
"route__wirelength__estimated": 1.48933e+06,
"RSZ::repair_design_buffer_count": "285",
"RSZ::max_slew_slack": "20.926187435785927",
"design__instance__displacement__total": 113611,
"design__instance__displacement__mean": 1.545,
"design__instance__displacement__max": 11.311,
"route__wirelength__estimated": 1.50884e+06,
"RSZ::repair_design_buffer_count": "296",
"RSZ::max_slew_slack": "20.36963574480933",
"RSZ::max_fanout_slack": "100.0",
"RSZ::max_capacitance_slack": "22.600106083938268",
"design__instance__displacement__total": 3632.23,
"RSZ::max_capacitance_slack": "23.238444923395658",
"design__instance__displacement__total": 3618.85,
"design__instance__displacement__mean": 0.048,
"design__instance__displacement__max": 10.205,
"route__wirelength__estimated": 1.54563e+06,
"design__instance__count__setup_buffer": 236,
"design__instance__displacement__max": 9.571,
"route__wirelength__estimated": 1.56672e+06,
"design__instance__count__setup_buffer": 203,
"design__instance__count__hold_buffer": 38,
"RSZ::worst_slack_min": "0.10826828628966674",
"RSZ::worst_slack_max": "-0.12962520312918588",
"RSZ::tns_max": "-0.3188001064481866",
"RSZ::worst_slack_min": "0.15176571540164707",
"RSZ::worst_slack_max": "-0.025830005532241487",
"RSZ::tns_max": "-0.025830005532241487",
"RSZ::hold_buffer_count": "38",
"design__instance__displacement__total": 2168.43,
"design__instance__displacement__mean": 0.029,
"design__instance__displacement__max": 15.382,
"route__wirelength__estimated": 1.5989e+06,
"design__instance__displacement__total": 1786.17,
"design__instance__displacement__mean": 0.023,
"design__instance__displacement__max": 19.825,
"route__wirelength__estimated": 1.61973e+06,
"DPL::utilization": "21.1",
"DPL::design_area": "460883",
"route__net": 57397,
"DPL::design_area": "460854",
"route__net": 57383,
"route__net__special": 2,
"global_route__vias": 369867,
"global_route__wirelength": 2640933,
"grt__global_route__vias": 5209,
"grt__global_route__vias": 155,
"grt__antenna_diodes_count": 180,
"grt__antenna__violating__nets": 0,
"grt__antenna__violating__pins": 0,
"GRT::ANT::errors": "0",
"route__net": 57397,
"global_route__vias": 368516,
"global_route__wirelength": 2660170,
"grt__global_route__vias": 7028,
"grt__global_route__vias": 272,
"grt__global_route__vias": 59,
"grt__global_route__vias": 59,
"grt__global_route__vias": 74,
"grt__antenna_diodes_count": 200,
"grt__antenna__violating__nets": 1,
"grt__antenna__violating__pins": 1,
"GRT::ANT::errors": "1",
"route__net": 57383,
"route__net__special": 2,
"route__drc_errors__iter:0": 6392,
"route__wirelength__iter:0": 1787880,
"route__drc_errors__iter:1": 913,
"route__wirelength__iter:1": 1779861,
"route__drc_errors__iter:2": 397,
"route__wirelength__iter:2": 1779373,
"route__drc_errors__iter:3": 2,
"route__wirelength__iter:3": 1779338,
"route__drc_errors__iter:0": 6653,
"route__wirelength__iter:0": 1810667,
"route__drc_errors__iter:1": 925,
"route__wirelength__iter:1": 1802970,
"route__drc_errors__iter:2": 567,
"route__wirelength__iter:2": 1802061,
"route__drc_errors__iter:3": 14,
"route__wirelength__iter:3": 1801961,
"route__drc_errors__iter:4": 0,
"route__wirelength__iter:4": 1779342,
"route__wirelength__iter:4": 1801944,
"route__drc_errors": 0,
"route__wirelength": 1779342,
"route__vias": 313894,
"route__vias__singlecut": 313894,
"route__wirelength": 1801944,
"route__vias": 314080,
"route__vias__singlecut": 314080,
"route__vias__multicut": 0,
"DRT::drv": "0",
"drt__repair_antennas__pre_repair__antenna__violating__nets": 76,
"drt__repair_antennas__pre_repair__antenna__violating__pins": 85,
"drt__repair_antennas__iter_0__global_route__vias": 3592,
"drt__repair_antennas__iter_0__antenna_diodes_count": 294,
"drt__repair_antennas__iter_0__route__drc_errors__iter:0": 988,
"drt__repair_antennas__iter_0__route__wirelength__iter:0": 1779453,
"drt__repair_antennas__iter_0__route__drc_errors__iter:1": 321,
"drt__repair_antennas__iter_0__route__wirelength__iter:1": 1779317,
"drt__repair_antennas__iter_0__route__drc_errors__iter:2": 265,
"drt__repair_antennas__iter_0__route__wirelength__iter:2": 1779320,
"drt__repair_antennas__iter_0__route__drc_errors__iter:3": 3,
"drt__repair_antennas__iter_0__route__wirelength__iter:3": 1779330,
"drt__repair_antennas__pre_repair__antenna__violating__nets": 68,
"drt__repair_antennas__pre_repair__antenna__violating__pins": 84,
"drt__repair_antennas__iter_0__global_route__vias": 2401,
"drt__repair_antennas__iter_0__antenna_diodes_count": 317,
"drt__repair_antennas__iter_0__route__drc_errors__iter:0": 726,
"drt__repair_antennas__iter_0__route__wirelength__iter:0": 1801735,
"drt__repair_antennas__iter_0__route__drc_errors__iter:1": 246,
"drt__repair_antennas__iter_0__route__wirelength__iter:1": 1801661,
"drt__repair_antennas__iter_0__route__drc_errors__iter:2": 188,
"drt__repair_antennas__iter_0__route__wirelength__iter:2": 1801586,
"drt__repair_antennas__iter_0__route__drc_errors__iter:3": 7,
"drt__repair_antennas__iter_0__route__wirelength__iter:3": 1801579,
"drt__repair_antennas__iter_0__route__drc_errors__iter:4": 0,
"drt__repair_antennas__iter_0__route__wirelength__iter:4": 1779325,
"drt__repair_antennas__iter_0__route__wirelength__iter:4": 1801585,
"drt__repair_antennas__iter_0__route__drc_errors": 0,
"drt__repair_antennas__iter_0__route__wirelength": 1779325,
"drt__repair_antennas__iter_0__route__vias": 313976,
"drt__repair_antennas__iter_0__route__vias__singlecut": 313976,
"drt__repair_antennas__iter_0__route__wirelength": 1801585,
"drt__repair_antennas__iter_0__route__vias": 314101,
"drt__repair_antennas__iter_0__route__vias__singlecut": 314101,
"drt__repair_antennas__iter_0__route__vias__multicut": 0,
"drt__repair_antennas__iter_0__antenna__violating__nets": 19,
"drt__repair_antennas__iter_0__antenna__violating__pins": 21,
"drt__repair_antennas__iter_1__global_route__vias": 997,
"drt__repair_antennas__iter_1__antenna_diodes_count": 332,
"drt__repair_antennas__iter_1__route__drc_errors__iter:0": 192,
"drt__repair_antennas__iter_1__route__wirelength__iter:0": 1779348,
"drt__repair_antennas__iter_1__route__drc_errors__iter:1": 42,
"drt__repair_antennas__iter_1__route__wirelength__iter:1": 1779273,
"drt__repair_antennas__iter_1__route__drc_errors__iter:2": 14,
"drt__repair_antennas__iter_1__route__wirelength__iter:2": 1779283,
"drt__repair_antennas__iter_0__antenna__violating__nets": 17,
"drt__repair_antennas__iter_0__antenna__violating__pins": 23,
"drt__repair_antennas__iter_1__global_route__vias": 1090,
"drt__repair_antennas__iter_1__antenna_diodes_count": 340,
"drt__repair_antennas__iter_1__route__drc_errors__iter:0": 177,
"drt__repair_antennas__iter_1__route__wirelength__iter:0": 1801743,
"drt__repair_antennas__iter_1__route__drc_errors__iter:1": 50,
"drt__repair_antennas__iter_1__route__wirelength__iter:1": 1801696,
"drt__repair_antennas__iter_1__route__drc_errors__iter:2": 38,
"drt__repair_antennas__iter_1__route__wirelength__iter:2": 1801682,
"drt__repair_antennas__iter_1__route__drc_errors__iter:3": 0,
"drt__repair_antennas__iter_1__route__wirelength__iter:3": 1779276,
"drt__repair_antennas__iter_1__route__wirelength__iter:3": 1801680,
"drt__repair_antennas__iter_1__route__drc_errors": 0,
"drt__repair_antennas__iter_1__route__wirelength": 1779276,
"drt__repair_antennas__iter_1__route__vias": 314029,
"drt__repair_antennas__iter_1__route__vias__singlecut": 314029,
"drt__repair_antennas__iter_1__route__wirelength": 1801680,
"drt__repair_antennas__iter_1__route__vias": 314141,
"drt__repair_antennas__iter_1__route__vias__singlecut": 314141,
"drt__repair_antennas__iter_1__route__vias__multicut": 0,
"drt__repair_antennas__iter_1__antenna__violating__nets": 0,
"drt__repair_antennas__iter_1__antenna__violating__pins": 0,
"drt__repair_antennas__iter_1__antenna__violating__nets": 2,
"drt__repair_antennas__iter_1__antenna__violating__pins": 2,
"drt__repair_antennas__iter_2__global_route__vias": 219,
"drt__repair_antennas__iter_2__antenna_diodes_count": 342,
"drt__repair_antennas__iter_2__route__drc_errors__iter:0": 2,
"drt__repair_antennas__iter_2__route__wirelength__iter:0": 1801750,
"drt__repair_antennas__iter_2__route__drc_errors__iter:1": 0,
"drt__repair_antennas__iter_2__route__wirelength__iter:1": 1801744,
"drt__repair_antennas__iter_2__route__drc_errors": 0,
"drt__repair_antennas__iter_2__route__wirelength": 1801744,
"drt__repair_antennas__iter_2__route__vias": 314142,
"drt__repair_antennas__iter_2__route__vias__singlecut": 314142,
"drt__repair_antennas__iter_2__route__vias__multicut": 0,
"drt__repair_antennas__iter_2__antenna__violating__nets": 1,
"drt__repair_antennas__iter_2__antenna__violating__pins": 1,
"drt__repair_antennas__iter_3__global_route__vias": 116,
"drt__repair_antennas__iter_3__antenna_diodes_count": 343,
"drt__repair_antennas__iter_3__route__drc_errors__iter:0": 2,
"drt__repair_antennas__iter_3__route__wirelength__iter:0": 1801759,
"drt__repair_antennas__iter_3__route__drc_errors__iter:1": 0,
"drt__repair_antennas__iter_3__route__wirelength__iter:1": 1801752,
"drt__repair_antennas__iter_3__route__drc_errors": 0,
"drt__repair_antennas__iter_3__route__wirelength": 1801752,
"drt__repair_antennas__iter_3__route__vias": 314145,
"drt__repair_antennas__iter_3__route__vias__singlecut": 314145,
"drt__repair_antennas__iter_3__route__vias__multicut": 0,
"drt__repair_antennas__iter_3__antenna__violating__nets": 0,
"drt__repair_antennas__iter_3__antenna__violating__pins": 0,
"drt__antenna__violating__nets": 0,
"drt__antenna__violating__pins": 0,
"DRT::ANT::errors": "0",
"design__violations": 0,
"timing__drv__floating__nets": 0,
"timing__drv__floating__pins": 0,
"DRT::worst_slack_min": "0.0962816520429936",
"DRT::worst_slack_max": "-0.31572167995844214",
"DRT::tns_max": "-7.3133448034178",
"DRT::clock_skew": "0.6811709167300511",
"DRT::max_slew_slack": "-2.67742023180178",
"DRT::worst_slack_min": "0.13984236386916732",
"DRT::worst_slack_max": "-0.3013580581488207",
"DRT::tns_max": "-7.357679118669411",
"DRT::clock_skew": "0.6522729208047918",
"DRT::max_slew_slack": "-2.7254298773877887",
"DRT::max_fanout_slack": "100.0",
"DRT::max_capacitance_slack": "-4.333322601907189",
"DRT::max_capacitance_slack": "-3.960638285440248",
"DRT::clock_period": "8.000000",
"flow__warnings__count": 168,
"flow__warnings__count": 245,
"flow__errors__count": 0
}
26 changes: 13 additions & 13 deletions test/jpeg_sky130hd.metrics_limits
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
{
"IFP::instance_count" : "54760.799999999996"
,"DPL::design_area" : "552991.2"
,"DPL::design_area" : "553024.7999999999"
,"DPL::utilization" : "25.32"
,"RSZ::repair_design_buffer_count" : "342"
,"RSZ::repair_design_buffer_count" : "355"
,"RSZ::max_slew_slack" : "0"
,"RSZ::max_capacitance_slack" : "0"
,"RSZ::max_fanout_slack" : "0"
,"RSZ::worst_slack_min" : "-0.6924424785108001"
,"RSZ::worst_slack_max" : "-0.9769464624907256"
,"RSZ::tns_max" : "-3651.606097442724"
,"RSZ::worst_slack_min" : "-0.648234284598353"
,"RSZ::worst_slack_max" : "-0.8258300055322415"
,"RSZ::tns_max" : "-3650.7458300055328"
,"RSZ::hold_buffer_count" : "45"
,"GRT::ANT::errors" : "0"
,"GRT::ANT::errors" : "1"
,"DRT::drv" : "0"
,"DRT::worst_slack_min" : "-0.7253617023449799"
,"DRT::worst_slack_max" : "-1.2015650148286943"
,"DRT::tns_max" : "-3664.7038269366544"
,"DRT::clock_skew" : "0.7731927317249236"
,"DRT::max_slew_slack" : "-2.827271730222794"
,"DRT::max_capacitance_slack" : "-5.67271999856684"
,"DRT::worst_slack_min" : "-0.6601576361308328"
,"DRT::worst_slack_max" : "-1.1013580581488207"
,"DRT::tns_max" : "-3658.07767911867"
,"DRT::clock_skew" : "0.7827275049657502"
,"DRT::max_slew_slack" : "-3.2705158528653464"
,"DRT::max_capacitance_slack" : "-4.752765942528297"
,"DRT::max_fanout_slack" : "0"
,"DRT::clock_period" : "8.0"
,"DRT::ANT::errors" : "1"
,"DRT::ANT::errors" : "0"
}
Loading