Skip to content

Commit 5fc69c3

Browse files
committed
Refactoring: Created a new dbEditHierarchy class and move the related APIs into it.
Signed-off-by: Jaehyun Kim <[email protected]>
1 parent f189783 commit 5fc69c3

File tree

6 files changed

+886
-766
lines changed

6 files changed

+886
-766
lines changed

src/dbSta/BUILD

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ cc_library(
1717
"src/dbReadVerilog.cc",
1818
"src/dbSdcNetwork.cc",
1919
"src/dbSdcNetwork.hh",
20+
"src/dbEditHierarchy.cc",
21+
"src/dbEditHierarchy.hh",
2022
"src/dbSta.cc",
2123
],
2224
hdrs = [

src/dbSta/include/db_sta/dbNetwork.hh

Lines changed: 7 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ using odb::dbSigType;
4040
using odb::Point;
4141

4242
class dbNetwork;
43+
class dbEditHierarchy;
44+
4345
// This class handles callbacks from the network to the listeners
4446
class dbNetworkObserver
4547
{
@@ -58,6 +60,8 @@ class dbNetworkObserver
5860
// ConcreteNetwork is used for library/cell/port functions only.
5961
class dbNetwork : public ConcreteNetwork
6062
{
63+
friend class dbEditHierarchy;
64+
6165
public:
6266
dbNetwork();
6367
~dbNetwork() override;
@@ -168,26 +172,10 @@ class dbNetwork : public ConcreteNetwork
168172
bool hier = false);
169173
Instance* getOwningInstanceParent(Pin* pin);
170174

171-
bool ConnectionToModuleExists(dbITerm* source_pin,
172-
dbModule* dest_module,
173-
dbModBTerm*& dest_modbterm,
174-
dbModITerm*& dest_moditerm);
175-
176175
bool connected(Pin* source_pin, Pin* dest_pin);
177-
void createHierarchyBottomUp(dbITerm* pin,
178-
dbModule* highest_common_module,
179-
const dbIoType& io_type,
180-
const char* connection_name,
181-
dbModNet*& top_mod_net,
182-
dbModITerm*& top_mod_iterm);
183176
void hierarchicalConnect(dbITerm* source_pin,
184177
dbITerm* dest_pin,
185178
const char* connection_name = "net");
186-
187-
void getParentHierarchy(dbModule* start_module,
188-
std::vector<dbModule*>& parent_hierarchy) const;
189-
dbModule* findHighestCommonModule(std::vector<dbModule*>& itree1,
190-
std::vector<dbModule*>& itree2);
191179
Instance* findHierInstance(const char* name);
192180
void replaceHierModule(dbModInst* mod_inst, dbModule* module);
193181
void removeUnusedPortsAndPinsOnModuleInstances();
@@ -399,57 +387,8 @@ class dbNetwork : public ConcreteNetwork
399387
NetSet& visited_nets) const override;
400388
bool portMsbFirst(const char* port_name, const char* cell_name);
401389
ObjectId getDbNwkObjectId(const dbObject* object) const;
402-
403-
// Debug log methods
404-
void dlogHierConnStart(odb::dbITerm* source_pin,
405-
odb::dbITerm* dest_pin,
406-
const char* connection_name);
407-
void dlogHierConnCreateFlatNet(const std::string& flat_name);
408-
void dlogHierConnConnectSrcToFlatNet(odb::dbITerm* source_pin,
409-
const std::string& flat_name);
410-
void dlogHierConnConnectDstToFlatNet(odb::dbITerm* dest_pin,
411-
odb::dbNet* source_db_net);
412-
void dlogHierConnReusingConnection(odb::dbModule* dest_db_module,
413-
odb::dbModNet* dest_mod_net);
414-
void dlogHierConnCreatingSrcHierarchy(odb::dbITerm* source_pin,
415-
odb::dbModule* highest_common_module);
416-
void dlogHierConnCreatingDstHierarchy(odb::dbITerm* dest_pin,
417-
odb::dbModule* highest_common_module);
418-
void dlogHierConnConnectingInCommon(const char* connection_name,
419-
odb::dbModule* highest_common_module);
420-
void dlogHierConnCreatingTopNet(const char* connection_name,
421-
odb::dbModule* highest_common_module);
422-
void dlogHierConnConnectingTopDstPin(odb::dbModITerm* top_mod_dest,
423-
odb::dbModNet* net);
424-
void dlogHierConnConnectingDstPin(odb::dbITerm* dest_pin,
425-
odb::dbModNet* top_net);
426-
void dlogHierConnReassociatingDstPin(odb::dbNet* dest_pin_flat_net,
427-
odb::dbModNet* dest_pin_mod_net);
428-
void dlogHierConnReassociatingSrcPin(odb::dbNet* source_pin_flat_net,
429-
odb::dbModNet* source_pin_mod_net);
430-
void dlogHierConnCleaningUpSrc(odb::dbModInst* mi);
431-
void dlogHierConnCleaningUpDst(odb::dbModInst* mi);
432-
void dlogHierConnDone();
433-
void dlogCreateHierBTermAndModNet(int level,
434-
odb::dbModule* cur_module,
435-
const std::string& new_term_net_name_i);
436-
void dlogCreateHierDisconnectingPin(int level,
437-
odb::dbModule* cur_module,
438-
odb::dbITerm* pin,
439-
odb::dbModNet* pin_mod_net);
440-
void dlogCreateHierConnectingPin(int level,
441-
odb::dbModule* cur_module,
442-
odb::dbITerm* pin,
443-
odb::dbModNet* db_mod_net);
444-
void dlogCreateHierCreatingITerm(int level,
445-
odb::dbModule* cur_module,
446-
odb::dbModInst* parent_inst,
447-
const std::string& new_term_net_name_i);
448-
void dlogCreateHierConnectingITerm(int level,
449-
odb::dbModule* cur_module,
450-
odb::dbModInst* parent_inst,
451-
const std::string& new_term_net_name_i,
452-
odb::dbModNet* db_mod_net);
390+
void getParentHierarchy(dbModule* start_module,
391+
std::vector<dbModule*>& parent_hierarchy) const;
453392

454393
dbDatabase* db_ = nullptr;
455394
Logger* logger_ = nullptr;
@@ -475,6 +414,7 @@ class dbNetwork : public ConcreteNetwork
475414
bool hierarchy_ = false;
476415
std::set<const Cell*> concrete_cells_;
477416
std::set<const Port*> concrete_ports_;
417+
std::unique_ptr<dbEditHierarchy> hierarchy_editor_;
478418
};
479419

480420
} // namespace sta

src/dbSta/src/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ add_library(dbSta_lib
77
dbSta.cc
88
dbNetwork.cc
99
dbSdcNetwork.cc
10+
dbEditHierarchy.cc
1011
dbReadVerilog.cc
1112
SpefWriter.cc
1213
)

0 commit comments

Comments
 (0)