Skip to content

Commit 4396869

Browse files
authored
Merge pull request #8050 from The-OpenROAD-Project-staging/secure-integrate-hier-fixes4
Enhanced hierarchicalConnect()
2 parents d957ce8 + c5af99c commit 4396869

24 files changed

+1484
-966
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: 6 additions & 11 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,20 +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);
177176
void hierarchicalConnect(dbITerm* source_pin,
178177
dbITerm* dest_pin,
179-
const char* connection_name);
180-
181-
void getParentHierarchy(dbModule* start_module,
182-
std::vector<dbModule*>& parent_hierarchy) const;
183-
dbModule* findHighestCommonModule(std::vector<dbModule*>& itree1,
184-
std::vector<dbModule*>& itree2);
178+
const char* connection_name = "net");
185179
Instance* findHierInstance(const char* name);
186180
void replaceHierModule(dbModInst* mod_inst, dbModule* module);
187181
void removeUnusedPortsAndPinsOnModuleInstances();
@@ -418,6 +412,7 @@ class dbNetwork : public ConcreteNetwork
418412
bool hierarchy_ = false;
419413
std::set<const Cell*> concrete_cells_;
420414
std::set<const Port*> concrete_ports_;
415+
std::unique_ptr<dbEditHierarchy> hierarchy_editor_;
421416
};
422417

423418
} // 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)