From 6deaf6d8fcabc884063941c3046eb8bdb80061b5 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Thu, 24 Sep 2020 19:23:30 -0700 Subject: [PATCH] revert 285dc50c Search::pathClkPathArrival use ClkInfo:::crprClkPath --- search/Search.cc | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/search/Search.cc b/search/Search.cc index b03ebbcf..48c7afe1 100644 --- a/search/Search.cc +++ b/search/Search.cc @@ -2258,18 +2258,16 @@ Search::clkPathArrival(const Path *clk_path, Arrival Search::pathClkPathArrival(const Path *path) const { - // Use crpr clk path to find the clock arrival at the source register. - ClkInfo *clk_info = path->clkInfo(this); - if (clk_info->isPropagated()) { - PathVertexRep &crpr_clk_path = clk_info->crprClkPath(); - if (!crpr_clk_path.isNull()) { - return crpr_clk_path.arrival(this); - } + PathRef src_clk_path; + pathClkPathArrival1(path, src_clk_path); + if (!src_clk_path.isNull()) + return clkPathArrival(&src_clk_path); + else { + // Check for input arrival clock. + ClockEdge *clk_edge = path->clkEdge(this); + if (clk_edge) + return clk_edge->time(); } - // Check for input arrival clock. - ClockEdge *clk_edge = path->clkEdge(this); - if (clk_edge) - return clk_edge->time(); return 0.0; } @@ -2452,6 +2450,7 @@ Search::thruClkInfo(PathVertex *from_path, // the clkinfo. const Pin *gen_clk_src = nullptr; if (from_clk_info->isGenClkSrcPath() + && sdc_->crprActive() && sdc_->isClock(to_pin)) { // Don't care that it could be a regular clock root. gen_clk_src = to_pin; @@ -2459,7 +2458,8 @@ Search::thruClkInfo(PathVertex *from_path, } PathVertex *to_crpr_clk_path = nullptr; - if (to_vertex->isRegClk()) { + if (sdc_->crprActive() + && to_vertex->isRegClk()) { to_crpr_clk_path = from_path; changed = true; }