public ensureLevelized
This commit is contained in:
parent
84c13732f7
commit
3179c5a343
|
|
@ -2728,6 +2728,25 @@ Sta::vertexArrival(Vertex *vertex,
|
|||
return arrival;
|
||||
}
|
||||
|
||||
Required
|
||||
Sta::vertexRequired(Vertex *vertex,
|
||||
const MinMax *min_max)
|
||||
{
|
||||
findRequired(vertex);
|
||||
const MinMax *req_min_max = min_max->opposite();
|
||||
Required required = req_min_max->initValue();
|
||||
VertexPathIterator path_iter(vertex, this);
|
||||
while (path_iter.hasNext()) {
|
||||
const Path *path = path_iter.next();
|
||||
if (path->minMax(this) == min_max) {
|
||||
const Required path_required = path->required(this);
|
||||
if (fuzzyGreater(path_required, required, req_min_max))
|
||||
required = path_required;
|
||||
}
|
||||
}
|
||||
return required;
|
||||
}
|
||||
|
||||
Required
|
||||
Sta::vertexRequired(Vertex *vertex,
|
||||
const TransRiseFall *tr,
|
||||
|
|
|
|||
|
|
@ -976,13 +976,15 @@ public:
|
|||
const TransRiseFall *tr,
|
||||
const PathAnalysisPt *path_ap);
|
||||
Required vertexRequired(Vertex *vertex,
|
||||
const TransRiseFall *tr,
|
||||
const ClockEdge *clk_edge,
|
||||
const PathAnalysisPt *path_ap);
|
||||
const MinMax *min_max);
|
||||
// Min/max across all clock tags.
|
||||
Required vertexRequired(Vertex *vertex,
|
||||
const TransRiseFall *tr,
|
||||
const PathAnalysisPt *path_ap);
|
||||
Required vertexRequired(Vertex *vertex,
|
||||
const TransRiseFall *tr,
|
||||
const ClockEdge *clk_edge,
|
||||
const PathAnalysisPt *path_ap);
|
||||
Slack pinSlack(const Pin *pin,
|
||||
const TransRiseFall *tr,
|
||||
const MinMax *min_max);
|
||||
|
|
@ -1131,8 +1133,10 @@ public:
|
|||
|
||||
void setTclInterp(Tcl_Interp *interp);
|
||||
Tcl_Interp *tclInterp();
|
||||
void ensureLevelized();
|
||||
// Ensure that the timing graph has been built.
|
||||
Graph *ensureGraph();
|
||||
void ensureClkArrivals();
|
||||
Corner *cmdCorner() const;
|
||||
void setCmdCorner(Corner *corner);
|
||||
Corner *findCorner(const char *corner_name);
|
||||
|
|
@ -1230,8 +1234,6 @@ protected:
|
|||
virtual LibertyLibrary *readLibertyFile(const char *filename,
|
||||
bool infer_latches,
|
||||
Network *network);
|
||||
void ensureLevelized();
|
||||
void ensureClkArrivals();
|
||||
void delayCalcPreamble();
|
||||
void delaysInvalidFrom(Port *port);
|
||||
void delaysInvalidFromFanin(Port *port);
|
||||
|
|
|
|||
Loading…
Reference in New Issue