From d7bdbae60b1ca86b7657beced3ebfe5fb9eb5778 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Thu, 19 Jan 2023 12:20:58 +0100 Subject: [PATCH] WIP: more refactoring --- src/db/db/dbLayoutToNetlist.cc | 14 +++++++------- src/db/db/dbLayoutToNetlist.h | 6 +++++- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/db/db/dbLayoutToNetlist.cc b/src/db/db/dbLayoutToNetlist.cc index 39af6db91..35a352f65 100644 --- a/src/db/db/dbLayoutToNetlist.cc +++ b/src/db/db/dbLayoutToNetlist.cc @@ -1558,7 +1558,7 @@ NetBuilder::build_net (db::Cell &target_cell, const db::Net &net, const std::map double mag = mp_source->internal_layout ()->dbu () / mp_target->dbu (); - db::properties_id_type netname_propid = make_netname_propid (target (), net_prop_mode, netname_prop, net); + db::properties_id_type netname_propid = make_netname_propid (target ().properties_repository (), net_prop_mode, netname_prop, net); build_net_rec (net, target_cell, lmap, std::string (), netname_propid, db::ICplxTrans (mag)); } @@ -1599,7 +1599,7 @@ NetBuilder::build_nets (const std::vector *nets, const std::map ()) != net_set.end ()) { - db::properties_id_type netname_propid = make_netname_propid (target (), prop_mode, netname_prop, *n); + db::properties_id_type netname_propid = make_netname_propid (target ().properties_repository (), prop_mode, netname_prop, *n); build_net_rec (*n, c->cell_index (), lmap, std::string (), netname_propid, db::ICplxTrans ()); } @@ -1628,7 +1628,7 @@ NetBuilder::build_nets (const std::vector *nets, const std::mapdbu (); db::ICplxTrans tr = db::CplxTrans (dbu).inverted () * subcircuit.trans () * db::CplxTrans (dbu); - db::properties_id_type netname_propid = make_netname_propid (target (), prop_mode, netname_prop, *n); + db::properties_id_type netname_propid = make_netname_propid (target ().properties_repository (), prop_mode, netname_prop, *n); build_net_rec (*n, c->cell_index (), lmap, subcircuit.expanded_name () + ":", netname_propid, tr); @@ -1784,7 +1784,7 @@ NetBuilder::build_net_rec (const db::Net &net, db::cell_index_type circuit_cell, } db::properties_id_type -NetBuilder::make_netname_propid (db::Layout &ly, NetPropertyMode net_prop_mode, const tl::Variant &netname_prop, const db::Net &net) const +NetBuilder::make_netname_propid (db::PropertiesRepository &pr, NetPropertyMode net_prop_mode, const tl::Variant &netname_prop, const db::Net &net) { if (net_prop_mode == NPM_NoProperties) { @@ -1796,12 +1796,12 @@ NetBuilder::make_netname_propid (db::Layout &ly, NetPropertyMode net_prop_mode, // add the user properties too (TODO: make this configurable?) for (db::Net::property_iterator p = net.begin_properties (); p != net.end_properties (); ++p) { - db::property_names_id_type key_propnameid = ly.properties_repository ().prop_name_id (p->first); + db::property_names_id_type key_propnameid = pr.prop_name_id (p->first); propset.insert (std::make_pair (key_propnameid, p->second)); } if (! netname_prop.is_nil ()) { - db::property_names_id_type name_propnameid = ly.properties_repository ().prop_name_id (netname_prop); + db::property_names_id_type name_propnameid = pr.prop_name_id (netname_prop); if (net_prop_mode == NPM_NetNameAndIDOnly) { std::vector l; l.reserve (2); @@ -1815,7 +1815,7 @@ NetBuilder::make_netname_propid (db::Layout &ly, NetPropertyMode net_prop_mode, } } - return ly.properties_repository ().properties_id (propset); + return pr.properties_id (propset); } else { diff --git a/src/db/db/dbLayoutToNetlist.h b/src/db/db/dbLayoutToNetlist.h index 0058587f4..efe656107 100644 --- a/src/db/db/dbLayoutToNetlist.h +++ b/src/db/db/dbLayoutToNetlist.h @@ -1108,6 +1108,11 @@ public: */ void build_nets (const std::vector *nets, const std::map &lmap, NetPropertyMode prop_mode, const tl::Variant &netname_prop) const; + /** + * @brief A helper function to create a property ID for a given net, net property name and net property mode + */ + static db::properties_id_type make_netname_propid (db::PropertiesRepository &pr, NetPropertyMode net_prop_mode, const tl::Variant &netname_prop, const db::Net &net); + private: struct CellReuseTableKey { @@ -1153,7 +1158,6 @@ private: void build_net_rec (const db::Net &net, cell_index_type circuit_cell, const std::map &lmap, const std::string &add_net_cell_name_prefix, db::properties_id_type netname_propid, const ICplxTrans &tr) const; void build_net_rec (const db::Net &net, db::Cell &target_cell, const std::map &lmap, const std::string &add_net_cell_name_prefix, db::properties_id_type netname_propid, const ICplxTrans &tr) const; void build_net_rec (db::cell_index_type ci, size_t cid, db::Cell &target_cell, const std::map &lmap, const Net *net, const std::string &add_net_cell_name_prefix, db::properties_id_type netname_propid, const ICplxTrans &tr) const; - db::properties_id_type make_netname_propid (db::Layout &ly, NetPropertyMode net_prop_mode, const tl::Variant &netname_prop, const db::Net &net) const; db::Layout &target () const {