spef support net missing divider escape resolves #311

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2025-10-14 15:58:48 -07:00
parent 1a22c68c62
commit 8f8f397610
2 changed files with 10 additions and 3 deletions

View File

@ -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;

View File

@ -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 {