From 434246a8b420bde86b45c4546f642720aaecbf21 Mon Sep 17 00:00:00 2001 From: Jaehyun Kim Date: Sat, 21 Mar 2026 19:23:36 +0900 Subject: [PATCH] Fix test suite for upstream API changes after merge Adapt all C++ and Tcl tests for upstream API refactoring: - Header rename: DelayFloat.hh -> Delay.hh - PocvMode enum replacing boolean pocv (setPocvEnabled -> setPocvMode) - setReportPathFields gains 8th parameter (report_src_attr) - GateTableModel/CheckTableModel constructor wraps in TableModels - gateDelay/checkDelay signature changes (bool -> MinMax/PocvMode) - Unit::asString returns std::string instead of const char* - ExceptionThru/To::asString removed, use to_string - GroupPath/FilterPath/LoopPath::asString removed - PathEnd::source_clk_delay -> source_clk_latency - report_net -connections flag removed - set_report_path_field_width removed - MaxSkewCheck::skew() now requires sta parameter - Remove tests that pass nullptr to PinIdHash-based maps (segfault) - Remove tests for removed APIs (sigmaFactor, reportSigmas) - Regolden .ok files for numerical precision and format changes Co-Authored-By: Claude Signed-off-by: Jaehyun Kim --- dcalc/test/cpp/TestDcalc.cc | 2 +- liberty/test/cpp/TestLibertyStaBasics.cc | 67 ++++----- liberty/test/cpp/TestLibertyStaBasicsB.cc | 3 +- liberty/test/cpp/TestLibertyStaCallbacks.cc | 18 +-- parasitics/test/parasitics_manual.ok | 12 +- sdc/test/cpp/TestSdcStaDesign.cc | 29 ++-- sdc/test/cpp/TestSdcStaInit.cc | 42 +++--- sdc/test/sdc_clk_grp_final.sdcok | 5 - sdc/test/sdc_clk_uncert.sdcok | 5 - sdc/test/sdc_clock_groups_sense.tcl | 4 +- sdc/test/sdc_genclk_advanced.tcl | 5 +- sdc/test/sdc_genclk_compat.sdcok | 2 +- sdc/test/sdc_genclk_d6.sdcok | 2 +- sdc/test/sdc_genclk_native.sdcok | 2 +- sdf/test/sdf_read_write.ok | 2 +- search/test/cpp/TestSearchStaDesign.cc | 11 +- search/test/cpp/TestSearchStaDesignB.cc | 9 +- search/test/cpp/TestSearchStaInit.cc | 128 +++++------------- search/test/cpp/TestSearchStaInitB.cc | 38 ++---- search/test/search_analysis.ok | 6 +- search/test/search_crpr.ok | 12 +- search/test/search_crpr.tcl | 4 +- search/test/search_crpr_data_checks.ok | 30 ++-- search/test/search_crpr_data_checks.tcl | 4 +- search/test/search_exception_paths.ok | 6 +- search/test/search_fanin_fanout_deep.ok | 18 +-- search/test/search_json_unconstrained.ok | 4 +- search/test/search_latch_timing.ok | 2 +- search/test/search_network_sta_deep.tcl | 3 +- search/test/search_path_delay_output.ok | 6 +- search/test/search_path_delay_output.tcl | 2 - search/test/search_path_end_types.ok | 5 - search/test/search_path_end_types.tcl | 4 +- search/test/search_property_deep.ok | 9 -- search/test/search_property_deep.tcl | 9 -- search/test/search_report_fields_formats.ok | 128 ++---------------- search/test/search_report_fields_formats.tcl | 17 +-- search/test/search_report_gated_datacheck.ok | 32 ++--- search/test/search_report_gated_datacheck.tcl | 2 +- search/test/search_report_json_formats.ok | 112 +++------------ search/test/search_report_json_formats.tcl | 11 +- search/test/search_report_path_detail.ok | 11 -- search/test/search_report_path_detail.tcl | 11 -- search/test/search_report_path_expanded.ok | 4 +- .../test/search_report_path_latch_expanded.ok | 20 +-- .../search_report_path_latch_expanded.tcl | 1 - search/test/search_report_path_pvt_cap.ok | 4 +- search/test/search_sta_bidirect_extcap.ok | 4 +- search/test/search_sta_bidirect_extcap.tcl | 4 +- search/test/search_sta_cmds.ok | 24 ++-- search/test/search_sta_extra.ok | 33 +---- search/test/search_sta_extra.tcl | 14 +- search/test/search_tag_path_analysis.ok | 18 +-- search/test/search_worst_slack_sta.ok | 4 +- search/test/search_worst_slack_sta.tcl | 11 +- search/test/search_write_sdf_model.ok | 4 +- 56 files changed, 288 insertions(+), 691 deletions(-) diff --git a/dcalc/test/cpp/TestDcalc.cc b/dcalc/test/cpp/TestDcalc.cc index 3ecf8aeb..015f03ce 100644 --- a/dcalc/test/cpp/TestDcalc.cc +++ b/dcalc/test/cpp/TestDcalc.cc @@ -4,7 +4,7 @@ #include "DelayCalc.hh" #include "ArcDelayCalc.hh" -#include "DelayFloat.hh" +#include "Delay.hh" #include "dcalc/FindRoot.hh" namespace sta { diff --git a/liberty/test/cpp/TestLibertyStaBasics.cc b/liberty/test/cpp/TestLibertyStaBasics.cc index e51abcba..d34fded0 100644 --- a/liberty/test/cpp/TestLibertyStaBasics.cc +++ b/liberty/test/cpp/TestLibertyStaBasics.cc @@ -971,19 +971,19 @@ TEST_F(StaLibertyTest, GateTableModelDriveResistanceAndDelay) { GateTableModel *gtm = arc->gateTableModel(); if (gtm) { // Test gate delay - ArcDelay delay; - Slew slew; - gtm->gateDelay(nullptr, 0.1f, 0.01f, false, delay, slew); + float delay_f, slew_f; + gtm->gateDelay(nullptr, 0.1f, 0.01f, delay_f, slew_f); // Delay values can be negative depending on library data - EXPECT_FALSE(std::isinf(delayAsFloat(delay))); - EXPECT_GE(delayAsFloat(slew), 0.0f); + EXPECT_FALSE(std::isinf(delay_f)); + EXPECT_GE(slew_f, 0.0f); // Test drive resistance float res = gtm->driveResistance(nullptr); EXPECT_GE(res, 0.0f); // Test report - std::string report = gtm->reportGateDelay(nullptr, 0.1f, 0.01f, false, 3); + std::string report = gtm->reportGateDelay(nullptr, 0.1f, 0.01f, + MinMax::max(), PocvMode::scalar, 3); EXPECT_FALSE(report.empty()); // Test model accessors @@ -1594,15 +1594,11 @@ TEST_F(StaLibertyTest, GateTableModelGateDelayDeprecated) { ASSERT_GT(arcs.size(), 0u); GateTableModel *gtm = arcs[0]->gateTableModel(); if (gtm) { - ArcDelay delay; - Slew slew; -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - gtm->gateDelay(nullptr, 0.1f, 0.01f, 0.0f, false, delay, slew); -#pragma GCC diagnostic pop + float delay_f, slew_f; + gtm->gateDelay(nullptr, 0.1f, 0.01f, delay_f, slew_f); // Delay values can be negative depending on library data - EXPECT_FALSE(std::isinf(delayAsFloat(delay))); - EXPECT_GE(delayAsFloat(slew), 0.0f); + EXPECT_FALSE(std::isinf(delay_f)); + EXPECT_GE(slew_f, 0.0f); } } @@ -1622,10 +1618,12 @@ TEST_F(StaLibertyTest, CheckTableModelCheckDelay) { TimingModel *model = arcs[0]->model(); CheckTableModel *ctm = dynamic_cast(model); if (ctm) { - ArcDelay d = ctm->checkDelay(nullptr, 0.1f, 0.1f, 0.0f, false); + ArcDelay d = ctm->checkDelay(nullptr, 0.1f, 0.1f, 0.0f, + MinMax::max(), PocvMode::scalar); EXPECT_GE(delayAsFloat(d), 0.0f); std::string rpt = ctm->reportCheckDelay(nullptr, 0.1f, nullptr, - 0.1f, 0.0f, false, 3); + 0.1f, 0.0f, + MinMax::max(), PocvMode::scalar, 3); EXPECT_FALSE(rpt.empty()); return; } @@ -1732,17 +1730,20 @@ TEST_F(StaLibertyTest, GateTableModelWithTable0Delay) { RiseFall::rise()); TableModel *slew_model = new TableModel(slew_ptr, tmpl, ScaleFactorType::cell, RiseFall::rise()); - GateTableModel *gtm = new GateTableModel(buf, delay_model, slew_model); - ArcDelay d; - Slew s; - gtm->gateDelay(nullptr, 0.0f, 0.0f, false, d, s); - EXPECT_GE(delayAsFloat(d), 0.0f); - EXPECT_GE(delayAsFloat(s), 0.0f); + // Wrap TableModel in TableModels as required by GateTableModel constructor + TableModels *delay_models = new TableModels(delay_model); + TableModels *slew_models = new TableModels(slew_model); + GateTableModel *gtm = new GateTableModel(buf, delay_models, slew_models); + float d, s; + gtm->gateDelay(nullptr, 0.0f, 0.0f, d, s); + EXPECT_GE(d, 0.0f); + EXPECT_GE(s, 0.0f); float res = gtm->driveResistance(nullptr); EXPECT_GE(res, 0.0f); - std::string rpt = gtm->reportGateDelay(nullptr, 0.0f, 0.0f, false, 3); + std::string rpt = gtm->reportGateDelay(nullptr, 0.0f, 0.0f, + MinMax::max(), PocvMode::scalar, 3); EXPECT_FALSE(rpt.empty()); delete gtm; @@ -1763,15 +1764,19 @@ TEST_F(StaLibertyTest, CheckTableModelDirect) { TableModel *model = new TableModel(check_ptr, tmpl, ScaleFactorType::cell, RiseFall::rise()); - CheckTableModel *ctm = new CheckTableModel(buf, model); - ArcDelay d = ctm->checkDelay(nullptr, 0.1f, 0.1f, 0.0f, false); + // Wrap TableModel in TableModels as required by CheckTableModel constructor + TableModels *check_models = new TableModels(model); + CheckTableModel *ctm = new CheckTableModel(buf, check_models); + ArcDelay d = ctm->checkDelay(nullptr, 0.1f, 0.1f, 0.0f, + MinMax::max(), PocvMode::scalar); EXPECT_GE(delayAsFloat(d), 0.0f); std::string rpt = ctm->reportCheckDelay(nullptr, 0.1f, nullptr, - 0.1f, 0.0f, false, 3); + 0.1f, 0.0f, + MinMax::max(), PocvMode::scalar, 3); EXPECT_FALSE(rpt.empty()); - const TableModel *m = ctm->model(); + const TableModel *m = ctm->checkModel(); EXPECT_NE(m, nullptr); delete ctm; @@ -2743,14 +2748,14 @@ TEST_F(UnitTest, WidthVaryDigits) { // Unit::asString(double) - covers uncovered function TEST_F(UnitTest, AsStringDouble) { Unit unit(1e-9f, "s", 3); - const char *str = unit.asString(1e-9); - EXPECT_NE(str, nullptr); + std::string str = unit.asString(1e-9f); + EXPECT_FALSE(str.empty()); } TEST_F(UnitTest, AsStringDoubleZero) { Unit unit(1.0f, "V", 2); - const char *str = unit.asString(0.0); - EXPECT_NE(str, nullptr); + std::string str = unit.asString(0.0f); + EXPECT_FALSE(str.empty()); } // to_string(TimingSense) exercise - ensure all senses diff --git a/liberty/test/cpp/TestLibertyStaBasicsB.cc b/liberty/test/cpp/TestLibertyStaBasicsB.cc index 2754c008..372b8415 100644 --- a/liberty/test/cpp/TestLibertyStaBasicsB.cc +++ b/liberty/test/cpp/TestLibertyStaBasicsB.cc @@ -1200,7 +1200,8 @@ TEST_F(LinearModelTest, GateLinearModelDriveResistance) { TEST_F(LinearModelTest, CheckLinearModelCheckDelay2) { CheckLinearModel model(cell_, 2.0f); - ArcDelay delay = model.checkDelay(nullptr, 0.0f, 0.0f, 0.0f, false); + ArcDelay delay = model.checkDelay(nullptr, 0.0f, 0.0f, 0.0f, + MinMax::max(), PocvMode::scalar); EXPECT_FLOAT_EQ(delayAsFloat(delay), 2.0f); } diff --git a/liberty/test/cpp/TestLibertyStaCallbacks.cc b/liberty/test/cpp/TestLibertyStaCallbacks.cc index 4ec656e4..4d05aaae 100644 --- a/liberty/test/cpp/TestLibertyStaCallbacks.cc +++ b/liberty/test/cpp/TestLibertyStaCallbacks.cc @@ -2916,9 +2916,9 @@ library(test_r9_85) { auto *model = dynamic_cast(arc->model()); if (model) { found_linear_model = true; - ArcDelay delay = 0.0; - Slew slew = 0.0; - model->gateDelay(nullptr, 0.0f, 0.5f, false, delay, slew); + float delay = 0.0f; + float slew = 0.0f; + model->gateDelay(nullptr, 0.0f, 0.5f, delay, slew); EXPECT_GT(delay, 0.0f); EXPECT_GE(model->driveResistance(nullptr), 100.0f); } @@ -3079,8 +3079,10 @@ TEST_F(StaLibertyTest, TimingGroupConstraintModels) { attrs.setModel(RiseFall::fall(), fall_model); EXPECT_EQ(attrs.model(RiseFall::rise()), rise_model); EXPECT_EQ(attrs.model(RiseFall::fall()), fall_model); - EXPECT_FLOAT_EQ(static_cast(attrs.model(RiseFall::fall())) - ->checkDelay(nullptr, 0.0f, 0.0f, 0.0f, false), + EXPECT_FLOAT_EQ(delayAsFloat( + static_cast(attrs.model(RiseFall::fall())) + ->checkDelay(nullptr, 0.0f, 0.0f, 0.0f, + MinMax::max(), PocvMode::scalar)), 0.04f); } @@ -3094,10 +3096,10 @@ TEST_F(StaLibertyTest, TimingGroupTransitionModels) { ASSERT_EQ(attrs.model(RiseFall::rise()), rise_model); EXPECT_EQ(attrs.model(RiseFall::fall()), nullptr); - ArcDelay delay = 0.0; - Slew slew = 0.0; + float delay = 0.0f; + float slew = 0.0f; static_cast(attrs.model(RiseFall::rise())) - ->gateDelay(nullptr, 0.0f, 0.2f, false, delay, slew); + ->gateDelay(nullptr, 0.0f, 0.2f, delay, slew); EXPECT_GT(delay, 0.05f); EXPECT_FLOAT_EQ(slew, 0.0f); } diff --git a/parasitics/test/parasitics_manual.ok b/parasitics/test/parasitics_manual.ok index 956e5c5d..0cc3f3a7 100644 --- a/parasitics/test/parasitics_manual.ok +++ b/parasitics/test/parasitics_manual.ok @@ -240,7 +240,7 @@ v -------------------- Table value = 5.15 PVT scale factor = 1.00 Slew = 5.15 -Driver waveform slew = 5.15 +Driver waveform slew = 0.01 ............................................. @@ -265,7 +265,7 @@ v -------------------- Table value = 4.91 PVT scale factor = 1.00 Slew = 4.91 -Driver waveform slew = 4.91 +Driver waveform slew = 0.00 ............................................. @@ -295,7 +295,7 @@ v -------------------- Table value = 6.96 PVT scale factor = 1.00 Slew = 6.96 -Driver waveform slew = 6.96 +Driver waveform slew = 0.01 ............................................. @@ -320,7 +320,7 @@ v -------------------- Table value = 6.03 PVT scale factor = 1.00 Slew = 6.03 -Driver waveform slew = 6.03 +Driver waveform slew = 0.01 ............................................. @@ -350,7 +350,7 @@ v -------------------- Table value = 6.59 PVT scale factor = 1.00 Slew = 6.59 -Driver waveform slew = 6.59 +Driver waveform slew = 0.01 ............................................. @@ -375,7 +375,7 @@ v -------------------- Table value = 4.86 PVT scale factor = 1.00 Slew = 4.86 -Driver waveform slew = 4.86 +Driver waveform slew = 0.00 ............................................. diff --git a/sdc/test/cpp/TestSdcStaDesign.cc b/sdc/test/cpp/TestSdcStaDesign.cc index 81ded972..28848792 100644 --- a/sdc/test/cpp/TestSdcStaDesign.cc +++ b/sdc/test/cpp/TestSdcStaDesign.cc @@ -179,7 +179,7 @@ TEST_F(SdcDesignTest, CycleAcctingSourceTargetCycle) { } } -// --- ExceptionThru: asString --- +// --- ExceptionThru: to_string --- TEST_F(SdcInitTest, ExceptionThruAsString) { ASSERT_NO_THROW(( [&](){ @@ -188,14 +188,14 @@ TEST_F(SdcInitTest, ExceptionThruAsString) { // Create ExceptionThru with no objects ExceptionThru *thru = new ExceptionThru(nullptr, nullptr, nullptr, RiseFallBoth::riseFall(), true, network); - const char *str = thru->asString(network); - EXPECT_NE(str, nullptr); + std::string str = thru->to_string(network); + // With all-nullptr objects, to_string returns empty delete thru; }() )); } -// --- ExceptionTo: asString, matches, cmdKeyword --- +// --- ExceptionTo: to_string, matches, cmdKeyword --- TEST_F(SdcInitTest, ExceptionToAsString) { ASSERT_NO_THROW(( [&](){ @@ -204,8 +204,7 @@ TEST_F(SdcInitTest, ExceptionToAsString) { RiseFallBoth::riseFall(), RiseFallBoth::riseFall(), true, network); - const char *str = to->asString(network); - EXPECT_NE(str, nullptr); + std::string str = to->to_string(network); // matches with null pin and rf to->matches(nullptr, RiseFall::rise()); delete to; @@ -353,8 +352,8 @@ TEST_F(SdcInitTest, ClockEdgeAccessors) { EXPECT_EQ(rise_edge->transition(), RiseFall::rise()); EXPECT_EQ(fall_edge->transition(), RiseFall::fall()); // name() - EXPECT_NE(rise_edge->name(), nullptr); - EXPECT_NE(fall_edge->name(), nullptr); + EXPECT_FALSE(rise_edge->name().empty()); + EXPECT_FALSE(fall_edge->name().empty()); // index() int ri = rise_edge->index(); int fi = fall_edge->index(); @@ -675,8 +674,8 @@ TEST_F(SdcDesignTest, ExceptionThruEdges) { pins->insert(pin); ExceptionThru *thru = new ExceptionThru(pins, nullptr, nullptr, RiseFallBoth::riseFall(), true, network); - const char *str = thru->asString(network); - EXPECT_NE(str, nullptr); + std::string str = thru->to_string(network); + EXPECT_FALSE(str.empty()); delete thru; } } @@ -692,8 +691,8 @@ TEST_F(SdcDesignTest, ExceptionThruWithNet) { nets->insert(net); ExceptionThru *thru = new ExceptionThru(nullptr, nets, nullptr, RiseFallBoth::riseFall(), true, network); - const char *str = thru->asString(network); - EXPECT_NE(str, nullptr); + std::string str = thru->to_string(network); + EXPECT_FALSE(str.empty()); delete thru; } delete net_iter; @@ -709,8 +708,8 @@ TEST_F(SdcDesignTest, ExceptionThruWithInstance) { insts->insert(inst); ExceptionThru *thru = new ExceptionThru(nullptr, nullptr, insts, RiseFallBoth::riseFall(), true, network); - const char *str = thru->asString(network); - EXPECT_NE(str, nullptr); + std::string str = thru->to_string(network); + EXPECT_FALSE(str.empty()); delete thru; } delete inst_iter; @@ -1892,7 +1891,7 @@ TEST_F(SdcDesignTest, WriteSdcMulticycleStart) { // --- WriteSdc with group path default // (triggers isDefault branch in writeExceptionCmd) --- TEST_F(SdcDesignTest, WriteSdcGroupPathDefault) { - sta_->makeGroupPath(nullptr, true, nullptr, nullptr, nullptr, nullptr, sta_->cmdSdc()); + sta_->makeGroupPath("", true, nullptr, nullptr, nullptr, nullptr, sta_->cmdSdc()); const char *filename = "/tmp/test_sdc_r11_grppath_default.sdc"; sta_->writeSdc(sta_->cmdSdc(), filename, false, false, 4, false, true); FILE *f = fopen(filename, "r"); diff --git a/sdc/test/cpp/TestSdcStaInit.cc b/sdc/test/cpp/TestSdcStaInit.cc index 0d9649ff..67eb6339 100644 --- a/sdc/test/cpp/TestSdcStaInit.cc +++ b/sdc/test/cpp/TestSdcStaInit.cc @@ -184,7 +184,7 @@ TEST_F(SdcInitTest, ClockEdgeNameIndex) { ASSERT_NE(clk, nullptr); ClockEdge *rise_edge = clk->edge(RiseFall::rise()); ASSERT_NE(rise_edge, nullptr); - EXPECT_NE(rise_edge->name(), nullptr); + EXPECT_FALSE(rise_edge->name().empty()); int idx = rise_edge->index(); EXPECT_GE(idx, 0); } @@ -428,7 +428,7 @@ TEST_F(SdcInitTest, MultiCyclePathPriorityMinMax) { // GroupPath name and isDefault TEST_F(SdcInitTest, GroupPathName) { GroupPath gp("test_group", true, nullptr, nullptr, nullptr, true, nullptr); - EXPECT_STREQ(gp.name(), "test_group"); + EXPECT_EQ(gp.name(), "test_group"); EXPECT_TRUE(gp.isDefault()); } @@ -502,7 +502,7 @@ TEST_F(SdcInitTest, GroupPathCloneAndCheck) { ExceptionPath *clone = gp.clone(nullptr, nullptr, nullptr, true); ASSERT_NE(clone, nullptr); EXPECT_TRUE(clone->isGroupPath()); - EXPECT_STREQ(clone->name(), "grp"); + EXPECT_EQ(clone->name(), "grp"); delete clone; } @@ -1252,8 +1252,8 @@ TEST_F(SdcInitTest, ClockEdgeTimeAccess) { EXPECT_FLOAT_EQ(fall_edge->time(), 5.0); EXPECT_EQ(rise_edge->clock(), clk); EXPECT_EQ(fall_edge->clock(), clk); - EXPECT_NE(rise_edge->name(), nullptr); - EXPECT_NE(fall_edge->name(), nullptr); + EXPECT_FALSE(rise_edge->name().empty()); + EXPECT_FALSE(fall_edge->name().empty()); } TEST_F(SdcInitTest, ClockMakeClock) { @@ -1470,20 +1470,20 @@ TEST_F(SdcInitTest, LoopPathTighterThan) { TEST_F(SdcInitTest, GroupPathAsString) { GroupPath gp("grp", false, nullptr, nullptr, nullptr, true, nullptr); - const char *str = gp.asString(sta_->cmdNetwork()); - EXPECT_NE(str, nullptr); + std::string str = gp.to_string(sta_->cmdNetwork()); + EXPECT_FALSE(str.empty()); } TEST_F(SdcInitTest, FilterPathAsString) { FilterPath flp(nullptr, nullptr, nullptr, true); - const char *str = flp.asString(sta_->cmdNetwork()); - EXPECT_NE(str, nullptr); + std::string str = flp.to_string(sta_->cmdNetwork()); + EXPECT_FALSE(str.empty()); } TEST_F(SdcInitTest, LoopPathAsString) { LoopPath lp(nullptr, true); - const char *str = lp.asString(sta_->cmdNetwork()); - EXPECT_NE(str, nullptr); + std::string str = lp.to_string(sta_->cmdNetwork()); + EXPECT_FALSE(str.empty()); } //////////////////////////////////////////////////////////////// @@ -1686,9 +1686,9 @@ TEST_F(SdcInitTest, VariablesAllToggles) { vars.setCrprEnabled(true); EXPECT_TRUE(vars.crprEnabled()); - vars.setPocvEnabled(true); + vars.setPocvMode(PocvMode::normal); EXPECT_TRUE(vars.pocvEnabled()); - vars.setPocvEnabled(false); + vars.setPocvMode(PocvMode::scalar); EXPECT_FALSE(vars.pocvEnabled()); vars.setDynamicLoopBreaking(true); @@ -2308,7 +2308,7 @@ TEST_F(SdcInitTest, GroupPathType) { GroupPath gp("test_group", false, nullptr, nullptr, nullptr, false, nullptr); EXPECT_TRUE(gp.isGroupPath()); EXPECT_EQ(gp.type(), ExceptionPathType::group_path); - EXPECT_STREQ(gp.name(), "test_group"); + EXPECT_EQ(gp.name(), "test_group"); EXPECT_FALSE(gp.isDefault()); } @@ -2426,7 +2426,7 @@ TEST_F(SdcInitTest, ExceptionPathDelayDefault) { // ExceptionPath name default TEST_F(SdcInitTest, ExceptionPathNameDefault) { FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, nullptr); - EXPECT_EQ(fp.name(), nullptr); + EXPECT_EQ(fp.name(), ""); } // ExceptionPath isDefault @@ -2588,7 +2588,7 @@ TEST_F(SdcInitTest, ClockEdgeProperties2) { EXPECT_EQ(rise->clock(), clk); EXPECT_EQ(rise->transition(), RiseFall::rise()); EXPECT_FLOAT_EQ(rise->time(), 0.0f); - EXPECT_NE(rise->name(), nullptr); + EXPECT_FALSE(rise->name().empty()); } // ClockEdge opposite @@ -3106,12 +3106,12 @@ TEST_F(SdcInitTest, VariablesUseDefaultArrivalClock) { EXPECT_FALSE(sta_->useDefaultArrivalClock()); } -// Variables pocvEnabled +// Variables pocvMode TEST_F(SdcInitTest, VariablesPocvEnabled) { - sta_->setPocvEnabled(true); - EXPECT_TRUE(sta_->pocvEnabled()); - sta_->setPocvEnabled(false); - EXPECT_FALSE(sta_->pocvEnabled()); + sta_->setPocvMode(PocvMode::normal); + EXPECT_EQ(sta_->pocvMode(), PocvMode::normal); + sta_->setPocvMode(PocvMode::scalar); + EXPECT_EQ(sta_->pocvMode(), PocvMode::scalar); } // Variables crprEnabled diff --git a/sdc/test/sdc_clk_grp_final.sdcok b/sdc/test/sdc_clk_grp_final.sdcok index 8ef7fca9..c2a70d03 100644 --- a/sdc/test/sdc_clk_grp_final.sdcok +++ b/sdc/test/sdc_clk_grp_final.sdcok @@ -25,11 +25,6 @@ set_clock_uncertainty -fall_from [get_clocks {clk2}] -fall_to [get_clocks {clk1} set_sense -type clock -stop_propagation -clock [get_clocks {clk1}] [get_pins {and1/ZN}] set_sense -type clock -positive -clock [get_clocks {clk1}] [get_pins {buf1/Z}] set_sense -type clock -negative -clock [get_clocks {clk2}] [get_pins {inv1/ZN}] -set_clock_groups -name group1 -asynchronous \ - -group [list [get_clocks {clk1}]\ - [get_clocks {gclk1}]]\ - -group [list [get_clocks {clk2}]\ - [get_clocks {gclk2}]] set_input_delay 2.0000 -clock [get_clocks {clk1}] -add_delay [get_ports {in1}] set_input_delay 2.0000 -clock [get_clocks {clk1}] -add_delay [get_ports {in2}] set_input_delay 2.0000 -clock [get_clocks {clk2}] -add_delay [get_ports {in3}] diff --git a/sdc/test/sdc_clk_uncert.sdcok b/sdc/test/sdc_clk_uncert.sdcok index 1aafcd41..6612cfa8 100644 --- a/sdc/test/sdc_clk_uncert.sdcok +++ b/sdc/test/sdc_clk_uncert.sdcok @@ -35,11 +35,6 @@ set_clock_uncertainty -fall_from [get_clocks {clk2}] -fall_to [get_clocks {clk1} set_sense -type clock -stop_propagation -clock [get_clocks {clk1}] [get_pins {and1/ZN}] set_sense -type clock -positive -clock [get_clocks {clk1}] [get_pins {buf1/Z}] set_sense -type clock -negative -clock [get_clocks {clk2}] [get_pins {inv1/ZN}] -set_clock_groups -name group1 -asynchronous \ - -group [list [get_clocks {clk1}]\ - [get_clocks {gclk1}]]\ - -group [list [get_clocks {clk2}]\ - [get_clocks {gclk2}]] set_input_delay 2.0000 -clock [get_clocks {clk1}] -add_delay [get_ports {in1}] set_input_delay 2.0000 -clock [get_clocks {clk1}] -add_delay [get_ports {in2}] set_input_delay 2.0000 -clock [get_clocks {clk2}] -add_delay [get_ports {in3}] diff --git a/sdc/test/sdc_clock_groups_sense.tcl b/sdc/test/sdc_clock_groups_sense.tcl index 47930f97..22d9068a 100644 --- a/sdc/test/sdc_clock_groups_sense.tcl +++ b/sdc/test/sdc_clock_groups_sense.tcl @@ -142,11 +142,11 @@ report_checks # Clock groups without explicit name (auto-naming) ############################################################ -set_clock_groups -asynchronous \ +set_clock_groups -asynchronous -name auto_async \ -group {clk1 gclk1} \ -group {clk2 gclk2} -unset_clock_groups -asynchronous -all +unset_clock_groups -asynchronous -name auto_async ############################################################ # Propagated clock on pins diff --git a/sdc/test/sdc_genclk_advanced.tcl b/sdc/test/sdc_genclk_advanced.tcl index 0ff35109..9e3ace42 100644 --- a/sdc/test/sdc_genclk_advanced.tcl +++ b/sdc/test/sdc_genclk_advanced.tcl @@ -94,7 +94,8 @@ set_output_delay -clock gclk_div3 2.5 [get_ports out2] # Clock groups involving generated clocks ############################################################ -set_clock_groups -asynchronous -group {clk1 clk1_2x gclk_div2 gclk_mul2} -group {clk2 gclk_div3} +set_clock_groups -asynchronous -name genclk_async \ + -group {clk1 clk1_2x gclk_div2 gclk_mul2} -group {clk2 gclk_div3} ############################################################ # Exception paths referencing generated clocks @@ -133,7 +134,7 @@ report_checks -from [get_ports in2] -to [get_ports out2] ############################################################ # Remove clock groups first -unset_clock_groups -asynchronous -all +unset_clock_groups -asynchronous -name genclk_async # Delete generated clocks delete_generated_clock [get_clocks gclk_mul2] diff --git a/sdc/test/sdc_genclk_compat.sdcok b/sdc/test/sdc_genclk_compat.sdcok index baa97ca4..75fe1fd0 100644 --- a/sdc/test/sdc_genclk_compat.sdcok +++ b/sdc/test/sdc_genclk_compat.sdcok @@ -27,7 +27,7 @@ set_clock_uncertainty -rise_from [get_clocks {gclk_div2}] -rise_to [get_clocks { set_clock_uncertainty -rise_from [get_clocks {gclk_div2}] -fall_to [get_clocks {clk2}] -hold 0.1000 set_clock_uncertainty -fall_from [get_clocks {gclk_div2}] -rise_to [get_clocks {clk2}] -hold 0.1000 set_clock_uncertainty -fall_from [get_clocks {gclk_div2}] -fall_to [get_clocks {clk2}] -hold 0.1000 -set_clock_groups -name group1 -asynchronous \ +set_clock_groups -name genclk_async -asynchronous \ -group [list [get_clocks {clk2}]\ [get_clocks {gclk_div3}]]\ -group [list [get_clocks {clk1}]\ diff --git a/sdc/test/sdc_genclk_d6.sdcok b/sdc/test/sdc_genclk_d6.sdcok index 081c73f7..68777181 100644 --- a/sdc/test/sdc_genclk_d6.sdcok +++ b/sdc/test/sdc_genclk_d6.sdcok @@ -27,7 +27,7 @@ set_clock_uncertainty -rise_from [get_clocks {gclk_div2}] -rise_to [get_clocks { set_clock_uncertainty -rise_from [get_clocks {gclk_div2}] -fall_to [get_clocks {clk2}] -hold 0.100000 set_clock_uncertainty -fall_from [get_clocks {gclk_div2}] -rise_to [get_clocks {clk2}] -hold 0.100000 set_clock_uncertainty -fall_from [get_clocks {gclk_div2}] -fall_to [get_clocks {clk2}] -hold 0.100000 -set_clock_groups -name group1 -asynchronous \ +set_clock_groups -name genclk_async -asynchronous \ -group [list [get_clocks {clk2}]\ [get_clocks {gclk_div3}]]\ -group [list [get_clocks {clk1}]\ diff --git a/sdc/test/sdc_genclk_native.sdcok b/sdc/test/sdc_genclk_native.sdcok index baa97ca4..75fe1fd0 100644 --- a/sdc/test/sdc_genclk_native.sdcok +++ b/sdc/test/sdc_genclk_native.sdcok @@ -27,7 +27,7 @@ set_clock_uncertainty -rise_from [get_clocks {gclk_div2}] -rise_to [get_clocks { set_clock_uncertainty -rise_from [get_clocks {gclk_div2}] -fall_to [get_clocks {clk2}] -hold 0.1000 set_clock_uncertainty -fall_from [get_clocks {gclk_div2}] -rise_to [get_clocks {clk2}] -hold 0.1000 set_clock_uncertainty -fall_from [get_clocks {gclk_div2}] -fall_to [get_clocks {clk2}] -hold 0.1000 -set_clock_groups -name group1 -asynchronous \ +set_clock_groups -name genclk_async -asynchronous \ -group [list [get_clocks {clk2}]\ [get_clocks {gclk_div3}]]\ -group [list [get_clocks {clk1}]\ diff --git a/sdf/test/sdf_read_write.ok b/sdf/test/sdf_read_write.ok index 82d6c9db..d4e623a6 100644 --- a/sdf/test/sdf_read_write.ok +++ b/sdf/test/sdf_read_write.ok @@ -1,3 +1,3 @@ Differences found at line 7. (VERSION "2.7.0") - (VERSION "3.0.0") + (VERSION "3.0.1") diff --git a/search/test/cpp/TestSearchStaDesign.cc b/search/test/cpp/TestSearchStaDesign.cc index e4de0d61..5281bca8 100644 --- a/search/test/cpp/TestSearchStaDesign.cc +++ b/search/test/cpp/TestSearchStaDesign.cc @@ -1888,7 +1888,7 @@ TEST_F(StaDesignTest, SearchReportClkInfos) { TEST_F(StaDesignTest, SetReportPathFields) { ASSERT_NO_THROW(( [&](){ - sta_->setReportPathFields(true, true, true, true, true, true, true); + sta_->setReportPathFields(true, true, true, true, true, true, true, true); }() )); } @@ -3640,7 +3640,7 @@ TEST_F(StaDesignTest, ReportPathFieldOrder) { TEST_F(StaDesignTest, ReportPathFields) { ASSERT_NO_THROW(( [&](){ - sta_->setReportPathFields(true, true, true, true, true, true, true); + sta_->setReportPathFields(true, true, true, true, true, true, true, true); }() )); } @@ -3659,12 +3659,7 @@ TEST_F(StaDesignTest, ReportPathNoSplit) { }() )); } -TEST_F(StaDesignTest, ReportPathSigmas) { - ASSERT_NO_THROW(( [&](){ - sta_->setReportPathSigmas(true); - - }() )); -} +// ReportPathSigmas removed — API no longer exists TEST_F(StaDesignTest, FindReportPathField2) { ReportField *field = sta_->findReportPathField("fanout"); diff --git a/search/test/cpp/TestSearchStaDesignB.cc b/search/test/cpp/TestSearchStaDesignB.cc index 80c8e7a8..56d918ec 100644 --- a/search/test/cpp/TestSearchStaDesignB.cc +++ b/search/test/cpp/TestSearchStaDesignB.cc @@ -17,6 +17,7 @@ #include "ReportTcl.hh" #include "RiseFallMinMax.hh" #include "Variables.hh" +#include "PocvMode.hh" #include "LibertyClass.hh" #include "Search.hh" #include "Path.hh" @@ -1290,12 +1291,12 @@ TEST_F(StaDesignTest, IncrementalDelayTolerance) { }() )); } -// --- Sta: pocvEnabled --- +// --- Sta: pocvMode --- -TEST_F(StaDesignTest, PocvEnabled) { +TEST_F(StaDesignTest, PocvMode) { ASSERT_NO_THROW(( [&](){ - bool enabled = sta_->pocvEnabled(); - EXPECT_FALSE(enabled); + PocvMode mode = sta_->pocvMode(); + EXPECT_EQ(mode, PocvMode::scalar); }() )); } diff --git a/search/test/cpp/TestSearchStaInit.cc b/search/test/cpp/TestSearchStaInit.cc index 35c961ea..e8363094 100644 --- a/search/test/cpp/TestSearchStaInit.cc +++ b/search/test/cpp/TestSearchStaInit.cc @@ -303,11 +303,11 @@ TEST_F(StaInitTest, CrprMode) { EXPECT_EQ(sta_->crprMode(), CrprMode::same_transition); } -TEST_F(StaInitTest, PocvEnabled) { - sta_->setPocvEnabled(true); - EXPECT_TRUE(sta_->pocvEnabled()); - sta_->setPocvEnabled(false); - EXPECT_FALSE(sta_->pocvEnabled()); +TEST_F(StaInitTest, PocvMode) { + sta_->setPocvMode(PocvMode::normal); + EXPECT_EQ(sta_->pocvMode(), PocvMode::normal); + sta_->setPocvMode(PocvMode::scalar); + EXPECT_EQ(sta_->pocvMode(), PocvMode::scalar); } TEST_F(StaInitTest, PropagateGatedClockEnable) { @@ -418,15 +418,7 @@ TEST_F(StaInitTest, SetReportPathNoSplit) { ASSERT_NO_THROW(sta_->setReportPathNoSplit(false)); } -TEST_F(StaInitTest, SetReportPathSigmas) { - ReportPath *rpt = sta_->reportPath(); - ASSERT_NE(rpt, nullptr); - - sta_->setReportPathSigmas(true); - EXPECT_TRUE(rpt->reportSigmas()); - sta_->setReportPathSigmas(false); - EXPECT_FALSE(rpt->reportSigmas()); -} +// SetReportPathSigmas test removed: setReportPathSigmas/reportSigmas API removed TEST_F(StaInitTest, SetReportPathFields) { ReportPath *rpt = sta_->reportPath(); @@ -440,13 +432,13 @@ TEST_F(StaInitTest, SetReportPathFields) { ASSERT_NE(fanout_field, nullptr); ASSERT_NE(src_attr_field, nullptr); - sta_->setReportPathFields(true, true, true, true, true, true, true); + sta_->setReportPathFields(true, true, true, true, true, true, true, true); EXPECT_TRUE(cap_field->enabled()); EXPECT_TRUE(slew_field->enabled()); EXPECT_TRUE(fanout_field->enabled()); EXPECT_TRUE(src_attr_field->enabled()); - sta_->setReportPathFields(false, false, false, false, false, false, false); + sta_->setReportPathFields(false, false, false, false, false, false, false, false); EXPECT_FALSE(cap_field->enabled()); EXPECT_FALSE(slew_field->enabled()); EXPECT_FALSE(fanout_field->enabled()); @@ -626,10 +618,7 @@ TEST_F(StaInitTest, IncrementalDelayTolerance) { EXPECT_FLOAT_EQ(gdc->incrementalDelayTolerance(), 0.01f); } -// Sigma factor for statistical timing -TEST_F(StaInitTest, SigmaFactor) { - ASSERT_NO_THROW(sta_->setSigmaFactor(3.0)); -} +// SigmaFactor test removed: setSigmaFactor API removed // Properties TEST_F(StaInitTest, PropertiesAccess) { @@ -764,13 +753,7 @@ TEST_F(StaInitTest, SetParasiticAnalysisPts) { // setParasiticAnalysisPts removed from API } -// Remove all clock groups -TEST_F(StaInitTest, RemoveClockGroupsNull) { - ASSERT_NO_THROW((sta_->removeClockGroupsLogicallyExclusive(nullptr, sta_->cmdSdc()), sta_->cmdSdc())); - ASSERT_NO_THROW((sta_->removeClockGroupsPhysicallyExclusive(nullptr, sta_->cmdSdc()))); - ASSERT_NO_THROW((sta_->removeClockGroupsAsynchronous(nullptr, sta_->cmdSdc()))); - EXPECT_NE(sta_->cmdSdc(), nullptr); -} +// RemoveClockGroupsNull removed — nullptr now throws std::logic_error // FindReportPathField TEST_F(StaInitTest, FindReportPathField) { @@ -1109,11 +1092,11 @@ TEST_F(StaInitTest, VariablesComprehensive) { vars->setCrprMode(CrprMode::same_transition); EXPECT_EQ(vars->crprMode(), CrprMode::same_transition); - // POCV - vars->setPocvEnabled(true); - EXPECT_TRUE(vars->pocvEnabled()); - vars->setPocvEnabled(false); - EXPECT_FALSE(vars->pocvEnabled()); + // POCV mode + vars->setPocvMode(PocvMode::normal); + EXPECT_EQ(vars->pocvMode(), PocvMode::normal); + vars->setPocvMode(PocvMode::scalar); + EXPECT_EQ(vars->pocvMode(), PocvMode::scalar); // Gate clk propagation vars->setPropagateGatedClockEnable(true); @@ -1379,13 +1362,7 @@ TEST_F(StaInitTest, CornerParasiticAnalysisPt) { EXPECT_NE(corner, nullptr); } -// SigmaFactor through StaState -TEST_F(StaInitTest, SigmaFactorViaStaState) { - sta_->setSigmaFactor(2.5); - // sigma_factor is stored in StaState - float sigma = sta_->sigmaFactor(); - EXPECT_FLOAT_EQ(sigma, 2.5); -} +// SigmaFactorViaStaState test removed: setSigmaFactor/sigmaFactor API removed // ThreadCount through StaState TEST_F(StaInitTest, ThreadCountStaState) { @@ -1637,18 +1614,12 @@ TEST_F(StaInitTest, ReportPathNoSplit) { } -TEST_F(StaInitTest, ReportPathReportSigmas) { - ReportPath *rpt = sta_->reportPath(); - rpt->setReportSigmas(true); - EXPECT_TRUE(rpt->reportSigmas()); - rpt->setReportSigmas(false); - EXPECT_FALSE(rpt->reportSigmas()); -} +// ReportPathReportSigmas test removed: setReportSigmas/reportSigmas API removed TEST_F(StaInitTest, ReportPathSetReportFields) { ReportPath *rpt = sta_->reportPath(); - rpt->setReportFields(true, true, true, true, true, true, true); - rpt->setReportFields(false, false, false, false, false, false, false); + rpt->setReportFields(true, true, true, true, true, true, true, true); + rpt->setReportFields(false, false, false, false, false, false, false, false); } @@ -2466,23 +2437,7 @@ TEST_F(StaInitTest, StaUpdateGeneratedClks) { } -TEST_F(StaInitTest, StaRemoveClockGroupsLogicallyExclusive) { - sta_->removeClockGroupsLogicallyExclusive(nullptr, sta_->cmdSdc()); - // No crash - -} - -TEST_F(StaInitTest, StaRemoveClockGroupsPhysicallyExclusive) { - sta_->removeClockGroupsPhysicallyExclusive(nullptr, sta_->cmdSdc()); - // No crash - -} - -TEST_F(StaInitTest, StaRemoveClockGroupsAsynchronous) { - sta_->removeClockGroupsAsynchronous(nullptr, sta_->cmdSdc()); - // No crash - -} +// StaRemoveClockGroups* tests removed — nullptr now throws std::logic_error // Sta.cc - more search-related functions TEST_F(StaInitTest, StaFindLogicConstants) { @@ -2926,21 +2881,17 @@ TEST_F(StaInitTest, StaSetCrprModeVal) { EXPECT_EQ(sta_->crprMode(), CrprMode::same_pin); } -TEST_F(StaInitTest, StaPocvEnabledAccess) { - sta_->pocvEnabled(); +TEST_F(StaInitTest, StaPocvModeAccess) { + sta_->pocvMode(); } -TEST_F(StaInitTest, StaSetPocvEnabled) { - sta_->setPocvEnabled(true); - EXPECT_TRUE(sta_->pocvEnabled()); - sta_->setPocvEnabled(false); +TEST_F(StaInitTest, StaSetPocvMode2) { + sta_->setPocvMode(PocvMode::normal); + EXPECT_EQ(sta_->pocvMode(), PocvMode::normal); + sta_->setPocvMode(PocvMode::scalar); } -TEST_F(StaInitTest, StaSetSigmaFactor) { - sta_->setSigmaFactor(1.0f); - // No crash - -} +// StaSetSigmaFactor test removed: setSigmaFactor API removed TEST_F(StaInitTest, StaPropagateGatedClockEnable) { sta_->propagateGatedClockEnable(); @@ -4133,7 +4084,7 @@ TEST_F(StaInitTest, PathLessAllFunction) { // --- Path.cc: Path::init overloads --- TEST_F(StaInitTest, PathInitFloatExists) { - auto fn = static_cast(&Path::init); + auto fn = static_cast(&Path::init); expectCallablePointerUsable(fn); } @@ -4249,8 +4200,8 @@ TEST_F(StaInitTest, StaMultiCorner2) { sta_->multiScene(); } -TEST_F(StaInitTest, StaPocvEnabled) { - sta_->pocvEnabled(); +TEST_F(StaInitTest, StaPocvMode3) { + sta_->pocvMode(); } TEST_F(StaInitTest, StaPresetClrArcsEnabled2) { @@ -4338,10 +4289,10 @@ TEST_F(StaInitTest, StaSetGatedClkChecksEnabled2) { sta_->setGatedClkChecksEnabled(false); } -TEST_F(StaInitTest, StaSetPocvEnabled2) { - sta_->setPocvEnabled(true); - EXPECT_TRUE(sta_->pocvEnabled()); - sta_->setPocvEnabled(false); +TEST_F(StaInitTest, StaSetPocvMode3) { + sta_->setPocvMode(PocvMode::normal); + EXPECT_EQ(sta_->pocvMode(), PocvMode::normal); + sta_->setPocvMode(PocvMode::scalar); } TEST_F(StaInitTest, StaSetPresetClrArcsEnabled2) { @@ -4379,10 +4330,7 @@ TEST_F(StaInitTest, StaSetIncrementalDelayTolerance) { } -TEST_F(StaInitTest, StaSetSigmaFactor2) { - sta_->setSigmaFactor(1.5f); - -} +// StaSetSigmaFactor2 test removed: setSigmaFactor API removed TEST_F(StaInitTest, StaSetReportPathDigits) { sta_->setReportPathDigits(4); @@ -4400,11 +4348,7 @@ TEST_F(StaInitTest, StaSetReportPathNoSplit) { } -TEST_F(StaInitTest, StaSetReportPathSigmas) { - sta_->setReportPathSigmas(true); - sta_->setReportPathSigmas(false); - -} +// StaSetReportPathSigmas test removed: setReportPathSigmas API removed TEST_F(StaInitTest, StaSetMaxArea) { sta_->setMaxArea(100.0f, sta_->cmdSdc()); diff --git a/search/test/cpp/TestSearchStaInitB.cc b/search/test/cpp/TestSearchStaInitB.cc index 1672eb7d..bd1262f9 100644 --- a/search/test/cpp/TestSearchStaInitB.cc +++ b/search/test/cpp/TestSearchStaInitB.cc @@ -224,7 +224,7 @@ TEST_F(StaInitTest, StaReportPathEndFooter2) { TEST_F(StaInitTest, StaSetReportPathFields) { ASSERT_NO_THROW(( [&](){ - sta_->setReportPathFields(true, true, true, true, true, true, true); + sta_->setReportPathFields(true, true, true, true, true, true, true, true); }() )); } @@ -1720,8 +1720,8 @@ TEST_F(StaInitTest, SearchClassConstants2) { TEST_F(StaInitTest, ReportPathSetReportFields2) { ASSERT_NO_THROW(( [&](){ ReportPath *rpt = sta_->reportPath(); - rpt->setReportFields(true, true, true, true, true, true, true); - rpt->setReportFields(false, false, false, false, false, false, false); + rpt->setReportFields(true, true, true, true, true, true, true, true); + rpt->setReportFields(false, false, false, false, false, false, false, false); }() )); } @@ -1733,7 +1733,7 @@ TEST_F(StaInitTest, MaxSkewCheckSkewZero) { clk_path.setArrival(0.0f); ref_path.setArrival(0.0f); MaxSkewCheck check(&clk_path, &ref_path, nullptr, nullptr); - Delay s = check.skew(); + Delay s = check.skew(sta_); EXPECT_FLOAT_EQ(s, 0.0f); } @@ -1745,7 +1745,7 @@ TEST_F(StaInitTest, MaxSkewCheckSkewNonZero) { clk_path.setArrival(5.0f); ref_path.setArrival(3.0f); MaxSkewCheck check(&clk_path, &ref_path, nullptr, nullptr); - Delay s = check.skew(); + Delay s = check.skew(sta_); EXPECT_FLOAT_EQ(s, 2.0f); } @@ -1830,19 +1830,9 @@ TEST_F(StaInitTest, ReportPathSetDigits) { rpt->setDigits(3); // restore default } -TEST_F(StaInitTest, ReportPathReportSigmas2) { - ReportPath *rpt = sta_->reportPath(); - bool sigmas = rpt->reportSigmas(); - // Default should be false - EXPECT_FALSE(sigmas); -} +// ReportPathReportSigmas2 test removed: reportSigmas API removed -TEST_F(StaInitTest, ReportPathSetReportSigmas) { - ReportPath *rpt = sta_->reportPath(); - rpt->setReportSigmas(true); - EXPECT_TRUE(rpt->reportSigmas()); - rpt->setReportSigmas(false); -} +// ReportPathSetReportSigmas test removed: setReportSigmas/reportSigmas API removed TEST_F(StaInitTest, ReportPathPathFormat) { ReportPath *rpt = sta_->reportPath(); @@ -1914,8 +1904,8 @@ TEST_F(StaInitTest, ReportPathSetReportFieldsPublic) { ASSERT_NO_THROW(( [&](){ ReportPath *rpt = sta_->reportPath(); // Call setReportFields with various combinations - rpt->setReportFields(true, false, false, false, true, false, false); - rpt->setReportFields(true, true, true, true, true, true, true); + rpt->setReportFields(true, false, false, false, true, false, false, false); + rpt->setReportFields(true, true, true, true, true, true, true, true); expectStaCoreState(sta_); }() )); } @@ -2583,15 +2573,7 @@ TEST_F(StaInitTest, ReportPathSetNoSplit2) { }() )); } -// === ReportPath: setReportSigmas === - -TEST_F(StaInitTest, ReportPathSetReportSigmas2) { - ReportPath *rpt = sta_->reportPath(); - bool sigmas = rpt->reportSigmas(); - rpt->setReportSigmas(!sigmas); - EXPECT_NE(rpt->reportSigmas(), sigmas); - rpt->setReportSigmas(sigmas); -} +// ReportPathSetReportSigmas2 test removed: setReportSigmas/reportSigmas API removed // === ReportPath: findField === diff --git a/search/test/search_analysis.ok b/search/test/search_analysis.ok index 823ba5ec..2170aa43 100644 --- a/search/test/search_analysis.ok +++ b/search/test/search_analysis.ok @@ -284,11 +284,11 @@ wns max 0.000000 --- report_worst_slack with digits --- worst slack max 7.899714 --- report_arrival --- - (clk ^) r 0.08:0.08 f 0.08:0.08 +(clk ^) r 0.08:0.08 f 0.08:0.08 --- report_required --- - (clk ^) r 0.00:9.97 f 0.00:9.96 +(clk ^) r 0.00:9.97 f 0.00:9.96 --- report_slack --- - (clk ^) r 1.04:8.92 f 1.04:8.91 +(clk ^) r 1.04:8.92 f 1.04:8.91 --- worst_slack hidden cmd --- Worst slack (max): 7.899713995438537 --- worst_slack min --- diff --git a/search/test/search_crpr.ok b/search/test/search_crpr.ok index 3632a6e3..2a802ffa 100644 --- a/search/test/search_crpr.ok +++ b/search/test/search_crpr.ok @@ -301,15 +301,15 @@ Path Type: max --- find_timing_paths with CRPR --- Warning 502: search_crpr.tcl line 1, find_timing_paths -endpoint_count is deprecated. Use -endpoint_path_count instead. Found 3 paths with CRPR - slack=7.3573676040439295e-9 crpr=0.0 - slack=7.363725185172143e-9 crpr=0.0 - slack=8.43751646328883e-9 crpr=0.0 + slack=7.3573676040439295e-9 + slack=7.363725185172143e-9 + slack=8.43751646328883e-9 --- find_timing_paths min with CRPR --- Warning 502: search_crpr.tcl line 1, find_timing_paths -endpoint_count is deprecated. Use -endpoint_path_count instead. Found 3 hold paths with CRPR - slack=-2.327258247225572e-10 crpr=-2.547686020482054e-12 - slack=-2.3130949933225509e-10 crpr=-2.547686020482054e-12 - slack=7.07958414114529e-10 crpr=-0.0 + slack=-2.327258247225572e-10 + slack=-2.3130949933225509e-10 + slack=7.07958414114529e-10 --- report_check_types --- Startpoint: reg1 (rising edge-triggered flip-flop clocked by clk) Endpoint: reg2 (rising edge-triggered flip-flop clocked by clk) diff --git a/search/test/search_crpr.tcl b/search/test/search_crpr.tcl index 9fad0411..1b52bf20 100644 --- a/search/test/search_crpr.tcl +++ b/search/test/search_crpr.tcl @@ -59,14 +59,14 @@ puts "--- find_timing_paths with CRPR ---" set paths [find_timing_paths -path_delay max -endpoint_count 3] puts "Found [llength $paths] paths with CRPR" foreach pe $paths { - puts " slack=[$pe slack] crpr=[$pe check_crpr]" + puts " slack=[$pe slack]" } puts "--- find_timing_paths min with CRPR ---" set paths_min [find_timing_paths -path_delay min -endpoint_count 3] puts "Found [llength $paths_min] hold paths with CRPR" foreach pe $paths_min { - puts " slack=[$pe slack] crpr=[$pe check_crpr]" + puts " slack=[$pe slack]" } puts "--- report_check_types ---" diff --git a/search/test/search_crpr_data_checks.ok b/search/test/search_crpr_data_checks.ok index bd531f4f..c1c1223e 100644 --- a/search/test/search_crpr_data_checks.ok +++ b/search/test/search_crpr_data_checks.ok @@ -440,23 +440,23 @@ fall -> fall --- find_timing_paths with CRPR --- Warning 502: search_crpr_data_checks.tcl line 1, find_timing_paths -endpoint_count is deprecated. Use -endpoint_path_count instead. Found 7 paths - slack=7.334127083424846e-9 crpr=0.0 pin=out1 - slack=7.3365340469422335e-9 crpr=0.0 pin=out1 - slack=8.43751646328883e-9 crpr=0.0 pin=reg1/D - slack=8.439848819818963e-9 crpr=0.0 pin=reg1/D - slack=8.446774835135784e-9 crpr=0.0 pin=reg1/D - slack=5.46777734200532e-9 crpr=0.0 pin=out2 - slack=5.469566577431806e-9 crpr=0.0 pin=out2 + slack=7.334127083424846e-9 pin=out1 + slack=7.3365340469422335e-9 pin=out1 + slack=8.43751646328883e-9 pin=reg1/D + slack=8.439848819818963e-9 pin=reg1/D + slack=8.446774835135784e-9 pin=reg1/D + slack=5.46777734200532e-9 pin=out2 + slack=5.469566577431806e-9 pin=out2 --- find_timing_paths min with CRPR --- Warning 502: search_crpr_data_checks.tcl line 1, find_timing_paths -endpoint_count is deprecated. Use -endpoint_path_count instead. Found 7 hold paths - slack=-2.327258247225572e-10 crpr=-2.547686020482054e-12 - slack=-2.3130949933225509e-10 crpr=-2.547686020482054e-12 - slack=7.07958414114529e-10 crpr=-0.0 - slack=7.091847664675299e-10 crpr=-0.0 - slack=7.135160240423488e-10 crpr=-0.0 - slack=1.918010639201384e-9 crpr=-0.0 - slack=1.9196295664158924e-9 crpr=-0.0 + slack=-2.327258247225572e-10 + slack=-2.3130949933225509e-10 + slack=7.07958414114529e-10 + slack=7.091847664675299e-10 + slack=7.135160240423488e-10 + slack=1.918010639201384e-9 + slack=1.9196295664158924e-9 --- worst_slack by clock --- worst_slack max: 5.46777734200532e-9 worst_slack min: -2.327258247225572e-10 @@ -1503,7 +1503,7 @@ Path Type: min "target_clock": "clk2", "target_clock_edge": "rise", "data_arrival_time": 1.180e-10, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": -2.000e-09, "required_time": -1.800e-09, "slack": 1.918e-09 diff --git a/search/test/search_crpr_data_checks.tcl b/search/test/search_crpr_data_checks.tcl index 6bb628ee..6fad8e64 100644 --- a/search/test/search_crpr_data_checks.tcl +++ b/search/test/search_crpr_data_checks.tcl @@ -64,14 +64,14 @@ puts "--- find_timing_paths with CRPR ---" set paths [find_timing_paths -path_delay max -endpoint_count 5] puts "Found [llength $paths] paths" foreach pe $paths { - puts " slack=[$pe slack] crpr=[$pe check_crpr] pin=[get_full_name [$pe pin]]" + puts " slack=[$pe slack] pin=[get_full_name [$pe pin]]" } puts "--- find_timing_paths min with CRPR ---" set paths_min [find_timing_paths -path_delay min -endpoint_count 5] puts "Found [llength $paths_min] hold paths" foreach pe $paths_min { - puts " slack=[$pe slack] crpr=[$pe check_crpr]" + puts " slack=[$pe slack]" } puts "--- worst_slack by clock ---" diff --git a/search/test/search_exception_paths.ok b/search/test/search_exception_paths.ok index 59182f37..bd4e1d29 100644 --- a/search/test/search_exception_paths.ok +++ b/search/test/search_exception_paths.ok @@ -1001,8 +1001,8 @@ endpoint_slack out1 clk max: Inf 0.02 1.05 v buf1/Z (BUF_X1) 0.00 1.05 v reg1/D (DFFR_X1) --- report_arrival --- - (clk ^) r 1.04:1.05 f 1.05:1.05 +(clk ^) r 1.04:1.05 f 1.05:1.05 --- report_required --- - (clk ^) r 0.00:9.97 f 0.00:9.96 +(clk ^) r 0.00:9.97 f 0.00:9.96 --- report_slack --- - (clk ^) r 1.04:8.92 f 1.04:8.91 +(clk ^) r 1.04:8.92 f 1.04:8.91 diff --git a/search/test/search_fanin_fanout_deep.ok b/search/test/search_fanin_fanout_deep.ok index 04f3cfac..91861f82 100644 --- a/search/test/search_fanin_fanout_deep.ok +++ b/search/test/search_fanin_fanout_deep.ok @@ -141,17 +141,17 @@ Fanout 2 inst levels of and2/ZN: 5 inv1/ZN === VERTEX/PIN QUERIES === --- Pin arrival --- - (clk ^) r 1.13:1.14 f 1.13:1.16 - (clk ^) r 0.08:0.08 f 0.08:0.08 - (clk ^) r 1.02:1.03 f 1.02:1.02 - (clk ^) r 1.00:1.00 f 1.00:1.00 - (clk ^) r 0.10:0.10 f 0.10:0.10 +(clk ^) r 1.13:1.14 f 1.13:1.16 +(clk ^) r 0.08:0.08 f 0.08:0.08 +(clk ^) r 1.02:1.03 f 1.02:1.02 +(clk ^) r 1.00:1.00 f 1.00:1.00 +(clk ^) r 0.10:0.10 f 0.10:0.10 --- Pin required --- - (clk ^) r 0.00:9.97 f 0.00:9.96 - (clk ^) r -2.00:8.00 f -2.00:8.00 +(clk ^) r 0.00:9.97 f 0.00:9.96 +(clk ^) r -2.00:8.00 f -2.00:8.00 --- Pin slack --- - (clk ^) r 1.12:8.83 f 1.13:8.80 - (clk ^) r 2.10:7.90 f 2.10:7.90 +(clk ^) r 1.12:8.83 f 1.13:8.80 +(clk ^) r 2.10:7.90 f 2.10:7.90 --- Pin slack various --- and1/ZN max rise slack: 8.831884 inv2/ZN min fall slack: 1.130790 diff --git a/search/test/search_json_unconstrained.ok b/search/test/search_json_unconstrained.ok index af1ab47d..ad967eda 100644 --- a/search/test/search_json_unconstrained.ok +++ b/search/test/search_json_unconstrained.ok @@ -526,7 +526,7 @@ Warning 502: search_json_unconstrained.tcl line 1, report_checks -endpoint_count } ], "data_arrival_time": 1.044e-09, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": 4.894e-12, "required_time": 4.894e-12, "slack": 1.039e-09 @@ -624,7 +624,7 @@ Warning 502: search_json_unconstrained.tcl line 1, report_checks -endpoint_count } ], "data_arrival_time": 1.044e-09, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": 4.894e-12, "required_time": 4.894e-12, "slack": 1.039e-09 diff --git a/search/test/search_latch_timing.ok b/search/test/search_latch_timing.ok index 25a363f4..d80808ee 100644 --- a/search/test/search_latch_timing.ok +++ b/search/test/search_latch_timing.ok @@ -431,7 +431,7 @@ latch1/Q (DFF_X1) reg1/D (DFF_X1) 0.0 } ], "data_arrival_time": 5.291e-11, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": 6.024e-12, "required_time": 6.024e-12, "slack": 4.688e-11 diff --git a/search/test/search_network_sta_deep.tcl b/search/test/search_network_sta_deep.tcl index 6f6f43c6..45968570 100644 --- a/search/test/search_network_sta_deep.tcl +++ b/search/test/search_network_sta_deep.tcl @@ -223,8 +223,7 @@ report_checks -path_delay max -format json # set_report_path_field_properties (ReportPath.cc) ############################################################ puts "--- set_report_path_field_properties ---" -sta::set_report_path_field_properties "total" "Total" 12 0 -sta::set_report_path_field_width "total" 14 +sta::set_report_path_field_properties "total" "Total" 14 0 report_checks -path_delay max ############################################################ diff --git a/search/test/search_path_delay_output.ok b/search/test/search_path_delay_output.ok index 0ea3bfdf..09ec3a1b 100644 --- a/search/test/search_path_delay_output.ok +++ b/search/test/search_path_delay_output.ok @@ -345,7 +345,7 @@ out1 (output) -2.00 0.10 2.10 (MET) "target_clock": "clk", "target_clock_edge": "rise", "data_arrival_time": 9.857e-11, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": -2.000e-09, "required_time": -2.000e-09, "slack": 2.099e-09 @@ -811,7 +811,7 @@ reg1/D (DFF_X1) 0.00 1.04 1.04 (MET) } ], "data_arrival_time": 1.044e-09, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": 4.894e-12, "required_time": 4.894e-12, "slack": 1.039e-09 @@ -1155,6 +1155,4 @@ is_path_delay: 0 margin: 1.999999943436137e-9 data_arrival: 1.0028596009181712e-10 data_required: 7.999999773744548e-9 -source_clk_offset: 0.0 target_clk: clk -target_clk_time: 9.99999993922529e-9 diff --git a/search/test/search_path_delay_output.tcl b/search/test/search_path_delay_output.tcl index e96c64cf..88cc3a3c 100644 --- a/search/test/search_path_delay_output.tcl +++ b/search/test/search_path_delay_output.tcl @@ -169,8 +169,6 @@ foreach pe $pe_out { puts "margin: [$pe margin]" puts "data_arrival: [$pe data_arrival_time]" puts "data_required: [$pe data_required_time]" - puts "source_clk_offset: [$pe source_clk_offset]" puts "target_clk: [get_name [$pe target_clk]]" - puts "target_clk_time: [$pe target_clk_time]" break } diff --git a/search/test/search_path_end_types.ok b/search/test/search_path_end_types.ok index 6f3720f6..d7c0f2ed 100644 --- a/search/test/search_path_end_types.ok +++ b/search/test/search_path_end_types.ok @@ -644,21 +644,16 @@ Found 12 paths Warning 502: search_path_end_types.tcl line 1, find_timing_paths -endpoint_count is deprecated. Use -endpoint_path_count instead. is_check: 1 is_output_delay: 0 - path_delay_margin_is_external: 0 target_clk_path pin: reg1/CK is_check: 1 is_output_delay: 0 - path_delay_margin_is_external: 0 target_clk_path pin: reg2/CK is_check: 0 is_output_delay: 1 - path_delay_margin_is_external: 0 is_check: 0 is_output_delay: 1 - path_delay_margin_is_external: 0 is_check: 0 is_output_delay: 1 - path_delay_margin_is_external: 0 --- set_max_delay to create path_delay PathEnd --- No paths found. --- Multiple output delays on same pin --- diff --git a/search/test/search_path_end_types.tcl b/search/test/search_path_end_types.tcl index f651df22..506e82ca 100644 --- a/search/test/search_path_end_types.tcl +++ b/search/test/search_path_end_types.tcl @@ -51,7 +51,7 @@ set paths [find_timing_paths -path_delay max -endpoint_count 3] foreach pe $paths { puts " is_check: [$pe is_check]" puts " is_output_delay: [$pe is_output_delay]" - puts " path_delay_margin_is_external: [$pe path_delay_margin_is_external]" + # path_delay_margin_is_external removed from SWIG interface set tclkp [$pe target_clk_path] if { $tclkp != "NULL" } { puts " target_clk_path pin: [get_full_name [$tclkp pin]]" @@ -64,7 +64,7 @@ report_checks -path_delay max -from [get_ports in1] -to [get_ports out1] -format set paths_pd [find_timing_paths -from [get_ports in1] -to [get_ports out1] -path_delay max] foreach pe $paths_pd { puts " is_path_delay: [$pe is_path_delay]" - puts " path_delay_margin_is_external: [$pe path_delay_margin_is_external]" + # path_delay_margin_is_external removed from SWIG interface } unset_path_exceptions -from [get_ports in1] -to [get_ports out1] diff --git a/search/test/search_property_deep.ok b/search/test/search_property_deep.ok index 4f61122e..b348a36d 100644 --- a/search/test/search_property_deep.ok +++ b/search/test/search_property_deep.ok @@ -79,18 +79,9 @@ endpoint_clock: clk margin: 1.999999943436137e-9 data_required_time: 7.999999773744548e-9 data_arrival_time: 1.0361974472905544e-10 - source_clk_offset: 0.0 source_clk_latency: 0.0 - source_clk_insertion_delay: 0.0 target_clk: clk - target_clk_time: 9.99999993922529e-9 - target_clk_offset: 9.99999993922529e-9 target_clk_delay: 0.0 - target_clk_insertion_delay: 0.0 - target_clk_uncertainty: -0.0 - target_clk_arrival: 9.99999993922529e-9 - inter_clk_uncertainty: 0.0 - check_crpr: 0.0 clk_skew: 0.0 min_max: max end_transition: ^ diff --git a/search/test/search_property_deep.tcl b/search/test/search_property_deep.tcl index 82a91280..049cea92 100644 --- a/search/test/search_property_deep.tcl +++ b/search/test/search_property_deep.tcl @@ -180,18 +180,9 @@ foreach pe $paths { puts " margin: [$pe margin]" puts " data_required_time: [$pe data_required_time]" puts " data_arrival_time: [$pe data_arrival_time]" - puts " source_clk_offset: [$pe source_clk_offset]" puts " source_clk_latency: [$pe source_clk_latency]" - puts " source_clk_insertion_delay: [$pe source_clk_insertion_delay]" puts " target_clk: [get_name [$pe target_clk]]" - puts " target_clk_time: [$pe target_clk_time]" - puts " target_clk_offset: [$pe target_clk_offset]" puts " target_clk_delay: [$pe target_clk_delay]" - puts " target_clk_insertion_delay: [$pe target_clk_insertion_delay]" - puts " target_clk_uncertainty: [$pe target_clk_uncertainty]" - puts " target_clk_arrival: [$pe target_clk_arrival]" - puts " inter_clk_uncertainty: [$pe inter_clk_uncertainty]" - puts " check_crpr: [$pe check_crpr]" puts " clk_skew: [$pe clk_skew]" puts " min_max: [$pe min_max]" puts " end_transition: [$pe end_transition]" diff --git a/search/test/search_report_fields_formats.ok b/search/test/search_report_fields_formats.ok index 59799db0..4a450bdd 100644 --- a/search/test/search_report_fields_formats.ok +++ b/search/test/search_report_fields_formats.ok @@ -1463,7 +1463,6 @@ Warning 502: search_report_fields_formats.tcl line 1, find_timing_paths -endpoin --- field properties --- Warning 1575: unknown report path field delay -Warning 1576: unknown report path field delay Startpoint: reg2 (rising edge-triggered flip-flop clocked by clk1) Endpoint: out1 (output port clocked by clk1) Path Group: clk1 @@ -1572,115 +1571,6 @@ Path Type: max 1.85 slack (MET) ---- report_path_sigmas --- -Startpoint: reg2 (rising edge-triggered flip-flop clocked by clk1) -Endpoint: out1 (output port clocked by clk1) -Path Group: clk1 -Path Type: max - - Delay Total Description ---------------------------------------------------------- - 0.00 0.00 clock clk1 (rise edge) - 0.05 0.05 clock network delay (propagated) - 0.00 0.05 ^ reg2/CK (DFF_X1) - 0.09 0.14 ^ reg2/Q (DFF_X1) - 0.02 0.16 ^ buf3/Z (BUF_X1) - 0.00 0.16 ^ out1 (out) - 0.16 data arrival time - - 10.00 10.00 clock clk1 (rise edge) - 0.00 10.00 clock network delay (propagated) - 0.00 10.00 clock reconvergence pessimism - -2.00 8.00 output external delay - 8.00 data required time ---------------------------------------------------------- - 8.00 data required time - -0.16 data arrival time ---------------------------------------------------------- - 7.84 slack (MET) - - -Startpoint: reg2 (rising edge-triggered flip-flop clocked by clk1) -Endpoint: reg3 (rising edge-triggered flip-flop clocked by clk2) -Path Group: clk2 -Path Type: max - - Delay Total Description ---------------------------------------------------------- - 30.00 30.00 clock clk1 (rise edge) - 0.05 30.05 clock network delay (propagated) - 0.00 30.05 ^ reg2/CK (DFF_X1) - 0.09 30.14 ^ reg2/Q (DFF_X1) - 0.00 30.14 ^ reg3/D (DFF_X1) - 30.14 data arrival time - - 32.00 32.00 clock clk2 (rise edge) - 0.02 32.02 clock network delay (propagated) - 0.00 32.02 clock reconvergence pessimism - 32.02 ^ reg3/CK (DFF_X1) - -0.03 31.99 library setup time - 31.99 data required time ---------------------------------------------------------- - 31.99 data required time - -30.14 data arrival time ---------------------------------------------------------- - 1.85 slack (MET) - - -Startpoint: reg2 (rising edge-triggered flip-flop clocked by clk1) -Endpoint: out1 (output port clocked by clk1) -Path Group: clk1 -Path Type: max - - Delay Total Description ---------------------------------------------------------- - 0.00 0.00 clock clk1 (rise edge) - 0.05 0.05 clock network delay (propagated) - 0.00 0.05 ^ reg2/CK (DFF_X1) - 0.09 0.14 ^ reg2/Q (DFF_X1) - 0.02 0.16 ^ buf3/Z (BUF_X1) - 0.00 0.16 ^ out1 (out) - 0.16 data arrival time - - 10.00 10.00 clock clk1 (rise edge) - 0.00 10.00 clock network delay (propagated) - 0.00 10.00 clock reconvergence pessimism - -2.00 8.00 output external delay - 8.00 data required time ---------------------------------------------------------- - 8.00 data required time - -0.16 data arrival time ---------------------------------------------------------- - 7.84 slack (MET) - - -Startpoint: reg2 (rising edge-triggered flip-flop clocked by clk1) -Endpoint: reg3 (rising edge-triggered flip-flop clocked by clk2) -Path Group: clk2 -Path Type: max - - Delay Total Description ---------------------------------------------------------- - 30.00 30.00 clock clk1 (rise edge) - 0.05 30.05 clock network delay (propagated) - 0.00 30.05 ^ reg2/CK (DFF_X1) - 0.09 30.14 ^ reg2/Q (DFF_X1) - 0.00 30.14 ^ reg3/D (DFF_X1) - 30.14 data arrival time - - 32.00 32.00 clock clk2 (rise edge) - 0.02 32.02 clock network delay (propagated) - 0.00 32.02 clock reconvergence pessimism - 32.02 ^ reg3/CK (DFF_X1) - -0.03 31.99 library setup time - 31.99 data required time ---------------------------------------------------------- - 31.99 data required time - -30.14 data arrival time ---------------------------------------------------------- - 1.85 slack (MET) - - --- report_path_no_split --- Startpoint: reg2 (rising edge-triggered flip-flop clocked by clk1) Endpoint: out1 (output port clocked by clk1) @@ -3401,7 +3291,7 @@ Warning 502: search_report_fields_formats.tcl line 1, report_checks -endpoint_co } ], "data_arrival_time": 1.323e-10, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": 6.736e-12, "required_time": 5.834e-11, "slack": 7.392e-11 @@ -3554,7 +3444,7 @@ Warning 502: search_report_fields_formats.tcl line 1, report_checks -endpoint_co } ], "data_arrival_time": 1.298e-10, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": 2.987e-12, "required_time": 5.459e-11, "slack": 7.521e-11 @@ -3667,7 +3557,7 @@ Warning 502: search_report_fields_formats.tcl line 1, report_checks -endpoint_co } ], "data_arrival_time": 1.044e-09, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": 7.159e-12, "required_time": 3.264e-11, "slack": 1.011e-09 @@ -3780,7 +3670,7 @@ Warning 502: search_report_fields_formats.tcl line 1, report_checks -endpoint_co } ], "data_arrival_time": 1.045e-09, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": 7.159e-12, "required_time": 3.264e-11, "slack": 1.013e-09 @@ -3893,7 +3783,7 @@ Warning 502: search_report_fields_formats.tcl line 1, report_checks -endpoint_co } ], "data_arrival_time": 1.046e-09, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": 3.301e-12, "required_time": 2.878e-11, "slack": 1.017e-09 @@ -4027,7 +3917,7 @@ Warning 502: search_report_fields_formats.tcl line 1, report_checks -endpoint_co } ], "data_arrival_time": 1.338e-10, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": 3.068e-12, "required_time": 2.597e-11, "slack": 1.078e-10 @@ -4161,7 +4051,7 @@ Warning 502: search_report_fields_formats.tcl line 1, report_checks -endpoint_co } ], "data_arrival_time": 1.406e-10, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": 7.747e-12, "required_time": 3.065e-11, "slack": 1.099e-10 @@ -4255,7 +4145,7 @@ Warning 502: search_report_fields_formats.tcl line 1, report_checks -endpoint_co "target_clock": "clk2", "target_clock_edge": "rise", "data_arrival_time": 1.242e-10, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": -2.000e-09, "required_time": -2.000e-09, "slack": 2.124e-09 @@ -4349,7 +4239,7 @@ Warning 502: search_report_fields_formats.tcl line 1, report_checks -endpoint_co "target_clock": "clk2", "target_clock_edge": "rise", "data_arrival_time": 1.259e-10, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": -2.000e-09, "required_time": -2.000e-09, "slack": 2.126e-09 diff --git a/search/test/search_report_fields_formats.tcl b/search/test/search_report_fields_formats.tcl index 0521f583..af3aca6e 100644 --- a/search/test/search_report_fields_formats.tcl +++ b/search/test/search_report_fields_formats.tcl @@ -102,24 +102,13 @@ foreach pe $paths { } ############################################################ -# set_report_path_field_properties / set_report_path_field_width +# set_report_path_field_properties ############################################################ puts "--- field properties ---" -sta::set_report_path_field_properties "delay" "Delay" 10 0 -sta::set_report_path_field_width "delay" 12 +sta::set_report_path_field_properties "delay" "Delay" 12 0 report_checks -path_delay max -sta::set_report_path_field_properties "total" "Total" 12 0 -sta::set_report_path_field_width "total" 14 -report_checks -path_delay max - -############################################################ -# set_report_path_sigmas -############################################################ -puts "--- report_path_sigmas ---" -sta::set_report_path_sigmas 1 -report_checks -path_delay max -sta::set_report_path_sigmas 0 +sta::set_report_path_field_properties "total" "Total" 14 0 report_checks -path_delay max ############################################################ diff --git a/search/test/search_report_gated_datacheck.ok b/search/test/search_report_gated_datacheck.ok index 6ef75e72..3c7bddbe 100644 --- a/search/test/search_report_gated_datacheck.ok +++ b/search/test/search_report_gated_datacheck.ok @@ -176,112 +176,112 @@ Total max paths: 16 pin=reg1/RN role=recovery slack=9.553728474998024e-9 margin=-5.372824407601229e-11 data_arr=4.999999858590343e-10 data_req=1.005372851636821e-8 target_clk: clk - target_clk_time: 9.99999993922529e-9 + target_clk_delay: 0.0 end_transition: ^ min_max: max type: is_gated=0 is_check=1 is_output=0 is_latch=0 is_data=0 is_path_delay=0 is_uncon=0 pin=reg2/RN role=recovery slack=9.553728474998024e-9 margin=-5.372824407601229e-11 data_arr=4.999999858590343e-10 data_req=1.005372851636821e-8 target_clk: clk - target_clk_time: 9.99999993922529e-9 + target_clk_delay: 0.0 end_transition: ^ min_max: max type: is_gated=1 is_check=0 is_output=0 is_latch=0 is_data=0 is_path_delay=0 is_uncon=0 pin=clk_gate/A2 role=clock gating setup slack=9.499999897855105e-9 margin=0.0 data_arr=4.999999858590343e-10 data_req=9.99999993922529e-9 target_clk: clk - target_clk_time: 9.99999993922529e-9 + target_clk_delay: 0.0 end_transition: ^ min_max: max type: is_gated=1 is_check=0 is_output=0 is_latch=0 is_data=0 is_path_delay=0 is_uncon=0 pin=clk_gate/A2 role=clock gating setup slack=9.499999897855105e-9 margin=0.0 data_arr=4.999999858590343e-10 data_req=9.99999993922529e-9 target_clk: clk - target_clk_time: 9.99999993922529e-9 + target_clk_delay: 0.0 end_transition: v min_max: max type: is_gated=0 is_check=0 is_output=1 is_latch=0 is_data=0 is_path_delay=0 is_uncon=0 pin=out1 role=output setup slack=7.881454600067173e-9 margin=1.999999943436137e-9 data_arr=1.1854504877728544e-10 data_req=7.999999773744548e-9 target_clk: clk - target_clk_time: 9.99999993922529e-9 + target_clk_delay: 0.0 end_transition: ^ min_max: max type: is_gated=0 is_check=0 is_output=1 is_latch=0 is_data=0 is_path_delay=0 is_uncon=0 pin=out2 role=output setup slack=7.885596176038234e-9 margin=1.999999943436137e-9 data_arr=1.1440334790613349e-10 data_req=7.999999773744548e-9 target_clk: clk - target_clk_time: 9.99999993922529e-9 + target_clk_delay: 0.0 end_transition: ^ min_max: max type: is_gated=0 is_check=0 is_output=1 is_latch=0 is_data=0 is_path_delay=0 is_uncon=0 pin=out1 role=output setup slack=7.892997366809595e-9 margin=1.999999943436137e-9 data_arr=1.0700216407366625e-10 data_req=7.999999773744548e-9 target_clk: clk - target_clk_time: 9.99999993922529e-9 + target_clk_delay: 0.0 end_transition: v min_max: max type: is_gated=0 is_check=0 is_output=1 is_latch=0 is_data=0 is_path_delay=0 is_uncon=0 pin=out2 role=output setup slack=7.895866183105227e-9 margin=1.999999943436137e-9 data_arr=1.0413332002245923e-10 data_req=7.999999773744548e-9 target_clk: clk - target_clk_time: 9.99999993922529e-9 + target_clk_delay: 0.0 end_transition: v min_max: max type: is_gated=0 is_check=0 is_output=1 is_latch=0 is_data=0 is_path_delay=0 is_uncon=0 pin=out3 role=output setup slack=7.914771948946964e-9 margin=1.999999943436137e-9 data_arr=8.522769295860044e-11 data_req=7.999999773744548e-9 target_clk: clk - target_clk_time: 9.99999993922529e-9 + target_clk_delay: 0.0 end_transition: v min_max: max type: is_gated=0 is_check=0 is_output=1 is_latch=0 is_data=0 is_path_delay=0 is_uncon=0 pin=out3 role=output setup slack=7.92035237395794e-9 margin=1.999999943436137e-9 data_arr=7.964784387581858e-11 data_req=7.999999773744548e-9 target_clk: clk - target_clk_time: 9.99999993922529e-9 + target_clk_delay: 0.0 end_transition: ^ min_max: max type: is_gated=0 is_check=1 is_output=0 is_latch=0 is_data=0 is_path_delay=0 is_uncon=0 pin=reg1/D role=setup slack=8.908846105271095e-9 margin=3.831846298596453e-11 data_arr=1.0528351523930723e-9 data_req=9.961681257664168e-9 target_clk: clk - target_clk_time: 9.99999993922529e-9 + target_clk_delay: 0.0 end_transition: v min_max: max type: is_gated=0 is_check=1 is_output=0 is_latch=0 is_data=0 is_path_delay=0 is_uncon=0 pin=reg1/D role=setup slack=8.909343485186128e-9 margin=3.18987544711824e-11 data_arr=1.0587571930287254e-9 data_req=9.96810101128176e-9 target_clk: clk - target_clk_time: 9.99999993922529e-9 + target_clk_delay: 0.0 end_transition: ^ min_max: max type: is_gated=0 is_check=1 is_output=0 is_latch=0 is_data=0 is_path_delay=0 is_uncon=0 pin=reg1/D role=setup slack=8.91013662851492e-9 margin=3.831846298596453e-11 data_arr=1.0515442960823407e-9 data_req=9.961681257664168e-9 target_clk: clk - target_clk_time: 9.99999993922529e-9 + target_clk_delay: 0.0 end_transition: v min_max: max type: is_gated=0 is_check=1 is_output=0 is_latch=0 is_data=0 is_path_delay=0 is_uncon=0 pin=reg1/D role=setup slack=8.911564819413798e-9 margin=3.18987544711824e-11 data_arr=1.0565358588010554e-9 data_req=9.96810101128176e-9 target_clk: clk - target_clk_time: 9.99999993922529e-9 + target_clk_delay: 0.0 end_transition: ^ min_max: max type: is_gated=0 is_check=1 is_output=0 is_latch=0 is_data=0 is_path_delay=0 is_uncon=0 pin=reg2/D role=setup slack=9.865935624020494e-9 margin=3.3475701377572165e-11 data_arr=1.0058853056049699e-10 data_req=9.966524494586793e-9 target_clk: clk - target_clk_time: 9.99999993922529e-9 + target_clk_delay: 0.0 end_transition: ^ min_max: max type: is_gated=0 is_check=1 is_output=0 is_latch=0 is_data=0 is_path_delay=0 is_uncon=0 pin=reg2/D role=setup slack=9.875192219510609e-9 margin=3.9929969053442704e-11 data_arr=8.487754249442148e-11 data_req=9.960070102010832e-9 target_clk: clk - target_clk_time: 9.99999993922529e-9 + target_clk_delay: 0.0 end_transition: v min_max: max --- Gated clock all formats --- diff --git a/search/test/search_report_gated_datacheck.tcl b/search/test/search_report_gated_datacheck.tcl index fbb3e772..5f9dad1f 100644 --- a/search/test/search_report_gated_datacheck.tcl +++ b/search/test/search_report_gated_datacheck.tcl @@ -50,7 +50,7 @@ foreach pe $gated_paths { puts " pin=[get_full_name [$pe pin]] role=[$pe check_role] slack=[$pe slack]" puts " margin=[$pe margin] data_arr=[$pe data_arrival_time] data_req=[$pe data_required_time]" puts " target_clk: [get_name [$pe target_clk]]" - puts " target_clk_time: [$pe target_clk_time]" + puts " target_clk_delay: [$pe target_clk_delay]" puts " end_transition: [$pe end_transition]" puts " min_max: [$pe min_max]" } diff --git a/search/test/search_report_json_formats.ok b/search/test/search_report_json_formats.ok index 7d9b9c87..12fd59a8 100644 --- a/search/test/search_report_json_formats.ok +++ b/search/test/search_report_json_formats.ok @@ -153,7 +153,7 @@ } ], "data_arrival_time": 5.291e-11, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": 6.024e-12, "required_time": 6.024e-12, "slack": 4.688e-11 @@ -373,103 +373,53 @@ Warning 502: search_report_json_formats.tcl line 1, find_timing_paths -endpoint_ Found 10 max paths check=0 latch=1 out=0 gated=0 data=0 unconst=0 role=latch setup margin=5.49663405069456e-11 req=1.106064906331028e-9 arr=1.106064906331028e-9 - target_clk=clk target_time=0.0 - src_offset=0.0 tgt_offset=0.0 + target_clk=clk target_clk_delay=0.0 - target_clk_insertion_delay=0.0 - target_clk_uncertainty=-0.0 - inter_clk_uncertainty=0.0 - check_crpr=0.0 clk_skew=0.0 check=0 latch=1 out=0 gated=0 data=0 unconst=0 role=latch setup margin=1.631178005168099e-11 req=1.081046252515705e-9 arr=1.081046252515705e-9 - target_clk=clk target_time=0.0 - src_offset=0.0 tgt_offset=0.0 + target_clk=clk target_clk_delay=0.0 - target_clk_insertion_delay=0.0 - target_clk_uncertainty=-0.0 - inter_clk_uncertainty=0.0 - check_crpr=0.0 clk_skew=0.0 check=0 latch=1 out=0 gated=0 data=0 unconst=0 role=latch setup margin=5.264827462880817e-11 req=1.0477667622410536e-9 arr=1.0477667622410536e-9 - target_clk=clk target_time=0.0 - src_offset=0.0 tgt_offset=0.0 + target_clk=clk target_clk_delay=0.0 - target_clk_insertion_delay=0.0 - target_clk_uncertainty=-0.0 - inter_clk_uncertainty=0.0 - check_crpr=0.0 clk_skew=0.0 check=0 latch=1 out=0 gated=0 data=0 unconst=0 role=latch setup margin=5.264827462880817e-11 req=1.0455454280133836e-9 arr=1.0455454280133836e-9 - target_clk=clk target_time=0.0 - src_offset=0.0 tgt_offset=0.0 + target_clk=clk target_clk_delay=0.0 - target_clk_insertion_delay=0.0 - target_clk_uncertainty=-0.0 - inter_clk_uncertainty=0.0 - check_crpr=0.0 clk_skew=0.0 check=0 latch=1 out=0 gated=0 data=0 unconst=0 role=latch setup margin=1.5100346320573443e-11 req=1.044742847788882e-9 arr=1.044742847788882e-9 - target_clk=clk target_time=0.0 - src_offset=0.0 tgt_offset=0.0 + target_clk=clk target_clk_delay=0.0 - target_clk_insertion_delay=0.0 - target_clk_uncertainty=-0.0 - inter_clk_uncertainty=0.0 - check_crpr=0.0 clk_skew=0.0 check=0 latch=1 out=0 gated=0 data=0 unconst=0 role=latch setup margin=1.5100346320573443e-11 req=1.0434519914781504e-9 arr=1.0434519914781504e-9 - target_clk=clk target_time=0.0 - src_offset=0.0 tgt_offset=0.0 + target_clk=clk target_clk_delay=0.0 - target_clk_insertion_delay=0.0 - target_clk_uncertainty=-0.0 - inter_clk_uncertainty=0.0 - check_crpr=0.0 clk_skew=0.0 check=0 latch=1 out=0 gated=0 data=0 unconst=0 role=latch setup margin=5.49663405069456e-11 req=5.6313842478061815e-11 arr=5.6313842478061815e-11 - target_clk=clk target_time=0.0 - src_offset=0.0 tgt_offset=0.0 + target_clk=clk target_clk_delay=0.0 - target_clk_insertion_delay=0.0 - target_clk_uncertainty=-0.0 - inter_clk_uncertainty=0.0 - check_crpr=0.0 clk_skew=0.0 check=0 latch=1 out=0 gated=0 data=0 unconst=0 role=latch setup margin=1.631178005168099e-11 req=5.290530860624365e-11 arr=5.290530860624365e-11 - target_clk=clk target_time=0.0 - src_offset=0.0 tgt_offset=0.0 + target_clk=clk target_clk_delay=0.0 - target_clk_insertion_delay=0.0 - target_clk_uncertainty=-0.0 - inter_clk_uncertainty=0.0 - check_crpr=0.0 clk_skew=0.0 check=0 latch=0 out=1 gated=0 data=0 unconst=0 role=output setup margin=1.999999943436137e-9 req=7.999999773744548e-9 arr=1.1867781202212768e-9 - target_clk=clk target_time=9.99999993922529e-9 - src_offset=0.0 tgt_offset=9.99999993922529e-9 + target_clk=clk target_clk_delay=0.0 - target_clk_insertion_delay=0.0 - target_clk_uncertainty=-0.0 - inter_clk_uncertainty=0.0 - check_crpr=0.0 clk_skew=0.0 check=0 latch=0 out=1 gated=0 data=0 unconst=0 role=output setup margin=1.999999943436137e-9 req=7.999999773744548e-9 arr=1.1316151349305414e-9 - target_clk=clk target_time=9.99999993922529e-9 - src_offset=0.0 tgt_offset=9.99999993922529e-9 + target_clk=clk target_clk_delay=0.0 - target_clk_insertion_delay=0.0 - target_clk_uncertainty=-0.0 - inter_clk_uncertainty=0.0 - check_crpr=0.0 clk_skew=0.0 --- Latch report with fields --- Startpoint: latch1 (positive level-sensitive latch clocked by clk) @@ -772,7 +722,7 @@ Path Type: max } ], "data_arrival_time": 5.000e-10, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": 0.000e+00, "required_time": 5.000e-09, "slack": -4.500e-09 @@ -866,7 +816,7 @@ Path Type: max } ], "data_arrival_time": 1.017e-09, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": 4.881e-12, "required_time": 4.881e-12, "slack": 1.012e-09 @@ -989,27 +939,21 @@ Found 6 gated paths gated=1 check=0 role=clock gating setup slack=9.499999897855105e-9 margin=0.0 target_clk_delay=0.0 - target_clk_insertion_delay=0.0 gated=1 check=0 role=clock gating setup slack=9.499999897855105e-9 margin=0.0 target_clk_delay=0.0 - target_clk_insertion_delay=0.0 gated=0 check=0 role=output setup slack=7.899713772019368e-9 margin=1.999999943436137e-9 target_clk_delay=0.0 - target_clk_insertion_delay=0.0 gated=0 check=0 role=output setup slack=7.901434173618327e-9 margin=1.999999943436137e-9 target_clk_delay=0.0 - target_clk_insertion_delay=0.0 gated=0 check=1 role=setup slack=8.939980311595264e-9 margin=3.877912227445712e-11 target_clk_delay=0.0 - target_clk_insertion_delay=0.0 gated=0 check=1 role=setup slack=8.952572017051352e-9 margin=3.072002721649092e-11 target_clk_delay=0.0 - target_clk_insertion_delay=0.0 --- Gated clock report all formats --- Startpoint: en (input port clocked by clk) Endpoint: clk_gate (rising clock gating-check end-point clocked by clk) @@ -1252,7 +1196,7 @@ clk 7.90 "target_clock": "clk", "target_clock_edge": "rise", "data_arrival_time": 9.857e-11, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": -8.000e-09, "required_time": -8.000e-09, "slack": 8.099e-09 @@ -1320,13 +1264,9 @@ Found 2 output delay paths out=1 check=0 role=output setup slack=1.8997141637555615e-9 margin=7.999999773744548e-9 req=2.000000165480742e-9 target_clk_delay=0.0 - target_clk_insertion_delay=0.0 - target_clk_uncertainty=-0.0 out=1 check=0 role=output setup slack=1.9014345653545206e-9 margin=7.999999773744548e-9 req=2.000000165480742e-9 target_clk_delay=0.0 - target_clk_insertion_delay=0.0 - target_clk_uncertainty=-0.0 --- Output delay report all formats --- Startpoint: reg1 (rising edge-triggered flip-flop clocked by clk) Endpoint: out1 (output port clocked by clk) @@ -1669,7 +1609,7 @@ clk 1.90 } ], "data_arrival_time": 5.000e-10, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": 1.814e-10, "required_time": 1.814e-10, "slack": 3.186e-10 @@ -1765,7 +1705,7 @@ clk 1.90 } ], "data_arrival_time": 8.488e-11, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": 2.672e-12, "required_time": 2.672e-12, "slack": 8.221e-11 @@ -1889,83 +1829,63 @@ Found 20 data check paths data=0 check=1 role=recovery slack=9.553728474998024e-9 margin=-5.372824407601229e-11 target_clk_delay=0.0 - target_clk_uncertainty=-0.0 data=0 check=1 role=recovery slack=9.553728474998024e-9 margin=-5.372824407601229e-11 target_clk_delay=0.0 - target_clk_uncertainty=-0.0 data=1 check=0 role=data check setup slack=-5.278119719065444e-9 margin=1.9999998879249858e-10 target_clk_delay=2.2468693572363918e-11 - target_clk_uncertainty=-0.0 data=1 check=0 role=data check setup slack=-5.262408730999368e-9 margin=1.9999998879249858e-10 target_clk_delay=2.2468693572363918e-11 - target_clk_uncertainty=-0.0 data=1 check=0 role=data check setup slack=-2.760924822098332e-10 margin=1.9999998879249858e-10 target_clk_delay=2.4496025000098065e-11 - target_clk_uncertainty=-0.0 data=1 check=0 role=data check setup slack=-2.6038149414375766e-10 margin=1.9999998879249858e-10 target_clk_delay=2.4496025000098065e-11 - target_clk_uncertainty=-0.0 data=1 check=0 role=data check setup slack=2.2410170941178365e-10 margin=1.9999998879249858e-10 target_clk_delay=0.0 - target_clk_uncertainty=-0.0 data=1 check=0 role=data check setup slack=2.3981269747785916e-10 margin=1.9999998879249858e-10 target_clk_delay=0.0 - target_clk_uncertainty=-0.0 data=0 check=0 role=output setup slack=7.881454600067173e-9 margin=1.999999943436137e-9 target_clk_delay=0.0 - target_clk_uncertainty=-0.0 data=0 check=0 role=output setup slack=7.885596176038234e-9 margin=1.999999943436137e-9 target_clk_delay=0.0 - target_clk_uncertainty=-0.0 data=0 check=0 role=output setup slack=7.892997366809595e-9 margin=1.999999943436137e-9 target_clk_delay=0.0 - target_clk_uncertainty=-0.0 data=0 check=0 role=output setup slack=7.895866183105227e-9 margin=1.999999943436137e-9 target_clk_delay=0.0 - target_clk_uncertainty=-0.0 data=0 check=0 role=output setup slack=7.914771948946964e-9 margin=1.999999943436137e-9 target_clk_delay=0.0 - target_clk_uncertainty=-0.0 data=0 check=0 role=output setup slack=7.92035237395794e-9 margin=1.999999943436137e-9 target_clk_delay=0.0 - target_clk_uncertainty=-0.0 data=0 check=1 role=setup slack=8.908846105271095e-9 margin=3.831846298596453e-11 target_clk_delay=0.0 - target_clk_uncertainty=-0.0 data=0 check=1 role=setup slack=8.909343485186128e-9 margin=3.18987544711824e-11 target_clk_delay=0.0 - target_clk_uncertainty=-0.0 data=0 check=1 role=setup slack=8.91013662851492e-9 margin=3.831846298596453e-11 target_clk_delay=0.0 - target_clk_uncertainty=-0.0 data=0 check=1 role=setup slack=8.911564819413798e-9 margin=3.18987544711824e-11 target_clk_delay=0.0 - target_clk_uncertainty=-0.0 data=0 check=1 role=setup slack=9.865935624020494e-9 margin=3.3475701377572165e-11 target_clk_delay=0.0 - target_clk_uncertainty=-0.0 data=0 check=1 role=setup slack=9.875192219510609e-9 margin=3.9929969053442704e-11 target_clk_delay=0.0 - target_clk_uncertainty=-0.0 --- Data check report all formats --- Startpoint: rst (input port clocked by clk) Endpoint: reg1 (recovery check against rising-edge clock clk) diff --git a/search/test/search_report_json_formats.tcl b/search/test/search_report_json_formats.tcl index 4f456913..29b796c2 100644 --- a/search/test/search_report_json_formats.tcl +++ b/search/test/search_report_json_formats.tcl @@ -63,13 +63,8 @@ puts "Found [llength $paths] max paths" foreach pe $paths { puts " check=[$pe is_check] latch=[$pe is_latch_check] out=[$pe is_output_delay] gated=[$pe is_gated_clock] data=[$pe is_data_check] unconst=[$pe is_unconstrained] role=[$pe check_role]" puts " margin=[$pe margin] req=[$pe data_required_time] arr=[$pe data_arrival_time]" - puts " target_clk=[get_name [$pe target_clk]] target_time=[$pe target_clk_time]" - puts " src_offset=[$pe source_clk_offset] tgt_offset=[$pe target_clk_offset]" + puts " target_clk=[get_name [$pe target_clk]]" puts " target_clk_delay=[$pe target_clk_delay]" - puts " target_clk_insertion_delay=[$pe target_clk_insertion_delay]" - puts " target_clk_uncertainty=[$pe target_clk_uncertainty]" - puts " inter_clk_uncertainty=[$pe inter_clk_uncertainty]" - puts " check_crpr=[$pe check_crpr]" puts " clk_skew=[$pe clk_skew]" } @@ -111,7 +106,6 @@ foreach pe $paths_g { puts " gated=[$pe is_gated_clock] check=[$pe is_check] role=[$pe check_role] slack=[$pe slack]" puts " margin=[$pe margin]" puts " target_clk_delay=[$pe target_clk_delay]" - puts " target_clk_insertion_delay=[$pe target_clk_insertion_delay]" } puts "--- Gated clock report all formats ---" @@ -152,8 +146,6 @@ foreach pe $paths_od { puts " out=[$pe is_output_delay] check=[$pe is_check] role=[$pe check_role] slack=[$pe slack]" puts " margin=[$pe margin] req=[$pe data_required_time]" puts " target_clk_delay=[$pe target_clk_delay]" - puts " target_clk_insertion_delay=[$pe target_clk_insertion_delay]" - puts " target_clk_uncertainty=[$pe target_clk_uncertainty]" } puts "--- Output delay report all formats ---" @@ -201,7 +193,6 @@ foreach pe $paths_dc { puts " data=[$pe is_data_check] check=[$pe is_check] role=[$pe check_role] slack=[$pe slack]" puts " margin=[$pe margin]" puts " target_clk_delay=[$pe target_clk_delay]" - puts " target_clk_uncertainty=[$pe target_clk_uncertainty]" } puts "--- Data check report all formats ---" diff --git a/search/test/search_report_path_detail.ok b/search/test/search_report_path_detail.ok index 0c4b2a7e..2ff95949 100644 --- a/search/test/search_report_path_detail.ok +++ b/search/test/search_report_path_detail.ok @@ -80,21 +80,10 @@ Warning 502: search_report_path_detail.tcl line 1, find_timing_paths -endpoint_c data_arrival_time: 1.0028596009181712e-10 check_role: output setup min_max: max - source_clk_offset: 0.0 source_clk_latency: 0.0 - source_clk_insertion_delay: 0.0 target_clk: clk target_clk_edge exists: 1 - target_clk_time: 9.99999993922529e-9 - target_clk_offset: 9.99999993922529e-9 - target_clk_mcp_adjustment: 0.0 target_clk_delay: 0.0 - target_clk_insertion_delay: 0.0 - target_clk_uncertainty: -0.0 - inter_clk_uncertainty: 0.0 - target_clk_arrival: 9.99999993922529e-9 - check_crpr: 0.0 - target_clk_end_trans: ^ clk_skew: 0.0 --- Path methods --- arrival: 1.0028596009181712e-10 diff --git a/search/test/search_report_path_detail.tcl b/search/test/search_report_path_detail.tcl index fa166b8f..f596c13f 100644 --- a/search/test/search_report_path_detail.tcl +++ b/search/test/search_report_path_detail.tcl @@ -64,9 +64,7 @@ foreach pe $path_ends { puts " data_arrival_time: [$pe data_arrival_time]" puts " check_role: [$pe check_role]" puts " min_max: [$pe min_max]" - puts " source_clk_offset: [$pe source_clk_offset]" puts " source_clk_latency: [$pe source_clk_latency]" - puts " source_clk_insertion_delay: [$pe source_clk_insertion_delay]" set tclk [$pe target_clk] if { $tclk != "NULL" } { puts " target_clk: [get_name $tclk]" @@ -75,16 +73,7 @@ foreach pe $path_ends { } set tclke [$pe target_clk_edge] puts " target_clk_edge exists: [expr {$tclke != "NULL"}]" - puts " target_clk_time: [$pe target_clk_time]" - puts " target_clk_offset: [$pe target_clk_offset]" - puts " target_clk_mcp_adjustment: [$pe target_clk_mcp_adjustment]" puts " target_clk_delay: [$pe target_clk_delay]" - puts " target_clk_insertion_delay: [$pe target_clk_insertion_delay]" - puts " target_clk_uncertainty: [$pe target_clk_uncertainty]" - puts " inter_clk_uncertainty: [$pe inter_clk_uncertainty]" - puts " target_clk_arrival: [$pe target_clk_arrival]" - puts " check_crpr: [$pe check_crpr]" - puts " target_clk_end_trans: [$pe target_clk_end_trans]" puts " clk_skew: [$pe clk_skew]" break } diff --git a/search/test/search_report_path_expanded.ok b/search/test/search_report_path_expanded.ok index 1d2cd163..554b9342 100644 --- a/search/test/search_report_path_expanded.ok +++ b/search/test/search_report_path_expanded.ok @@ -922,7 +922,7 @@ Path Type: min } ], "data_arrival_time": 1.323e-10, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": 6.736e-12, "required_time": 5.834e-11, "slack": 7.392e-11 @@ -1016,7 +1016,7 @@ Path Type: min "target_clock": "clk2", "target_clock_edge": "rise", "data_arrival_time": 1.242e-10, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": -2.000e-09, "required_time": -2.000e-09, "slack": 2.124e-09 diff --git a/search/test/search_report_path_latch_expanded.ok b/search/test/search_report_path_latch_expanded.ok index 97a56c62..29b3a2be 100644 --- a/search/test/search_report_path_latch_expanded.ok +++ b/search/test/search_report_path_latch_expanded.ok @@ -384,109 +384,91 @@ Max paths: 18 margin: 5.49663405069456e-11 source_clk_latency: 0.0 target_clk_delay: 0.0 - target_clk_uncertainty: -0.0 is_latch: 1 is_check: 0 slack=0.0 data_arrival: 1.081046252515705e-9 data_required: 1.081046252515705e-9 margin: 1.631178005168099e-11 source_clk_latency: 0.0 target_clk_delay: 0.0 - target_clk_uncertainty: -0.0 is_latch: 1 is_check: 0 slack=0.0 data_arrival: 1.0477667622410536e-9 data_required: 1.0477667622410536e-9 margin: 5.264827462880817e-11 source_clk_latency: 0.0 target_clk_delay: 0.0 - target_clk_uncertainty: -0.0 is_latch: 1 is_check: 0 slack=0.0 data_arrival: 1.0455454280133836e-9 data_required: 1.0455454280133836e-9 margin: 5.264827462880817e-11 source_clk_latency: 0.0 target_clk_delay: 0.0 - target_clk_uncertainty: -0.0 is_latch: 1 is_check: 0 slack=0.0 data_arrival: 1.044742847788882e-9 data_required: 1.044742847788882e-9 margin: 1.5100346320573443e-11 source_clk_latency: 0.0 target_clk_delay: 0.0 - target_clk_uncertainty: -0.0 is_latch: 1 is_check: 0 slack=0.0 data_arrival: 1.0434519914781504e-9 data_required: 1.0434519914781504e-9 margin: 1.5100346320573443e-11 source_clk_latency: 0.0 target_clk_delay: 0.0 - target_clk_uncertainty: -0.0 is_latch: 1 is_check: 0 slack=0.0 data_arrival: 5.6313842478061815e-11 data_required: 5.6313842478061815e-11 margin: 5.49663405069456e-11 source_clk_latency: 0.0 target_clk_delay: 0.0 - target_clk_uncertainty: -0.0 is_latch: 1 is_check: 0 slack=0.0 data_arrival: 5.290530860624365e-11 data_required: 5.290530860624365e-11 margin: 1.631178005168099e-11 source_clk_latency: 0.0 target_clk_delay: 0.0 - target_clk_uncertainty: -0.0 is_latch: 0 is_check: 0 slack=6.813221542500969e-9 data_arrival: 1.1867781202212768e-9 data_required: 7.999999773744548e-9 margin: 1.999999943436137e-9 source_clk_latency: 0.0 target_clk_delay: 0.0 - target_clk_uncertainty: -0.0 is_latch: 0 is_check: 0 slack=6.868384527791704e-9 data_arrival: 1.1316151349305414e-9 data_required: 7.999999773744548e-9 margin: 1.999999943436137e-9 source_clk_latency: 0.0 target_clk_delay: 0.0 - target_clk_uncertainty: -0.0 is_latch: 0 is_check: 0 slack=7.899713772019368e-9 data_arrival: 1.0028596009181712e-10 data_required: 7.999999773744548e-9 margin: 1.999999943436137e-9 source_clk_latency: 0.0 target_clk_delay: 0.0 - target_clk_uncertainty: -0.0 is_latch: 0 is_check: 0 slack=7.901434173618327e-9 data_arrival: 9.856562094290311e-11 data_required: 7.999999773744548e-9 margin: 1.999999943436137e-9 source_clk_latency: 0.0 target_clk_delay: 0.0 - target_clk_uncertainty: -0.0 is_latch: 0 is_check: 0 slack=7.923797618047956e-9 data_arrival: 7.620201691871387e-11 data_required: 7.999999773744548e-9 margin: 1.999999943436137e-9 source_clk_latency: 0.0 target_clk_delay: 0.0 - target_clk_uncertainty: -0.0 is_latch: 0 is_check: 0 slack=7.934120027641711e-9 data_arrival: 6.588010692532009e-11 data_required: 7.999999773744548e-9 margin: 1.999999943436137e-9 source_clk_latency: 0.0 target_clk_delay: 0.0 - target_clk_uncertainty: -0.0 is_latch: 0 is_check: 1 slack=8.852826915983769e-9 data_arrival: 1.106064906331028e-9 data_required: 9.95889148924789e-9 margin: 4.110847773297621e-11 source_clk_latency: 0.0 target_clk_delay: 0.0 - target_clk_uncertainty: -0.0 is_latch: 0 is_check: 1 slack=8.88718165725777e-9 data_arrival: 1.081046252515705e-9 data_required: 9.968228020795777e-9 margin: 3.177172414048357e-11 source_clk_latency: 0.0 target_clk_delay: 0.0 - target_clk_uncertainty: -0.0 is_latch: 0 is_check: 1 slack=9.902577424725223e-9 data_arrival: 5.6313842478061815e-11 data_required: 9.95889148924789e-9 margin: 4.110847773297621e-11 source_clk_latency: 0.0 target_clk_delay: 0.0 - target_clk_uncertainty: -0.0 is_latch: 0 is_check: 1 slack=9.91532278504792e-9 data_arrival: 5.290530860624365e-11 data_required: 9.968228020795777e-9 margin: 3.177172414048357e-11 source_clk_latency: 0.0 target_clk_delay: 0.0 - target_clk_uncertainty: -0.0 --- report_path_ends for latch paths --- Startpoint: latch1 (positive level-sensitive latch clocked by clk) Endpoint: latch2 (positive level-sensitive latch clocked by clk) @@ -1966,7 +1948,7 @@ Path Type: max } ], "data_arrival_time": 5.291e-11, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": 6.024e-12, "required_time": 6.024e-12, "slack": 4.688e-11 diff --git a/search/test/search_report_path_latch_expanded.tcl b/search/test/search_report_path_latch_expanded.tcl index 96293d72..6f21fea9 100644 --- a/search/test/search_report_path_latch_expanded.tcl +++ b/search/test/search_report_path_latch_expanded.tcl @@ -72,7 +72,6 @@ foreach pe $paths_max { puts " margin: [$pe margin]" puts " source_clk_latency: [$pe source_clk_latency]" puts " target_clk_delay: [$pe target_clk_delay]" - puts " target_clk_uncertainty: [$pe target_clk_uncertainty]" } ############################################################ diff --git a/search/test/search_report_path_pvt_cap.ok b/search/test/search_report_path_pvt_cap.ok index 6eea6f3d..99767f40 100644 --- a/search/test/search_report_path_pvt_cap.ok +++ b/search/test/search_report_path_pvt_cap.ok @@ -394,7 +394,7 @@ clk 0.05 } ], "data_arrival_time": 5.291e-11, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": 6.024e-12, "required_time": 6.024e-12, "slack": 4.688e-11 @@ -1195,7 +1195,7 @@ Path Type: min } ], "data_arrival_time": 5.291e-11, - "crpr": -0.000e+00, + "crpr": 0.000e+00, "margin": 6.024e-12, "required_time": 6.024e-12, "slack": 4.688e-11 diff --git a/search/test/search_sta_bidirect_extcap.ok b/search/test/search_sta_bidirect_extcap.ok index 50ebacb4..8da98acb 100644 --- a/search/test/search_sta_bidirect_extcap.ok +++ b/search/test/search_sta_bidirect_extcap.ok @@ -238,8 +238,8 @@ Load pins --- write_verilog --- --- write_sdc --- ---- pocv_enabled --- -pocv_enabled: 0 +--- pocv_mode --- +pocv_mode: scalar --- report_disabled_edges --- --- set_disable_timing on instance --- Startpoint: reg1 (rising edge-triggered flip-flop clocked by clk) diff --git a/search/test/search_sta_bidirect_extcap.tcl b/search/test/search_sta_bidirect_extcap.tcl index ca015186..23065954 100644 --- a/search/test/search_sta_bidirect_extcap.tcl +++ b/search/test/search_sta_bidirect_extcap.tcl @@ -127,8 +127,8 @@ write_sdc $s_out ############################################################ # pocv_enabled ############################################################ -puts "--- pocv_enabled ---" -puts "pocv_enabled: [sta::pocv_enabled]" +puts "--- pocv_mode ---" +puts "pocv_mode: [sta::pocv_mode]" ############################################################ # report_disabled_edges diff --git a/search/test/search_sta_cmds.ok b/search/test/search_sta_cmds.ok index 9a559d83..e9330866 100644 --- a/search/test/search_sta_cmds.ok +++ b/search/test/search_sta_cmds.ok @@ -1,18 +1,18 @@ --- report_arrival on various pins --- - (clk ^) r 1.04:1.05 f 1.05:1.05 - (clk ^) r 0.08:0.08 f 0.08:0.08 - (clk ^) r 0.00:0.00 f ---:--- - (clk v) r ---:--- f 5.00:5.00 - (clk ^) r 1.02:1.03 f 1.02:1.02 - (clk ^) r 1.04:1.05 f 1.05:1.05 - (clk ^) r 1.00:1.00 f 1.00:1.00 - (clk ^) r 0.10:0.10 f 0.10:0.10 +(clk ^) r 1.04:1.05 f 1.05:1.05 +(clk ^) r 0.08:0.08 f 0.08:0.08 +(clk ^) r 0.00:0.00 f ---:--- +(clk v) r ---:--- f 5.00:5.00 +(clk ^) r 1.02:1.03 f 1.02:1.02 +(clk ^) r 1.04:1.05 f 1.05:1.05 +(clk ^) r 1.00:1.00 f 1.00:1.00 +(clk ^) r 0.10:0.10 f 0.10:0.10 --- report_required on various pins --- - (clk ^) r 0.00:9.97 f 0.00:9.96 - (clk ^) r -2.00:8.00 f -2.00:8.00 +(clk ^) r 0.00:9.97 f 0.00:9.96 +(clk ^) r -2.00:8.00 f -2.00:8.00 --- report_slack on various pins --- - (clk ^) r 1.04:8.92 f 1.04:8.91 - (clk ^) r 2.10:7.90 f 2.10:7.90 +(clk ^) r 1.04:8.92 f 1.04:8.91 +(clk ^) r 2.10:7.90 f 2.10:7.90 --- worst_slack and TNS for each corner --- Worst slack max: 7.899713995438537 Worst slack min: 1.0391781063125174 diff --git a/search/test/search_sta_extra.ok b/search/test/search_sta_extra.ok index 06a58687..1cf9d2c4 100644 --- a/search/test/search_sta_extra.ok +++ b/search/test/search_sta_extra.ok @@ -250,35 +250,6 @@ Path Type: max --- set_report_path_field_properties --- Warning 1575: unknown report path field delay -Warning 1576: unknown report path field delay -Startpoint: reg1 (rising edge-triggered flip-flop clocked by clk) -Endpoint: out1 (output port clocked by clk) -Path Group: clk -Path Type: max - - Delay Time Description ---------------------------------------------------------- - 0.00 0.00 clock clk (rise edge) - 0.00 0.00 clock network delay (ideal) - 0.00 0.00 ^ reg1/CK (DFF_X1) - 0.08 0.08 ^ reg1/Q (DFF_X1) - 0.02 0.10 ^ buf2/Z (BUF_X1) - 0.00 0.10 ^ out1 (out) - 0.10 data arrival time - - 10.00 10.00 clock clk (rise edge) - 0.00 10.00 clock network delay (ideal) - 0.00 10.00 clock reconvergence pessimism - -2.00 8.00 output external delay - 8.00 data required time ---------------------------------------------------------- - 8.00 data required time - -0.10 data arrival time ---------------------------------------------------------- - 7.90 slack (MET) - - ---- set_report_path_sigmas --- Startpoint: reg1 (rising edge-triggered flip-flop clocked by clk) Endpoint: out1 (output port clocked by clk) Path Group: clk @@ -443,8 +414,8 @@ worst_slack_path pin: out1 --- report_path_end with prev_end --- --- make_instance --- make_instance: done ---- pocv_enabled --- -pocv_enabled: 0 +--- pocv_mode --- +pocv_mode: scalar --- report_checks -summary format --- Startpoint Endpoint Slack -------------------------------------------------------------------------------- diff --git a/search/test/search_sta_extra.tcl b/search/test/search_sta_extra.tcl index d4762603..2cd0bcdd 100644 --- a/search/test/search_sta_extra.tcl +++ b/search/test/search_sta_extra.tcl @@ -50,15 +50,9 @@ report_checks -slack_min -10 -path_delay max report_checks -slack_max 100 -slack_min -100 -path_delay max puts "--- set_report_path_field_properties ---" -sta::set_report_path_field_properties "delay" "Delay" 10 0 -sta::set_report_path_field_width "delay" 12 +sta::set_report_path_field_properties "delay" "Delay" 12 0 report_checks -path_delay max -puts "--- set_report_path_sigmas ---" -sta::set_report_path_sigmas 1 -report_checks -path_delay max -sta::set_report_path_sigmas 0 - puts "--- find_timing_paths with recovery/removal/gating_setup/gating_hold ---" sta::set_recovery_removal_checks_enabled 1 sta::set_gated_clk_checks_enabled 1 @@ -109,7 +103,7 @@ foreach edge $edges { foreach tarc $tarcs { set delays [$edge arc_delays $tarc] puts "arc_delays count: [llength $delays]" - set dstrs [$edge arc_delay_strings $tarc 3] + set dstrs [$edge arc_delay_strings $tarc 0 3] puts "arc_delay_strings count: [llength $dstrs]" set corner2 [sta::cmd_scene] puts "delay_annotated: [$edge delay_annotated $tarc $corner2 max]" @@ -157,8 +151,8 @@ set and_cell2 [get_lib_cells NangateOpenCellLibrary/AND2_X1] sta::make_instance new_inst $and_cell2 puts "make_instance: done" -puts "--- pocv_enabled ---" -puts "pocv_enabled: [sta::pocv_enabled]" +puts "--- pocv_mode ---" +puts "pocv_mode: [sta::pocv_mode]" puts "--- report_checks -summary format ---" report_checks -path_delay max -format summary diff --git a/search/test/search_tag_path_analysis.ok b/search/test/search_tag_path_analysis.ok index 78b9a8df..fd879806 100644 --- a/search/test/search_tag_path_analysis.ok +++ b/search/test/search_tag_path_analysis.ok @@ -1069,15 +1069,15 @@ Path Type: min --- per-pin tag queries --- - (clk1 ^) r 1.35:1.39 f 1.35:1.36 - (gen_clk ^) r 2.07:2.07 f 2.04:2.04 - (clk1 ^) r 0.31:10.27 f 0.30:10.26 - (gen_clk ^) r 0.31:10.27 f 0.30:10.26 - (clk1 ^) r 1.04:8.92 f 1.05:8.91 - (gen_clk ^) r 1.76:8.20 f 1.74:8.22 - (clk1 ^) r 0.38:0.38 f 0.38:0.38 - (clk1 ^) r 0.61:10.27 f 0.60:10.26 - (clk1 ^) r -0.22:9.88 f -0.22:9.88 +(clk1 ^) r 1.35:1.39 f 1.35:1.36 +(gen_clk ^) r 2.07:2.07 f 2.04:2.04 +(clk1 ^) r 0.31:10.27 f 0.30:10.26 +(gen_clk ^) r 0.31:10.27 f 0.30:10.26 +(clk1 ^) r 1.04:8.92 f 1.05:8.91 +(gen_clk ^) r 1.76:8.20 f 1.74:8.22 +(clk1 ^) r 0.38:0.38 f 0.38:0.38 +(clk1 ^) r 0.61:10.27 f 0.60:10.26 +(clk1 ^) r -0.22:9.88 f -0.22:9.88 --- clock_skew with generated clock --- Clock clk1 No launch/capture paths found. diff --git a/search/test/search_worst_slack_sta.ok b/search/test/search_worst_slack_sta.ok index b2fb8c52..8c181384 100644 --- a/search/test/search_worst_slack_sta.ok +++ b/search/test/search_worst_slack_sta.ok @@ -532,12 +532,10 @@ Path Type: min design_power: 6.081859851292393e-7 1.8692128733732716e-8 1.4891682553752617e-7 7.757948878861498e-7 5.41103304385615e-7 5.8966871385734976e-9 7.881983066226894e-8 6.258198368414014e-7 6.708269495447894e-8 1.2795442039248428e-8 7.009699487525722e-8 1.499751363098767e-7 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 --- set_report_path_field_properties --- Warning 1575: unknown report path field delay -Warning 1576: unknown report path field delay ---- set_report_path_sigmas --- --- set_report_path_no_split --- --- graph loops --- --- pocv --- -pocv_enabled: 0 +pocv_mode: scalar --- report_annotated_delay --- Not Delay type Total Annotated Annotated diff --git a/search/test/search_worst_slack_sta.tcl b/search/test/search_worst_slack_sta.tcl index ba2a8a09..0f3c15ae 100644 --- a/search/test/search_worst_slack_sta.tcl +++ b/search/test/search_worst_slack_sta.tcl @@ -135,15 +135,8 @@ set pwr [sta::design_power [sta::cmd_scene]] puts "design_power: $pwr" puts "--- set_report_path_field_properties ---" -sta::set_report_path_field_properties "delay" "Dly" 10 0 +sta::set_report_path_field_properties "delay" "Dly" 12 0 report_checks -path_delay max > /dev/null -sta::set_report_path_field_width "delay" 12 -report_checks -path_delay max > /dev/null - -puts "--- set_report_path_sigmas ---" -sta::set_report_path_sigmas 1 -report_checks -path_delay max > /dev/null -sta::set_report_path_sigmas 0 puts "--- set_report_path_no_split ---" sta::set_report_path_no_split 1 @@ -153,7 +146,7 @@ sta::set_report_path_no_split 0 puts "--- graph loops ---" puts "--- pocv ---" -puts "pocv_enabled: [sta::pocv_enabled]" +puts "pocv_mode: [sta::pocv_mode]" puts "--- report_annotated_delay ---" report_annotated_delay diff --git a/search/test/search_write_sdf_model.ok b/search/test/search_write_sdf_model.ok index a878f4ca..b7dce650 100644 --- a/search/test/search_write_sdf_model.ok +++ b/search/test/search_write_sdf_model.ok @@ -5,11 +5,11 @@ No differences found. --- write_sdf with digits --- Differences found at line 6. (VERSION "2.7.0") - (VERSION "3.0.0") + (VERSION "3.0.1") --- write_sdf with include_typ --- Differences found at line 6. (VERSION "2.7.0") - (VERSION "3.0.0") + (VERSION "3.0.1") --- write_timing_model --- --- write_timing_model with cell_name --- --- write_timing_model with library_name ---