diff --git a/search/Crpr.cc b/search/Crpr.cc index 5a075d25..6c87803c 100644 --- a/search/Crpr.cc +++ b/search/Crpr.cc @@ -297,10 +297,10 @@ CheckCrpr::findCrpr1(const PathVertex *src_clk_path, const EarlyLate *tgt_el = tgt_clk_path->minMax(this); Arrival src_arrival = src_clk_path->arrival(this); Arrival tgt_arrival = tgt_clk_path->arrival(this); - float crpr_mean = delayAsFloat(src_arrival) - delayAsFloat(tgt_arrival); + float crpr_mean = abs(delayAsFloat(src_arrival) - delayAsFloat(tgt_arrival)); float crpr_sigma2 = delaySigma2(src_arrival, src_el) + delaySigma2(tgt_arrival, tgt_el); - return makeDelay2(abs(crpr_mean), -crpr_sigma2, -crpr_sigma2); + return makeDelay2(crpr_mean, -crpr_sigma2, -crpr_sigma2); } else { // The source and target edges are different so the crpr @@ -319,6 +319,15 @@ CheckCrpr::findCrpr1(const PathVertex *src_clk_path, } } +float +CheckCrpr::crprArrivalDiff(const PathVertex *path) +{ + Arrival other_arrival = otherMinMaxArrival(path); + float crpr_diff = abs(delayAsFloat(path->arrival(this)) + - delayAsFloat(other_arrival)); + return crpr_diff; +} + Crpr CheckCrpr::outputDelayCrpr(const Path *src_clk_path, const ClockEdge *tgt_clk_edge) @@ -387,15 +396,4 @@ CheckCrpr::crprPossible(Clock *clk1, || PinSet::intersects(clk1->pins(), clk2->pins())); } -float -CheckCrpr::crprArrivalDiff(const PathVertex *path) -{ - Arrival other_arrival = otherMinMaxArrival(path); - float crpr_diff = abs(delayAsFloat(path->arrival(this), - EarlyLate::late(), this) - - delayAsFloat(other_arrival, - EarlyLate::early(), this)); - return crpr_diff; -} - } // namespace