report_tns/wns

This commit is contained in:
James Cherry 2019-06-05 10:20:48 -07:00
parent 94f3e7f0de
commit de34f8b6b2
5 changed files with 57 additions and 14 deletions

View File

@ -119,7 +119,7 @@ staTclAppInit(Tcl_Interp *interp)
Tcl_Eval(interp, "namespace import sta::*");
if (!findCmdLineFlag(argc, argv, "-no_init"))
sourceTclFileEchoVerbose(init_filename, interp);
sourceTclFile(init_filename, true, true, interp);
// "-x cmd" is evaled before -f file is sourced.
char *cmd = findCmdLineKey(argc, argv, "-x");
@ -129,7 +129,7 @@ staTclAppInit(Tcl_Interp *interp)
// "-f cmd_file" is evaled as "source -echo -verbose file".
char *file = findCmdLineKey(argc, argv, "-f");
if (file)
sourceTclFileEchoVerbose(file, interp);
sourceTclFile(file, true, true, interp);
return TCL_OK;
}
@ -157,16 +157,21 @@ findCmdLineKey(int argc,
if (stringEq(arg, key) && argi + 1 < argc)
return argv[argi + 1];
}
return 0;
return nullptr;
}
// Use overridden version of source to echo cmds and results.
void
sourceTclFileEchoVerbose(const char *filename,
Tcl_Interp *interp)
sourceTclFile(const char *filename,
bool echo,
bool verbose,
Tcl_Interp *interp)
{
string cmd;
stringPrint(cmd, "source -echo -verbose %s", filename);
stringPrint(cmd, "source %s%s%s",
echo ? "-echo " : "",
verbose ? "-verbose " : "",
filename);
Tcl_Eval(interp, cmd.c_str());
}

View File

@ -75,8 +75,10 @@ parseCmdsArg(int argc,
bool &compatibility_cmds);
void
sourceTclFileEchoVerbose(const char *filename,
Tcl_Interp *interp);
sourceTclFile(const char *filename,
bool echo,
bool verbose,
Tcl_Interp *interp);
} // namespace
#endif

View File

@ -107,6 +107,12 @@ single pin.
disconnect_pin net pin
The report_tns and report_wns commands print the value returned by
total_negative_slack and worst_negative_slack respectively.
report_tns
report_wns
Release 1.11.0 2017/08/18
-------------------------

View File

@ -479,6 +479,42 @@ proc_redirect report_check_types {
################################################################
define_sta_cmd_args "report_tns" { [-digits digits]}
proc_redirect report_tns {
global sta_report_default_digits
parse_key_args "report_tns" args keys {-digits} flags {}
if [info exists keys(-digits)] {
set digits $keys(-digits)
check_positive_integer "-digits" $digits
} else {
set digits $sta_report_default_digits
}
puts "tns [format %.${digits}f [total_negative_slack]]"
}
################################################################
define_sta_cmd_args "report_wns" { [-digits digits]}
proc_redirect report_wns {
global sta_report_default_digits
parse_key_args "report_wns" args keys {-digits} flags {}
if [info exists keys(-digits)] {
set digits $keys(-digits)
check_positive_integer "-digits" $digits
} else {
set digits $sta_report_default_digits
}
puts "wns [format %.${digits}f [worst_negative_slack]]"
}
################################################################
define_sta_cmd_args "report_dcalc" \
{[-from from_pin] [-to to_pin] [-corner corner_name] [-min] [-max] [-digits digits]}

View File

@ -2960,12 +2960,6 @@ set_wire_load_mode_cmd(const char *mode_name)
Sta::sta()->setWireloadMode(mode);
}
Wireload *
wireload_defaulted(MinMax *min_max)
{
return Sta::sta()->sdc()->wireloadDefaulted(min_max);
}
void
set_net_resistance(Net *net,
const MinMaxAll *min_max,