Sta::startpoints(), endpoints()

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2024-01-09 15:22:34 -07:00
parent ebb0a5d060
commit 22557a5c4e
3 changed files with 16 additions and 40 deletions

View File

@ -937,9 +937,8 @@ public:
void delaysInvalid(); void delaysInvalid();
// Invalidate all arrival and required times. // Invalidate all arrival and required times.
void arrivalsInvalid(); void arrivalsInvalid();
void visitStartpoints(VertexVisitor *visitor); PinSet startpoints();
void visitEndpoints(VertexVisitor *visitor); PinSet endpoints();
VertexSet *endpoints();
int endpointViolationCount(const MinMax *min_max); int endpointViolationCount(const MinMax *min_max);
// Find the fanin vertices for a group path. // Find the fanin vertices for a group path.
// Vertices in the clock network are NOT included. // Vertices in the clock network are NOT included.

View File

@ -2658,25 +2658,24 @@ Sta::ensureClkArrivals()
//////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////
void PinSet
Sta::visitStartpoints(VertexVisitor *visitor) Sta::startpoints()
{ {
ensureGraph(); ensureGraph();
search_->visitStartpoints(visitor); PinSet pins(network_);
VertexPinCollector visitor(pins);
search_->visitStartpoints(&visitor);
return pins;
} }
void PinSet
Sta::visitEndpoints(VertexVisitor *visitor)
{
ensureGraph();
search_->visitEndpoints(visitor);
}
VertexSet *
Sta::endpoints() Sta::endpoints()
{ {
ensureGraph(); ensureGraph();
return search_->endpoints(); PinSet pins(network_);
for (Vertex *vertex : *search_->endpoints())
pins.insert(vertex->pin());
return pins;
} }
int int

View File

@ -339,28 +339,6 @@ setPtrTclList(SET_TYPE *set,
//////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////
PinSet
findStartpoints()
{
Network *network = cmdNetwork();
PinSet pins(network);
VertexPinCollector visitor(pins);
Sta::sta()->visitStartpoints(&visitor);
return pins;
}
PinSet
findEndpoints()
{
Network *network = cmdNetwork();
PinSet pins(network);
VertexPinCollector visitor(pins);
Sta::sta()->visitEndpoints(&visitor);
return pins;
}
////////////////////////////////////////////////////////////////
void void
tclArgError(Tcl_Interp *interp, tclArgError(Tcl_Interp *interp,
const char *msg, const char *msg,
@ -4436,13 +4414,13 @@ worst_clk_skew_cmd(const SetupHold *setup_hold)
PinSet PinSet
startpoints() startpoints()
{ {
return findStartpoints(); return Sta::sta()->startpoints();
} }
PinSet PinSet
endpoints() endpoints()
{ {
return findEndpoints(); return Sta::sta()->endpoints();
} }
PinSet PinSet
@ -5441,7 +5419,7 @@ port_location(const Port *port)
int int
endpoint_count() endpoint_count()
{ {
return Sta::sta()->endpoints()->size(); return Sta::sta()->endpoints().size();
} }
int int