Fix a crash in PowerRails when a terminal is not connected.

* Bug: In Katana::GlobalNetTable::getRootNet(), when tracking up the
    net through the plug (to look if it's connected to a top level
    clock), we may encounter an *unconnected* plug.
      We where not checking that case, and went crashing. Now issue
    a warning and return NULL.
      This indicates that, up until now, we didn't encounter any
    unconnected Plug in our netlists. This did show up due to a
    building error in the SRAM Standard Cell generator.
This commit is contained in:
Jean-Paul Chaput 2022-10-14 10:10:43 +02:00
parent 82cd53b107
commit df1ba66c09
1 changed files with 8 additions and 2 deletions

View File

@ -231,12 +231,12 @@ namespace {
DeepNet* deepNet = getTopCell()->getDeepNet( path, net );
if (deepNet) {
cdebug_log(159,0) << " Deep Clock Net:" << deepNet
<< " state:" << NetRoutingExtension::getFlags(deepNet) << endl;
<< " state:" << NetRoutingExtension::getFlags(deepNet) << endl;
return NetRoutingExtension::isFixed(deepNet) ? _blockage : NULL;
} else {
cdebug_log(159,0) << " Top DeepNet:" << net
<< " state:" << NetRoutingExtension::getFlags(net) << endl;
<< " state:" << NetRoutingExtension::getFlags(net) << endl;
}
Path upPath = path;
@ -255,6 +255,12 @@ namespace {
upNet = plug->getNet();
path = path.getHeadPath();
if (not upNet) {
cerr << Warning( "GlobalNetTable::getRootNet(): Unconnected %s."
, getString(plug).c_str() ) << endl;
return NULL;
}
}
}