Skip to content

Commit

Permalink
Merge pull request #6524 from andyfox-rushc/cts_techchar
Browse files Browse the repository at this point in the history
Cts techchar: Turn off hierarchical api during characterization
  • Loading branch information
maliberty authored Jan 14, 2025
2 parents b08e11c + c6e7c94 commit e2388a3
Showing 1 changed file with 20 additions and 4 deletions.
24 changes: 20 additions & 4 deletions src/cts/src/TechChar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -821,8 +821,8 @@ void TechChar::collectSlewsLoadsFromTableAxis(sta::LibertyCell* libCell,
axisLoads.push_back((*loads)[i]);
}
}
} // if (gateModel)
} // for each arc
}
}

if (logger_->debugCheck(utl::CTS, "tech char", 2)) {
logger_->report("axis slews at {}", libCell->name());
Expand Down Expand Up @@ -1544,6 +1544,19 @@ unsigned TechChar::normalizeCharResults(float value,

void TechChar::create()
{
//
// Note that none of the techchar uses anything hierarchical.
// Techchar builds intermediate structures of (liberty) gates in a separate
// block Rather than register them as concrete we simply turn off hierarchy
// here so that the default (flat) dbNetwork apis are used
// during characterization. This pattern is likely to repeat
// whenever a "scratchpad" dbBlock and sta are created for characterizing
// structures.
//
bool is_hierarchical = db_network_->hasHierarchy();
if (is_hierarchical) {
db_network_->disableHierarchy();
}
// Setup of the attributes required to run the characterization.
initCharacterization();
long unsigned int topologiesCreated = 0;
Expand Down Expand Up @@ -1663,8 +1676,8 @@ void TechChar::create()
"Number of created patterns = {}.",
topologiesCreated);
}
} // for each slew
} // for each load
}
}
// If the solution is not a pure-wire, update the buffer topologies.
if (!solution.isPureWire) {
updateBufferTopologies(solution);
Expand All @@ -1688,6 +1701,9 @@ void TechChar::create()
printSolution();
}
odb::dbBlock::destroy(charBlock_);
if (is_hierarchical) {
db_network_->setHierarchy();
}
}

// Compute possible buffering solution combinations given #buffers and
Expand Down

0 comments on commit e2388a3

Please sign in to comment.