From 064bb4cac4ba12da3d86d49007ca5421d2e265b7 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Sat, 1 Jun 2019 08:07:38 -0700 Subject: [PATCH] sync --- app/Main.cc | 3 ++- app/StaMain.cc | 1 + doc/OpenSTA.odt | Bin 75433 -> 75434 bytes graph/DelayFloat.cc | 2 +- graph/DelayFloat.hh | 2 +- graph/DelayNormal1.cc | 18 +++++++++++------- graph/DelayNormal1.hh | 2 +- graph/DelayNormal2.cc | 20 ++++++++++++-------- graph/DelayNormal2.hh | 2 +- search/Crpr.cc | 12 ++++++------ search/Property.cc | 4 +++- search/ReportPath.cc | 14 +++++++------- tcl/NetworkEdit.tcl | 6 ++++++ 13 files changed, 52 insertions(+), 34 deletions(-) diff --git a/app/Main.cc b/app/Main.cc index 12735f63..171b8859 100644 --- a/app/Main.cc +++ b/app/Main.cc @@ -36,7 +36,8 @@ extern const char *tcl_inits[]; } int -main(int argc, char **argv) +main(int argc, + char **argv) { if (argc == 2 && stringEq(argv[1], "-help")) { showUseage(argv[0]); diff --git a/app/StaMain.cc b/app/StaMain.cc index 47fdcbdb..79ab685f 100644 --- a/app/StaMain.cc +++ b/app/StaMain.cc @@ -216,6 +216,7 @@ showUseage(char *prog) printf(" -x cmd evaluate cmd\n"); printf(" -f cmd_file source cmd_file\n"); printf(" -threads count|max use count threads\n"); + printf(" -no_splash do not show the license splash at startup\n"); } } // namespace diff --git a/doc/OpenSTA.odt b/doc/OpenSTA.odt index 2079b261a49994a60a35a650a7035ea2fd67f063..42842e088890391b88d1d3d1c93e5b87100ca0f1 100644 GIT binary patch delta 39586 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

NB45x&;=sV)h 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 { + if (early_late == EarlyLate::early()) + return delay.mean() - delay.sigma() * sta->sigmaFactor(); + else if (early_late == EarlyLate::late()) + return delay.mean() + delay.sigma() * sta->sigmaFactor(); + else + internalError("unknown early/late value."); + } else - internalError("unknown early/late value."); + return delay.mean(); } float @@ -410,7 +414,7 @@ delayAsString(const Delay &delay, const StaState *sta, int digits) { - float mean_sigma = delayAsFloat(delay, early_late, sta->sigmaFactor()); + float mean_sigma = delayAsFloat(delay, early_late, sta); return sta->units()->timeUnit()->asString(mean_sigma, digits); } diff --git a/graph/DelayNormal1.hh b/graph/DelayNormal1.hh index a286c934..97d70eed 100644 --- a/graph/DelayNormal1.hh +++ b/graph/DelayNormal1.hh @@ -95,7 +95,7 @@ Delay operator*(const Delay &delay1, float delayAsFloat(const Delay &delay, const EarlyLate *early_late, - float sigma_factor); + const StaState *sta); float delaySigma2(const Delay &delay, const EarlyLate *early_late); diff --git a/graph/DelayNormal2.cc b/graph/DelayNormal2.cc index d4b6978b..69eb5bc2 100644 --- a/graph/DelayNormal2.cc +++ b/graph/DelayNormal2.cc @@ -377,7 +377,7 @@ operator*(const Delay &delay1, float delay2) { return Delay(delay1.mean() * delay2, - delay1.sigma2()Early * delay2, + delay1.sigma2Early() * delay2, delay1.sigma2Late() * delay2); } @@ -391,14 +391,18 @@ delayRatio(const Delay &delay1, float delayAsFloat(const Delay &delay, const EarlyLate *early_late, - float sigma_factor) + const StaState *sta) { - if (early_late == EarlyLate::early()) - return delay.mean() - delay.sigma(early_late) * sigma_factor; - else if (early_late == EarlyLate::late()) - return delay.mean() + delay.sigma(early_late) * sigma_factor; + if (sta->pocvEnabled()) { + if (early_late == EarlyLate::early()) + return delay.mean() - delay.sigma(early_late) * sta->sigmaFactor(); + else if (early_late == EarlyLate::late()) + return delay.mean() + delay.sigma(early_late) * sta->sigmaFactor(); + else + internalError("unknown early/late value."); + } else - internalError("unknown early/late value."); + return delay.mean(); } float @@ -444,7 +448,7 @@ delayAsString(const Delay &delay, const StaState *sta, int digits) { - float mean_sigma = delayAsFloat(delay, early_late, sta->sigmaFactor()); + float mean_sigma = delayAsFloat(delay, early_late, sta); return sta->units()->timeUnit()->asString(mean_sigma, digits); } diff --git a/graph/DelayNormal2.hh b/graph/DelayNormal2.hh index 6773f428..3e2d280a 100644 --- a/graph/DelayNormal2.hh +++ b/graph/DelayNormal2.hh @@ -102,7 +102,7 @@ Delay operator*(const Delay &delay1, float delayAsFloat(const Delay &delay, const EarlyLate *early_late, - float sigma_factor); + const StaState *sta); float delaySigma2(const Delay &delay, const EarlyLate *early_late); diff --git a/search/Crpr.cc b/search/Crpr.cc index e3d9e378..4acc4f53 100644 --- a/search/Crpr.cc +++ b/search/Crpr.cc @@ -91,9 +91,9 @@ CheckCrpr::maxCrpr(ClkInfo *clk_info) Arrival other_arrival = otherMinMaxArrival(&crpr_clk_vpath); float crpr_diff = abs(delayAsFloat(crpr_clk_vpath.arrival(this), EarlyLate::late(), - sigma_factor_) + this) - delayAsFloat(other_arrival, EarlyLate::early(), - sigma_factor_)); + this)); return crpr_diff; } } @@ -388,10 +388,10 @@ float CheckCrpr::crprArrivalDiff(const PathVertex *path) { Arrival other_arrival = otherMinMaxArrival(path); - float crpr_diff = abs(delayAsFloat(path->arrival(this), EarlyLate::late(), - sigma_factor_) - - delayAsFloat(other_arrival, EarlyLate::early(), - sigma_factor_)); + float crpr_diff = abs(delayAsFloat(path->arrival(this), + EarlyLate::late(), this) + - delayAsFloat(other_arrival, + EarlyLate::early(), this)); return crpr_diff; } diff --git a/search/Property.cc b/search/Property.cc index 5794c0a3..b90e0941 100644 --- a/search/Property.cc +++ b/search/Property.cc @@ -755,7 +755,9 @@ getProperty(const Net *net, Sta *sta) { auto network = sta->cmdNetwork(); - if (stringEqual(property, "full_name")) + if (stringEqual(property, "name")) + return PropertyValue(network->name(net)); + else if (stringEqual(property, "full_name")) return PropertyValue(network->pathName(net)); else throw PropertyUnknown("net", property); diff --git a/search/ReportPath.cc b/search/ReportPath.cc index 6f977b1a..40562cec 100644 --- a/search/ReportPath.cc +++ b/search/ReportPath.cc @@ -2619,8 +2619,8 @@ ReportPath::reportPath5(const Path *path, // from the input to the loads. Report the wire delay on the // input pin instead. Arrival next_time = next_path->arrival(this) + time_offset; - incr = delayAsFloat(next_time, min_max, sigma_factor_) - - delayAsFloat(time, min_max, sigma_factor_); + incr = delayAsFloat(next_time, min_max, this) + - delayAsFloat(time, min_max, this); time = next_time; line_case = "input_drive"; } @@ -2667,13 +2667,13 @@ ReportPath::reportPath5(const Path *path, line_case = "clk_ideal"; } else if (is_clk && !is_clk_start) { - incr = delayAsFloat(time, min_max, sigma_factor_) - - delayAsFloat(prev_time, min_max, sigma_factor_); + incr = delayAsFloat(time, min_max, this) + - delayAsFloat(prev_time, min_max, this); line_case = "clk_prop"; } else { - incr = delayAsFloat(time, min_max, sigma_factor_) - - delayAsFloat(prev_time, min_max, sigma_factor_); + incr = delayAsFloat(time, min_max, this) + - delayAsFloat(prev_time, min_max, this); line_case = "normal"; } if (report_input_pin_ @@ -3161,7 +3161,7 @@ ReportPath::reportFieldDelayMinus(Delay value, if (delayAsFloat(value) == field_blank_) reportFieldBlank(field, result); else { - float mean_sigma = delayAsFloat(value, early_late, sigma_factor_); + float mean_sigma = delayAsFloat(value, early_late, this); const char *str = units_->timeUnit()->asString(-mean_sigma, digits_); if (stringEq(str, plus_zero_)) // Force leading minus sign. diff --git a/tcl/NetworkEdit.tcl b/tcl/NetworkEdit.tcl index bd5a6fff..e46b5a45 100644 --- a/tcl/NetworkEdit.tcl +++ b/tcl/NetworkEdit.tcl @@ -245,6 +245,12 @@ proc insert_buffer { buffer_name buffer_cell net load_pins buffer_out_net_name } set buffer_cell [sta::get_lib_cell_warn "buffer_cell" $buffer_cell] set net [sta::get_net_warn "net" $net] + if { [get_cells -quiet $buffer_name] != "" } { + sta_error "instance $buffer_name already exists." + } + if { [get_nets -quiet $buffer_out_net_name] != "" } { + sta_error "net $buffer_out_net_name already exists." + } # Copy backslashes that will be removed by foreach. set load_pins1 [string map {\\ \\\\} $load_pins] set load_pins {}