From 89de4caf6c1c97bd22cdd79abe24788ec3bb3665 Mon Sep 17 00:00:00 2001 From: David Shah Date: Mon, 25 Feb 2019 11:03:59 +0000 Subject: timing: Fix negative slack overflow issue Signed-off-by: David Shah --- common/timing.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'common/timing.cc') diff --git a/common/timing.cc b/common/timing.cc index db38b11b..8ade2660 100644 --- a/common/timing.cc +++ b/common/timing.cc @@ -611,8 +611,9 @@ struct Timing continue; delay_t dmax = crit_path->at(ClockPair{startdomain.first, startdomain.first}).path_delay; for (size_t i = 0; i < net->users.size(); i++) { - float criticality = 1.0f - (float(nc.slack.at(i) - worst_slack.at(startdomain.first)) / dmax); - nc.criticality.at(i) = criticality; + float criticality = + 1.0f - ((float(nc.slack.at(i)) - float(worst_slack.at(startdomain.first))) / dmax); + nc.criticality.at(i) = std::min(1.0, std::max(0.0, criticality)); } nc.max_path_length = nd.max_path_length; nc.cd_worst_slack = worst_slack.at(startdomain.first); -- cgit v1.2.3