@@ -101,7 +101,7 @@ GlobalRouter::GlobalRouter(utl::Logger* logger,
101101{
102102 fastroute_
103103 = new FastRouteCore (db_, logger_, callback_handler_, stt_builder_, sta_);
104- cugr_ = new CUGR (db_, logger_, stt_builder_);
104+ cugr_ = new CUGR (db_, logger_, stt_builder_, sta_ );
105105}
106106
107107void GlobalRouter::initGui (std::unique_ptr<AbstractRoutingCongestionDataSource>
@@ -350,7 +350,9 @@ void GlobalRouter::globalRoute(bool save_guides,
350350 if (use_cugr_) {
351351 int min_layer, max_layer;
352352 getMinMaxLayer (min_layer, max_layer);
353- cugr_->init (min_layer, max_layer);
353+ std::set<odb::dbNet*> clock_nets;
354+ findClockNets (nets, clock_nets);
355+ cugr_->init (min_layer, max_layer, clock_nets);
354356 cugr_->route ();
355357 routes_ = cugr_->getRoutes ();
356358 } else {
@@ -3770,6 +3772,7 @@ std::vector<Net*> GlobalRouter::findNets(bool init_clock_nets)
37703772 if (net) {
37713773 bool is_non_leaf_clock = isNonLeafClock (net->getDbNet ());
37723774 if (is_non_leaf_clock) {
3775+ net->setIsClockNet (true );
37733776 clk_nets.push_back (net);
37743777 }
37753778 }
@@ -3794,6 +3797,16 @@ std::vector<Net*> GlobalRouter::findNets(bool init_clock_nets)
37943797 return nets;
37953798}
37963799
3800+ void GlobalRouter::findClockNets (const std::vector<Net*>& nets,
3801+ std::set<odb::dbNet*>& clock_nets)
3802+ {
3803+ for (Net* net : nets) {
3804+ if (net->isClockNet ()) {
3805+ clock_nets.insert (net->getDbNet ());
3806+ }
3807+ }
3808+ }
3809+
37973810Net* GlobalRouter::addNet (odb::dbNet* db_net)
37983811{
37993812 if (!db_net->getSigType ().isSupply () && !db_net->isSpecial ()
0 commit comments