Refining solution of issue #1719, part 2

This commit is contained in:
Matthias Koefferlein 2024-05-26 17:23:50 +02:00
parent 35d9068f72
commit 994b23abf6
1 changed files with 15 additions and 1 deletions

View File

@ -2817,6 +2817,18 @@ private:
std::map<size_t, entry_list::iterator> m_global_net_to_entries;
};
template <class T>
struct is_for_nets
{
static bool value () { return false; }
};
template <>
struct is_for_nets<db::NetShape>
{
static bool value () { return true; }
};
}
template <class T>
@ -2909,7 +2921,8 @@ hier_clusters<T>::build_hier_connections (cell_clusters_box_converter<T> &cbc, c
// join local clusters which got connected by child clusters
rec->finish_cluster_to_instance_interactions ();
{
if (is_for_nets<T>::value ()) {
// remove empty or point-like clusters which do not make a downward connection - i.e. from stray texts.
// This implies, we cannot connect from upward down to such nets too. In other words: to force a pin,
// inside a cell we need more than a text.
@ -2927,6 +2940,7 @@ hier_clusters<T>::build_hier_connections (cell_clusters_box_converter<T> &cbc, c
if (tl::verbosity () >= m_base_verbosity + 20) {
tl::info << "Removed " << to_delete.size () << " clusters because they are point-like or empty and do not have connections downward (stray texts)";
}
}
if (tl::verbosity () >= m_base_verbosity + 20) {