From 18f11a302958ea6814cd1d711a18ec3eab3c1184 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Fri, 23 Sep 2022 09:13:27 -0700 Subject: [PATCH] clk skew 0.0 for degenerate case with no launch/capture Signed-off-by: James Cherry --- search/ClkSkew.cc | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/search/ClkSkew.cc b/search/ClkSkew.cc index 22808f7b..11d26538 100644 --- a/search/ClkSkew.cc +++ b/search/ClkSkew.cc @@ -172,16 +172,21 @@ ClkSkews::findWorstClkSkew(const Corner *corner, ClockSet clks; for (Clock *clk : *sdc_->clocks()) clks.insert(clk); - float worst_skew = 0.0; ClkSkewMap skews; findClkSkew(&clks, corner, setup_hold, skews); - for (auto clk_skew_itr : skews) { - ClkSkew *clk_skew = clk_skew_itr.second; - float skew = clk_skew->skew(); - if (skew < worst_skew) - worst_skew = skew; + if (!skews.empty()) { + float worst_skew = INF; + for (auto clk_skew_itr : skews) { + ClkSkew *clk_skew = clk_skew_itr.second; + float skew = clk_skew->skew(); + if (skew < worst_skew) + worst_skew = skew; + } + return worst_skew; } - return worst_skew; + else + // Degenerate design without launch/capture registers. + return 0.0; } void