@@ -40,6 +40,8 @@ using odb::dbSigType;
4040using odb::Point;
4141
4242class dbNetwork ;
43+ class dbEditHierarchy ;
44+
4345// This class handles callbacks from the network to the listeners
4446class dbNetworkObserver
4547{
@@ -58,6 +60,8 @@ class dbNetworkObserver
5860// ConcreteNetwork is used for library/cell/port functions only.
5961class 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
0 commit comments