diff --git a/search/Crpr.cc b/search/Crpr.cc index 3d9fc1ee..31d032cf 100644 --- a/search/Crpr.cc +++ b/search/Crpr.cc @@ -302,6 +302,7 @@ CheckCrpr::findCrpr1(const PathVertex *src_clk_path, float tgt_clk_time = tgt_clk_path->clkEdge(this)->time(); float crpr_mean = abs(delayAsFloat(src_arrival) - src_clk_time - (delayAsFloat(tgt_arrival) - tgt_clk_time)); + // Remove the sigma from both source and target path arrivals. float crpr_sigma2 = delaySigma2(src_arrival, src_el) + delaySigma2(tgt_arrival, tgt_el); return makeDelay2(crpr_mean, -crpr_sigma2, -crpr_sigma2); diff --git a/search/PathEnd.cc b/search/PathEnd.cc index 4084f20d..57a014c1 100644 --- a/search/PathEnd.cc +++ b/search/PathEnd.cc @@ -365,7 +365,7 @@ PathEnd::checkTgtClkDelay(const PathVertex *tgt_clk_path, Arrival path_insertion = search->clockInsertion(tgt_clk, tgt_src_pin, tgt_clk_rf, min_max, min_max, tgt_path_ap); - latency = clk_arrival - tgt_clk_edge->time() - path_insertion; + latency = delayRemove(clk_arrival - tgt_clk_edge->time(), path_insertion); } else // Ideal clock.