Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 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 @@ -3342,42 +3342,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
208 changes: 122 additions & 86 deletions test/jpeg_sky130hd.metrics
Original file line number Diff line number Diff line change
Expand Up @@ -3,110 +3,146 @@
"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": 116513,
"design__instance__displacement__mean": 1.584,
"design__instance__displacement__max": 11.3,
"route__wirelength__estimated": 1.48247e+06,
"RSZ::repair_design_buffer_count": "292",
"RSZ::max_slew_slack": "20.515960454940796",
"RSZ::max_fanout_slack": "100.0",
"RSZ::max_capacitance_slack": "22.600106083938268",
"design__instance__displacement__total": 3632.23,
"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__count__hold_buffer": 38,
"RSZ::worst_slack_min": "0.10826828628966674",
"RSZ::worst_slack_max": "-0.12962520312918588",
"RSZ::tns_max": "-0.3188001064481866",
"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,
"DPL::utilization": "21.1",
"DPL::design_area": "460883",
"route__net": 57397,
"RSZ::max_capacitance_slack": "20.142262976582167",
"design__instance__displacement__total": 3887.07,
"design__instance__displacement__mean": 0.052,
"design__instance__displacement__max": 9.573,
"route__wirelength__estimated": 1.53913e+06,
"design__instance__count__setup_buffer": 140,
"design__instance__count__hold_buffer": 37,
"RSZ::worst_slack_min": "0.00838640292059718",
"RSZ::worst_slack_max": "-0.2130118364210672",
"RSZ::tns_max": "-1.3075896291399802",
"RSZ::hold_buffer_count": "37",
"design__instance__displacement__total": 1548.92,
"design__instance__displacement__mean": 0.02,
"design__instance__displacement__max": 20.546,
"route__wirelength__estimated": 1.57964e+06,
"DPL::utilization": "21.0",
"DPL::design_area": "459750",
"route__net": 57309,
"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,
"global_route__vias": 369598,
"global_route__wirelength": 2619757,
"grt__global_route__vias": 6853,
"grt__global_route__vias": 260,
"grt__global_route__vias": 78,
"grt__antenna_diodes_count": 152,
"grt__antenna__violating__nets": 0,
"grt__antenna__violating__pins": 0,
"GRT::ANT::errors": "0",
"route__net": 57397,
"route__net": 57309,
"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": 6340,
"route__wirelength__iter:0": 1767750,
"route__drc_errors__iter:1": 1030,
"route__wirelength__iter:1": 1759970,
"route__drc_errors__iter:2": 559,
"route__wirelength__iter:2": 1759082,
"route__drc_errors__iter:3": 6,
"route__wirelength__iter:3": 1759112,
"route__drc_errors__iter:4": 0,
"route__wirelength__iter:4": 1779342,
"route__wirelength__iter:4": 1759108,
"route__drc_errors": 0,
"route__wirelength": 1779342,
"route__vias": 313894,
"route__vias__singlecut": 313894,
"route__wirelength": 1759108,
"route__vias": 313646,
"route__vias__singlecut": 313646,
"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__iter_0__route__drc_errors__iter:4": 0,
"drt__repair_antennas__iter_0__route__wirelength__iter:4": 1779325,
"drt__repair_antennas__pre_repair__antenna__violating__nets": 71,
"drt__repair_antennas__pre_repair__antenna__violating__pins": 90,
"drt__repair_antennas__iter_0__global_route__vias": 2646,
"drt__repair_antennas__iter_0__antenna_diodes_count": 291,
"drt__repair_antennas__iter_0__route__drc_errors__iter:0": 624,
"drt__repair_antennas__iter_0__route__wirelength__iter:0": 1759329,
"drt__repair_antennas__iter_0__route__drc_errors__iter:1": 166,
"drt__repair_antennas__iter_0__route__wirelength__iter:1": 1759218,
"drt__repair_antennas__iter_0__route__drc_errors__iter:2": 107,
"drt__repair_antennas__iter_0__route__wirelength__iter:2": 1759203,
"drt__repair_antennas__iter_0__route__drc_errors__iter:3": 0,
"drt__repair_antennas__iter_0__route__wirelength__iter:3": 1759198,
"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": 1759198,
"drt__repair_antennas__iter_0__route__vias": 313782,
"drt__repair_antennas__iter_0__route__vias__singlecut": 313782,
"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_1__route__drc_errors__iter:3": 0,
"drt__repair_antennas__iter_1__route__wirelength__iter:3": 1779276,
"drt__repair_antennas__iter_0__antenna__violating__nets": 11,
"drt__repair_antennas__iter_0__antenna__violating__pins": 14,
"drt__repair_antennas__iter_1__global_route__vias": 500,
"drt__repair_antennas__iter_1__antenna_diodes_count": 311,
"drt__repair_antennas__iter_1__route__drc_errors__iter:0": 34,
"drt__repair_antennas__iter_1__route__wirelength__iter:0": 1759253,
"drt__repair_antennas__iter_1__route__drc_errors__iter:1": 1,
"drt__repair_antennas__iter_1__route__wirelength__iter:1": 1759231,
"drt__repair_antennas__iter_1__route__drc_errors__iter:2": 0,
"drt__repair_antennas__iter_1__route__wirelength__iter:2": 1759231,
"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": 1759231,
"drt__repair_antennas__iter_1__route__vias": 313811,
"drt__repair_antennas__iter_1__route__vias__singlecut": 313811,
"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__antenna__violating__nets": 0,
"drt__antenna__violating__pins": 0,
"DRT::ANT::errors": "0",
"drt__repair_antennas__iter_1__antenna__violating__nets": 4,
"drt__repair_antennas__iter_1__antenna__violating__pins": 6,
"drt__repair_antennas__iter_2__global_route__vias": 242,
"drt__repair_antennas__iter_2__antenna_diodes_count": 317,
"drt__repair_antennas__iter_2__route__drc_errors__iter:0": 10,
"drt__repair_antennas__iter_2__route__wirelength__iter:0": 1759310,
"drt__repair_antennas__iter_2__route__drc_errors__iter:1": 0,
"drt__repair_antennas__iter_2__route__wirelength__iter:1": 1759295,
"drt__repair_antennas__iter_2__route__drc_errors": 0,
"drt__repair_antennas__iter_2__route__wirelength": 1759295,
"drt__repair_antennas__iter_2__route__vias": 313826,
"drt__repair_antennas__iter_2__route__vias__singlecut": 313826,
"drt__repair_antennas__iter_2__route__vias__multicut": 0,
"drt__repair_antennas__iter_2__antenna__violating__nets": 3,
"drt__repair_antennas__iter_2__antenna__violating__pins": 3,
"drt__repair_antennas__iter_3__global_route__vias": 130,
"drt__repair_antennas__iter_3__antenna_diodes_count": 320,
"drt__repair_antennas__iter_3__route__drc_errors__iter:0": 10,
"drt__repair_antennas__iter_3__route__wirelength__iter:0": 1759286,
"drt__repair_antennas__iter_3__route__drc_errors__iter:1": 0,
"drt__repair_antennas__iter_3__route__wirelength__iter:1": 1759275,
"drt__repair_antennas__iter_3__route__drc_errors": 0,
"drt__repair_antennas__iter_3__route__wirelength": 1759275,
"drt__repair_antennas__iter_3__route__vias": 313832,
"drt__repair_antennas__iter_3__route__vias__singlecut": 313832,
"drt__repair_antennas__iter_3__route__vias__multicut": 0,
"drt__repair_antennas__iter_3__antenna__violating__nets": 2,
"drt__repair_antennas__iter_3__antenna__violating__pins": 2,
"drt__repair_antennas__iter_4__global_route__vias": 32,
"drt__repair_antennas__iter_4__antenna_diodes_count": 322,
"drt__repair_antennas__iter_4__route__drc_errors__iter:0": 2,
"drt__repair_antennas__iter_4__route__wirelength__iter:0": 1759289,
"drt__repair_antennas__iter_4__route__drc_errors__iter:1": 0,
"drt__repair_antennas__iter_4__route__wirelength__iter:1": 1759276,
"drt__repair_antennas__iter_4__route__drc_errors": 0,
"drt__repair_antennas__iter_4__route__wirelength": 1759276,
"drt__repair_antennas__iter_4__route__vias": 313840,
"drt__repair_antennas__iter_4__route__vias__singlecut": 313840,
"drt__repair_antennas__iter_4__route__vias__multicut": 0,
"drt__repair_antennas__iter_4__antenna__violating__nets": 2,
"drt__repair_antennas__iter_4__antenna__violating__pins": 2,
"drt__antenna__violating__nets": 2,
"drt__antenna__violating__pins": 2,
"DRT::ANT::errors": "2",
"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.003833600212452284",
"DRT::worst_slack_max": "-0.46459104545153274",
"DRT::tns_max": "-10.976774466734886",
"DRT::clock_skew": "0.5962266404905676",
"DRT::max_slew_slack": "-21.33111563572864",
"DRT::max_fanout_slack": "100.0",
"DRT::max_capacitance_slack": "-4.333322601907189",
"DRT::max_capacitance_slack": "-23.721059543402227",
"DRT::clock_period": "8.000000",
"flow__warnings__count": 168,
"flow__warnings__count": 274,
"flow__errors__count": 0
}
28 changes: 14 additions & 14 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::utilization" : "25.32"
,"RSZ::repair_design_buffer_count" : "342"
,"DPL::design_area" : "551700.0"
,"DPL::utilization" : "25.2"
,"RSZ::repair_design_buffer_count" : "350"
,"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::hold_buffer_count" : "45"
,"RSZ::worst_slack_min" : "-0.7916135970794028"
,"RSZ::worst_slack_max" : "-1.0130118364210672"
,"RSZ::tns_max" : "-3652.0275896291405"
,"RSZ::hold_buffer_count" : "44"
,"GRT::ANT::errors" : "0"
,"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.8038336002124523"
,"DRT::worst_slack_max" : "-1.2645910454515328"
,"DRT::tns_max" : "-3661.6967744667354"
,"DRT::clock_skew" : "0.7154719685886811"
,"DRT::max_slew_slack" : "-25.59733876287437"
,"DRT::max_capacitance_slack" : "-28.46527145208267"
,"DRT::max_fanout_slack" : "0"
,"DRT::clock_period" : "8.0"
,"DRT::ANT::errors" : "1"
,"DRT::ANT::errors" : "2"
}
Loading