From 22557a5c4eeac9a2f20e64566c26367ff2ef02f2 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Tue, 9 Jan 2024 15:22:34 -0700 Subject: [PATCH] Sta::startpoints(), endpoints() Signed-off-by: James Cherry --- include/sta/Sta.hh | 5 ++--- search/Sta.cc | 23 +++++++++++------------ tcl/StaTcl.i | 28 +++------------------------- 3 files changed, 16 insertions(+), 40 deletions(-) diff --git a/include/sta/Sta.hh b/include/sta/Sta.hh index 56344d09..b46bd7c5 100644 --- a/include/sta/Sta.hh +++ b/include/sta/Sta.hh @@ -937,9 +937,8 @@ public: void delaysInvalid(); // Invalidate all arrival and required times. void arrivalsInvalid(); - void visitStartpoints(VertexVisitor *visitor); - void visitEndpoints(VertexVisitor *visitor); - VertexSet *endpoints(); + PinSet startpoints(); + PinSet endpoints(); int endpointViolationCount(const MinMax *min_max); // Find the fanin vertices for a group path. // Vertices in the clock network are NOT included. diff --git a/search/Sta.cc b/search/Sta.cc index 2efe3fbf..af821c33 100644 --- a/search/Sta.cc +++ b/search/Sta.cc @@ -2658,25 +2658,24 @@ Sta::ensureClkArrivals() //////////////////////////////////////////////////////////////// -void -Sta::visitStartpoints(VertexVisitor *visitor) +PinSet +Sta::startpoints() { ensureGraph(); - search_->visitStartpoints(visitor); + PinSet pins(network_); + VertexPinCollector visitor(pins); + search_->visitStartpoints(&visitor); + return pins; } -void -Sta::visitEndpoints(VertexVisitor *visitor) -{ - ensureGraph(); - search_->visitEndpoints(visitor); -} - -VertexSet * +PinSet Sta::endpoints() { ensureGraph(); - return search_->endpoints(); + PinSet pins(network_); + for (Vertex *vertex : *search_->endpoints()) + pins.insert(vertex->pin()); + return pins; } int diff --git a/tcl/StaTcl.i b/tcl/StaTcl.i index 2e468644..9940d1d9 100644 --- a/tcl/StaTcl.i +++ b/tcl/StaTcl.i @@ -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 tclArgError(Tcl_Interp *interp, const char *msg, @@ -4436,13 +4414,13 @@ worst_clk_skew_cmd(const SetupHold *setup_hold) PinSet startpoints() { - return findStartpoints(); + return Sta::sta()->startpoints(); } PinSet endpoints() { - return findEndpoints(); + return Sta::sta()->endpoints(); } PinSet @@ -5441,7 +5419,7 @@ port_location(const Port *port) int endpoint_count() { - return Sta::sta()->endpoints()->size(); + return Sta::sta()->endpoints().size(); } int