sta_warn/sta_error id

This commit is contained in:
James Cherry 2020-12-15 22:31:08 -07:00
parent 78d29c8f90
commit d42f791da2
14 changed files with 789 additions and 278 deletions

View File

@ -117,7 +117,7 @@ proc set_delay_calculator { alg } {
if { [is_delay_calc_name $alg] } {
set_delay_calculator_cmd $alg
} else {
sta_error "delay calculator $alg not found."
sta_error 435 "delay calculator $alg not found."
}
}

511
doc/messages.txt Normal file
View File

@ -0,0 +1,511 @@
egrep "([eE]rror|[wW]arn)\([0-9]" */*.{cc,ll,yy} --exclude "build/*" include/sta/*.hh >doc/messages.txt
egrep "(sta_error|sta_warn) \([0-9]" */*.tcl >>doc/messages.txt
last used 593
dcalc/ArnoldiDelayCalc.cc: criticalError(204, "arnoldi delay calc failed.");
dcalc/DmpCeff.cc: report_->warn(1, "cell %s delay model not supported on SPF parasitics by DMP delay calculator",
liberty/InternalPower.cc: criticalError(229, "unsupported table order");
liberty/InternalPower.cc: criticalError(230, "unsupported table axes");
liberty/Liberty.cc: criticalError(231, "unsupported slew degradation table axes");
liberty/Liberty.cc: criticalError(232, "unsupported slew degradation table axes");
liberty/Liberty.cc: criticalError(233, "unsupported slew degradation table order");
liberty/Liberty.cc: criticalError(234, "unsupported slew degradation table axes");
liberty/Liberty.cc: report->warn(2, "cell %s/%s port %s not found in cell %s/%s.",
liberty/Liberty.cc: report->warn(3, "cell %s/%s %s -> %s timing group %s not found in cell %s/%s.",
liberty/Liberty.cc: criticalError(235, "timing arc set max index exceeded");
liberty/Liberty.cc: criticalError(205, "timing arc count mismatch");
liberty/Liberty.cc: report->warn(4, "cell %s/%s %s -> %s latch enable %s_edge timing arc is inconsistent with %s -> %s setup_%s check.",
liberty/Liberty.cc: report->warn(5, "cell %s/%s %s -> %s latch enable %s_edge is inconsistent with latch group enable function positive sense.",
liberty/Liberty.cc: report->warn(6, "cell %s/%s %s -> %s latch enable %s_edge is inconsistent with latch group enable function negative sense.",
liberty/LibertyExpr.cc: report_->error(7, "%s references unknown port %s.",
liberty/LibertyExpr.cc: report_->error(206, "%s %s.", error_msg_, msg);
liberty/LibertyParser.cc: criticalError(236, "valueIterator called for LibertySimpleAttribute");
liberty/LibertyParser.cc: criticalError(237, "LibertyStringAttrValue called for float value");
liberty/LibertyParser.cc: criticalError(238, "LibertyStringAttrValue called for float value");
liberty/LibertyParser.cc: liberty_report->fileWarn(24, liberty_filename, line,
liberty/LibertyParser.cc: sta::liberty_report->vfileError(25, sta::liberty_filename, sta::liberty_line,
liberty/LibertyParser.cc: sta::liberty_report->fileError(26, sta::liberty_filename, sta::liberty_line,
liberty/LibertyReader.cc: libWarn(53, group, "library %s already exists.", name);
liberty/LibertyReader.cc: libError(30, group, "library does not have a name.");
liberty/LibertyReader.cc: libWarn(31, group, "default_wire_load %s not found.", default_wireload_);
liberty/LibertyReader.cc: libWarn(32, group, "default_wire_selection %s not found.",
liberty/LibertyReader.cc: libWarn(33, group, "input_threshold_pct_%s not found.", tr->name());
liberty/LibertyReader.cc: libWarn(34, group, "output_threshold_pct_%s not found.", tr->name());
liberty/LibertyReader.cc: libWarn(35, group, "slew_lower_threshold_pct_%s not found.", tr->name());
liberty/LibertyReader.cc: libWarn(36, group, "slew_upper_threshold_pct_%s not found.", tr->name());
liberty/LibertyReader.cc: libError(37, group, "Library %s is missing one or more thresholds.",
liberty/LibertyReader.cc: libWarn(38, attr, "unknown unit multiplier %s.", mult_str);
liberty/LibertyReader.cc: libWarn(39, attr, "unknown unit scale %c.", scale_char);
liberty/LibertyReader.cc: libWarn(40, attr, "unknown unit suffix %s.", s + 1);
liberty/LibertyReader.cc: libWarn(41, attr, "capacitive_load_units are not ff or pf.");
liberty/LibertyReader.cc: libWarn(42, attr, "capacitive_load_units are not a string.");
liberty/LibertyReader.cc: libWarn(43, attr, "capacitive_load_units missing suffix.");
liberty/LibertyReader.cc: libWarn(44, attr, "capacitive_load_units scale is not a float.");
liberty/LibertyReader.cc: libWarn(45, attr, "capacitive_load_units missing scale and suffix.");
liberty/LibertyReader.cc: libWarn(46, attr, "capacitive_load_unit missing values suffix.");
liberty/LibertyReader.cc: libWarn(47, attr, "delay_model %s not supported.", type_name);
liberty/LibertyReader.cc: libWarn(48, attr, "delay_model %s not supported.", type_name);
liberty/LibertyReader.cc: libWarn(49, attr, "delay_model %s not supported.", type_name);
liberty/LibertyReader.cc: libWarn(50, attr, "delay_model %s not supported.\n.", type_name);
liberty/LibertyReader.cc: libWarn(51, attr, "unknown delay_model %s\n.", type_name);
liberty/LibertyReader.cc: libWarn(52, attr, "unknown bus_naming_style format.");
liberty/LibertyReader.cc: libWarn(54, attr, "voltage_map voltage is not a float.");
liberty/LibertyReader.cc: libWarn(55, attr, "voltage_map missing voltage.");
liberty/LibertyReader.cc: libWarn(56, attr, "voltage_map supply name is not a string.");
liberty/LibertyReader.cc: libWarn(57, attr, "voltage_map missing supply name and voltage.");
liberty/LibertyReader.cc: libWarn(58, attr, "voltage_map missing values suffix.");
liberty/LibertyReader.cc: libWarn(59, attr, "default_wire_load_mode %s not found.",
liberty/LibertyReader.cc: libWarn(60, attr, "default_operating_condition %s not found.",
liberty/LibertyReader.cc: libWarn(61, group, "table template does not have a name.");
liberty/LibertyReader.cc: libWarn(62, group, "missing variable_%d attribute.", index + 1);
liberty/LibertyReader.cc: libWarn(63, attr, "axis type %s not supported.", type);
liberty/LibertyReader.cc: libWarn(64, group, "bus type %s missing bit_from.", name);
liberty/LibertyReader.cc: libWarn(65, group, "bus type %s missing bit_to.", name);
liberty/LibertyReader.cc: libWarn(66, group, "type does not have a name.");
liberty/LibertyReader.cc: libWarn(67, group, "scaling_factors do not have a name.");
liberty/LibertyReader.cc: libWarn(68, group, "operating_conditions does not have a name.");
liberty/LibertyReader.cc: libWarn(69, group, "wire_load does not have a name.");
liberty/LibertyReader.cc: libWarn(70, attr, "fanout_length is missing length and fanout.");
liberty/LibertyReader.cc: libWarn(71, group, "wire_load_selection does not have a name.");
liberty/LibertyReader.cc: libWarn(72, attr, "wireload %s not found.", wireload_name);
liberty/LibertyReader.cc: libWarn(73, attr,
liberty/LibertyReader.cc: libWarn(74, attr, "wire_load_from_area min not a float.");
liberty/LibertyReader.cc: libWarn(75, attr, "wire_load_from_area max not a float.");
liberty/LibertyReader.cc: libWarn(76, attr, "wire_load_from_area missing parameters.");
liberty/LibertyReader.cc: libWarn(77, attr, "wire_load_from_area missing parameters.");
liberty/LibertyReader.cc: libWarn(78, group, "cell does not have a name.");
liberty/LibertyReader.cc: libWarn(79, group, "cell %s ocv_derate_group %s not found.",
liberty/LibertyReader.cc: libWarn(80, line, "port %s function size does not match port size.",
liberty/LibertyReader.cc: libWarn(81, line, "%s %s bus width mismatch.", type, clk_attr);
liberty/LibertyReader.cc: libWarn(82, line, "%s %s bus width mismatch.", type, data_attr);
liberty/LibertyReader.cc: libWarn(83, line, "%s %s bus width mismatch.", type, "clear");
liberty/LibertyReader.cc: libWarn(84, line, "%s %s bus width mismatch.", type, "preset");
liberty/LibertyReader.cc: libWarn(85, line, "latch enable function is non-unate for port %s.",
liberty/LibertyReader.cc: libWarn(86, line, "latch enable function is unknown for port %s.",
liberty/LibertyReader.cc: libWarn(87, group, "operating conditions %s not found.", op_cond_name);
liberty/LibertyReader.cc: libWarn(88, group, "scaled_cell does not have an operating condition.");
liberty/LibertyReader.cc: libWarn(89, group, "scaled_cell cell %s has not been defined.", name);
liberty/LibertyReader.cc: libWarn(90, group, "scaled_cell does not have a name.");
liberty/LibertyReader.cc: libWarn(91, group, "scaled_cell %s, %s port functions do not match cell port functions.",
liberty/LibertyReader.cc: libWarn(92, group, "scaled_cell ports do not match cell ports.");
liberty/LibertyReader.cc: libWarn(93, group, "scaled_cell %s, %s timing does not match cell timing.",
liberty/LibertyReader.cc: libWarn(94, line, "combinational timing to an input port.");
liberty/LibertyReader.cc: visitor->libWarn(95, line_, "missing %s_transition.", tr->name());
liberty/LibertyReader.cc: visitor->libWarn(96, line_, "missing cell_%s.", tr->name());
liberty/LibertyReader.cc: libWarn(97, timing->line(),
liberty/LibertyReader.cc: libWarn(98, power_group->line(),
liberty/LibertyReader.cc: libWarn(99, attr, "scaling_factors %s not found.", scale_factors_name);
liberty/LibertyReader.cc: libWarn(100, group, "pin name is not a string.");
liberty/LibertyReader.cc: libWarn(101, group, "pin name is not a string.");
liberty/LibertyReader.cc: libWarn(102, group, "pin name is not a string.");
liberty/LibertyReader.cc: libWarn(103, group, "bus %s bus_type not found.", group->firstName());
liberty/LibertyReader.cc: libWarn(104, attr, "bus_type %s not found.", bus_type);
liberty/LibertyReader.cc: libWarn(105, attr, "bus_type is not a string.");
liberty/LibertyReader.cc: libWarn(106, group, "bundle %s member not found.", group->firstName());
liberty/LibertyReader.cc: libWarn(107, attr, "member is not a string.");
liberty/LibertyReader.cc: libWarn(108, attr,"members attribute is missing values.");
liberty/LibertyReader.cc: libWarn(109, attr, "unknown port direction.");
liberty/LibertyReader.cc: libWarn(110,attr, "pulse_latch unknown pulse type.");
liberty/LibertyReader.cc: libWarn(111, attr, "unknown timing_type %s.", type_name);
liberty/LibertyReader.cc: libWarn(112, attr, "unknown timing_sense %s.", sense_name);
liberty/LibertyReader.cc: libWarn(113, attr, "mode value is not a string.");
liberty/LibertyReader.cc: libWarn(114, attr, "missing mode value.");
liberty/LibertyReader.cc: libWarn(115, attr, "mode name is not a string.");
liberty/LibertyReader.cc: libWarn(116, attr, "mode missing values.");
liberty/LibertyReader.cc: libWarn(117, attr, "mode missing mode name and value.");
liberty/LibertyReader.cc: libWarn(118, group, "unsupported model axis.");
liberty/LibertyReader.cc: libWarn(119, group, "unsupported model axis.");
liberty/LibertyReader.cc: libWarn(120, group, "unsupported model axis.");
liberty/LibertyReader.cc: libWarn(121, group, "unsupported model axis.");
liberty/LibertyReader.cc: libWarn(122, group, "table template %s not found.", template_name);
liberty/LibertyReader.cc: libWarn(123, attr, "%s is missing values.", attr->name());
liberty/LibertyReader.cc: libWarn(124, attr, "%s is not a list of floats.", attr->name());
liberty/LibertyReader.cc: libWarn(125, attr, "table row has %u columns but axis has %d.",
liberty/LibertyReader.cc: libWarn(126, attr, "table has %u rows but axis has %d.",
liberty/LibertyReader.cc: libWarn(127, group, "lut output is not a string.");
liberty/LibertyReader.cc: libWarn(128, group, "mode definition does not have a name.");
liberty/LibertyReader.cc: libWarn(129, group, "mode value does not have a name.");
liberty/LibertyReader.cc: libWarn(130, attr, "when attribute inside table model.");
liberty/LibertyReader.cc: libWarn(131, attr, "%s attribute is not a string.", attr->name());
liberty/LibertyReader.cc: libWarn(132, attr, "%s is not a simple attribute.", attr->name());
liberty/LibertyReader.cc: libWarn(132, attr, "%s attribute is not an integer.",attr->name());
liberty/LibertyReader.cc: libWarn(133, attr, "%s is not a simple attribute.", attr->name());
liberty/LibertyReader.cc: libWarn(134, attr, "%s is not a simple attribute.", attr->name());
liberty/LibertyReader.cc: libWarn(135, attr, "%s value %s is not a float.",
liberty/LibertyReader.cc: libWarn(136, attr, "%s missing values.", attr->name());
liberty/LibertyReader.cc: libWarn(137, attr, "%s missing values.", attr->name());
liberty/LibertyReader.cc: libWarn(138, attr, "%s is not a complex attribute.", attr->name());
liberty/LibertyReader.cc: libWarn(139, attr, "%s is not a float.", token);
liberty/LibertyReader.cc: libWarn(140, attr, "%s is missing values.", attr->name());
liberty/LibertyReader.cc: libWarn(141, attr, "%s has more than one string.", attr->name());
liberty/LibertyReader.cc: libWarn(142, attr, "%s is missing values.", attr->name());
liberty/LibertyReader.cc: libWarn(143, attr, "%s attribute is not boolean.", attr->name());
liberty/LibertyReader.cc: libWarn(144, attr, "%s attribute is not boolean.", attr->name());
liberty/LibertyReader.cc: libWarn(145, attr, "%s is not a simple attribute.", attr->name());
liberty/LibertyReader.cc: libWarn(146, attr, "attribute %s value %s not recognized.",
liberty/LibertyReader.cc: libWarn(147, attr, "unknown early/late value.");
liberty/LibertyReader.cc: libWarn(148, attr, "OCV derate group named %s not found.", derate_name);
liberty/LibertyReader.cc: libWarn(149, group, "ocv_derate does not have a name.");
liberty/LibertyReader.cc: libError(150, attr, "unknown rf_type.");
liberty/LibertyReader.cc: libWarn(151, attr, "unknown derate type.");
liberty/LibertyReader.cc: libWarn(152, group, "unsupported model axis.");
liberty/LibertyReader.cc: libWarn(153, group, "unsupported model axis.");
liberty/LibertyReader.cc: libWarn(154, group, "unsupported model axis.");
liberty/LibertyReader.cc: libError(155, attr, "unknown pg_type.");
liberty/LibertyReader.cc: visitor_->libWarn(156, line_, "port %s subscript out of range.",
liberty/LibertyReader.cc: visitor_->libWarn(157, line_, "port range %s of non-bus port %s.",
liberty/LibertyReader.cc: visitor_->libWarn(158, line_, "port %s not found.", port_name);
liberty/LibertyReader.cc: visitor_->libWarn(159, line_, "port %s not found.", bus_bit_name);
liberty/TableModel.cc: criticalError(239, "unsupported table order");
liberty/TableModel.cc: criticalError(240, "unsupported table axes");
liberty/TableModel.cc: criticalError(241, "unsupported table order");
liberty/TableModel.cc: criticalError(242, "unsupported table axes");
liberty/TimingArc.cc: criticalError(243, "timing arc max index exceeded\n");
network/ConcreteNetwork.cc: report->error(8, "cell type %s can not be linked.", top_cell_name);
parasitics/SpefReader.cc: warn(167, "illegal bus delimiters.");
parasitics/SpefReader.cc: warn(168, "unknown units %s.", units);
parasitics/SpefReader.cc: warn(168, "unknown units %s.", units);
parasitics/SpefReader.cc: warn(170, "unknown units %s.", units);
parasitics/SpefReader.cc: warn(168, "unknown units %s.", units);
parasitics/SpefReader.cc: warn(169, "no name map entry for %d.", index);
parasitics/SpefReader.cc: warn(170, "unknown port direction %s.", spef_dir);
parasitics/SpefReader.cc: warn(171, "pin %s not found.", name);
parasitics/SpefReader.cc: warn(172, "instance %s not found.", name);
parasitics/SpefReader.cc: warn(173, "pin %s not found.", name);
parasitics/SpefReader.cc: warn(174, "net %s not found.", name);
parasitics/SpefReader.cc: warn(175, "%s not connected to net %s.", name, network_->pathName(net_));
parasitics/SpefReader.cc: warn(176, "pin %s not found.", name);
parasitics/SpefReader.cc: warn(177, "node %s not a pin or net:number", name);
parasitics/SpefReader.cc: warn(178, "pin %s not found.", name);
parasitics/SpefReader.cc: sta::spef_reader->warn(179, "%s.", msg);
sdc/Clock.cc: criticalError(244, "generated clock edges size is not three.");
sdc/Sdc.cc: report_->warn(9, "No common period was found between clocks %s and %s.",
sdf/SdfReader.cc: sdfError(180, "TIMESCALE units not us, ns, or ps.");
sdf/SdfReader.cc: sdfError(181, "TIMESCALE multiplier not 1, 10, or 100.");
sdf/SdfReader.cc: sdfError(182, "pin %s is a hierarchical pin.", from_pin_name);
sdf/SdfReader.cc: sdfError(183, "pin %s is a hierarchical pin.", to_pin_name);
sdf/SdfReader.cc: sdfError(184, "INTERCONNECT from %s to %s not found.",
sdf/SdfReader.cc: sdfError(185, "pin %s not found.", from_pin_name);
sdf/SdfReader.cc: sdfError(186, "pin %s not found.", to_pin_name);
sdf/SdfReader.cc: sdfError(187, "pin %s not found.", to_pin_name);
sdf/SdfReader.cc: sdfError(188, "%s with no triples.", sdf_cmd);
sdf/SdfReader.cc: sdfError(189, "%s with more than 2 triples.", sdf_cmd);
sdf/SdfReader.cc: sdfError(190, "instance %s cell %s does not match enclosing cell %s.",
sdf/SdfReader.cc: sdfError(191, "cell %s IOPATH %s -> %s not found.",
sdf/SdfReader.cc: sdfError(192, "cell %s %s -> %s %s check not found.",
sdf/SdfReader.cc: sdfError(193, "%s not supported.", feature);
sdf/SdfReader.cc: sdfError(194, "instance %s port %s not found.",
sdf/SdfReader.cc: sdfError(195, "instance %s not found.", inst_name.c_str());
sdf/SdfReader.cc: sta::sdf_reader->sdfError(196, "%s.\n", msg);
search/CheckTiming.cc: criticalError(245, "unknown print flag");
search/Corner.cc: criticalError(246, "unknown parasitic analysis point count");
search/Corner.cc: criticalError(247, "unknown analysis point count");
search/Crpr.cc: criticalError(248, "missing prev paths");
search/GatedClk.cc: criticalError(249, "illegal gated clock active value");
search/Genclks.cc: report_->warn(10, "no master clock found for generated clock %s.",
search/Genclks.cc: report_->error(11, "generated clock %s is in the fanout of multiple clocks.",
search/Genclks.cc: report_->error(12,
search/Genclks.cc: report_->warn(13, "generated clock %s source pin %s missing paths from master clock %s.",
search/PathEnum.cc: criticalError(250, "diversion path not found");
search/Sim.cc: report_->warn(15, "propagated logic value %c differs from constraint value of %c on pin %s.",
search/Sta.cc: report_->fileWarn(160, file, line, "'%s' is not a valid startpoint.",
search/Sta.cc: report_->warn(16, "'%s' is not a valid startoint.",
search/Sta.cc: report_->fileWarn(161, file, line, "'%s' is not a valid endpoint.",
search/Sta.cc: report_->warn(17, "'%s' is not a valid endpoint.",
search/VertexVisitor.cc: criticalError(266, "VertexPinCollector::copy not supported.");
search/WritePathSpice.cc: report_->error(24, "pg_pin %s/%s voltage %s not found,",
search/WritePathSpice.cc: report_->error(25, "Liberty pg_port %s/%s missing voltage_name attribute,",
search/WritePathSpice.cc: report_->error(26, "%s pg_port %s not found,",
search/WritePathSpice.cc: report_->error(27, "no register/latch found for path from %s to %s,",
search/WritePathSpice.cc: report_->error(28, "The following subkcts are missing from %s",
search/WritePathSpice.cc: report_->error(29, "subckt %s port %s has no corresponding liberty port, pg_port and is not power or ground.",
search/WritePathSpice.cc: criticalError(267, "out of memory");
verilog/VerilogReader.cc: warn(165, module->filename(), module->line(),
verilog/VerilogReader.cc: warn(166, module->filename(), module->line(),
verilog/VerilogReader.cc: linkWarn(197, module->filename(), module->line(),
verilog/VerilogReader.cc: reader->warn(18, filename_, dcl->line(),
verilog/VerilogReader.cc: reader->warn(19, filename_, inst->line(),
verilog/VerilogReader.cc: reader->warn(20, reader->filename(), reader->line(),
verilog/VerilogReader.cc: report->error(162, "%s is not a verilog module.", top_cell_name);
verilog/VerilogReader.cc: report->error(163, "%s is not a verilog module.", top_cell_name);
verilog/VerilogReader.cc: linkWarn(198, filename_, mod_inst->line(),
verilog/VerilogReader.cc: linkError(199, filename_, mod_inst->line(),
verilog/VerilogReader.cc: linkWarn(200, parent_module->filename(), mod_inst->line(),
verilog/VerilogReader.cc: linkWarn(201, parent_module->filename(), mod_inst->line(),
verilog/VerilogReader.cc: linkWarn(202, parent_module->filename(), mod_inst->line(),
verilog/VerilogReader.cc: linkWarn(203, module->filename(), assign->line(),
verilog/VerilogReader.cc: sta::verilog_reader->report()->fileError(164,
verilog/VerilogWriter.cc: criticalError(268, "unknown port direction");
parasitics/SpefParse.yy: sta::spef_reader->warn(21, "%d is not positive.", value);
parasitics/SpefParse.yy: sta::spef_reader->warn(22, "%.4f is not positive.", value);
parasitics/SpefParse.yy: sta::spef_reader->warn(23, "%.4f is not positive.", value);
include/sta/ArrayTable.hh: criticalError(223, "max array table block count exceeded.");
include/sta/ArrayTable.hh: criticalError(222, "null ObjectId reference is undefined.");
include/sta/MinMaxValues.hh: criticalError(226, "uninitialized value reference");
include/sta/ObjectTable.hh: criticalError(224, "max object table block count exceeded.");
include/sta/ObjectTable.hh: criticalError(225, "null ObjectId reference is undefined.");
dcalc/DelayCalc.tcl: sta_error 435 "delay calculator $alg not found."
parasitics/Parasitics.tcl: sta_error 433 "path instance '$path' not found."
parasitics/Parasitics.tcl: sta_error 434 "-reduce_to must be pi_elmore or pi_pole_residue2."
sdf/Sdf.tcl: sta_error 429 "-analysis_type must be single, bc_wc or on_chip_variation"
sdf/Sdf.tcl: sta_error 430 "-cond_use min_max cannot be used with analysis type single."
sdf/Sdf.tcl: sta_error 431 "$key must be sdf_min, sdf_typ, or sdf_max."
sdf/Sdf.tcl: sta_error 432 "SDF -divider must be / or ."
tcl/Cmds.tcl: sta_error 439 "unsupported object type $list_type."
tcl/Cmds.tcl: sta_error 440 "-from/-to arguments not supported with -of_objects."
tcl/Cmds.tcl: sta_error 441 "unsupported -filter expression."
tcl/Cmds.tcl: sta_error 442 "$cmd missing -from argument."
tcl/Cmds.tcl: sta_error 443 "$cmd missing -to argument."
tcl/Cmds.tcl: sta_error 444 "$cmd delay is not a float."
tcl/Cmds.tcl: sta_error 445 "set_annotated_delay -cell and -net options are mutually excluive."
tcl/Cmds.tcl: sta_error 446 "$cmd pin [get_full_name $pin] is not attached to instance [get_full_name $inst]."
tcl/Cmds.tcl: sta_error 447 "$cmd pin [get_full_name $pin] is not attached to instance [get_full_name $inst]"
tcl/Cmds.tcl: sta_error 448 "$cmd -cell or -net required."
tcl/Cmds.tcl: sta_error 449 "$cmd missing -from argument."
tcl/Cmds.tcl: sta_error 450 "$cmd -clock must be rise or fall."
tcl/Cmds.tcl: sta_error 451 "$cmd missing -to argument."
tcl/Cmds.tcl: sta_error 452 "$cmd missing -setup|-hold|-recovery|-removal check type.."
tcl/Cmds.tcl: sta_error 453 "$cmd check_value is not a float."
tcl/Cmds.tcl: sta_error 454 "the -all and -name options are mutually exclusive."
tcl/Cmds.tcl: sta_error 455 "either -all or -name options must be specified."
tcl/Cmds.tcl: sta_error 456 "one of -logically_exclusive, -physically_exclusive or -asynchronous is required."
tcl/Cmds.tcl: sta_error 457 "the keywords -logically_exclusive, -physically_exclusive and -asynchronous are mutually exclusive."
tcl/Cmds.tcl: sta_warn 303 "-clock ignored for clock objects."
tcl/Cmds.tcl: sta_error 458 "-source '[$pin path_name]' is not a clock pin."
tcl/Cmds.tcl: sta_error 459 "-from/-to must be used together."
tcl/Cmds.tcl: sta_error 460 "-rise, -fall options not allowed for single clock uncertainty."
tcl/Cmds.tcl: sta_error 461 "missing -from, -rise_from or -fall_from argument."
tcl/Cmds.tcl: sta_error 462 "missing -to, -rise_to or -fall_to argument."
tcl/Cmds.tcl: sta_warn 304 "-from/-to keywords ignored for lib_pin, port and pin arguments."
tcl/Cmds.tcl: sta_error 463 "-from/-to hierarchical instance not supported."
tcl/Cmds.tcl: sta_error 464 "$cmd command failed."
tcl/Cmds.tcl: sta_error 465 "positional arguments not supported."
tcl/Cmds.tcl: sta_error 466 "-from, -through or -to required."
tcl/Cmds.tcl: sta_error 467 "unsupported object type $object_type."
tcl/Cmds.tcl: sta_warn 305 "object '$obj' not found."
tcl/Cmds.tcl: sta_error 468 "$corner_name is not the name of process corner."
tcl/Cmds.tcl: sta_error 469 "-corner keyword required with multi-corner analysis."
tcl/Cmds.tcl: sta_error 470 "$corner_name is not the name of process corner."
tcl/Cmds.tcl: sta_error 471 "missing -corner arg."
tcl/Cmds.tcl: sta_error 472 "$corner_name is not the name of process corner."
tcl/Cmds.tcl: sta_error 473 "$corner_name is not the name of process corner."
tcl/Cmds.tcl: sta_error 474 "both -min and -max specified."
tcl/Cmds.tcl: sta_error 475 "both -min and -max specified."
tcl/Cmds.tcl: sta_error 476 "only one of -early and -late can be specified."
tcl/Cmds.tcl: sta_error 477 "-early or -late must be specified."
tcl/Cmds.tcl: sta_error 478 "both -early and -late specified."
tcl/Cmds.tcl: sta_error 479 "$arg_name must be a single library."
tcl/Cmds.tcl: sta_error 480 "$arg_name type '$object_type' is not a library."
tcl/Cmds.tcl: sta_error 481 "library '$arg' not found."
tcl/Cmds.tcl: sta_error 482 "$arg_name must be a single lib cell."
tcl/Cmds.tcl: sta_error 483 "$arg_name must be a single instance."
tcl/Cmds.tcl: sta_error 484 "$arg_name type '$object_type' is not an instance."
tcl/Cmds.tcl: sta_error 485 "instance '$arg' not found."
tcl/Cmds.tcl: sta_error 486 "$arg_name type '$object_type' is not an instance."
tcl/Cmds.tcl: sta_error 487 "instance '$arg' not found."
tcl/Cmds.tcl: sta_error 488 "$arg_name type '$object_type' is not a pin or port."
tcl/Cmds.tcl: sta_error 489 "pin '$arg' not found."
tcl/Cmds.tcl: sta_error 490 "$arg_name type '$object_type' is not a port."
tcl/Cmds.tcl: sta_warn 313 "unsupported object type $object_type."
tcl/Cmds.tcl: sta_warn 314"$arg_name must be a single net."
tcl/Cmds.tcl: sta_warn 315 "$arg_name '$object_type' is not a net."
tcl/Cmds.tcl: sta_warn 316 "$arg_name '$arg' not found."
tcl/Cmds.tcl: sta_error 491 "$cmd object is null."
tcl/Cmds.tcl: sta_error 492 "$cmd $type_key must be specified with object name argument."
tcl/Cmds.tcl: sta_error 492 "get_property unsupported object type $object_type."
tcl/Cmds.tcl: sta_error 493 "get_property $object is not an object."
tcl/Cmds.tcl: sta_error 494 "$object_type not supported."
tcl/Cmds.tcl: sta_error 495 "$object_type '$object_name' not found."
tcl/Cmds.tcl: sta_error 496 "Directory $spice_dir not found.\n"
tcl/Cmds.tcl: sta_error 497 "$spice_dir is not a directory.\n"
tcl/Cmds.tcl: sta_error 498 "Cannot write in $spice_dir.\n"
tcl/Cmds.tcl: sta_error 499 "No -spice_directory specified.\n"
tcl/Cmds.tcl: sta_error 500 "-lib_subckt_file $lib_subckt_file is not readable.\n"
tcl/Cmds.tcl: sta_error 501 "No -lib_subckt_file specified.\n"
tcl/Cmds.tcl: sta_error 502 "-model_file $model_file is not readable.\n"
tcl/Cmds.tcl: sta_error 503 "No -model_file specified.\n"
tcl/Cmds.tcl: sta_error 504 "No -power specified.\n"
tcl/Cmds.tcl: sta_error 505 "No -ground specified.\n"
tcl/Cmds.tcl: sta_error 506 "No -path_args specified.\n"
tcl/Cmds.tcl: sta_error 507 "No paths found for -path_args $path_args.\n"
tcl/Link.tcl: sta_error 593 "missing top_cell_name argument and no current_design."
tcl/Network.tcl: sta_error 589 "unknown namespace $namespc."
tcl/Network.tcl: sta_error 590 "instance $instance_path not found."
tcl/Network.tcl: sta_error 591 "net $net_path not found."
tcl/Network.tcl: sta_error 592 "net $net_path not found."
tcl/NetworkEdit.tcl: sta_error 586 "unsupported object type $object_type."
tcl/NetworkEdit.tcl: sta_warn 372 "connect_pins is deprecated. Use connect_pin."
tcl/NetworkEdit.tcl: sta_error 587 "unsupported object type $object_type."
tcl/NetworkEdit.tcl: sta_error 588 "unsupported object type $object_type."
tcl/NetworkEdit.tcl: sta_warn 372 "disconnect_pins is deprecated. Use disconnect_pin."
tcl/Power.tcl: sta_warn 301 "activity should be 0.0 to 1.0 or 2.0"
tcl/Power.tcl: sta_warn 302 "duty should be 0.0 to 1.0"
tcl/Sdc.tcl: sta_error 511 "cannot open '$filename'."
tcl/Sdc.tcl: sta_error 512 "incomplete command at end of file."
tcl/Sdc.tcl: sta_error 513 "hierarchy separator must be one of '$sdc_dividers'."
tcl/Sdc.tcl: sta_error 514 "unknown unit $unit '$suffix'."
tcl/Sdc.tcl: sta_error 514 "unknown $unit prefix '$prefix'."
tcl/Sdc.tcl: sta_warn 319 "$unit scale [format %.0e $scale] does not match library scale [format %.0e $unit_scale]."
tcl/Sdc.tcl: sta_error 515 "unknown $unit unit '$suffix'."
tcl/Sdc.tcl: sta_warn 320 "current_design for other than top cell not supported."
tcl/Sdc.tcl: sta_warn 321 "patterns argument not supported with -of_objects."
tcl/Sdc.tcl: sta_warn 322 "instance '$pattern' not found."
tcl/Sdc.tcl: sta_error 516 "unsupported -filter expression."
tcl/Sdc.tcl: sta_warn 323 "clock '$pattern' not found."
tcl/Sdc.tcl: sta_warn 324 "positional arguments not supported with -of_objects."
tcl/Sdc.tcl: sta_warn 325 "library '$lib_name' not found."
tcl/Sdc.tcl: sta_warn 326 "cell '$cell_pattern' not found."
tcl/Sdc.tcl: sta_warn 327 "library/cell/port '$pattern' not found."
tcl/Sdc.tcl: sta_warn 328 "port '$port_pattern' not found."
tcl/Sdc.tcl: sta_warn 329 "library '$lib_name' not found."
tcl/Sdc.tcl: sta_warn 330 "-nocase ignored without -regexp."
tcl/Sdc.tcl: sta_warn 331 "library '$pattern' not found."
tcl/Sdc.tcl: sta_warn 332 "patterns argument not supported with -of_objects."
tcl/Sdc.tcl: sta_warn 333 "net '$pattern' not found."
tcl/Sdc.tcl: sta_warn 334 "patterns argument not supported with -of_objects."
tcl/Sdc.tcl: sta_warn 335 "pin '$pattern' not found."
tcl/Sdc.tcl: sta_error 517 "unsupported -filter expression."
tcl/Sdc.tcl: sta_warn 336 "patterns argument not supported with -of_objects."
tcl/Sdc.tcl: sta_warn 337 "port '$pattern' not found."
tcl/Sdc.tcl: sta_error 518 "unsupported -filter expression."
tcl/Sdc.tcl: sta_error 519 "-add requires -name."
tcl/Sdc.tcl: sta_error 520 "-name or port_pin_list must be specified."
tcl/Sdc.tcl: sta_error 521 "missing -period argument."
tcl/Sdc.tcl: sta_error 522 "-waveform edge_list must have an even number of edge times."
tcl/Sdc.tcl: sta_warn 338 "adjusting non-increasing clock -waveform edge times."
tcl/Sdc.tcl: sta_warn 339 "-waveform time greater than two periods."
tcl/Sdc.tcl: sta_error 523 "empty ports/pins/nets argument."
tcl/Sdc.tcl: sta_error 524 "-add requires -name."
tcl/Sdc.tcl: sta_error 525 "name or port_pin_list must be specified."
tcl/Sdc.tcl: sta_error 526 "missing -source argument."
tcl/Sdc.tcl: sta_error 527 "-master_clock argument empty."
tcl/Sdc.tcl: sta_error 528 "-add requireds -master_clock."
tcl/Sdc.tcl: sta_error 529 "-multiply_by and -divide_by options are exclusive."
tcl/Sdc.tcl: sta_error 530 "-divide_by is not an integer greater than one."
tcl/Sdc.tcl: sta_error 531 "-combinational implies -divide_by 1."
tcl/Sdc.tcl: sta_error 532 "-multiply_by is not an integer greater than one."
tcl/Sdc.tcl: sta_error 533 "-duty_cycle is not a float between 0 and 100."
tcl/Sdc.tcl: sta_error 534 "-edges only supported for three edges."
tcl/Sdc.tcl: sta_error 535 "edges times are not monotonically increasing."
tcl/Sdc.tcl: sta_error 536 "-edge_shift length does not match -edges length."
tcl/Sdc.tcl: sta_error 537 "missing -multiply_by, -divide_by, -combinational or -edges argument."
tcl/Sdc.tcl: sta_error 538 "cannot specify -invert without -multiply_by, -divide_by or -combinational."
tcl/Sdc.tcl: sta_error 539 "-duty_cycle requires -multiply_by value."
tcl/Sdc.tcl: sta_error 540 "missing -pll_output argument."
tcl/Sdc.tcl: sta_error 541 "missing -pll_feedback argument."
tcl/Sdc.tcl: sta_error 542 "PLL output and feedback pins must be on the same instance."
tcl/Sdc.tcl: sta_error 543 "source pin must be on the same instance as the PLL output pin."
tcl/Sdc.tcl: sta_error 544 "PLL output must be one of the clock pins."
tcl/Sdc.tcl: sta_error 545 "group_path command failed."
tcl/Sdc.tcl: sta_error 546 "positional arguments not supported."
tcl/Sdc.tcl: sta_error 547 "-from, -through or -to required."
tcl/Sdc.tcl: sta_error 548 "-name and -default are mutually exclusive."
tcl/Sdc.tcl: sta_error 549 "-name or -default option is required."
tcl/Sdc.tcl: sta_error 550 "cannot specify both -high and -low."
tcl/Sdc.tcl: sta_error 551 "missing -setup or -hold argument."
tcl/Sdc.tcl: sta_error 552 "-high and -low only permitted for pins and instances."
tcl/Sdc.tcl: sta_error 553 "-high and -low only permitted for pins and instances."
tcl/Sdc.tcl: sta_error 554 "one of -logically_exclusive, -physically_exclusive or -asynchronous is required."
tcl/Sdc.tcl: sta_error 555 "the keywords -logically_exclusive, -physically_exclusive and -asynchronous are mutually exclusive."
tcl/Sdc.tcl: sta_warn 349 "unknown keyword argument $arg."
tcl/Sdc.tcl: sta_warn 341 "extra positional argument $arg."
tcl/Sdc.tcl: sta_warn 342 "-clock ignored for clock objects."
tcl/Sdc.tcl: sta_error 556 "-source '[get_full_name $pin]' is not a clock pin."
tcl/Sdc.tcl: sta_error 557 "-early/-late is only allowed with -source."
tcl/Sdc.tcl: sta_warn 343 "set_sense -type data not supported."
tcl/Sdc.tcl: sta_error 558 "set_sense -type clock|data"
tcl/Sdc.tcl: sta_warn 344 "set_clock_sense is deprecated as of SDC 2.1. Use set_sense -type clock."
tcl/Sdc.tcl: sta_warn 345 "-pulse argument not supported."
tcl/Sdc.tcl: sta_warn 346 "-positive, -negative, -stop_propagation and -pulse are mutually exclusive."
tcl/Sdc.tcl: sta_warn 347 "hierarchical pin '[get_full_name $pin]' not supported."
tcl/Sdc.tcl: sta_error 559 "transition time can not be specified for virtual clocks."
tcl/Sdc.tcl: sta_error 560 "missing uncertainty value."
tcl/Sdc.tcl: sta_error 561 "-from/-to must be used together."
tcl/Sdc.tcl: sta_error 562 "-rise, -fall options not allowed for single clock uncertainty."
tcl/Sdc.tcl: sta_error 563 "missing -from, -rise_from or -fall_from argument."
tcl/Sdc.tcl: sta_error 564 "missing -to, -rise_to or -fall_to argument."
tcl/Sdc.tcl: sta_warn 348 "-from/-to keywords ignored for lib_pin, port and pin arguments."
tcl/Sdc.tcl: sta_error 565 "-from/-to hierarchical instance not supported."
tcl/Sdc.tcl: sta_error 566 "pin '[get_full_name $inst]${hierarchy_separator}${port_name}' not found."
tcl/Sdc.tcl: sta_error 567 "pin '[get_name $cell]${hierarchy_separator}${port_name}' not found."
tcl/Sdc.tcl: sta_warn 349 "'$args' ignored."
tcl/Sdc.tcl: sta_warn 350 "-from, -through or -to required."
tcl/Sdc.tcl: sta_warn 351 "-source_latency_included ignored with -reference_pin."
tcl/Sdc.tcl: sta_warn 352 "-network_latency_included ignored with -reference_pin."
tcl/Sdc.tcl: sta_warn 353 "$cmd not allowed on [pin_direction $pin] port '[get_full_name $pin]'."
tcl/Sdc.tcl: sta_warn 354 "$cmd relative to a clock defined on the same port/pin not allowed."
tcl/Sdc.tcl: sta_error 568 "missing delay argument."
tcl/Sdc.tcl: sta_warn 355 "'$args' ignored."
tcl/Sdc.tcl: sta_error 569 "missing path multiplier argument."
tcl/Sdc.tcl: sta_warn 356 "'$args' ignored."
tcl/Sdc.tcl: sta_error 570 "cannot use -start with -end."
tcl/Sdc.tcl: sta_warn 357 "virtual clock [get_name $clk] can not be propagated."
tcl/Sdc.tcl: sta_error 571 "value must be 0, zero, 1, one, rise, rising, fall, or falling."
tcl/Sdc.tcl: sta_error 572 "cell '$lib_name:$cell_name' not found."
tcl/Sdc.tcl: sta_error 573 "'$cell_name' not found."
tcl/Sdc.tcl: sta_error 574 "missing -lib_cell argument."
tcl/Sdc.tcl: sta_error 575 "port '$to_port_name' not found."
tcl/Sdc.tcl: sta_error 576 "-pin argument required for cells with multiple outputs."
tcl/Sdc.tcl: sta_error 577 "port '$from_port_name' not found."
tcl/Sdc.tcl: sta_warn 358 "-multiply_by ignored."
tcl/Sdc.tcl: sta_warn 359 "-dont_scale ignored."
tcl/Sdc.tcl: sta_warn 360 "-no_design_rule ignored."
tcl/Sdc.tcl: sta_warn 361 "set_fanout_load not supported."
tcl/Sdc.tcl: sta_warn 361 "-clock not supported."
tcl/Sdc.tcl: sta_warn 362 "-clock_fall not supported."
tcl/Sdc.tcl: sta_warn 363 "-pin_load not allowed for net objects."
tcl/Sdc.tcl: sta_warn 364 "-wire_load not allowed for net objects."
tcl/Sdc.tcl: sta_warn 365 "-rise/-fall not allowed for net objects."
tcl/Sdc.tcl: sta_error 578 "port '[get_name $port]' is not an input."
tcl/Sdc.tcl: sta_warn 366 "-data_path, -clock_path, -rise, -fall ignored for ports and designs."
tcl/Sdc.tcl: sta_warn 367 "derating factor greater than 2.0."
tcl/Sdc.tcl: sta_warn 368 "-cell_delay and -cell_check flags ignored for net objects."
tcl/Sdc.tcl: sta_warn 369 "no valid objects specified for $key."
tcl/Sdc.tcl: sta_warn 370 "no valid objects specified for $key"
tcl/Sdc.tcl: sta_warn 370 "no valid objects specified for $key."
tcl/Sdc.tcl: sta_error 579 "operating condition '$op_cond_name' not found."
tcl/Sdc.tcl: sta_error 580 "operating condition '$op_cond_name' not found."
tcl/Sdc.tcl: sta_error 581 "-analysis_type must be single, bc_wc or on_chip_variation."
tcl/Sdc.tcl: sta_warn 371 "set_wire_load_min_block_size not supported."
tcl/Sdc.tcl: sta_error 582 "mode must be top, enclosed or segmented."
tcl/Sdc.tcl: sta_error 583 "no wire load model specified."
tcl/Sdc.tcl: sta_error 583 "wire load model '$model_name' not found."
tcl/Sdc.tcl: sta_error 584 "wire load selection group '$selection_name' not found."
tcl/Sdc.tcl: sta_error 585 "no default operating conditions found."
tcl/Search.tcl: sta_error 508 "-min and -max cannot both be specified."
tcl/Search.tcl: sta_error 509 "pin '$pin_arg' is hierarchical."
tcl/Search.tcl: sta_error 510 "-format $format not recognized."
tcl/Search.tcl: sta_warn 318 "unknown path group '$name'."
tcl/Sta.tcl: sta_error 419 "report_clock_skew -setup and -hold are mutually exclusive options."
tcl/Sta.tcl: sta_error 420 "$cmd -path_delay must be min, min_rise, min_fall, max, max_rise, max_fall or min_max."
tcl/Sta.tcl: sta_error 421 "$cmd command failed."
tcl/Sta.tcl: sta_error 422 "-endpoint_count must be a positive integer."
tcl/Sta.tcl: sta_error 423 "-group_count must be a positive integer."
tcl/Sta.tcl: sta_error 424 "'$arg' is not a known keyword or flag."
tcl/Sta.tcl: sta_error 425 "positional arguments not supported."
tcl/Sta.tcl: sta_error 426 "analysis type single is not consistent with doing both setup/max and hold/min checks."
tcl/Sta.tcl: sta_error 427 "positional arguments not supported."
tcl/Sta.tcl: sta_error 428 "set_assigned_transition transition is not a float."
tcl/Util.tcl: sta_error 400 "$cmd $key missing value."
tcl/Util.tcl: sta_error 401 "$cmd $key missing value."
tcl/Util.tcl: sta_error 402 "$cmd $arg is not a known keyword or flag."
tcl/Util.tcl: sta_error 403 "$cmd $arg is not a known keyword or flag."
tcl/Util.tcl: sta_error 404 "Usage: $cmd $cmd_args($cmd)"
tcl/Util.tcl: sta_error 405 "Usage: $cmd argument error"
tcl/Util.tcl: sta_warn 300 "no commands match '$pattern'."
tcl/Util.tcl: sta_error 406 "$cmd positional arguments not supported."
tcl/Util.tcl: sta_error 407 "$cmd requires one positional argument."
tcl/Util.tcl: sta_error 408 "$cmd requires zero or one positional arguments."
tcl/Util.tcl: sta_error 409 "$cmd requires two positional arguments."
tcl/Util.tcl: sta_error 410 "$cmd requires one or two positional arguments."
tcl/Util.tcl: sta_error 411 "$cmd requires three positional arguments."
tcl/Util.tcl: sta_error 412 "$cmd requires four positional arguments."
tcl/Util.tcl: sta_error 413 "$cmd_arg '$arg' is not a float."
tcl/Util.tcl: sta_error 414 "$cmd_arg '$arg' is not a positive float."
tcl/Util.tcl: sta_error 415 "$cmd_arg '$arg' is not an integer."
tcl/Util.tcl: sta_error 416 "$cmd_arg '$arg' is not a positive integer."
tcl/Util.tcl: sta_error 417 "$cmd_arg '$arg' is not an integer greater than or equal to one."
tcl/Util.tcl: sta_error 418 "$cmd_arg '$arg' is not between 0 and 100."
tcl/Variables.tcl: sta_error 436 "sta_report_default_digits must be a positive integer."
tcl/Variables.tcl: sta_error 437 "sta_crpr_mode must be pin or transition."
tcl/Variables.tcl: sta_error 438 "$var_name value must be 0 or 1."

View File

@ -43,7 +43,7 @@ proc_redirect read_spef {
set path $keys(-path)
set instance [find_instance $path]
if { $instance == "NULL" } {
sta_error "path instance '$path' not found."
sta_error 433 "path instance '$path' not found."
}
}
set min_max [parse_min_max_all_flags flags]
@ -60,7 +60,7 @@ proc_redirect read_spef {
if [info exists keys(-reduce_to)] {
set reduce_to $keys(-reduce_to)
if { !($reduce_to == "pi_elmore" || $reduce_to == "pi_pole_residue2") } {
sta_error "-reduce_to must be pi_elmore or pi_pole_residue2."
sta_error 434 "-reduce_to must be pi_elmore or pi_pole_residue2."
}
}
set delete_after_reduce [info exists flags(-delete_after_reduce)]

View File

@ -44,7 +44,7 @@ proc_redirect read_sdf {
# -analysis_type is an implicit set_operating_conditions
set_analysis_type_cmd $analysis_type
} else {
sta_error "-analysis_type must be single, bc_wc or on_chip_variation"
sta_error 429 "-analysis_type must be single, bc_wc or on_chip_variation"
}
}
@ -57,7 +57,7 @@ proc_redirect read_sdf {
}
if { $cond_use == "min_max" \
&& { [operating_condition_analysis_type] == "single" }} {
sta_error "-cond_use min_max cannot be used with analysis type single."
sta_error 430 "-cond_use min_max cannot be used with analysis type single."
}
}
@ -105,7 +105,7 @@ proc parse_sdf_index { key index } {
} elseif { $index == "sdf_max" } {
return 2
} else {
sta_error "$key must be sdf_min, sdf_typ, or sdf_max."
sta_error 431 "$key must be sdf_min, sdf_typ, or sdf_max."
}
}
@ -207,7 +207,7 @@ proc_redirect write_sdf {
if [info exists keys(-divider)] {
set divider $keys(-divider)
if { !($divider == "/" || $divider == ".") } {
sta_error "SDF -divider must be / or ."
sta_error 432 "SDF -divider must be / or ."
}
}
set digits 3

View File

@ -114,7 +114,7 @@ proc delete_objects_from_list_cmd { list objects } {
} elseif {$list_type == "LibertyPort"} {
set obj [get_lib_pins $obj]
} else {
sta_error "unsupported object type $list_type."
sta_error 439 "unsupported object type $list_type."
}
}
set index [lsearch $list $obj]
@ -136,7 +136,7 @@ proc get_timing_edges_cmd { cmd cmd_args } {
if { [info exists keys(-of_objects)] } {
if { [info exists keys(-from)] \
|| [info exists keys(-from)] } {
sta_error "-from/-to arguments not supported with -of_objects."
sta_error 440 "-from/-to arguments not supported with -of_objects."
}
set arcs [get_timing_arcs_objects $keys(-of_objects)]
} elseif { [info exists keys(-from)] \
@ -274,7 +274,7 @@ proc filter_timing_arcs1 { filter objects } {
} elseif { [regexp $filter_regexp1 $filter ignore attr_name op arg] } {
set filtered_objects [filter_timing_arcs $attr_name $op $arg $objects]
} else {
sta_error "unsupported -filter expression."
sta_error 441 "unsupported -filter expression."
}
return $filtered_objects
}
@ -292,38 +292,38 @@ proc set_assigned_delay_cmd { cmd cmd_args } {
if [info exists keys(-from)] {
set from_pins [get_port_pins_error "from_pins" $keys(-from)]
} else {
sta_error "$cmd missing -from argument."
sta_error 442 "$cmd missing -from argument."
}
if [info exists keys(-to)] {
set to_pins [get_port_pins_error "to_pins" $keys(-to)]
} else {
sta_error "$cmd missing -to argument."
sta_error 443 "$cmd missing -to argument."
}
set delay [lindex $cmd_args 0]
if {![string is double $delay]} {
sta_error "$cmd delay is not a float."
sta_error 444 "$cmd delay is not a float."
}
set delay [time_ui_sta $delay]
if {[info exists flags(-cell)] && [info exists flags(-net)]} {
sta_error "set_annotated_delay -cell and -net options are mutually excluive."
sta_error 445 "set_annotated_delay -cell and -net options are mutually excluive."
} elseif {[info exists flags(-cell)]} {
if { $from_pins != {} } {
set inst [[lindex $from_pins 0] instance]
foreach pin $from_pins {
if {[$pin instance] != $inst} {
sta_error "$cmd pin [get_full_name $pin] is not attached to instance [get_full_name $inst]."
sta_error 446 "$cmd pin [get_full_name $pin] is not attached to instance [get_full_name $inst]."
}
}
foreach pin $to_pins {
if {[$pin instance] != $inst} {
sta_error "$cmd pin [get_full_name $pin] is not attached to instance [get_full_name $inst]"
sta_error 447 "$cmd pin [get_full_name $pin] is not attached to instance [get_full_name $inst]"
}
}
}
} elseif {![info exists flags(-net)]} {
sta_error "$cmd -cell or -net required."
sta_error 448 "$cmd -cell or -net required."
}
foreach from_pin $from_pins {
set from_vertices [$from_pin vertices]
@ -381,7 +381,7 @@ proc set_assigned_check_cmd { cmd cmd_args } {
if { [info exists keys(-from)] } {
set from_pins [get_port_pins_error "from_pins" $keys(-from)]
} else {
sta_error "$cmd missing -from argument."
sta_error 449 "$cmd missing -from argument."
}
set from_rf "rise_fall"
if { [info exists keys(-clock)] } {
@ -390,14 +390,14 @@ proc set_assigned_check_cmd { cmd cmd_args } {
|| $clk_arg eq "fall" } {
set from_rf $clk_arg
} else {
sta_error "$cmd -clock must be rise or fall."
sta_error 450 "$cmd -clock must be rise or fall."
}
}
if { [info exists keys(-to)] } {
set to_pins [get_port_pins_error "to_pins" $keys(-to)]
} else {
sta_error "$cmd missing -to argument."
sta_error 451 "$cmd missing -to argument."
}
set to_rf [parse_rise_fall_flags flags]
set corner [parse_corner keys]
@ -412,7 +412,7 @@ proc set_assigned_check_cmd { cmd cmd_args } {
} elseif { [info exists flags(-removal)] } {
set role "removal"
} else {
sta_error "$cmd missing -setup|-hold|-recovery|-removal check type.."
sta_error 452 "$cmd missing -setup|-hold|-recovery|-removal check type.."
}
set cond ""
if { [info exists key(-cond)] } {
@ -420,7 +420,7 @@ proc set_assigned_check_cmd { cmd cmd_args } {
}
set check_value [lindex $cmd_args 0]
if { ![string is double $check_value] } {
sta_error "$cmd check_value is not a float."
sta_error 453 "$cmd check_value is not a float."
}
set check_value [time_ui_sta $check_value]
@ -500,10 +500,10 @@ proc unset_clk_groups_cmd { cmd cmd_args } {
}
if { $all && $names != {} } {
sta_error "the -all and -name options are mutually exclusive."
sta_error 454 "the -all and -name options are mutually exclusive."
}
if { !$all && $names == {} } {
sta_error "either -all or -name options must be specified."
sta_error 455 "either -all or -name options must be specified."
}
set logically_exclusive [info exists flags(-logically_exclusive)]
@ -511,10 +511,10 @@ proc unset_clk_groups_cmd { cmd cmd_args } {
set asynchronous [info exists flags(-asynchronous)]
if { ($logically_exclusive+$physically_exclusive+$asynchronous) == 0 } {
sta_error "one of -logically_exclusive, -physically_exclusive or -asynchronous is required."
sta_error 456 "one of -logically_exclusive, -physically_exclusive or -asynchronous is required."
}
if { ($logically_exclusive+$physically_exclusive+$asynchronous) > 1 } {
sta_error "the keywords -logically_exclusive, -physically_exclusive and -asynchronous are mutually exclusive."
sta_error 457 "the keywords -logically_exclusive, -physically_exclusive and -asynchronous are mutually exclusive."
}
if { $all } {
@ -549,7 +549,7 @@ proc unset_clk_latency_cmd { cmd cmd_args } {
if { [info exists keys(-clock)] } {
set pin_clk [get_clock_warn "clock" $keys(-clock)]
if { $clks != {} } {
sta_warn "-clock ignored for clock objects."
sta_warn 303 "-clock ignored for clock objects."
}
}
@ -561,7 +561,7 @@ proc unset_clk_latency_cmd { cmd cmd_args } {
foreach pin $pins {
# Source only allowed on clocks and clock pins.
if { ![is_clock_pin $pin] } {
sta_error "-source '[$pin path_name]' is not a clock pin."
sta_error 458 "-source '[$pin path_name]' is not a clock pin."
}
unset_clock_insertion_cmd $pin_clk $pin
}
@ -619,7 +619,7 @@ proc unset_clk_uncertainty_cmd { cmd cmd_args } {
if { $from_key != "none" && $to_key == "none" \
|| $from_key == "none" && $to_key != "none" } {
sta_error "-from/-to must be used together."
sta_error 459 "-from/-to must be used together."
} elseif { $from_key != "none" && $to_key != "none" } {
# Inter-clock uncertainty.
check_argc_eq0 "unset_clock_uncertainty" $cmd_args
@ -639,7 +639,7 @@ proc unset_clk_uncertainty_cmd { cmd cmd_args } {
check_argc_eq1 $cmd $cmd_args
if { [info exists keys(-rise)] \
|| [info exists keys(-fall)] } {
sta_error "-rise, -fall options not allowed for single clock uncertainty."
sta_error 460 "-rise, -fall options not allowed for single clock uncertainty."
}
set objects [lindex $cmd_args 0]
parse_clk_port_pin_arg $objects clks pins
@ -674,7 +674,7 @@ proc unset_data_checks_cmd { cmd cmd_args } {
set from [get_port_pin_error "from_pin" $keys(-fall_from)]
set from_rf "fall"
} else {
sta_error "missing -from, -rise_from or -fall_from argument."
sta_error 461 "missing -from, -rise_from or -fall_from argument."
}
if [info exists keys(-to)] {
@ -686,7 +686,7 @@ proc unset_data_checks_cmd { cmd cmd_args } {
set to [get_port_pin_error "to_pin" $keys(-fall_to)]
set to_rf "fall"
} else {
sta_error "missing -to, -rise_to or -fall_to argument."
sta_error 462 "missing -to, -rise_to or -fall_to argument."
}
if [info exists keys(-clock)] {
@ -753,7 +753,7 @@ proc unset_disable_cmd { cmd cmd_args } {
if { ([info exists keys(-from)] || [info exists keys(-to)]) \
&& ($libports != {} || $pins != {} || $ports != {}) } {
sta_warn "-from/-to keywords ignored for lib_pin, port and pin arguments."
sta_warn 304 "-from/-to keywords ignored for lib_pin, port and pin arguments."
}
foreach libcell $libcells {
@ -805,7 +805,7 @@ proc unset_disable_timing_instance { inst from to } {
set from_ports [parse_disable_inst_ports $inst $from]
set to_ports [parse_disable_inst_ports $inst $to]
if { ![$inst is_leaf] } {
sta_error "-from/-to hierarchical instance not supported."
sta_error 463 "-from/-to hierarchical instance not supported."
}
if { $from_ports == "NULL" && $to_ports == "NULL" } {
unset_disable_instance $inst "NULL" "NULL"
@ -847,18 +847,18 @@ proc unset_path_exceptions_cmd { cmd cmd_args } {
set to [parse_to_arg keys flags arg_error]
if { $arg_error } {
delete_from_thrus_to $from $thrus $to
sta_error "$cmd command failed."
sta_error 464 "$cmd command failed."
return 0
}
check_for_key_args $cmd cmd_args
if { $cmd_args != {} } {
delete_from_thrus_to $from $thrus $to
sta_error "positional arguments not supported."
sta_error 465 "positional arguments not supported."
}
if { ($from == "NULL" && $thrus == "" && $to == "NULL") } {
delete_from_thrus_to $from $thrus $to
sta_error "-from, -through or -to required."
sta_error 466 "-from, -through or -to required."
}
reset_path_cmd $from $thrus $to $min_max
@ -977,7 +977,7 @@ proc get_object_args { objects clks_var libcells_var libports_var \
&& $object_type == "TimingArcSet" } {
lappend timing_arc_sets $obj
} else {
sta_error "unsupported object type $object_type."
sta_error 467 "unsupported object type $object_type."
}
} elseif { $obj != {} } {
# Check for implicit arg.
@ -1035,7 +1035,7 @@ proc get_object_args { objects clks_var libcells_var libports_var \
if { $matches != {} } {
set nets [concat $nets $matches]
} else {
sta_warn "object '$obj' not found."
sta_warn 305 "object '$obj' not found."
}
}
}
@ -1268,12 +1268,12 @@ proc parse_corner { keys_var } {
set corner_name $keys(-corner)
set corner [find_corner $corner_name]
if { $corner == "NULL" } {
sta_error "$corner_name is not the name of process corner."
sta_error 468 "$corner_name is not the name of process corner."
} else {
return $corner
}
} elseif { [multi_corner] } {
sta_error "-corner keyword required with multi-corner analysis."
sta_error 469 "-corner keyword required with multi-corner analysis."
} else {
return [cmd_corner]
}
@ -1288,12 +1288,12 @@ proc parse_corner_required { keys_var } {
set corner_name $keys(-corner)
set corner [find_corner $corner_name]
if { $corner == "NULL" } {
sta_error "$corner_name is not the name of process corner."
sta_error 470 "$corner_name is not the name of process corner."
} else {
return $corner
}
} else {
sta_error "missing -corner arg."
sta_error 471 "missing -corner arg."
}
}
@ -1304,7 +1304,7 @@ proc parse_corner_or_default { keys_var } {
set corner_name $keys(-corner)
set corner [find_corner $corner_name]
if { $corner == "NULL" } {
sta_error "$corner_name is not the name of process corner."
sta_error 472 "$corner_name is not the name of process corner."
} else {
return $corner
}
@ -1320,7 +1320,7 @@ proc parse_corner_or_all { keys_var } {
set corner_name $keys(-corner)
set corner [find_corner $corner_name]
if { $corner == "NULL" } {
sta_error "$corner_name is not the name of process corner."
sta_error 473 "$corner_name is not the name of process corner."
} else {
return $corner
}
@ -1345,7 +1345,7 @@ proc parse_rise_fall_flags { flags_var } {
proc parse_min_max_flags { flags_var } {
upvar 1 $flags_var flags
if { [info exists flags(-min)] && [info exists flags(-max)] } {
sta_error "both -min and -max specified."
sta_error 474 "both -min and -max specified."
} elseif { [info exists flags(-min)] && ![info exists flags(-max)] } {
return "min"
} elseif { [info exists flags(-max)] && ![info exists flags(-min)] } {
@ -1359,7 +1359,7 @@ proc parse_min_max_flags { flags_var } {
proc parse_min_max_all_flags { flags_var } {
upvar 1 $flags_var flags
if { [info exists flags(-min)] && [info exists flags(-max)] } {
sta_error "both -min and -max specified."
sta_error 475 "both -min and -max specified."
} elseif { [info exists flags(-min)] && ![info exists flags(-max)] } {
return "min"
} elseif { [info exists flags(-max)] && ![info exists flags(-min)] } {
@ -1386,20 +1386,20 @@ proc parse_min_max_all_check_flags { flags_var } {
proc parse_early_late_flags { flags_var } {
upvar 1 $flags_var flags
if { [info exists flags(-early)] && [info exists flags(-late)] } {
sta_error "only one of -early and -late can be specified."
sta_error 476 "only one of -early and -late can be specified."
} elseif { [info exists flags(-early)] } {
return "min"
} elseif { [info exists flags(-late)] } {
return "max"
} else {
sta_error "-early or -late must be specified."
sta_error 477 "-early or -late must be specified."
}
}
proc parse_early_late_all_flags { flags_var } {
upvar 1 $flags_var flags
if { [info exists flags(-early)] && [info exists flags(-late)] } {
sta_error "both -early and -late specified."
sta_error 478 "both -early and -late specified."
} elseif { [info exists flags(-early)] && ![info exists flags(-late)] } {
return "min"
} elseif { [info exists flags(-late)] && ![info exists flags(-early)] } {
@ -1414,18 +1414,18 @@ proc parse_early_late_all_flags { flags_var } {
proc get_liberty_error { arg_name arg } {
set lib "NULL"
if {[llength $arg] > 1} {
sta_error "$arg_name must be a single library."
sta_error 479 "$arg_name must be a single library."
} elseif { [is_object $arg] } {
set object_type [object_type $arg]
if { $object_type == "LibertyLibrary" } {
set lib $arg
} else {
sta_error "$arg_name type '$object_type' is not a library."
sta_error 480 "$arg_name type '$object_type' is not a library."
}
} else {
set lib [find_liberty $arg]
if { $lib == "NULL" } {
sta_error "library '$arg' not found."
sta_error 481 "library '$arg' not found."
}
}
return $lib
@ -1442,7 +1442,7 @@ proc get_lib_cell_error { arg_name arg } {
proc get_lib_cell_arg { arg_name arg error_proc } {
set lib_cell "NULL"
if { [llength $arg] > 1 } {
sta_error "$arg_name must be a single lib cell."
sta_error 482 "$arg_name must be a single lib cell."
} elseif { [is_object $arg] } {
set object_type [object_type $arg]
if { $object_type == "LibertyCell" } {
@ -1483,7 +1483,7 @@ proc get_lib_cells_arg { arg_name arglist error_proc } {
if { $object_type == "LibertyCell" } {
lappend lib_cells $arg
} else {
sta_warn_error $warn_error "unsupported object type $object_type."
sta_warn_error 306 $warn_error "unsupported object type $object_type."
}
} elseif { $arg != {} } {
set arg_lib_cells [get_lib_cells -quiet $arg]
@ -1498,18 +1498,18 @@ proc get_lib_cells_arg { arg_name arglist error_proc } {
proc get_instance_error { arg_name arg } {
set inst "NULL"
if {[llength $arg] > 1} {
sta_error "$arg_name must be a single instance."
sta_error 483 "$arg_name must be a single instance."
} elseif { [is_object $arg] } {
set object_type [object_type $arg]
if { $object_type == "Instance" } {
set inst $arg
} else {
sta_error "$arg_name type '$object_type' is not an instance."
sta_error 484 "$arg_name type '$object_type' is not an instance."
}
} else {
set inst [find_instance $arg]
if { $inst == "NULL" } {
sta_error "instance '$arg' not found."
sta_error 485 "instance '$arg' not found."
}
}
return $inst
@ -1528,14 +1528,14 @@ proc get_instances_error { arg_name arglist } {
if { $object_type == "Instance" } {
lappend insts $arg
} else {
sta_error "$arg_name type '$object_type' is not an instance."
sta_error 486 "$arg_name type '$object_type' is not an instance."
}
} elseif { $arg != {} } {
set arg_insts [get_cells -quiet $arg]
if { $arg_insts != {} } {
set insts [concat $insts $arg_insts]
} else {
sta_error "instance '$arg' not found."
sta_error 487 "instance '$arg' not found."
}
}
}
@ -1553,7 +1553,7 @@ proc get_port_pin_error { arg_name arg } {
proc get_port_pin_arg { arg_name arg warn_error } {
set pin "NULL"
if {[llength $arg] > 1} {
sta_warn_error $warn_error "$arg_name must be a single port or pin."
sta_warn_error 307 $warn_error "$arg_name must be a single port or pin."
} elseif { [is_object $arg] } {
set object_type [object_type $arg]
if { $object_type == "Pin" } {
@ -1562,7 +1562,7 @@ proc get_port_pin_arg { arg_name arg warn_error } {
# Explicit port arg - convert to pin.
set pin [find_pin [get_name $arg]]
} else {
sta_warn_error $warn_error "$arg_name type '$object_type' is not a pin or port."
sta_warn_error 308 $warn_error "$arg_name type '$object_type' is not a pin or port."
}
} else {
set top_instance [top_instance]
@ -1574,7 +1574,7 @@ proc get_port_pin_arg { arg_name arg warn_error } {
set pin [$top_instance find_pin [get_name $port]]
}
if { $pin == "NULL" } {
sta_warn_error $warn_error "pin $arg not found."
sta_warn_error 309 $warn_error "pin $arg not found."
}
}
return $pin
@ -1596,14 +1596,14 @@ proc get_port_pins_error { arg_name arglist } {
# Convert port to pin.
lappend pins [find_pin [get_name $arg]]
} else {
sta_error "$arg_name type '$object_type' is not a pin or port."
sta_error 488 "$arg_name type '$object_type' is not a pin or port."
}
} elseif { $arg != {} } {
set arg_pins [get_ports_or_pins $arg]
if { $arg_pins != {} } {
set pins [concat $pins $arg_pins]
} else {
sta_error "pin '$arg' not found."
sta_error 489 "pin '$arg' not found."
}
}
}
@ -1623,7 +1623,7 @@ proc get_ports_error { arg_name arglist } {
if { $object_type == "Port" } {
lappend ports $arg
} else {
sta_error "$arg_name type '$object_type' is not a port."
sta_error 490 "$arg_name type '$object_type' is not a port."
}
} elseif { $arg != {} } {
set arg_ports [get_ports $arg]
@ -1646,18 +1646,18 @@ proc get_pin_warn { arg_name arg } {
proc get_pin_arg { arg_name arg warn_error } {
set pin "NULL"
if {[llength $arg] > 1} {
sta_warn_error $warn_error "$arg_name must be a single pin."
sta_warn_error 310 $warn_error "$arg_name must be a single pin."
} elseif { [is_object $arg] } {
set object_type [object_type $arg]
if { $object_type == "Pin" } {
set pin $arg
} else {
sta_warn_error $warn_error "$arg_name type '$object_type' is not a pin."
sta_warn_error 311 $warn_error "$arg_name type '$object_type' is not a pin."
}
} else {
set pin [find_pin $arg]
if { $pin == "NULL" } {
sta_warn_error $warn_error "$arg_name pin $arg not found."
sta_warn_error 312 $warn_error "$arg_name pin $arg not found."
}
}
return $pin
@ -1704,7 +1704,7 @@ proc get_clocks_warn { arg_name arglist } {
if { $object_type == "Clock" } {
lappend clks $arg
} else {
sta_warn "unsupported object type $object_type."
sta_warn 313 "unsupported object type $object_type."
}
} elseif { $arg != {} } {
set arg_clocks [get_clocks $arg]
@ -1719,18 +1719,18 @@ proc get_clocks_warn { arg_name arglist } {
proc get_net_warn { arg_name arg } {
set net "NULL"
if {[llength $arg] > 1} {
sta_warn "$arg_name must be a single net."
sta_warn 314"$arg_name must be a single net."
} elseif { [is_object $arg] } {
set object_type [object_type $arg]
if { $object_type == "Net" } {
set net $arg
} else {
sta_warn "$arg_name '$object_type' is not a net."
sta_warn 315 "$arg_name '$object_type' is not a net."
}
} else {
set net [find_net $arg]
if { $net == "NULL" } {
sta_warn "$arg_name '$arg' not found."
sta_warn 316 "$arg_name '$arg' not found."
}
}
return $net
@ -1757,7 +1757,7 @@ proc get_nets_arg { arg_name arglist warn_error } {
if { $object_type == "Net" } {
lappend nets $arg
} else {
sta_warn_error $warn_error "unsupported object type $object_type."
sta_warn_error 317 $warn_error "unsupported object type $object_type."
}
} elseif { $arg != {} } {
set arg_nets [get_nets -quiet $arg]
@ -1827,12 +1827,12 @@ proc get_property_cmd { cmd type_key cmd_args } {
check_argc_eq2 $cmd $cmd_args
set object [lindex $cmd_args 0]
if { $object == "" } {
sta_error "$cmd object is null."
sta_error 491 "$cmd object is null."
} elseif { ![is_object $object] } {
if [info exists keys($type_key)] {
set object_type $keys($type_key)
} else {
sta_error "$cmd $type_key must be specified with object name argument."
sta_error 492 "$cmd $type_key must be specified with object name argument."
}
set object [get_property_object_type $object_type $object $quiet]
}
@ -1872,10 +1872,10 @@ proc get_object_property { object prop } {
} elseif { $object_type == "TimingArcSet" } {
return [timing_arc_set_property $object $prop]
} else {
sta_error "get_property unsupported object type $object_type."
sta_error 492 "get_property unsupported object type $object_type."
}
} else {
sta_error "get_property $object is not an object."
sta_error 493 "get_property $object is not an object."
}
}
@ -1898,10 +1898,10 @@ proc get_property_object_type { object_type object_name quiet } {
} elseif { $object_type == "lib" } {
set object [get_libs -quiet $object_name]
} else {
sta_error "$object_type not supported."
sta_error 494 "$object_type not supported."
}
if { $object == "NULL" && !$quiet } {
sta_error "$object_type '$object_name' not found."
sta_error 495 "$object_type '$object_name' not found."
}
return [lindex $object 0]
}
@ -1975,55 +1975,55 @@ proc write_path_spice { args } {
if { [info exists keys(-spice_directory)] } {
set spice_dir [file_expand_tilde $keys(-spice_directory)]
if { ![file exists $spice_dir] } {
sta_error "Directory $spice_dir not found.\n"
sta_error 496 "Directory $spice_dir not found.\n"
}
if { ![file isdirectory $spice_dir] } {
sta_error "$spice_dir is not a directory.\n"
sta_error 497 "$spice_dir is not a directory.\n"
}
if { ![file writable $spice_dir] } {
sta_error "Cannot write in $spice_dir.\n"
sta_error 498 "Cannot write in $spice_dir.\n"
}
} else {
sta_error "No -spice_directory specified.\n"
sta_error 499 "No -spice_directory specified.\n"
}
if { [info exists keys(-lib_subckt_file)] } {
set lib_subckt_file [file_expand_tilde $keys(-lib_subckt_file)]
if { ![file readable $lib_subckt_file] } {
sta_error "-lib_subckt_file $lib_subckt_file is not readable.\n"
sta_error 500 "-lib_subckt_file $lib_subckt_file is not readable.\n"
}
} else {
sta_error "No -lib_subckt_file specified.\n"
sta_error 501 "No -lib_subckt_file specified.\n"
}
if { [info exists keys(-model_file)] } {
set model_file [file_expand_tilde $keys(-model_file)]
if { ![file readable $model_file] } {
sta_error "-model_file $model_file is not readable.\n"
sta_error 502 "-model_file $model_file is not readable.\n"
}
} else {
sta_error "No -model_file specified.\n"
sta_error 503 "No -model_file specified.\n"
}
if { [info exists keys(-power)] } {
set power $keys(-power)
} else {
sta_error "No -power specified.\n"
sta_error 504 "No -power specified.\n"
}
if { [info exists keys(-ground)] } {
set ground $keys(-ground)
} else {
sta_error "No -ground specified.\n"
sta_error 505 "No -ground specified.\n"
}
if { ![info exists keys(-path_args)] } {
sta_error "No -path_args specified.\n"
sta_error 506 "No -path_args specified.\n"
}
set path_args $keys(-path_args)
set path_ends [eval [concat find_timing_paths $path_args]]
if { $path_ends == {} } {
sta_error "No paths found for -path_args $path_args.\n"
sta_error 507 "No paths found for -path_args $path_args.\n"
} else {
set path_index 1
foreach path_end $path_ends {

View File

@ -25,7 +25,7 @@ proc link_design { {top_cell_name ""} } {
if { $top_cell_name == "" } {
if { $current_design_name == "" } {
sta_error "missing top_cell_name argument and no current_design."
sta_error 593 "missing top_cell_name argument and no current_design."
return 0
} else {
set top_cell_name $current_design_name

View File

@ -22,7 +22,7 @@ proc set_cmd_namespace { namespc } {
if { $namespc == "sdc" || $namespc == "sta" } {
set_cmd_namespace_cmd $namespc
} else {
sta_error "unknown namespace $namespc."
sta_error 589 "unknown namespace $namespc."
}
}
@ -52,7 +52,7 @@ proc_redirect report_instance {
if { $instance != "NULL" } {
report_instance1 $instance $connections $verbose
} else {
sta_error "instance $instance_path not found."
sta_error 590 "instance $instance_path not found."
}
}
@ -271,10 +271,10 @@ proc_redirect report_net {
if { $net != "NULL" } {
report_net1 $net $connections $verbose $hier_pins $corner $digits
} else {
sta_error "net $net_path not found."
sta_error 591 "net $net_path not found."
}
} else {
sta_error "net $net_path not found."
sta_error 592 "net $net_path not found."
}
}
}

View File

@ -47,7 +47,7 @@ proc parse_connect_pin { arg } {
set inst [$pin instance]
set port [$pin port]
} else {
sta_error "unsupported object type $object_type."
sta_error 586 "unsupported object type $object_type."
}
} else {
if {[regexp $path_regexp $arg ignore path_name port_name]} {
@ -77,7 +77,7 @@ proc parse_connect_pin { arg } {
}
proc connect_pins { net pins } {
sta_warn "connect_pins is deprecated. Use connect_pin."
sta_warn 372 "connect_pins is deprecated. Use connect_pin."
# Visit the pins to make sure command will succeed.
set insts_ports [parse_connect_pins $pins]
if { $insts_ports == 0 } {
@ -116,7 +116,7 @@ proc delete_instance { instance } {
if { $object_type == "Instance" } {
set inst $obj
} else {
sta_error "unsupported object type $object_type."
sta_error 587 "unsupported object type $object_type."
}
} else {
set inst [find_instance $instance]
@ -132,7 +132,7 @@ proc delete_net { net } {
if { [is_object $net] } {
set object_type [object_type $net]
if { $object_type != "Net" } {
sta_error "unsupported object type $object_type."
sta_error 588 "unsupported object type $object_type."
}
} else {
set net [find_net $net]
@ -169,7 +169,7 @@ proc disconnect_pin { net pin } {
}
proc disconnect_pins { net pins } {
sta_warn "disconnect_pins is deprecated. Use disconnect_pin."
sta_warn 372 "disconnect_pins is deprecated. Use disconnect_pin."
foreach pin $pins {
disconnect_pin $net $pins
}

View File

@ -220,7 +220,7 @@ proc set_power_activity { args } {
set activity $keys(-activity)
check_float "activity" $activity
if { $activity < 0.0 } {
sta_warn "activity should be 0.0 to 1.0 or 2.0"
sta_warn 301 "activity should be 0.0 to 1.0 or 2.0"
}
}
set duty 0.5
@ -228,7 +228,7 @@ proc set_power_activity { args } {
set duty $keys(-duty)
check_float "duty" $duty
if { $duty < 0.0 || $duty > 1.0 } {
sta_warn "duty should be 0.0 to 1.0"
sta_warn 302 "duty should be 0.0 to 1.0"
}
}

View File

@ -61,7 +61,7 @@ proc source_ { filename echo verbose } {
variable sdc_file
variable sdc_line
if [catch {open $filename r} stream] {
sta_error "cannot open '$filename'."
sta_error 511 "cannot open '$filename'."
} else {
# Save file and line in recursive call to source.
if { [info exists sdc_file] } {
@ -113,7 +113,7 @@ proc source_ { filename echo verbose } {
}
close $stream
if { $cmd != {} } {
sta_error "incomplete command at end of file."
sta_error 512 "incomplete command at end of file."
}
set error_sdc_file $sdc_file
set error_sdc_line $sdc_line
@ -199,7 +199,7 @@ proc check_path_divider { divider } {
set sdc_dividers "/@^#.|"
if { !([string length $divider] == 1
&& [string first $divider $sdc_dividers] != -1)} {
sta_error "hierarchy separator must be one of '$sdc_dividers'."
sta_error 513 "hierarchy separator must be one of '$sdc_dividers'."
}
}
@ -245,7 +245,7 @@ proc check_unit { unit key unit_name key_var } {
set scale [unit_prefix_scale $unit $prefix]
check_unit_scale $unit $scale
} else {
sta_error "unknown unit $unit '$suffix'."
sta_error 514 "unknown unit $unit '$suffix'."
}
}
}
@ -267,14 +267,14 @@ proc unit_prefix_scale { unit prefix } {
} elseif { [string equal $prefix "f"] } {
return 1E-15
} else {
sta_error "unknown $unit prefix '$prefix'."
sta_error 514 "unknown $unit prefix '$prefix'."
}
}
proc check_unit_scale { unit scale } {
set unit_scale [unit_scale $unit]
if { ![fuzzy_equal $scale $unit_scale] } {
sta_warn "$unit scale [format %.0e $scale] does not match library scale [format %.0e $unit_scale]."
sta_warn 319 "$unit scale [format %.0e $scale] does not match library scale [format %.0e $unit_scale]."
}
}
@ -318,7 +318,7 @@ proc set_unit_values { unit key unit_name key_var } {
set scale [unit_prefix_scale $unit $prefix]
set_cmd_unit_scale $unit $scale
} else {
sta_error "unknown $unit unit '$suffix'."
sta_error 515 "unknown $unit unit '$suffix'."
}
}
if [info exists keys(-digits)] {
@ -475,7 +475,7 @@ proc current_design { {design ""} } {
set current_design_name $design
return $design
} else {
sta_warn "current_design for other than top cell not supported."
sta_warn 320 "current_design for other than top cell not supported."
set current_design_name $design
return $design
}
@ -512,7 +512,7 @@ proc get_cells { args } {
set insts {}
if [info exists keys(-of_objects)] {
if { $args != {} } {
sta_warn "patterns argument not supported with -of_objects."
sta_warn 321 "patterns argument not supported with -of_objects."
}
parse_port_pin_net_arg $keys(-of_objects) pins nets
foreach pin $pins {
@ -547,7 +547,7 @@ proc get_cells { args } {
set matches [find_instances_matching $pattern $regexp $nocase]
}
if { $matches == {} && !$quiet} {
sta_warn "instance '$pattern' not found."
sta_warn 322 "instance '$pattern' not found."
}
set insts [concat $insts $matches]
}
@ -581,7 +581,7 @@ proc filter_insts1 { filter objects } {
} elseif { [regexp $filter_regexp1 $filter ignore attr_name op arg] } {
set filtered_objects [filter_insts $attr_name $op $arg $objects]
} else {
sta_error "unsupported -filter expression."
sta_error 516 "unsupported -filter expression."
}
return $filtered_objects
}
@ -608,7 +608,7 @@ proc get_clocks { args } {
set clocks [concat $clocks $matches]
} else {
if {![info exists flags(-quiet)]} {
sta_warn "clock '$pattern' not found."
sta_warn 323 "clock '$pattern' not found."
}
}
}
@ -635,7 +635,7 @@ proc get_lib_cells { args } {
set cells {}
if [info exists keys(-of_objects)] {
if { $args != {} } {
sta_warn "positional arguments not supported with -of_objects."
sta_warn 324 "positional arguments not supported with -of_objects."
}
set insts [get_instances_error "objects" $keys(-of_objects)]
foreach inst $insts {
@ -661,7 +661,7 @@ proc get_lib_cells { args } {
set libs [get_libs -quiet $lib_name]
if { $libs == {} } {
if {!$quiet} {
sta_warn "library '$lib_name' not found."
sta_warn 325 "library '$lib_name' not found."
}
} else {
foreach lib $libs {
@ -673,7 +673,7 @@ proc get_lib_cells { args } {
}
if { $cells == {} } {
if {!$quiet} {
sta_warn "cell '$cell_pattern' not found."
sta_warn 326 "cell '$cell_pattern' not found."
}
}
}
@ -720,7 +720,7 @@ proc get_lib_pins { args } {
set libs [get_libs *]
} else {
if { !$quiet } {
sta_warn "library/cell/port '$pattern' not found."
sta_warn 327 "library/cell/port '$pattern' not found."
}
return {}
}
@ -740,12 +740,12 @@ proc get_lib_pins { args } {
}
if { !$found_match } {
if { !$quiet } {
sta_warn "port '$port_pattern' not found."
sta_warn 328 "port '$port_pattern' not found."
}
}
} else {
if { !$quiet } {
sta_warn "library '$lib_name' not found."
sta_warn 329 "library '$lib_name' not found."
}
}
}
@ -755,7 +755,7 @@ proc get_lib_pins { args } {
proc check_nocase_flag { flags_var } {
upvar 1 $flags_var flags
if { [info exists flags(-nocase)] && ![info exists flags(-regexp)] } {
sta_warn "-nocase ignored without -regexp."
sta_warn 330 "-nocase ignored without -regexp."
}
}
@ -781,7 +781,7 @@ proc get_libs { args } {
set libs [concat $libs $matches]
} else {
if {![info exists flags(-quiet)]} {
sta_warn "library '$pattern' not found."
sta_warn 331 "library '$pattern' not found."
}
}
}
@ -844,7 +844,7 @@ proc get_nets { args } {
set nets {}
if [info exists keys(-of_objects)] {
if { $args != {} } {
sta_warn "patterns argument not supported with -of_objects."
sta_warn 332 "patterns argument not supported with -of_objects."
}
parse_inst_pin_arg $keys(-of_objects) insts pins
foreach inst $insts {
@ -868,7 +868,7 @@ proc get_nets { args } {
}
set nets [concat $nets $matches]
if { $matches == {} && !$quiet } {
sta_warn "net '$pattern' not found."
sta_warn 333 "net '$pattern' not found."
}
}
}
@ -897,7 +897,7 @@ proc get_pins { args } {
set pins {}
if [info exists keys(-of_objects)] {
if { $args != {} } {
sta_warn "patterns argument not supported with -of_objects."
sta_warn 334 "patterns argument not supported with -of_objects."
}
parse_inst_net_arg $keys(-of_objects) insts nets
foreach inst $insts {
@ -934,7 +934,7 @@ proc get_pins { args } {
}
set pins [concat $pins $matches]
if { $matches == {} && !$quiet } {
sta_warn "pin '$pattern' not found."
sta_warn 335 "pin '$pattern' not found."
}
}
}
@ -966,7 +966,7 @@ proc filter_pins1 { filter objects } {
} elseif { [regexp $filter_regexp1 $filter ignore attr_name op arg] } {
set filtered_objects [filter_pins $attr_name $op $arg $objects]
} else {
sta_error "unsupported -filter expression."
sta_error 517 "unsupported -filter expression."
}
return $filtered_objects
}
@ -991,7 +991,7 @@ proc get_ports { args } {
set ports {}
if [info exists keys(-of_objects)] {
if { $args != {} } {
sta_warn "patterns argument not supported with -of_objects."
sta_warn 336 "patterns argument not supported with -of_objects."
}
set nets [get_nets_warn "objects" $keys(-of_objects)]
foreach net $nets {
@ -1005,7 +1005,7 @@ proc get_ports { args } {
set ports [concat $ports $matches]
} else {
if {![info exists flags(-quiet)]} {
sta_warn "port '$pattern' not found."
sta_warn 337 "port '$pattern' not found."
}
}
}
@ -1042,7 +1042,7 @@ proc filter_ports1 { filter objects } {
} elseif { [regexp $filter_regexp1 $filter ignore attr_name op arg] } {
set filtered_objects [filter_ports $attr_name $op $arg $objects]
} else {
sta_error "unsupported -filter expression."
sta_error 518 "unsupported -filter expression."
}
return $filtered_objects
}
@ -1075,12 +1075,12 @@ proc create_clock { args } {
set name $keys(-name)
} elseif { $pins != {} } {
if { $add } {
sta_error "-add requires -name."
sta_error 519 "-add requires -name."
}
# Default clock name is the first pin name.
set name [get_full_name [lindex $pins 0]]
} else {
sta_error "-name or port_pin_list must be specified."
sta_error 520 "-name or port_pin_list must be specified."
}
if [info exists keys(-period)] {
@ -1088,13 +1088,13 @@ proc create_clock { args } {
check_positive_float "period" $period
set period [time_ui_sta $period]
} else {
sta_error "missing -period argument."
sta_error 521 "missing -period argument."
}
if [info exists keys(-waveform)] {
set wave_arg $keys(-waveform)
if { [expr [llength $wave_arg] % 2] != 0 } {
sta_error "-waveform edge_list must have an even number of edge times."
sta_error 522 "-waveform edge_list must have an even number of edge times."
}
set first_edge 1
set prev_edge 0
@ -1106,11 +1106,11 @@ proc create_clock { args } {
set edge [expr $edge - $period]
}
if { !$first_edge && $edge < $prev_edge } {
sta_warn "adjusting non-increasing clock -waveform edge times."
sta_warn 338 "adjusting non-increasing clock -waveform edge times."
set edge [expr $edge + $period]
}
if { $edge > [expr $period * 2] } {
sta_warn "-waveform time greater than two periods."
sta_warn 339 "-waveform time greater than two periods."
}
lappend waveform $edge
set prev_edge $edge
@ -1151,7 +1151,7 @@ proc create_generated_clock { args } {
}
}
if { $pins == {} } {
sta_error "empty ports/pins/nets argument."
sta_error 523 "empty ports/pins/nets argument."
}
set add [info exists flags(-add)]
@ -1159,19 +1159,19 @@ proc create_generated_clock { args } {
set name $keys(-name)
} elseif { $pins != {} } {
if { $add } {
sta_error "-add requires -name."
sta_error 524 "-add requires -name."
}
# Default clock name is the first pin name.
set name [get_full_name [lindex $pins 0]]
} else {
sta_error "name or port_pin_list must be specified."
sta_error 525 "name or port_pin_list must be specified."
}
if [info exists keys(-source)] {
set source $keys(-source)
set source_pin [get_port_pin_error "master_pin" $source]
} else {
sta_error "missing -source argument."
sta_error 526 "missing -source argument."
}
set master_clk "NULL"
@ -1188,44 +1188,44 @@ proc create_generated_clock { args } {
if {[info exists keys(-master_clock)]} {
set master_clk [get_clock_error "-master_clk" $keys(-master_clock)]
if { $master_clk == "NULL" } {
sta_error "-master_clock argument empty."
sta_error 527 "-master_clock argument empty."
}
} elseif { $add } {
sta_error "-add requireds -master_clock."
sta_error 528 "-add requireds -master_clock."
}
if {[info exists keys(-divide_by)] && [info exists keys(-multiply_by)]} {
sta_error "-multiply_by and -divide_by options are exclusive."
sta_error 529 "-multiply_by and -divide_by options are exclusive."
} elseif {[info exists keys(-divide_by)]} {
set divide_by $keys(-divide_by)
if {![string is integer $divide_by] || $divide_by < 1} {
sta_error "-divide_by is not an integer greater than one."
sta_error 530 "-divide_by is not an integer greater than one."
}
if {$combinational && $divide_by != 1} {
sta_error "-combinational implies -divide_by 1."
sta_error 531 "-combinational implies -divide_by 1."
}
} elseif {[info exists keys(-multiply_by)]} {
set multiply_by $keys(-multiply_by)
if {![string is integer $multiply_by] || $multiply_by < 1} {
sta_error "-multiply_by is not an integer greater than one."
sta_error 532 "-multiply_by is not an integer greater than one."
}
if {[info exists keys(-duty_cycle)]} {
set duty_cycle $keys(-duty_cycle)
if {![string is double $duty_cycle] \
|| $duty_cycle < 0.0 || $duty_cycle > 100.0} {
sta_error "-duty_cycle is not a float between 0 and 100."
sta_error 533 "-duty_cycle is not a float between 0 and 100."
}
}
} elseif {[info exists keys(-edges)]} {
set edges $keys(-edges)
if { [llength $edges] != 3 } {
sta_error "-edges only supported for three edges."
sta_error 534 "-edges only supported for three edges."
}
set prev_edge [expr [lindex $edges 0] - 1]
foreach edge $edges {
check_cardinal "-edges" $edge
if { $edge <= $prev_edge } {
sta_error "edges times are not monotonically increasing."
sta_error 535 "edges times are not monotonically increasing."
}
}
if [info exists keys(-edge_shift)] {
@ -1234,13 +1234,13 @@ proc create_generated_clock { args } {
lappend edge_shifts [time_ui_sta $shift]
}
if { [llength $edge_shifts] != [llength $edges] } {
sta_error "-edge_shift length does not match -edges length."
sta_error 536 "-edge_shift length does not match -edges length."
}
}
} elseif { $combinational } {
set divide_by 1
} else {
sta_error "missing -multiply_by, -divide_by, -combinational or -edges argument."
sta_error 537 "missing -multiply_by, -divide_by, -combinational or -edges argument."
}
set invert 0
@ -1248,33 +1248,33 @@ proc create_generated_clock { args } {
if {!([info exists keys(-divide_by)] \
|| [info exists keys(-multiply_by)] \
|| [info exists flags(-combinational)])} {
sta_error "cannot specify -invert without -multiply_by, -divide_by or -combinational."
sta_error 538 "cannot specify -invert without -multiply_by, -divide_by or -combinational."
}
set invert 1
}
if {[info exists keys(-duty_cycle)] && ![info exists keys(-multiply_by)]} {
sta_error "-duty_cycle requires -multiply_by value."
sta_error 539 "-duty_cycle requires -multiply_by value."
}
if { [info exists keys(-pll_feedback)] || [info exists keys(-pll_output)] } {
if {![info exists keys(-pll_output)] } {
sta_error "missing -pll_output argument."
sta_error 540 "missing -pll_output argument."
}
if { ![info exists keys(-pll_feedback)] } {
sta_error "missing -pll_feedback argument."
sta_error 541 "missing -pll_feedback argument."
}
set pll_feedback [get_pin_error "-pll_feedback" $keys(-pll_feedback)]
set pll_out [get_pin_error "-pll_output" $keys(-pll_output)]
set pll_inst [$pll_out instance]
if { [$pll_feedback instance] != $pll_inst } {
sta_error "PLL output and feedback pins must be on the same instance."
sta_error 542 "PLL output and feedback pins must be on the same instance."
}
if { [$source_pin instance] != $pll_inst } {
sta_error "source pin must be on the same instance as the PLL output pin."
sta_error 543 "source pin must be on the same instance as the PLL output pin."
}
if { [lsearch $pins $pll_out] == -1 } {
sta_error "PLL output must be one of the clock pins."
sta_error 544 "PLL output must be one of the clock pins."
}
}
@ -1312,26 +1312,26 @@ proc group_path { args } {
check_exception_pins $from $to
if { $arg_error } {
delete_from_thrus_to $from $thrus $to
sta_error "group_path command failed."
sta_error 545 "group_path command failed."
return 0
}
check_for_key_args $cmd args
if { $args != {} } {
delete_from_thrus_to $from $thrus $to
sta_error "positional arguments not supported."
sta_error 546 "positional arguments not supported."
}
if { ($from == "NULL" && $thrus == "" && $to == "NULL") } {
delete_from_thrus_to $from $thrus $to
sta_error "-from, -through or -to required."
sta_error 547 "-from, -through or -to required."
}
set default [info exists flags(-default)]
set name_exists [info exists keys(-name)]
if { $default && $name_exists } {
sta_error "-name and -default are mutually exclusive."
sta_error 548 "-name and -default are mutually exclusive."
} elseif { !$name_exists && !$default } {
sta_error "-name or -default option is required."
sta_error 549 "-name or -default option is required."
} elseif { $default } {
set name ""
} else {
@ -1372,7 +1372,7 @@ proc set_clock_gating_check { args } {
set active_value ""
if {[info exists flags(-high)] && [info exists flags(-low)]} {
sta_error "cannot specify both -high and -low."
sta_error 550 "cannot specify both -high and -low."
} elseif [info exists flags(-low)] {
set active_value "0"
} elseif [info exists flags(-high)] {
@ -1380,7 +1380,7 @@ proc set_clock_gating_check { args } {
}
if { !([info exists keys(-hold)] || [info exists keys(-setup)]) } {
sta_error "missing -setup or -hold argument."
sta_error 551 "missing -setup or -hold argument."
}
if [info exists keys(-hold)] {
set_clock_gating_check1 $args $tr "min" $keys(-hold) $active_value
@ -1394,14 +1394,14 @@ proc set_clock_gating_check1 { args tr setup_hold margin active_value } {
set margin [time_ui_sta $margin]
if { [llength $args] == 0 } {
if { $active_value != "" } {
sta_error "-high and -low only permitted for pins and instances."
sta_error 552 "-high and -low only permitted for pins and instances."
}
set_clock_gating_check_cmd $tr $setup_hold $margin
} elseif { [llength $args] == 1 } {
parse_clk_inst_port_pin_arg [lindex $args 0] clks insts pins
if { $clks != {} && $active_value != "" } {
sta_error "-high and -low only permitted for pins and instances."
sta_error 553 "-high and -low only permitted for pins and instances."
}
foreach clk $clks {
set_clock_gating_check_clk_cmd $clk $tr $setup_hold $margin
@ -1444,10 +1444,10 @@ proc set_clock_groups { args } {
set allow_paths [info exists flags(-allow_paths)]
if { ($logically_exclusive+$physically_exclusive+$asynchronous) == 0 } {
sta_error "one of -logically_exclusive, -physically_exclusive or -asynchronous is required."
sta_error 554 "one of -logically_exclusive, -physically_exclusive or -asynchronous is required."
}
if { ($logically_exclusive+$physically_exclusive+$asynchronous) > 1 } {
sta_error "the keywords -logically_exclusive, -physically_exclusive and -asynchronous are mutually exclusive."
sta_error 555 "the keywords -logically_exclusive, -physically_exclusive and -asynchronous are mutually exclusive."
}
set comment [parse_comment_key keys]
@ -1466,9 +1466,9 @@ proc set_clock_groups { args } {
set args [lrange $args 2 end]
} else {
if {[is_keyword_arg $arg]} {
sta_warn "unknown keyword argument $arg."
sta_warn 349 "unknown keyword argument $arg."
} else {
sta_warn "extra positional argument $arg."
sta_warn 341 "extra positional argument $arg."
}
set args [lrange $args 1 end]
}
@ -1501,7 +1501,7 @@ proc set_clock_latency { args } {
if { [info exists keys(-clock)] } {
set pin_clk [get_clock_warn "clock" $keys(-clock)]
if { $clks != {} } {
sta_warn "-clock ignored for clock objects."
sta_warn 342 "-clock ignored for clock objects."
}
}
@ -1515,14 +1515,14 @@ proc set_clock_latency { args } {
foreach pin $pins {
# Source only allowed on clocks and clock pins.
if { ![is_clock_src $pin] } {
sta_error "-source '[get_full_name $pin]' is not a clock pin."
sta_error 556 "-source '[get_full_name $pin]' is not a clock pin."
}
set_clock_insertion_cmd $pin_clk $pin $tr $min_max $early_late $delay
}
} else {
# Latency.
if {[info exists flags(-early)] || [info exists flags(-late)]} {
sta_error "-early/-late is only allowed with -source."
sta_error 557 "-early/-late is only allowed with -source."
}
foreach clk $clks {
@ -1547,11 +1547,11 @@ proc set_sense { args } {
if { [info exists keys(-type)] } {
set type $keys(-type)
if { $type == "data" } {
sta_warn "set_sense -type data not supported."
sta_warn 343 "set_sense -type data not supported."
} elseif { $type == "clock" } {
set_clock_sense_cmd1 "set_sense" $args
} else {
sta_error "set_sense -type clock|data"
sta_error 558 "set_sense -type clock|data"
}
}
}
@ -1562,7 +1562,7 @@ define_cmd_args "set_clock_sense" \
[-clock clocks] pins}
proc set_clock_sense { args } {
sta_warn "set_clock_sense is deprecated as of SDC 2.1. Use set_sense -type clock."
sta_warn 344 "set_clock_sense is deprecated as of SDC 2.1. Use set_sense -type clock."
set_clock_sense_cmd1 "set_clock_sense" $args
}
@ -1574,7 +1574,7 @@ proc set_clock_sense_cmd1 { cmd cmd_args } {
set pulse [info exists keys(-pulse)]
if { $pulse } {
sta_warn "-pulse argument not supported."
sta_warn 345 "-pulse argument not supported."
}
set positive [info exists flags(-positive)]
set negative [info exists flags(-negative)]
@ -1583,7 +1583,7 @@ proc set_clock_sense_cmd1 { cmd cmd_args } {
|| ($negative && ($positive || $stop_propagation || $pulse)) \
|| ($stop_propagation && ($positive || $negative || $pulse))
|| ($pulse && ($positive || $negative || $stop_propagation)) } {
sta_warn "-positive, -negative, -stop_propagation and -pulse are mutually exclusive."
sta_warn 346 "-positive, -negative, -stop_propagation and -pulse are mutually exclusive."
}
set pins [get_port_pins_error "pins" [lindex $cmd_args 0]]
@ -1596,7 +1596,7 @@ proc set_clock_sense_cmd1 { cmd cmd_args } {
}
foreach pin $pins {
if {[$pin is_hierarchical]} {
sta_warn "hierarchical pin '[get_full_name $pin]' not supported."
sta_warn 347 "hierarchical pin '[get_full_name $pin]' not supported."
}
}
set_clock_sense_cmd $pins $clks $positive $negative $stop_propagation
@ -1620,7 +1620,7 @@ proc set_clock_transition { args } {
foreach clk $clks {
if { [$clk is_virtual] } {
sta_error "transition time can not be specified for virtual clocks."
sta_error 559 "transition time can not be specified for virtual clocks."
} else {
set_clock_slew_cmd $clk $tr $min_max [time_ui_sta $slew]
}
@ -1641,7 +1641,7 @@ proc set_clock_uncertainty { args } {
flags {-rise -fall -setup -hold}
if { [llength $args] == 0 } {
sta_error "missing uncertainty value."
sta_error 560 "missing uncertainty value."
}
set uncertainty [lindex $args 0]
check_float "uncertainty" $uncertainty
@ -1683,7 +1683,7 @@ proc set_clock_uncertainty { args } {
if { $from_key != "none" && $to_key == "none" \
|| $from_key == "none" && $to_key != "none" } {
sta_error "-from/-to must be used together."
sta_error 561 "-from/-to must be used together."
} elseif { $from_key != "none" && $to_key != "none" } {
# Inter-clock uncertainty.
check_argc_eq1 "-from/-to" $args
@ -1703,7 +1703,7 @@ proc set_clock_uncertainty { args } {
check_argc_eq2 "set_clock_uncertainty" $args
if { [info exists flags(-rise)] \
|| [info exists flags(-fall)] } {
sta_error "-rise, -fall options not allowed for single clock uncertainty."
sta_error 562 "-rise, -fall options not allowed for single clock uncertainty."
}
set objects [lindex $args 1]
parse_clk_port_pin_arg $objects clks pins
@ -1744,7 +1744,7 @@ proc set_data_check { args } {
set from [get_port_pin_error "from_pin" $keys(-fall_from)]
set from_rf "fall"
} else {
sta_error "missing -from, -rise_from or -fall_from argument."
sta_error 563 "missing -from, -rise_from or -fall_from argument."
}
if [info exists keys(-to)] {
@ -1756,7 +1756,7 @@ proc set_data_check { args } {
set to [get_port_pin_error "to_pin" $keys(-fall_to)]
set to_rf "fall"
} else {
sta_error "missing -to, -rise_to or -fall_to argument."
sta_error 564 "missing -to, -rise_to or -fall_to argument."
}
if [info exists keys(-clock)] {
@ -1798,7 +1798,7 @@ proc set_disable_timing { args } {
if { ([info exists keys(-from)] || [info exists keys(-to)]) \
&& ($libports != {} || $pins != {} || $ports != {}) } {
sta_warn "-from/-to keywords ignored for lib_pin, port and pin arguments."
sta_warn 348 "-from/-to keywords ignored for lib_pin, port and pin arguments."
}
foreach libcell $libcells {
@ -1828,7 +1828,7 @@ proc set_disable_timing_instance { inst from to } {
set from_ports [parse_disable_inst_ports $inst $from]
set to_ports [parse_disable_inst_ports $inst $to]
if { ![$inst is_leaf] } {
sta_error "-from/-to hierarchical instance not supported."
sta_error 565 "-from/-to hierarchical instance not supported."
}
if { $from_ports == "NULL" && $to_ports == "NULL" } {
disable_instance $inst "NULL" "NULL"
@ -1860,7 +1860,7 @@ proc parse_disable_inst_ports { inst port_name } {
set cell [instance_property $inst cell]
set port [$cell find_port $port_name]
if { $port == "NULL" } {
sta_error "pin '[get_full_name $inst]${hierarchy_separator}${port_name}' not found."
sta_error 566 "pin '[get_full_name $inst]${hierarchy_separator}${port_name}' not found."
} else {
set lib_port [get_property $port liberty_port]
set ports [port_members $lib_port]
@ -1901,7 +1901,7 @@ proc parse_disable_cell_ports { cell port_name } {
} else {
set port [$cell find_liberty_port $port_name]
if { $port == "NULL" } {
sta_error "pin '[get_name $cell]${hierarchy_separator}${port_name}' not found."
sta_error 567 "pin '[get_name $cell]${hierarchy_separator}${port_name}' not found."
} else {
set ports [port_members $port]
}
@ -1942,11 +1942,11 @@ proc set_false_path { args } {
} else {
check_for_key_args $cmd args
if { $args != {} } {
sta_warn "'$args' ignored."
sta_warn 349 "'$args' ignored."
}
if { ($from == "NULL" && $thrus == "" && $to == "NULL") } {
delete_from_thrus_to $from $thrus $to
sta_warn "-from, -through or -to required."
sta_warn 350 "-from, -through or -to required."
} else {
if [info exists flags(-reset_path)] {
reset_path_cmd $from $thrus $to $min_max
@ -2025,10 +2025,10 @@ proc set_port_delay { cmd sta_cmd cmd_args port_dirs } {
if [info exists keys(-reference_pin)] {
set ref_pin [get_port_pin_error "ref_pin" $keys(-reference_pin)]
if { [info exists flags(-source_latency_included)] } {
sta_warn "-source_latency_included ignored with -reference_pin."
sta_warn 351 "-source_latency_included ignored with -reference_pin."
}
if { [info exists flags(-network_latency_included)] } {
sta_warn "-network_latency_included ignored with -reference_pin."
sta_warn 352 "-network_latency_included ignored with -reference_pin."
}
}
@ -2047,9 +2047,9 @@ proc set_port_delay { cmd sta_cmd cmd_args port_dirs } {
foreach pin $pins {
if { [$pin is_top_level_port] \
&& [lsearch $port_dirs [pin_direction $pin]] == -1 } {
sta_warn "$cmd not allowed on [pin_direction $pin] port '[get_full_name $pin]'."
sta_warn 353 "$cmd not allowed on [pin_direction $pin] port '[get_full_name $pin]'."
} elseif { $clk != "NULL" && [lsearch [$clk sources] $pin] != -1 } {
sta_warn "$cmd relative to a clock defined on the same port/pin not allowed."
sta_warn 354 "$cmd relative to a clock defined on the same port/pin not allowed."
} else {
$sta_cmd $pin $tr $clk $clk_rf $ref_pin\
$source_latency_included $network_latency_included \
@ -2086,13 +2086,13 @@ proc set_path_delay { cmd args min_max } {
check_for_key_args $cmd args
if { [llength $args] == 0 } {
delete_from_thrus_to $from $thrus $to
sta_error "missing delay argument."
sta_error 568 "missing delay argument."
} elseif { [llength $args] == 1 } {
set delay $args
check_float "$cmd delay" $delay
set delay [time_ui_sta $delay]
} else {
sta_warn "'$args' ignored."
sta_warn 355 "'$args' ignored."
}
set ignore_clk_latency [info exists flags(-ignore_clock_latency)]
@ -2217,19 +2217,19 @@ proc set_multicycle_path { args } {
check_for_key_args $cmd args
if { [llength $args] == 0 } {
delete_from_thrus_to $from $thrus $to
sta_error "missing path multiplier argument."
sta_error 569 "missing path multiplier argument."
} elseif { [llength $args] == 1 } {
set path_multiplier $args
check_integer "path multiplier" $path_multiplier
} else {
sta_warn "'$args' ignored."
sta_warn 356 "'$args' ignored."
}
set start [info exists flags(-start)]
set end [info exists flags(-end)]
if { $start && $end } {
delete_from_thrus_to $from $thrus $to
sta_error "cannot use -start with -end."
sta_error 570 "cannot use -start with -end."
} elseif { $start } {
set use_end_clk 0
} elseif { $end } {
@ -2269,7 +2269,7 @@ proc set_propagated_clock { objects } {
parse_clk_port_pin_arg $objects clks pins
foreach clk $clks {
if { [$clk is_virtual] } {
sta_warn "virtual clock [get_name $clk] can not be propagated."
sta_warn 357 "virtual clock [get_name $clk] can not be propagated."
} else {
set_propagated_clock_cmd $clk
}
@ -2297,7 +2297,7 @@ proc set_case_analysis { value pins } {
|| $value == "rising" \
|| $value == "fall" \
|| $value == "falling") } {
sta_error "value must be 0, zero, 1, one, rise, rising, fall, or falling."
sta_error 571 "value must be 0, zero, 1, one, rise, rising, fall, or falling."
}
set pins1 [get_port_pins_error "pins" $pins]
foreach pin $pins1 {
@ -2355,17 +2355,17 @@ proc set_driving_cell { args } {
set library [get_liberty_error "library" $keys(-library)]
set cell [$library find_liberty_cell $cell_name]
if { $cell == "NULL" } {
sta_error "cell '$lib_name:$cell_name' not found."
sta_error 572 "cell '$lib_name:$cell_name' not found."
}
} else {
set library "NULL"
set cell [find_liberty_cell $cell_name]
if { $cell == "NULL" } {
sta_error "'$cell_name' not found."
sta_error 573 "'$cell_name' not found."
}
}
} else {
sta_error "missing -lib_cell argument."
sta_error 574 "missing -lib_cell argument."
}
set to_port "NULL"
@ -2373,7 +2373,7 @@ proc set_driving_cell { args } {
set to_port_name $keys(-pin)
set to_port [$cell find_liberty_port $to_port_name]
if { $to_port == "NULL" } {
sta_error "port '$to_port_name' not found."
sta_error 575 "port '$to_port_name' not found."
}
} else {
set port_iter [$cell liberty_port_iterator]
@ -2385,7 +2385,7 @@ proc set_driving_cell { args } {
incr output_count
if { $output_count > 1 } {
$port_iter finish
sta_error "-pin argument required for cells with multiple outputs."
sta_error 576 "-pin argument required for cells with multiple outputs."
}
set to_port $port
# No break. Keep looking for output ports to make sure there
@ -2400,7 +2400,7 @@ proc set_driving_cell { args } {
set from_port_name $keys(-from_pin)
set from_port [$cell find_liberty_port $from_port_name]
if { $from_port == "NULL" } {
sta_error "port '$from_port_name' not found."
sta_error 577 "port '$from_port_name' not found."
}
}
@ -2418,13 +2418,13 @@ proc set_driving_cell { args } {
}
if [info exists keys(-multiply_by)] {
sta_warn "-multiply_by ignored."
sta_warn 358 "-multiply_by ignored."
}
if [info exists flags(-dont_scale)] {
sta_warn "-dont_scale ignored."
sta_warn 359 "-dont_scale ignored."
}
if [info exists flags(-no_design_rule)] {
sta_warn "-no_design_rule ignored."
sta_warn 360 "-no_design_rule ignored."
}
check_argc_eq1 "set_driving_cell" $args
@ -2441,7 +2441,7 @@ proc set_driving_cell { args } {
define_cmd_args "set_fanout_load" {fanout ports}
proc set_fanout_load { fanout port_list } {
sta_warn "set_fanout_load not supported."
sta_warn 361 "set_fanout_load not supported."
}
################################################################
@ -2465,10 +2465,10 @@ proc set_input_transition { args } {
set ports [get_ports_error "ports" [lindex $args 1]]
if [info exists keys(-clock)] {
sta_warn "-clock not supported."
sta_warn 361 "-clock not supported."
}
if [info exists keys(-clock_fall)] {
sta_warn "-clock_fall not supported."
sta_warn 362 "-clock_fall not supported."
}
foreach port $ports {
@ -2514,13 +2514,13 @@ proc set_load { args } {
}
if { $nets != {} } {
if { $pin_load } {
sta_warn "-pin_load not allowed for net objects."
sta_warn 363 "-pin_load not allowed for net objects."
}
if { $wire_load } {
sta_warn "-wire_load not allowed for net objects."
sta_warn 364 "-wire_load not allowed for net objects."
}
if { $tr != "rise_fall" } {
sta_warn "-rise/-fall not allowed for net objects."
sta_warn 365 "-rise/-fall not allowed for net objects."
}
foreach net $nets {
set_net_wire_cap $net $subtract_pin_load $corner $min_max $cap
@ -2607,7 +2607,7 @@ proc set_fanout_limit { fanout min_max objects } {
foreach port $ports {
set dir [port_direction $port]
if { !($dir == "input" || $dir == "bidirect") } {
sta_error "port '[get_name $port]' is not an input."
sta_error 578 "port '[get_name $port]' is not an input."
}
set_port_fanout_limit $port $min_max $fanout
}
@ -2653,7 +2653,7 @@ proc set_max_transition { args } {
|| [info exists flags(-data_path)]
|| [info exists flags(-rise)]
|| [info exists flags(-fall)]) } {
sta_warn "-data_path, -clock_path, -rise, -fall ignored for ports and designs."
sta_warn 366 "-data_path, -clock_path, -rise, -fall ignored for ports and designs."
}
# -clock_path/-data_path and transition only apply to clock objects.
@ -2723,7 +2723,7 @@ proc set_timing_derate { args } {
set derate [lindex $args 0]
check_float "derate" $derate
if { $derate > 2.0 } {
sta_warn "derating factor greater than 2.0."
sta_warn 367 "derating factor greater than 2.0."
}
set tr [parse_rise_fall_flags flags]
@ -2760,7 +2760,7 @@ proc set_timing_derate { args } {
if { $nets != {} } {
if { [info exists flags(-cell_delay)] \
|| [info exists flags(-cell_check)] } {
sta_warn "-cell_delay and -cell_check flags ignored for net objects."
sta_warn 368 "-cell_delay and -cell_check flags ignored for net objects."
}
foreach net $nets {
foreach path_type $path_types {
@ -2819,7 +2819,7 @@ proc parse_from_arg { keys_var arg_error_var } {
if {$from_pins == {} && $from_insts == {} && $from_clks == {}} {
upvar 1 $arg_error_var arg_error
set arg_error 1
sta_warn "no valid objects specified for $key."
sta_warn 369 "no valid objects specified for $key."
return "NULL"
}
return [make_exception_from $from_pins $from_clks $from_insts $tr]
@ -2852,7 +2852,7 @@ proc parse_thrus_arg { args_var arg_error_var } {
if {$pins == {} && $insts == {} && $nets == {}} {
upvar 1 $arg_error_var arg_error
set arg_error 1
sta_warn "no valid objects specified for $key"
sta_warn 370 "no valid objects specified for $key"
} else {
lappend thrus [make_exception_thru $pins $nets $insts $tr]
}
@ -2901,7 +2901,7 @@ proc parse_to_arg1 { keys_var end_rf arg_error_var } {
if {$to_pins == {} && $to_insts == {} && $to_clks == {}} {
upvar 1 $arg_error_var arg_error
set arg_error 1
sta_warn "no valid objects specified for $key."
sta_warn 370 "no valid objects specified for $key."
return "NULL"
}
return [make_exception_to $to_pins $to_clks $to_insts $to_rf $end_rf]
@ -2969,7 +2969,7 @@ proc parse_op_cond { op_cond_name lib_key min_max key_var } {
set liberty [get_liberty_error $lib_key $keys($lib_key)]
set op_cond [$liberty find_operating_conditions $op_cond_name]
if { $op_cond == "NULL" } {
sta_error "operating condition '$op_cond_name' not found."
sta_error 579 "operating condition '$op_cond_name' not found."
} else {
set_operating_conditions_cmd $op_cond $min_max
}
@ -2987,7 +2987,7 @@ proc parse_op_cond { op_cond_name lib_key min_max key_var } {
}
$lib_iter finish
if { !$found } {
sta_error "operating condition '$op_cond_name' not found."
sta_error 580 "operating condition '$op_cond_name' not found."
}
}
}
@ -3001,7 +3001,7 @@ proc parse_op_cond_analysis_type { key_var } {
|| $analysis_type == "on_chip_variation" } {
set_analysis_type_cmd $analysis_type
} else {
sta_error "-analysis_type must be single, bc_wc or on_chip_variation."
sta_error 581 "-analysis_type must be single, bc_wc or on_chip_variation."
}
} elseif { [info exists keys(-min)] && [info exists keys(-max)] } {
set_analysis_type_cmd "bc_wc"
@ -3013,7 +3013,7 @@ proc parse_op_cond_analysis_type { key_var } {
define_cmd_args "set_wire_load_min_block_size" {block_size}
proc set_wire_load_min_block_size { block_size } {
sta_warn "set_wire_load_min_block_size not supported."
sta_warn 371 "set_wire_load_min_block_size not supported."
}
################################################################
@ -3026,7 +3026,7 @@ proc set_wire_load_mode { mode } {
|| $mode == "segmented" } {
set_wire_load_mode_cmd $mode
} else {
sta_error "mode must be top, enclosed or segmented."
sta_error 582 "mode must be top, enclosed or segmented."
}
}
@ -3041,7 +3041,7 @@ proc set_wire_load_model { args } {
check_argc_eq0or1 "set_wire_load_model" $args
if { ![info exists keys(-name)] } {
sta_error "no wire load model specified."
sta_error 583 "no wire load model specified."
}
set model_name $keys(-name)
@ -3063,7 +3063,7 @@ proc set_wire_load_model { args } {
$lib_iter finish
}
if {$wireload == "NULL"} {
sta_error "wire load model '$model_name' not found."
sta_error 583 "wire load model '$model_name' not found."
}
set objects $args
set_wire_load_cmd $wireload $min_max
@ -3102,7 +3102,7 @@ proc set_wire_load_selection_group { args } {
$lib_iter finish
}
if {$selection == "NULL"} {
sta_error "wire load selection group '$selection_name' not found."
sta_error 584 "wire load selection group '$selection_name' not found."
}
set_wire_load_selection_group_cmd $selection $min_max
}
@ -3230,7 +3230,7 @@ proc default_operating_conditions {} {
}
$lib_iter finish
if { !$found } {
sta_error "no default operating conditions found."
sta_error 585 "no default operating conditions found."
}
return $op_cond
}

View File

@ -143,7 +143,7 @@ proc_redirect report_path {
flags {-max -min -all -tags} 0
if { [info exists flags(-min)] && [info exists flags(-max)] } {
sta_error "-min and -max cannot both be specified."
sta_error 508 "-min and -max cannot both be specified."
} elseif [info exists flags(-min)] {
set min_max "min"
} elseif [info exists flags(-max)] {
@ -163,7 +163,7 @@ proc_redirect report_path {
set pin [get_port_pin_error "pin" $pin_arg]
if { [$pin is_hierarchical] } {
sta_error "pin '$pin_arg' is hierarchical."
sta_error 509 "pin '$pin_arg' is hierarchical."
} else {
foreach vertex [$pin vertices] {
if { $vertex != "NULL" } {
@ -229,7 +229,7 @@ proc parse_report_path_options { cmd args_var default_format
set formats {full full_clock full_clock_expanded short \
end slack_only summary json}
if { [lsearch $formats $format] == -1 } {
sta_error "-format $format not recognized."
sta_error 510 "-format $format not recognized."
}
} else {
set path_options(-format) $default_format
@ -376,7 +376,7 @@ proc parse_path_group_arg { group_names } {
if { [is_path_group_name $name] } {
lappend names $name
} else {
sta_warn "unknown path group '$name'."
sta_warn 318 "unknown path group '$name'."
}
}
return $names

View File

@ -117,7 +117,7 @@ proc_redirect report_clock_skew {
check_argc_eq0 "report_clock_skew" $args
if { [info exists flags(-setup)] && [info exists flags(-hold)] } {
sta_error "report_clock_skew -setup and -hold are mutually exclusive options."
sta_error 419 "report_clock_skew -setup and -hold are mutually exclusive options."
} elseif { [info exists flags(-setup)] } {
set setup_hold "setup"
} elseif { [info exists flags(-hold)] } {
@ -192,7 +192,7 @@ proc find_timing_paths_cmd { cmd args_var } {
} elseif { $mm_key == "min" || $mm_key == "max" || $mm_key == "min_max" } {
set min_max $mm_key
} else {
sta_error "$cmd -path_delay must be min, min_rise, min_fall, max, max_rise, max_fall or min_max."
sta_error 420 "$cmd -path_delay must be min, min_rise, min_fall, max, max_rise, max_fall or min_max."
}
}
@ -202,7 +202,7 @@ proc find_timing_paths_cmd { cmd args_var } {
set to [parse_to_arg1 keys $end_rf arg_error]
if { $arg_error } {
delete_from_thrus_to $from $thrus $to
sta_error "$cmd command failed."
sta_error 421 "$cmd command failed."
}
check_for_key_args $cmd args
@ -221,7 +221,7 @@ proc find_timing_paths_cmd { cmd args_var } {
if [info exists keys(-endpoint_count)] {
set endpoint_count $keys(-endpoint_count)
if { $endpoint_count < 1 } {
sta_error "-endpoint_count must be a positive integer."
sta_error 422 "-endpoint_count must be a positive integer."
}
}
@ -229,7 +229,7 @@ proc find_timing_paths_cmd { cmd args_var } {
if [info exists keys(-group_count)] {
set group_count $keys(-group_count)
if { $group_count < 1 } {
sta_error "-group_count must be a positive integer."
sta_error 423 "-group_count must be a positive integer."
}
}
@ -260,9 +260,9 @@ proc find_timing_paths_cmd { cmd args_var } {
delete_from_thrus_to $from $thrus $to
set arg [lindex $args 0]
if { [is_keyword_arg $arg] } {
sta_error "'$arg' is not a known keyword or flag."
sta_error 424 "'$arg' is not a known keyword or flag."
} else {
sta_error "positional arguments not supported."
sta_error 425 "positional arguments not supported."
}
}
@ -427,12 +427,12 @@ proc_redirect report_check_types {
&& (($setup && $hold) \
|| ($recovery && $removal) \
|| ($clk_gating_setup && $clk_gating_hold)) } {
sta_error "analysis type single is not consistent with doing both setup/max and hold/min checks."
sta_error 426 "analysis type single is not consistent with doing both setup/max and hold/min checks."
}
}
if { $args != {} } {
sta_error "positional arguments not supported."
sta_error 427 "positional arguments not supported."
}
set corner [parse_corner_or_all keys]
@ -861,7 +861,7 @@ proc set_assigned_transition { args } {
set slew [lindex $args 0]
if {![string is double $slew]} {
sta_error "set_assigned_transition transition is not a float."
sta_error 428 "set_assigned_transition transition is not a float."
}
set slew [time_ui_sta $slew]
set pins [get_port_pins_error "pins" [lindex $args 1]]

View File

@ -41,7 +41,7 @@ proc parse_key_args { cmd arg_var key_var keys {flag_var ""} {flags {}} \
if { $key_index >= 0 } {
set key $arg
if { [llength $args] == 1 } {
sta_error "$cmd $key missing value."
sta_error 400 "$cmd $key missing value."
}
set key_value($key) [lindex $args 1]
set args [lrange $args 1 end]
@ -58,7 +58,7 @@ proc parse_key_args { cmd arg_var key_var keys {flag_var ""} {flags {}} \
if { $key_index >= 0 } {
set key [lindex $keys $key_index]
if { [llength $args] == 1 } {
sta_error "$cmd $key missing value."
sta_error 401 "$cmd $key missing value."
}
set key_value($key) [lindex $args 1]
set args [lrange $args 1 end]
@ -68,7 +68,7 @@ proc parse_key_args { cmd arg_var key_var keys {flag_var ""} {flags {}} \
set flag [lindex $flags $flag_index]
set flag_present($flag) 1
} elseif { $unknown_key_is_error } {
sta_error "$cmd $arg is not a known keyword or flag."
sta_error 402 "$cmd $arg is not a known keyword or flag."
} else {
lappend args_rtn $arg
}
@ -90,7 +90,7 @@ proc check_for_key_args { cmd arg_var } {
while { $args != "" } {
set arg [lindex $args 0]
if { [is_keyword_arg $arg] } {
sta_error "$cmd $arg is not a known keyword or flag."
sta_error 403 "$cmd $arg is not a known keyword or flag."
} else {
lappend args_rtn $arg
}
@ -188,9 +188,9 @@ proc cmd_usage_error { cmd } {
variable cmd_args
if [info exists cmd_args($cmd)] {
sta_error "Usage: $cmd $cmd_args($cmd)"
sta_error 404 "Usage: $cmd $cmd_args($cmd)"
} else {
sta_error "Usage: $cmd argument error"
sta_error 405 "Usage: $cmd argument error"
}
}
@ -215,7 +215,7 @@ proc_redirect help {
show_cmd_args $cmd
}
} else {
sta_warn "no commands match '$pattern'."
sta_warn 300 "no commands match '$pattern'."
}
}
@ -251,7 +251,7 @@ proc show_cmd_args { cmd } {
################################################################
proc sta_warn { msg } {
proc sta_warn { id msg } {
variable sdc_file
variable sdc_line
if { [info exists sdc_file] } {
@ -261,7 +261,7 @@ proc sta_warn { msg } {
}
}
proc sta_error { msg } {
proc sta_error { id msg } {
variable sdc_file
variable sdc_line
if { [info exists sdc_file] } {
@ -271,11 +271,11 @@ proc sta_error { msg } {
}
}
proc sta_warn_error { warn_error msg } {
proc sta_warn_error { id warn_error msg } {
if { $warn_error == "warn" } {
sta_warn $msg
sta_warn $id $msg
} else {
sta_error $msg
sta_error $id $msg
}
}
@ -305,45 +305,45 @@ define_cmd_args "log_end" {}
proc check_argc_eq0 { cmd arglist } {
if { $arglist != {} } {
sta_error "$cmd positional arguments not supported."
sta_error 406 "$cmd positional arguments not supported."
}
}
proc check_argc_eq1 { cmd arglist } {
if { [llength $arglist] != 1 } {
sta_error "$cmd requires one positional argument."
sta_error 407 "$cmd requires one positional argument."
}
}
proc check_argc_eq0or1 { cmd arglist } {
set argc [llength $arglist]
if { $argc != 0 && $argc != 1 } {
sta_error "$cmd requires zero or one positional arguments."
sta_error 408 "$cmd requires zero or one positional arguments."
}
}
proc check_argc_eq2 { cmd arglist } {
if { [llength $arglist] != 2 } {
sta_error "$cmd requires two positional arguments."
sta_error 409 "$cmd requires two positional arguments."
}
}
proc check_argc_eq1or2 { cmd arglist } {
set argc [llength $arglist]
if { $argc != 1 && $argc != 2 } {
sta_error "$cmd requires one or two positional arguments."
sta_error 410 "$cmd requires one or two positional arguments."
}
}
proc check_argc_eq3 { cmd arglist } {
if { [llength $arglist] != 3 } {
sta_error "$cmd requires three positional arguments."
sta_error 411 "$cmd requires three positional arguments."
}
}
proc check_argc_eq4 { cmd arglist } {
if { [llength $arglist] != 4 } {
sta_error "$cmd requires four positional arguments."
sta_error 412 "$cmd requires four positional arguments."
}
}
@ -351,37 +351,37 @@ proc check_argc_eq4 { cmd arglist } {
proc check_float { cmd_arg arg } {
if {![string is double $arg]} {
sta_error "$cmd_arg '$arg' is not a float."
sta_error 413 "$cmd_arg '$arg' is not a float."
}
}
proc check_positive_float { cmd_arg arg } {
if {!([string is double $arg] && $arg >= 0.0)} {
sta_error "$cmd_arg '$arg' is not a positive float."
sta_error 414 "$cmd_arg '$arg' is not a positive float."
}
}
proc check_integer { cmd_arg arg } {
if {!([string is integer $arg])} {
sta_error "$cmd_arg '$arg' is not an integer."
sta_error 415 "$cmd_arg '$arg' is not an integer."
}
}
proc check_positive_integer { cmd_arg arg } {
if {!([string is integer $arg] && $arg >= 0)} {
sta_error "$cmd_arg '$arg' is not a positive integer."
sta_error 416 "$cmd_arg '$arg' is not a positive integer."
}
}
proc check_cardinal { cmd_arg arg } {
if {!([string is integer $arg] && $arg >= 1)} {
sta_error "$cmd_arg '$arg' is not an integer greater than or equal to one."
sta_error 417 "$cmd_arg '$arg' is not an integer greater than or equal to one."
}
}
proc check_percent { cmd_arg arg } {
if {!([string is double $arg] && $arg >= 0.0 && $arg <= 100.0)} {
sta_error "$cmd_arg '$arg' is not between 0 and 100."
sta_error 418 "$cmd_arg '$arg' is not between 0 and 100."
}
}

View File

@ -42,7 +42,7 @@ proc trace_report_default_digits { name1 name2 op } {
if { $op == "w" } {
if { !([string is integer $sta_report_default_digits] \
&& $sta_report_default_digits >= 0) } {
sta_error "sta_report_default_digits must be a positive integer."
sta_error 436 "sta_report_default_digits must be a positive integer."
}
}
}
@ -67,7 +67,7 @@ proc trace_crpr_mode { name1 name2 op } {
if { $sta_crpr_mode == "same_pin" || $sta_crpr_mode == "same_transition" } {
set_crpr_mode $sta_crpr_mode
} else {
sta_error "sta_crpr_mode must be pin or transition."
sta_error 437 "sta_crpr_mode must be pin or transition."
}
}
}
@ -184,7 +184,7 @@ proc trace_boolean_var { op var_name get_proc set_proc } {
} elseif { $var == 1 } {
$set_proc 1
} else {
sta_error "$var_name value must be 0 or 1."
sta_error 438 "$var_name value must be 0 or 1."
}
}
}