Sta::vertexWorstRequiredPath

This commit is contained in:
James Cherry 2021-03-31 18:04:36 -07:00
parent 598d5ed0fe
commit 7f0ee1b686
3 changed files with 37 additions and 4 deletions

View File

@ -54,7 +54,7 @@ DcalcAnalysisPt::setCheckClkSlewIndex(DcalcAPIndex index)
int
DcalcAnalysisPt::libertyIndex() const
{
return index_; // same for now
return corner_->libertyIndex(min_max_);
}
} // namespace

View File

@ -951,6 +951,11 @@ public:
const MinMax *min_max);
PathRef vertexWorstArrivalPath(Vertex *vertex,
const MinMax *min_max);
PathRef vertexWorstRequiredPath(Vertex *vertex,
const RiseFall *rf,
const MinMax *min_max);
PathRef vertexWorstRequiredPath(Vertex *vertex,
const MinMax *min_max);
PathRef vertexWorstSlackPath(Vertex *vertex,
const MinMax *min_max);
PathRef vertexWorstSlackPath(Vertex *vertex,

View File

@ -2677,6 +2677,13 @@ Sta::vertexPathIterator(Vertex *vertex,
return new VertexPathIterator(vertex, rf, min_max, this);
}
PathRef
Sta::vertexWorstArrivalPath(Vertex *vertex,
const MinMax *min_max)
{
return vertexWorstArrivalPath(vertex, nullptr, min_max);
}
PathRef
Sta::vertexWorstArrivalPath(Vertex *vertex,
const RiseFall *rf,
@ -2698,10 +2705,31 @@ Sta::vertexWorstArrivalPath(Vertex *vertex,
}
PathRef
Sta::vertexWorstArrivalPath(Vertex *vertex,
const MinMax *min_max)
Sta::vertexWorstRequiredPath(Vertex *vertex,
const MinMax *min_max)
{
return vertexWorstArrivalPath(vertex, nullptr, min_max);
return vertexWorstRequiredPath(vertex, nullptr, min_max);
}
PathRef
Sta::vertexWorstRequiredPath(Vertex *vertex,
const RiseFall *rf,
const MinMax *min_max)
{
PathRef worst_path;
const MinMax *req_min_max = min_max->opposite();
Arrival worst_req = req_min_max->initValue();
VertexPathIterator path_iter(vertex, rf, min_max, this);
while (path_iter.hasNext()) {
PathVertex *path = path_iter.next();
const Required path_req = path->required(this);
if (!path->tag(this)->isGenClkSrcPath()
&& delayGreater(path_req, worst_req, req_min_max, this)) {
worst_req = path_req;
worst_path.init(path);
}
}
return worst_path;
}
PathRef