@@ -462,7 +462,7 @@ void HierRTLMP::calculateChildrenTilings(Cluster* parent)
462462 outline.getWidth () * vary_factor_list[run_id++],
463463 outline.getHeight ());
464464 if (graphics_) {
465- graphics_->setOutline (micronsToDbu (new_outline));
465+ graphics_->setOutline (micronsToDbu (block_, new_outline));
466466 }
467467 std::unique_ptr<SACoreSoftMacro> sa
468468 = std::make_unique<SACoreSoftMacro>(tree_.get (),
@@ -522,7 +522,7 @@ void HierRTLMP::calculateChildrenTilings(Cluster* parent)
522522 outline.getWidth (),
523523 outline.getHeight () * vary_factor_list[run_id++]);
524524 if (graphics_) {
525- graphics_->setOutline (micronsToDbu (new_outline));
525+ graphics_->setOutline (micronsToDbu (block_, new_outline));
526526 }
527527 std::unique_ptr<SACoreSoftMacro> sa
528528 = std::make_unique<SACoreSoftMacro>(tree_.get (),
@@ -710,7 +710,7 @@ void HierRTLMP::calculateMacroTilings(Cluster* cluster)
710710 outline.getWidth () * vary_factor_list[run_id++],
711711 outline.getHeight ());
712712 if (graphics_) {
713- graphics_->setOutline (micronsToDbu (new_outline));
713+ graphics_->setOutline (micronsToDbu (block_, new_outline));
714714 }
715715 std::unique_ptr<SACoreHardMacro> sa
716716 = std::make_unique<SACoreHardMacro>(tree_.get (),
@@ -765,7 +765,7 @@ void HierRTLMP::calculateMacroTilings(Cluster* cluster)
765765 outline.getWidth (),
766766 outline.getHeight () * vary_factor_list[run_id++]);
767767 if (graphics_) {
768- graphics_->setOutline (micronsToDbu (new_outline));
768+ graphics_->setOutline (micronsToDbu (block_, new_outline));
769769 }
770770 std::unique_ptr<SACoreHardMacro> sa
771771 = std::make_unique<SACoreHardMacro>(tree_.get (),
@@ -930,7 +930,7 @@ void HierRTLMP::createPinAccessBlockages()
930930
931931void HierRTLMP::computePinAccessDepthLimits ()
932932{
933- const Rect die = dbuToMicrons (block_->getDieArea ());
933+ const Rect die = dbuToMicrons (block_, block_ ->getDieArea ());
934934
935935 constexpr float max_depth_proportion = 0.20 ;
936936 pin_access_depth_limits_.x .max = max_depth_proportion * die.getWidth ();
@@ -979,7 +979,7 @@ void HierRTLMP::createBlockagesForIOBundles()
979979 = static_cast <float >(clustering_engine_->getNumberOfIOs (io_bundle));
980980 const float io_density_factor = number_of_ios / total_fixed_ios;
981981 const float depth = base_depth * io_density_factor;
982- const odb::Rect rect = micronsToDbu (io_bundle->getBBox ());
982+ const odb::Rect rect = micronsToDbu (block_, io_bundle->getBBox ());
983983 const odb::Line line = rectToLine (block_, rect, logger_);
984984 const BoundaryRegion region (line, getBoundary (block_, rect));
985985 createPinAccessBlockage (region, depth);
@@ -1081,7 +1081,7 @@ void HierRTLMP::createBlockagesForConstraintRegions()
10811081 const float depth = base_depth * io_density_factor;
10821082
10831083 const odb::Rect region_rect
1084- = micronsToDbu (cluster_of_unplaced_ios->getBBox ());
1084+ = micronsToDbu (block_, cluster_of_unplaced_ios->getBBox ());
10851085 const odb::Line region_line = rectToLine (block_, region_rect, logger_);
10861086 const BoundaryRegion region (region_line, getBoundary (block_, region_rect));
10871087 createPinAccessBlockage (region, depth);
@@ -1181,7 +1181,7 @@ void HierRTLMP::createPinAccessBlockage(const BoundaryRegion& region,
11811181 region.line .pt1 (),
11821182 blockage_depth);
11831183
1184- Rect blockage = dbuToMicrons (lineToRect (region.line ));
1184+ Rect blockage = dbuToMicrons (block_, lineToRect (region.line ));
11851185 switch (region.boundary ) {
11861186 case (Boundary::L): {
11871187 blockage.setXMax (blockage.xMin () + blockage_depth);
@@ -1359,7 +1359,7 @@ void HierRTLMP::placeChildren(Cluster* parent)
13591359
13601360 const Rect outline = parent->getBBox ();
13611361 if (graphics_) {
1362- graphics_->setOutline (micronsToDbu (outline));
1362+ graphics_->setOutline (micronsToDbu (block_, outline));
13631363 }
13641364
13651365 // Suppose the region, fence, guide has been mapped to cooresponding macros
@@ -1761,7 +1761,7 @@ void HierRTLMP::placeChildrenUsingMinimumTargetUtil(Cluster* parent)
17611761
17621762 const Rect outline = parent->getBBox ();
17631763 if (graphics_) {
1764- graphics_->setOutline (micronsToDbu (outline));
1764+ graphics_->setOutline (micronsToDbu (block_, outline));
17651765 }
17661766
17671767 // Suppose the region, fence, guide has been mapped to cooresponding macros
@@ -2509,7 +2509,7 @@ void HierRTLMP::placeMacros(Cluster* cluster)
25092509
25102510 for (int i = 0 ; i < run_thread; i++) {
25112511 if (graphics_) {
2512- graphics_->setOutline (micronsToDbu (outline));
2512+ graphics_->setOutline (micronsToDbu (block_, outline));
25132513 }
25142514
25152515 SACoreWeights new_weights = placement_core_weights_;
@@ -3018,22 +3018,6 @@ void HierRTLMP::setDebugTargetClusterId(const int target_cluster_id)
30183018 graphics_->setTargetClusterId (target_cluster_id);
30193019}
30203020
3021- odb::Rect HierRTLMP::micronsToDbu (const Rect& micron_rect) const
3022- {
3023- return odb::Rect (block_->micronsToDbu (micron_rect.xMin ()),
3024- block_->micronsToDbu (micron_rect.yMin ()),
3025- block_->micronsToDbu (micron_rect.xMax ()),
3026- block_->micronsToDbu (micron_rect.yMax ()));
3027- }
3028-
3029- Rect HierRTLMP::dbuToMicrons (const odb::Rect& dbu_rect) const
3030- {
3031- return Rect (block_->dbuToMicrons (dbu_rect.xMin ()),
3032- block_->dbuToMicrons (dbu_rect.yMin ()),
3033- block_->dbuToMicrons (dbu_rect.xMax ()),
3034- block_->dbuToMicrons (dbu_rect.yMax ()));
3035- }
3036-
30373021// Example for a vertical region:
30383022// Base - Overlay = Result
30393023// | |
0 commit comments