From 994b23abf6fed97e7a23833d97ebf4e3a02b4be4 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sun, 26 May 2024 17:23:50 +0200 Subject: [PATCH] Refining solution of issue #1719, part 2 --- src/db/db/dbHierNetworkProcessor.cc | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/db/db/dbHierNetworkProcessor.cc b/src/db/db/dbHierNetworkProcessor.cc index 4c5c089ea..7f2acce95 100644 --- a/src/db/db/dbHierNetworkProcessor.cc +++ b/src/db/db/dbHierNetworkProcessor.cc @@ -2817,6 +2817,18 @@ private: std::map m_global_net_to_entries; }; +template +struct is_for_nets +{ + static bool value () { return false; } +}; + +template <> +struct is_for_nets +{ + static bool value () { return true; } +}; + } template @@ -2909,7 +2921,8 @@ hier_clusters::build_hier_connections (cell_clusters_box_converter &cbc, c // join local clusters which got connected by child clusters rec->finish_cluster_to_instance_interactions (); - { + if (is_for_nets::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::build_hier_connections (cell_clusters_box_converter &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) {