Sta::vertexWorstRequiredPath
This commit is contained in:
parent
598d5ed0fe
commit
7f0ee1b686
|
|
@ -54,7 +54,7 @@ DcalcAnalysisPt::setCheckClkSlewIndex(DcalcAPIndex index)
|
|||
int
|
||||
DcalcAnalysisPt::libertyIndex() const
|
||||
{
|
||||
return index_; // same for now
|
||||
return corner_->libertyIndex(min_max_);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue