Skip to content

Commit b037a7e

Browse files
committed
grt: add messages regarding high fanout nets
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
1 parent 3c13069 commit b037a7e

2 files changed

Lines changed: 19 additions & 1 deletion

File tree

src/grt/src/GlobalRouter.cpp

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3743,10 +3743,27 @@ std::vector<Net*> GlobalRouter::findNets(bool init_clock_nets)
37433743
db_nets = nets_to_route_;
37443744
}
37453745
std::vector<Net*> clk_nets;
3746+
const int large_fanout_threshold = 1000;
37463747
for (odb::dbNet* db_net : db_nets) {
3747-
if (db_net->getTermCount() > skip_large_fanout_) {
3748+
const bool is_special = db_net->getSigType().isSupply() && db_net->isSpecial();
3749+
if (!is_special && db_net->getTermCount() > skip_large_fanout_) {
3750+
logger_->info(GRT,
3751+
280,
3752+
"Skipping net {} with {} terminals.",
3753+
db_net->getConstName(),
3754+
db_net->getTermCount(),
3755+
skip_large_fanout_);
37483756
continue;
37493757
}
3758+
3759+
if (!is_special && db_net->getTermCount() > large_fanout_threshold) {
3760+
logger_->warn(GRT,
3761+
281,
3762+
"Net {} has a large fanout of {} terminals.",
3763+
db_net->getConstName(),
3764+
db_net->getTermCount());
3765+
}
3766+
37503767
Net* net = addNet(db_net);
37513768
// add clock nets not connected to a leaf first
37523769
if (net) {

src/grt/test/skip_large_fanout1.ok

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
[INFO GRT-0003] Macros: 0
2222
[INFO GRT-0004] Blockages: 2874
2323
[INFO GRT-0019] Found 0 clock nets.
24+
[INFO GRT-0280] Skipping net clk with 36 terminals.
2425
[INFO GRT-0001] Minimum degree: 2
2526
[INFO GRT-0002] Maximum degree: 11
2627

0 commit comments

Comments
 (0)