This commit is contained in:
James Cherry 2020-01-23 14:55:18 -07:00
commit 69aa9df96f
3 changed files with 23 additions and 4 deletions

View File

@ -452,10 +452,6 @@ public:
OcvDerate *ocvDerate() const;
OcvDerate *findOcvDerate(const char *derate_name);
// Next higher/lower drive equivalent cells.
LibertyCell *higherDrive() const;
LibertyCell *lowerDrive() const;
// Build helpers.
void makeSequential(int size,
bool is_register,

View File

@ -2918,6 +2918,27 @@ Sta::vertexSlack1(Vertex *vertex,
return slack;
}
void
Sta::vertexSlacks(Vertex *vertex,
Slack (&slacks)[RiseFall::index_count][MinMax::index_count])
{
findRequired(vertex);
for(int rf_index : RiseFall::rangeIndex()) {
for(MinMax *min_max : MinMax::range()) {
slacks[rf_index][min_max->index()] = MinMax::min()->initValue();
}
}
VertexPathIterator path_iter(vertex, this);
while (path_iter.hasNext()) {
Path *path = path_iter.next();
Slack path_slack = path->slack(this);
int rf_index = path->rfIndex(this);
int mm_index = path->minMax(this)->index();
if (path_slack < slacks[rf_index][mm_index])
slacks[rf_index][mm_index] = path_slack;
}
}
void
Sta::findRequired(Vertex *vertex)
{

View File

@ -1010,6 +1010,8 @@ public:
Slack vertexSlack(Vertex *vertex,
const RiseFall *rf,
const PathAnalysisPt *path_ap);
void vertexSlacks(Vertex *vertex,
Slack (&slacks)[RiseFall::index_count][MinMax::index_count]);
// Slew for one delay calc analysis pt(corner).
Slew vertexSlew(Vertex *vertex,
const RiseFall *rf,