Skip to content

Commit b2a8212

Browse files
committed
Fixed the bug that creates the same dbModNet twice.
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
1 parent 66adc98 commit b2a8212

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

src/dbSta/src/dbEditHierarchy.cc

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,11 +168,15 @@ void dbEditHierarchy::createHierarchyBottomUp(Pin* pin,
168168
= makeUniqueName(cur_module, connection_name, io_type_str);
169169

170170
while (cur_module != lowest_common_module) {
171-
// Create BTerm & ModNet and connect them
171+
// Create BTerm & ModNet (if not exist) and connect them
172172
dlogCreateHierBTermAndModNet(level, cur_module, new_term_net_name);
173173
dbModBTerm* mod_bterm
174174
= dbModBTerm::create(cur_module, new_term_net_name.c_str());
175-
db_mod_net = dbModNet::create(cur_module, new_term_net_name.c_str());
175+
176+
db_mod_net = cur_module->getModNet(new_term_net_name.c_str());
177+
if (db_mod_net == nullptr) {
178+
db_mod_net = dbModNet::create(cur_module, new_term_net_name.c_str());
179+
}
176180

177181
mod_bterm->connect(db_mod_net);
178182
mod_bterm->setIoType(io_type);

src/dbSta/test/cpp/TestHconn.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ class TestHconn : public ::testing::Test
309309
// register proper callbacks for timer like read_def
310310
sta_->postReadDef(block_);
311311

312-
root_mod_ = dbModule::create(block_, "root_mod");
312+
root_mod_ = block_->getTopModule();
313313

314314
// The bterms are created below during wiring
315315
// Note a bterm without a parent is a root bterm.
@@ -673,7 +673,7 @@ class TestHconn : public ::testing::Test
673673
inv4_mod_level0_master_i0_port_->connect(inv4_mod_level1_inst_i0_mnet_);
674674

675675
inv4_mod_level1_inst_o0_mnet_ = dbModNet::create(
676-
inv4_mod_level0_master_, "inv4_mod_level1_inst_o1_mnet");
676+
inv4_mod_level0_master_, "inv4_mod_level1_inst_o0_mnet");
677677
inv4_mod_level1_inst_o0_miterm_->connect(inv4_mod_level1_inst_o0_mnet_);
678678
inv4_mod_level0_master_o0_port_->connect(inv4_mod_level1_inst_o0_mnet_);
679679

@@ -1021,7 +1021,7 @@ TEST_F(TestHconn, ConnectionMade)
10211021

10221022
EXPECT_EQ(initial_db_net_count, 6);
10231023
EXPECT_EQ(initial_mod_net_count, 23);
1024-
EXPECT_EQ(final_mod_net_count, 27);
1024+
EXPECT_EQ(final_mod_net_count, 28);
10251025
EXPECT_EQ(final_db_net_count, 7);
10261026

10271027
//

0 commit comments

Comments
 (0)