From 8f8f397610cebc9e647531914a6c071bcccd2757 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Tue, 14 Oct 2025 15:58:48 -0700 Subject: [PATCH] spef support net missing divider escape resolves #311 Signed-off-by: James Cherry --- network/SdcNetwork.cc | 10 ++++++++-- parasitics/SpefReader.cc | 3 ++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/network/SdcNetwork.cc b/network/SdcNetwork.cc index 73fafa37..3967a82b 100644 --- a/network/SdcNetwork.cc +++ b/network/SdcNetwork.cc @@ -886,11 +886,17 @@ SdcNetwork::findNetRelative(const Instance *inst, { Net *net = network_->findNetRelative(inst, path_name); if (net == nullptr) { - string path_name1 = escapeBrackets(path_name, this); + string path_name1 = escapeDividers(path_name, network_); net = network_->findNetRelative(inst, path_name1.c_str()); + if (net == nullptr) { - string path_name2 = escapeDividers(path_name1.c_str(), network_); + string path_name2 = escapeBrackets(path_name, network_); net = network_->findNetRelative(inst, path_name2.c_str()); + + if (net == nullptr) { + string path_name3 = escapeDividers(path_name2.c_str(), network_); + net = network_->findNetRelative(inst, path_name3.c_str()); + } } } return net; diff --git a/parasitics/SpefReader.cc b/parasitics/SpefReader.cc index 1ae6fbb1..e81d691f 100644 --- a/parasitics/SpefReader.cc +++ b/parasitics/SpefReader.cc @@ -458,7 +458,8 @@ SpefReader::findParasiticNode(char *name, if (pin) { if (local_only && !network_->isConnected(net_, pin)) - warn(1651, "%s not connected to net %s.", name1, network_->pathName(net_)); + warn(1651, "%s not connected to net %s.", + name1, sdc_network_->pathName(net_)); return parasitics_->ensureParasiticNode(parasitic_, pin, network_); } else {