Skip to content

Commit e9de859

Browse files
committed
grt: create function for repeated cugr conversion
Signed-off-by: rafaelmoresco <[email protected]>
1 parent a99ab8d commit e9de859

File tree

2 files changed

+30
-35
lines changed

2 files changed

+30
-35
lines changed

src/grt/src/cugr/src/GridGraph.cpp

Lines changed: 26 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -367,6 +367,30 @@ CostT GridGraph::getViaCost(const int layer_index, const PointT loc) const
367367
return cost;
368368
}
369369

370+
void GridGraph::convertODBtoCUGR(AccessPointSet& selected_access_points,
371+
odb::dbAccessPoint* ap,
372+
int x,
373+
int y) const
374+
{
375+
const int amount_per_x = design_->getDieRegion().hx() / x_size_;
376+
const int amount_per_y = design_->getDieRegion().hy() / y_size_;
377+
auto point = ap->getPoint();
378+
auto layer = ap->getLayer();
379+
const int ap_x = ((point.getX() + x) / amount_per_x >= x_size_)
380+
? x_size_ - 1
381+
: (point.getX() + x) / amount_per_x;
382+
const int ap_y = ((point.getY() + y) / amount_per_y >= y_size_)
383+
? y_size_ - 1
384+
: (point.getY() + y) / amount_per_y;
385+
const PointT selected_point = PointT(ap_x, ap_y);
386+
const int num_layer = ((layer->getNumber() - 2) > (getNumLayers() - 1))
387+
? getNumLayers() - 1
388+
: layer->getNumber() - 2;
389+
const IntervalT selected_layer = IntervalT(num_layer);
390+
const AccessPoint ap_new{.point = selected_point, .layers = selected_layer};
391+
selected_access_points.emplace(ap_new);
392+
}
393+
370394
bool GridGraph::findODBAccessPoints(
371395
const GRNet* net,
372396
AccessPointSet& selected_access_points) const
@@ -384,23 +408,7 @@ bool GridGraph::findODBAccessPoints(
384408
access_points.insert(
385409
access_points.begin(), bpin_pas.begin(), bpin_pas.end());
386410
for (auto ap : bpin_pas) {
387-
auto point = ap->getPoint();
388-
auto layer = ap->getLayer();
389-
const int ap_x = (point.getX() / amount_per_x >= x_size_)
390-
? x_size_ - 1
391-
: point.getX() / amount_per_x;
392-
const int ap_y = (point.getY() / amount_per_y >= y_size_)
393-
? y_size_ - 1
394-
: point.getY() / amount_per_y;
395-
const PointT selected_point = PointT(ap_x, ap_y);
396-
const int num_layer
397-
= ((layer->getNumber() - 2) > (getNumLayers() - 1))
398-
? getNumLayers() - 1
399-
: layer->getNumber() - 2;
400-
const IntervalT selected_layer = IntervalT(num_layer);
401-
const AccessPoint ap_new{.point = selected_point,
402-
.layers = selected_layer};
403-
selected_access_points.emplace(ap_new);
411+
convertODBtoCUGR(selected_access_points, ap, 0, 0);
404412
}
405413
}
406414
}
@@ -415,23 +423,7 @@ bool GridGraph::findODBAccessPoints(
415423
for (auto ap : pref_access_points) {
416424
int x, y;
417425
iterms->getInst()->getLocation(x, y);
418-
auto point = ap->getPoint();
419-
auto layer = ap->getLayer();
420-
const int ap_x = ((point.getX() + x) / amount_per_x >= x_size_)
421-
? x_size_ - 1
422-
: (point.getX() + x) / amount_per_x;
423-
const int ap_y = ((point.getY() + y) / amount_per_y >= y_size_)
424-
? y_size_ - 1
425-
: (point.getY() + y) / amount_per_y;
426-
const PointT selected_point = PointT(ap_x, ap_y);
427-
const int num_layer
428-
= ((layer->getNumber() - 2) > (getNumLayers() - 1))
429-
? getNumLayers() - 1
430-
: layer->getNumber() - 2;
431-
const IntervalT selected_layer = IntervalT(num_layer);
432-
const AccessPoint ap_new{.point = selected_point,
433-
.layers = selected_layer};
434-
selected_access_points.emplace(ap_new);
426+
convertODBtoCUGR(selected_access_points, ap, x, y);
435427
}
436428
}
437429
// Currently ignoring non preferred APs

src/grt/src/cugr/src/GridGraph.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,10 @@ class GridGraph
150150
{
151151
return unit_length_short_costs_[layer_index];
152152
}
153-
153+
void convertODBtoCUGR(AccessPointSet& selected_access_points,
154+
odb::dbAccessPoint* ap,
155+
int x,
156+
int y) const;
154157
bool findODBAccessPoints(const GRNet* net,
155158
AccessPointSet& selected_access_points) const;
156159

0 commit comments

Comments
 (0)