renumber error/warn messages

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2024-01-07 19:23:53 -07:00
parent 099920fc8e
commit 3b721ba40a
55 changed files with 1035 additions and 1038 deletions

View File

@ -116,7 +116,7 @@ proc set_delay_calculator { alg } {
if { [is_delay_calc_name $alg] } {
set_delay_calculator_cmd $alg
} else {
sta_error 435 "delay calculator $alg not found."
sta_error 180 "delay calculator $alg not found."
}
}
@ -145,38 +145,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 442 "$cmd missing -from argument."
sta_error 181 "$cmd missing -from argument."
}
if [info exists keys(-to)] {
set to_pins [get_port_pins_error "to_pins" $keys(-to)]
} else {
sta_error 443 "$cmd missing -to argument."
sta_error 182 "$cmd missing -to argument."
}
set delay [lindex $cmd_args 0]
if {![string is double $delay]} {
sta_error 444 "$cmd delay is not a float."
sta_error 183 "$cmd delay is not a float."
}
set delay [time_ui_sta $delay]
if {[info exists flags(-cell)] && [info exists flags(-net)]} {
sta_error 445 "set_annotated_delay -cell and -net options are mutually excluive."
sta_error 184 "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 446 "$cmd pin [get_full_name $pin] is not attached to instance [get_full_name $inst]."
sta_error 185 "$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 447 "$cmd pin [get_full_name $pin] is not attached to instance [get_full_name $inst]"
sta_error 186 "$cmd pin [get_full_name $pin] is not attached to instance [get_full_name $inst]"
}
}
}
} elseif {![info exists flags(-net)]} {
sta_error 448 "$cmd -cell or -net required."
sta_error 187 "$cmd -cell or -net required."
}
foreach from_pin $from_pins {
set from_vertices [$from_pin vertices]
@ -240,7 +240,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 449 "$cmd missing -from argument."
sta_error 188 "$cmd missing -from argument."
}
set from_rf "rise_fall"
if { [info exists keys(-clock)] } {
@ -249,14 +249,14 @@ proc set_assigned_check_cmd { cmd cmd_args } {
|| $clk_arg eq "fall" } {
set from_rf $clk_arg
} else {
sta_error 450 "$cmd -clock must be rise or fall."
sta_error 189 "$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 451 "$cmd missing -to argument."
sta_error 190 "$cmd missing -to argument."
}
set to_rf [parse_rise_fall_flags flags]
set corner [parse_corner keys]
@ -271,7 +271,7 @@ proc set_assigned_check_cmd { cmd cmd_args } {
} elseif { [info exists flags(-removal)] } {
set role "removal"
} else {
sta_error 452 "$cmd missing -setup|-hold|-recovery|-removal check type.."
sta_error 191 "$cmd missing -setup|-hold|-recovery|-removal check type.."
}
set cond ""
if { [info exists key(-cond)] } {
@ -279,7 +279,7 @@ proc set_assigned_check_cmd { cmd cmd_args } {
}
set check_value [lindex $cmd_args 0]
if { ![string is double $check_value] } {
sta_error 453 "$cmd check_value is not a float."
sta_error 192 "$cmd check_value is not a float."
}
set check_value [time_ui_sta $check_value]
@ -347,7 +347,7 @@ proc set_assigned_transition { args } {
set slew [lindex $args 0]
if {![string is double $slew]} {
sta_error 428 "set_assigned_transition transition is not a float."
sta_error 210 "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

@ -1551,7 +1551,7 @@ DmpCeffDelayCalc::gateDelay(const Pin *drvr_pin,
float c2, rpi, c1;
parasitics_->piModel(parasitic, c2, rpi, c1);
if (isnan(c2) || isnan(c1) || isnan(rpi))
report_->error(618, "parasitic Pi model has NaNs.");
report_->error(1040, "parasitic Pi model has NaNs.");
setCeffAlgorithm(drvr_library, drvr_cell, pinPvt(drvr_pin, dcalc_ap),
table_model, rf, in_slew1, c2, rpi, c1);
double gate_delay, drvr_slew;
@ -1579,7 +1579,7 @@ DmpCeffDelayCalc::gateDelay(const Pin *drvr_pin,
if (parasitic
&& !unsuppored_model_warned_) {
unsuppored_model_warned_ = true;
report_->warn(1, "cell %s delay model not supported on SPF parasitics by DMP delay calculator",
report_->warn(1041, "cell %s delay model not supported on SPF parasitics by DMP delay calculator",
drvr_cell->name());
}
return dcalc_result;

View File

@ -477,7 +477,7 @@ GraphDelayCalc::findPortIndex(const LibertyCell *cell,
return index;
index++;
}
report_->critical(207, "port not found in cell");
report_->critical(1100, "port not found in cell");
return 0;
}

View File

@ -135,7 +135,7 @@ LumpedCapDelayCalc::gateDelay(const Pin *drvr_pin,
float in_slew1 = delayAsFloat(in_slew);
// NaNs cause seg faults during table lookup.
if (isnan(load_cap) || isnan(delayAsFloat(in_slew)))
report_->error(710, "gate delay input variable is NaN");
report_->error(1350, "gate delay input variable is NaN");
model->gateDelay(pinPvt(drvr_pin, dcalc_ap), in_slew1, load_cap, pocv_enabled_,
gate_delay, drvr_slew);
return makeResult(drvr_library, rf, gate_delay, drvr_slew, load_pin_index_map);

View File

@ -200,7 +200,7 @@ delayAsFloat(const Delay &delay,
else if (early_late == EarlyLate::late())
return delay.mean() + delay.sigma() * sta->sigmaFactor();
else
sta->report()->critical(594, "unknown early/late value.");
sta->report()->critical(1020, "unknown early/late value.");
}
return delay.mean();
}

View File

@ -375,7 +375,7 @@ delayAsFloat(const Delay &delay,
else if (early_late == EarlyLate::late())
return delay.mean() + delay.sigma(early_late) * sta->sigmaFactor();
else
sta->report()->critical(595, "unknown early/late value.");
sta->report()->critical(1030, "unknown early/late value.");
}
return delay.mean();
}

View File

@ -790,7 +790,7 @@ Graph::arcDelayAnnotated(const Edge *edge,
if (arc_delay_annotated_.size()) {
size_t index = (edge->arcDelays() + arc->index()) * ap_count_ + ap_index;
if (index >= arc_delay_annotated_.size())
report_->critical(208, "arc_delay_annotated array bounds exceeded");
report_->critical(1080, "arc_delay_annotated array bounds exceeded");
return arc_delay_annotated_[index];
}
else
@ -805,7 +805,7 @@ Graph::setArcDelayAnnotated(Edge *edge,
{
size_t index = (edge->arcDelays() + arc->index()) * ap_count_ + ap_index;
if (index >= arc_delay_annotated_.size())
report_->critical(209, "arc_delay_annotated array bounds exceeded");
report_->critical(1081, "arc_delay_annotated array bounds exceeded");
arc_delay_annotated_[index] = annotated;
}
@ -817,7 +817,7 @@ Graph::wireDelayAnnotated(Edge *edge,
size_t index = (edge->arcDelays() + TimingArcSet::wireArcIndex(rf)) * ap_count_
+ ap_index;
if (index >= arc_delay_annotated_.size())
report_->critical(210, "arc_delay_annotated array bounds exceeded");
report_->critical(1082, "arc_delay_annotated array bounds exceeded");
return arc_delay_annotated_[index];
}
@ -830,7 +830,7 @@ Graph::setWireDelayAnnotated(Edge *edge,
size_t index = (edge->arcDelays() + TimingArcSet::wireArcIndex(rf)) * ap_count_
+ ap_index;
if (index >= arc_delay_annotated_.size())
report_->critical(228, "arc_delay_annotated array bounds exceeded");
report_->critical(1083, "arc_delay_annotated array bounds exceeded");
arc_delay_annotated_[index] = annotated;
}

View File

@ -763,7 +763,7 @@ LibertyLibrary::makeCornerMap(LibertyCell *cell1,
port1->setCornerPort(port2, ap_index);
}
else
report->warn(2, "cell %s/%s port %s not found in cell %s/%s.",
report->warn(1110, "cell %s/%s port %s not found in cell %s/%s.",
cell1->library()->name(),
cell1->name(),
port_name,
@ -789,7 +789,7 @@ LibertyLibrary::makeCornerMap(LibertyCell *cell1,
}
}
else
report->warn(3, "cell %s/%s %s -> %s timing group %s not found in cell %s/%s.",
report->warn(1111, "cell %s/%s %s -> %s timing group %s not found in cell %s/%s.",
cell1->library()->name(),
cell1->name(),
arc_set1->from()->name(),
@ -808,7 +808,7 @@ LibertyLibrary::checkCorners(LibertyCell *cell,
for (const Corner *corner : *corners) {
for (auto min_max : MinMax::range()) {
if (!cell->checkCornerCell(corner, min_max))
report->error(705, "Liberty cell %s/%s for corner %s/%s not found.",
report->error(1112, "Liberty cell %s/%s for corner %s/%s not found.",
cell->libertyLibrary()->name(),
cell->name(),
corner->name(),
@ -1745,7 +1745,7 @@ LibertyCell::makeLatchEnables(Report *report,
RiseFall *en_rf = latch_enable->enableEdge();
RiseFall *check_rf = check_arc->fromEdge()->asRiseFall();
if (check_rf == en_rf)
report->warn(4, "cell %s/%s %s -> %s latch enable %s_edge is inconsistent with %s -> %s setup_%s check.",
report->warn(1113, "cell %s/%s %s -> %s latch enable %s_edge is inconsistent with %s -> %s setup_%s check.",
library_->name(),
name_,
en->name(),
@ -1759,7 +1759,7 @@ LibertyCell::makeLatchEnables(Report *report,
TimingSense en_sense = en_func->portTimingSense(en);
if (en_sense == TimingSense::positive_unate
&& en_rf != RiseFall::rise())
report->warn(5, "cell %s/%s %s -> %s latch enable %s_edge is inconsistent with latch group enable function positive sense.",
report->warn(1114, "cell %s/%s %s -> %s latch enable %s_edge is inconsistent with latch group enable function positive sense.",
library_->name(),
name_,
en->name(),
@ -1767,7 +1767,7 @@ LibertyCell::makeLatchEnables(Report *report,
en_rf == RiseFall::rise()?"rising":"falling");
else if (en_sense == TimingSense::negative_unate
&& en_rf != RiseFall::fall())
report->warn(6, "cell %s/%s %s -> %s latch enable %s_edge is inconsistent with latch group enable function negative sense.",
report->warn(1115, "cell %s/%s %s -> %s latch enable %s_edge is inconsistent with latch group enable function negative sense.",
library_->name(),
name_,
en->name(),

View File

@ -79,7 +79,7 @@ LibExprParser::makeFuncExprPort(const char *port_name)
if (port)
expr = FuncExpr::makePort(port);
else
report_->warn(7, "%s references unknown port %s.",
report_->warn(1130, "%s references unknown port %s.",
error_msg_, port_name);
stringDelete(port_name);
return expr;
@ -172,7 +172,7 @@ LibExprParser::tokenAppend(char ch)
void
LibExprParser::parseError(const char *msg)
{
report_->error(206, "%s %s.", error_msg_, msg);
report_->error(1131, "%s %s.", error_msg_, msg);
}
} // namespace

File diff suppressed because it is too large Load Diff

View File

@ -283,7 +283,7 @@ LibertyWriter::writeCell(const LibertyCell *cell)
if (port->isBus())
writeBusPort(port);
else if (port->isBundle())
report_->error(704, "%s/%s bundled ports not supported.",
report_->error(1330, "%s/%s bundled ports not supported.",
library_->name(),
cell->name());
else
@ -414,7 +414,7 @@ LibertyWriter::writeTimingModels(const TimingArc *arc,
fprintf(stream_, " }\n");
}
else
report_->error(701, "%s/%s/%s timing model not supported.",
report_->error(1331, "%s/%s/%s timing model not supported.",
library_->name(),
arc->from()->libertyCell()->name(),
arc->from()->name());
@ -434,7 +434,7 @@ LibertyWriter::writeTableModel(const TableModel *model)
writeTableModel2(model);
break;
case 3:
report_->error(702, "3 axis table models not supported.");
report_->error(1332, "3 axis table models not supported.");
break;
}
}
@ -578,7 +578,7 @@ LibertyWriter::timingTypeString(const TimingArcSet *arc_set)
else if (role == TimingRole::clockTreePathMax())
return "max_clock_tree_path";
else {
report_->error(703, "%s/%s/%s timing arc type %s not supported.",
report_->error(1333, "%s/%s/%s timing arc type %s not supported.",
library_->name(),
arc_set->to()->libertyCell()->name(),
arc_set->to()->name(),

File diff suppressed because it is too large Load Diff

View File

@ -1920,7 +1920,7 @@ ConcreteNetwork::linkNetwork(const char *top_cell_name,
return top_instance_ != nullptr;
}
else {
report->error(8, "cell type %s can not be linked.", top_cell_name);
report->error(1000, "cell type %s can not be linked.", top_cell_name);
return false;
}
}

View File

@ -1092,7 +1092,7 @@ SdcNetwork::parsePath(const char *path,
else
*p++ = ch;
if (p - inst_path + 1 > inst_path_length)
report_->critical(211, "inst path string lenth estimate busted");
report_->critical(1500, "inst path string lenth estimate busted");
}
*p = '\0';
stringDelete(inst_path);
@ -1164,7 +1164,7 @@ SdcNetwork::visitMatches(const Instance *parent,
*p++ = ch;
}
if (p - inst_path + 1 > inst_path_length)
report_->critical(212, "inst path string lenth estimate exceeded");
report_->critical(1501, "inst path string lenth estimate exceeded");
}
*p = '\0';
if (!found_match) {

View File

@ -185,7 +185,7 @@ EstimateParasitics::estimatePiElmoreBalanced(const Pin *drvr_pin,
else if (network->isTopLevelPort(load_pin))
load_cap = sdc->portExtCap(port, rf, corner, min_max);
else
report->critical(597, "load pin not leaf or top level");
report->critical(1050, "load pin not leaf or top level");
double cap = load_cap + cap_fanout;
double y2_ = res_fanout * cap * cap;
y1 += cap;

View File

@ -42,7 +42,7 @@ proc_redirect read_spef {
set path $keys(-path)
set instance [find_instance $path]
if { $instance == "NULL" } {
sta_error 433 "path instance '$path' not found."
sta_error 270 "path instance '$path' not found."
}
}
set corner [parse_corner_or_all keys]
@ -59,7 +59,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 434 "-reduce_to must be pi_elmore or pi_pole_residue2."
sta_error 271 "-reduce_to must be pi_elmore or pi_pole_residue2."
}
}
set delete_after_reduce [info exists flags(-delete_after_reduce)]
@ -67,7 +67,7 @@ proc_redirect read_spef {
set save [info exists flags(-save)]
set filename [file nativename [lindex $args 0]]
if { [info exists flags(-increment)] } {
sta_warn 706 "read_spef -increment is deprecated."
sta_warn 272 "read_spef -increment is deprecated."
}
return [read_spef_cmd $filename $instance $corner $min_max \
$pin_cap_included $keep_coupling_caps $coupling_reduction_factor \

View File

@ -802,7 +802,7 @@ pos_integer:
INTEGER
{ int value = $1;
if (value < 0)
sta::spef_reader->warn(21, "%d is not positive.", value);
sta::spef_reader->warn(1525, "%d is not positive.", value);
$$ = value;
}
;
@ -811,13 +811,13 @@ pos_number:
INTEGER
{ float value = static_cast<float>($1);
if (value < 0)
sta::spef_reader->warn(22, "%.4f is not positive.", value);
sta::spef_reader->warn(1526, "%.4f is not positive.", value);
$$ = value;
}
| FLOAT
{ float value = static_cast<float>($1);
if (value < 0)
sta::spef_reader->warn(23, "%.4f is not positive.", value);
sta::spef_reader->warn(1527, "%.4f is not positive.", value);
$$ = value;
}
;

View File

@ -729,6 +729,6 @@ int
SpefParse_error(const char *msg)
{
spefFlushBuffer();
sta::spef_reader->warn(707, "%s.", msg);
sta::spef_reader->warn(1227, "%s.", msg);
return 0;
}

View File

@ -607,7 +607,7 @@ Power::funcBdd(const FuncExpr *expr)
result = Cudd_ReadLogicZero(cudd_mgr_);
break;
default:
report_->critical(598, "unknown function operator");
report_->critical(1440, "unknown function operator");
}
if (result)
Cudd_Ref(result);

View File

@ -240,7 +240,7 @@ proc set_power_activity { args } {
foreach port $ports {
if { [get_property $port "direction"] == "input" } {
if { [sta::is_clock_src [sta::get_port_pin $port]] } {
sta_warn 299 "activity cannot be set on clock ports."
sta_warn 303 "activity cannot be set on clock ports."
} else {
set_power_input_port_activity $port $activity $duty
}

View File

@ -104,7 +104,7 @@ ReadVcdActivities::readActivities()
if (vcd_.timeMax() > 0)
setActivities();
else
report_->warn(808, "VCD max time is zero.");
report_->warn(1450, "VCD max time is zero.");
report_->reportLine("Annotated %lu pin activities.", annotated_pins_.size());
}
@ -171,7 +171,7 @@ ReadVcdActivities::setVarActivity(VcdVar *var,
}
}
else
report_->warn(809, "problem parsing bus %s.", var_name.c_str());
report_->warn(1451, "problem parsing bus %s.", var_name.c_str());
}
}
@ -248,7 +248,7 @@ ReadVcdActivities::checkClkPeriod(const Pin *pin,
double clk_period = clk->period();
if (abs((clk_period - sim_period) / clk_period) > .1)
// Warn if sim clock period differs from SDC by 10%.
report_->warn(806, "clock %s vcd period %s differs from SDC clock period %s",
report_->warn(1452, "clock %s vcd period %s differs from SDC clock period %s",
clk->name(),
delayAsString(sim_period, this),
delayAsString(clk_period, this));

View File

@ -169,7 +169,7 @@ VcdValues &
Vcd::values(VcdVar *var)
{
if (id_values_map_.find(var->id()) == id_values_map_.end()) {
report_->error(805, "Unknown variable %s ID %s",
report_->error(1360, "Unknown variable %s ID %s",
var->name().c_str(),
var->id().c_str());
static VcdValues empty;

View File

@ -189,7 +189,7 @@ VcdReader::parseVar()
string type_name = tokens[0];
VcdVarType type = vcd_var_type_map.find(type_name, VcdVarType::unknown);
if (type == VcdVarType::unknown)
report_->fileWarn(803, filename_, stmt_line_,
report_->fileWarn(1370, filename_, stmt_line_,
"Unknown variable type %s.",
type_name.c_str());
else {

View File

@ -84,7 +84,7 @@ CycleAcctings::reportClkToClkMaxCycleWarnings(Report *report)
ClockPair clk_pair2(tgt_clk, src_clk);
if (!clk_warnings.hasKey(clk_pair1)
&& !clk_warnings.hasKey(clk_pair2)) {
report->warn(9, "No common period was found between clocks %s and %s.",
report->warn(1010, "No common period was found between clocks %s and %s.",
src_clk->name(),
tgt_clk->name());
clk_warnings.insert(clk_pair1);

View File

@ -4055,7 +4055,7 @@ Sdc::makeGroupPath(const char *name,
{
checkFromThrusTo(from, thrus, to);
if (name && is_default)
report_->critical(213, "group path name and is_default are mutually exclusive.");
report_->critical(1490, "group path name and is_default are mutually exclusive.");
else if (name) {
GroupPath *group_path = new GroupPath(name, is_default, from, thrus, to,
true, comment);

View File

@ -1251,7 +1251,7 @@ WriteSdc::writeExceptionCmd(ExceptionPath *exception) const
gzprintf(stream_, "group_path -name %s", exception->name());
}
else
report_->critical(214, "unknown exception type");
report_->critical(1620, "unknown exception type");
}
void
@ -1793,7 +1793,7 @@ WriteSdc::setConstantCmd(const Pin *pin) const
case LogicValue::rise:
case LogicValue::fall:
default:
report_->critical(215, "illegal set_logic value");
report_->critical(1621, "illegal set_logic value");
return nullptr;
}
}
@ -1834,7 +1834,7 @@ WriteSdc::caseAnalysisValueStr(const Pin *pin) const
return "falling";
case LogicValue::unknown:
default:
report_->critical(216, "invalid set_case_analysis value");
report_->critical(1622, "invalid set_case_analysis value");
return nullptr;
}
}

View File

@ -38,16 +38,16 @@ proc_redirect read_sdf {
if [info exists keys(-cond_use)] {
set cond_use $keys(-cond_use)
if { $cond_use != "min" && $cond_use != "max" && $cond_use != "min_max" } {
sta_warn 612 "-cond_use must be min, max or min_max."
sta_warn 620 "-cond_use must be min, max or min_max."
set cond_use "NULL"
}
if { $cond_use == "min_max" \
&& { [operating_condition_analysis_type] == "single" }} {
sta_error 430 "-cond_use min_max cannot be used with analysis type single."
sta_error 621 "-cond_use min_max cannot be used with analysis type single."
}
}
if [info exists keys(-analysis_type)] {
sta_warn 617 "-analysis_type is deprecated. Use set_operating_conditions -analysis_type."
sta_warn 622 "-analysis_type is deprecated. Use set_operating_conditions -analysis_type."
}
set unescaped_dividers [info exists flags(-unescaped_dividers)]
@ -154,7 +154,7 @@ proc_redirect write_sdf {
if [info exists keys(-divider)] {
set divider $keys(-divider)
if { !($divider == "/" || $divider == ".") } {
sta_error 432 "SDF -divider must be / or ."
sta_error 623 "SDF -divider must be / or ."
}
}
set digits 3

View File

@ -271,7 +271,7 @@ Genclks::checkMaster(Clock *gclk)
{
ensureMaster(gclk);
if (gclk->masterClk() == nullptr)
report_->warn(10, "no master clock found for generated clock %s.",
report_->warn(1060, "no master clock found for generated clock %s.",
gclk->name());
}
@ -329,7 +329,7 @@ Genclks::ensureMaster(Clock *gclk)
}
}
if (master_clk_count > 1)
report_->warn(12,
report_->warn(1061,
"generated clock %s pin %s is in the fanout of multiple clocks.",
gclk->name(),
network_->pathName(src_pin));
@ -935,7 +935,7 @@ Genclks::recordSrcPaths(Clock *gclk)
// Don't warn if the master clock is ideal.
&& gclk->masterClk()
&& gclk->masterClk()->isPropagated())
report_->warn(13, "generated clock %s source pin %s missing paths from master clock %s.",
report_->warn(1062, "generated clock %s source pin %s missing paths from master clock %s.",
gclk->name(),
network_->pathName(gclk_pin),
gclk->masterClk()->name());

View File

@ -203,7 +203,7 @@ MakeTimingModel::checkClock(Clock *clk)
{
for (const Pin *pin : clk->leafPins()) {
if (!network_->isTopLevelPort(pin))
report_->warn(810, "clock %s pin %s is inside model block.",
report_->warn(1355, "clock %s pin %s is inside model block.",
clk->name(),
network_->pathName(pin));
}

View File

@ -471,7 +471,7 @@ PathEnum::divSlack(Path *before_div,
return div_arrival - arc_arrival;
}
else {
report()->error(619, "path diversion missing edge.");
report()->error(1370, "path diversion missing edge.");
return 0.0;
}
}

View File

@ -123,7 +123,7 @@ const Required &
PathEnumed::required(const StaState *sta) const
{
// Required times are never needed for enumerated paths.
sta->report()->critical(251, "enumerated path required time");
sta->report()->critical(1380, "enumerated path required time");
return delay_zero;
}
@ -132,7 +132,7 @@ PathEnumed::setRequired(const Required &,
const StaState *sta)
{
// Required times are never needed for enumerated paths.
sta->report()->critical(252, "enumerated path required time");
sta->report()->critical(1381, "enumerated path required time");
}
Path *

View File

@ -396,7 +396,7 @@ PathGroups::pathGroup(const PathEnd *path_end) const
else if (path_end->isUnconstrained())
return unconstrained_[mm_index];
else {
report_->critical(253, "unknown path end type");
report_->critical(1390, "unknown path end type");
return nullptr;
}
}

View File

@ -233,7 +233,7 @@ PathVertex::arrival(const StaState *sta) const
if (arrivals)
return arrivals[arrival_index_];
else {
sta->report()->error(620, "missing arrivals.");
sta->report()->error(1400, "missing arrivals.");
return 0.0;
}
}
@ -247,7 +247,7 @@ PathVertex::setArrival(Arrival arrival,
if (arrivals)
arrivals[arrival_index_] = arrival;
else
sta->report()->error(621, "missing arrivals.");
sta->report()->error(1401, "missing arrivals.");
}
}
@ -276,7 +276,7 @@ PathVertex::setRequired(const Required &required,
requireds = graph->makeRequireds(vertex_, arrival_count);
}
else
sta->report()->error(622, "missing requireds.");
sta->report()->error(1402, "missing requireds.");
}
requireds[arrival_index_] = required;
}

View File

@ -142,15 +142,15 @@ PathVertexRep::arrival(const StaState *sta) const
bool arrival_exists;
tag_group->arrivalIndex(tag, arrival_index, arrival_exists);
if (!arrival_exists)
sta->report()->critical(254, "tag group missing tag");
sta->report()->critical(1420, "tag group missing tag");
Arrival *arrivals = graph->arrivals(vertex);
if (arrivals)
return arrivals[arrival_index];
else
sta->report()->critical(624, "missing arrivals");
sta->report()->critical(1421, "missing arrivals");
}
else
sta->report()->error(623, "missing arrivals.");
sta->report()->error(1422, "missing arrivals.");
return 0.0;
}

View File

@ -286,7 +286,7 @@ ReportPath::reportPathEndHeader()
reportSlackOnlyHeader();
break;
default:
report_->critical(255, "unsupported path type");
report_->critical(1470, "unsupported path type");
break;
}
}
@ -307,7 +307,7 @@ ReportPath::reportPathEndFooter()
reportBlankLine();
break;
default:
report_->critical(256, "unsupported path type");
report_->critical(1471, "unsupported path type");
break;
}
}
@ -346,7 +346,7 @@ ReportPath::reportPathEnd(PathEnd *end,
reportSlackOnly(end);
break;
default:
report_->critical(257, "unsupported path type");
report_->critical(1473, "unsupported path type");
break;
}
}
@ -2375,7 +2375,7 @@ ReportPath::reportPath(const Path *path)
case ReportPathFormat::summary:
case ReportPathFormat::slack_only:
default:
report_->critical(259, "unsupported path type");
report_->critical(1474, "unsupported path type");
break;
}
}

View File

@ -2651,7 +2651,7 @@ Search::findTagGroup(TagGroupBldr *tag_bldr)
tag_group_set_->reserve(new_capacity);
}
if (tag_group_next_ > tag_group_index_max)
report_->critical(260, "max tag group index exceeded");
report_->critical(1510, "max tag group index exceeded");
}
return tag_group;
}
@ -2887,7 +2887,7 @@ Search::findTag(const RiseFall *rf,
tag_set_->reserve(new_capacity);
}
if (tag_next_ == tag_index_max)
report_->critical(261, "max tag index exceeded");
report_->critical(1511, "max tag index exceeded");
}
if (own_states)
delete states;
@ -3614,7 +3614,7 @@ Search::matchesFilter(Path *path,
// -to
return matchesFilterTo(path, to_clk_edge);
else {
report_->critical(262, "unexpected filter path");
report_->critical(1512, "unexpected filter path");
return false;
}
}
@ -3782,7 +3782,7 @@ Search::tnsIncr(Vertex *vertex,
vertex->name(sdc_network_));
tns_[path_ap_index] += slack;
if (tns_slacks_[path_ap_index].hasKey(vertex))
report_->critical(263, "tns incr existing vertex");
report_->critical(1513, "tns incr existing vertex");
tns_slacks_[path_ap_index][vertex] = slack;
}
}

View File

@ -206,7 +206,7 @@ Sim::funcBdd(const FuncExpr *expr,
result = Cudd_ReadLogicZero(cudd_mgr_);
break;
default:
report_->critical(596, "unknown function operator");
report_->critical(1520, "unknown function operator");
}
if (result)
Cudd_Ref(result);
@ -861,7 +861,7 @@ Sim::setPinValue(const Pin *pin,
if (exists
&& value != constraint_value) {
if (value != LogicValue::unknown)
report_->warn(15, "propagated logic value %c differs from constraint value of %c on pin %s.",
report_->warn(1521, "propagated logic value %c differs from constraint value of %c on pin %s.",
logicValueString(value),
logicValueString(constraint_value),
sdc_network_->pathName(pin));

View File

@ -2029,7 +2029,7 @@ Sta::checkExceptionFromPins(ExceptionFrom *from,
report_->fileWarn(267, file, line, "'%s' is not a valid start point.",
cmd_network_->pathName(pin));
else
report_->warn(18, "'%s' is not a valid start point.",
report_->warn(1550, "'%s' is not a valid start point.",
cmd_network_->pathName(pin));
}
}
@ -2105,7 +2105,7 @@ Sta::checkExceptionToPins(ExceptionTo *to,
report_->fileWarn(266, file, line, "'%s' is not a valid endpoint.",
cmd_network_->pathName(pin));
else
report_->warn(17, "'%s' is not a valid endpoint.",
report_->warn(1551, "'%s' is not a valid endpoint.",
cmd_network_->pathName(pin));
}
}
@ -2428,7 +2428,7 @@ void
Sta::makeCorners(StringSet *corner_names)
{
if (corner_names->size() > corner_count_max)
report_->error(374, "maximum corner count exceeded");
report_->error(1552, "maximum corner count exceeded");
sdc_->makeCornersBefore();
parasitics_->deleteParasitics();
corners_->makeCorners(corner_names);
@ -4225,7 +4225,7 @@ Sta::replaceEquivCellBefore(const Instance *inst,
if (to_set)
edge->setTimingArcSet(to_set);
else
report_->critical(264, "corresponding timing arc set not found in equiv cells");
report_->critical(1553, "corresponding timing arc set not found in equiv cells");
}
}
}

View File

@ -294,7 +294,7 @@ TagGroupBldr::copyArrivals(TagGroup *tag_group,
}
}
else
sta_->report()->critical(265, "tag group missing tag");
sta_->report()->critical(1351, "tag group missing tag");
}
}

View File

@ -284,7 +284,7 @@ writePathSpice(Path *path,
StaState *sta)
{
if (sta->network()->defaultLibertyLibrary() == nullptr)
sta->report()->error(20, "No liberty libraries found,");
sta->report()->error(1600, "No liberty libraries found,");
WritePathSpice writer(path, spice_filename, subckt_filename,
lib_subckt_filename, model_filename,
off_path_pin_names, power_name, gnd_name, sta);
@ -507,14 +507,14 @@ WritePathSpice::pgPortVoltage(LibertyPgPort *pg_port)
else if (stringEqual(voltage_name, gnd_name_))
voltage = gnd_voltage_;
else
report_->error(24, "pg_pin %s/%s voltage %s not found,",
report_->error(1601 , "pg_pin %s/%s voltage %s not found,",
pg_port->cell()->name(),
pg_port->name(),
voltage_name);
}
}
else
report_->error(25, "Liberty pg_port %s/%s missing voltage_name attribute,",
report_->error(1602, "Liberty pg_port %s/%s missing voltage_name attribute,",
pg_port->cell()->name(),
pg_port->name());
return voltage;
@ -1093,7 +1093,7 @@ WritePathSpice::writeVoltageSource(LibertyCell *cell,
if (pg_port)
voltage = pgPortVoltage(pg_port);
else
report_->error(26, "%s pg_port %s not found,",
report_->error(1603, "%s pg_port %s not found,",
cell->name(),
pg_port_name);
@ -1148,7 +1148,7 @@ WritePathSpice::regPortValues(Stage stage,
dcalc_ap_index = drvr_path->dcalcAnalysisPt(this)->index();
}
else
report_->error(27, "no register/latch found for path from %s to %s,",
report_->error(1604, "no register/latch found for path from %s to %s,",
stageGateInputPort(stage)->name(),
stageDrvrPort(stage)->name());
}
@ -1614,7 +1614,7 @@ WritePathSpice::writeSubckts()
missing_cells += "\n";
missing_cells += cell_name;
}
report_->error(28, "The subkct file %s is missing definitions for %s",
report_->error(1605, "The subkct file %s is missing definitions for %s",
lib_subckt_filename_,
missing_cells.c_str());
}
@ -1712,7 +1712,7 @@ WritePathSpice::recordSpicePortNames(const char *cell_name,
&& pg_port == nullptr
&& !stringEqual(port_name, power_name_)
&& !stringEqual(port_name, gnd_name_))
report_->error(29, "subckt %s port %s has no corresponding liberty port, pg_port and is not power or ground.",
report_->error(1606, "subckt %s port %s has no corresponding liberty port, pg_port and is not power or ground.",
cell_name, port_name);
spice_port_names->push_back(port_name);
}

View File

@ -105,7 +105,7 @@ proc get_object_args { objects clks_var libcells_var libports_var \
&& $object_type == "TimingArcSet" } {
lappend timing_arc_sets $obj
} else {
sta_error 467 "unsupported object type $object_type."
sta_error 100 "unsupported object type $object_type."
}
} elseif { $obj != {} } {
# Check for implicit arg.
@ -163,7 +163,7 @@ proc get_object_args { objects clks_var libcells_var libports_var \
if { $matches != {} } {
set nets [concat $nets $matches]
} else {
sta_warn 305 "object '$obj' not found."
sta_warn 101 "object '$obj' not found."
}
}
}
@ -402,12 +402,12 @@ proc parse_corner { keys_var } {
set corner_name $keys(-corner)
set corner [find_corner $corner_name]
if { $corner == "NULL" } {
sta_error 468 "$corner_name is not the name of process corner."
sta_error 102 "$corner_name is not the name of process corner."
} else {
return $corner
}
} elseif { [multi_corner] } {
sta_error 469 "-corner keyword required with multi-corner analysis."
sta_error 103 "-corner keyword required with multi-corner analysis."
} else {
return [cmd_corner]
}
@ -422,12 +422,12 @@ proc parse_corner_required { keys_var } {
set corner_name $keys(-corner)
set corner [find_corner $corner_name]
if { $corner == "NULL" } {
sta_error 470 "$corner_name is not the name of process corner."
sta_error 104 "$corner_name is not the name of process corner."
} else {
return $corner
}
} else {
sta_error 471 "missing -corner arg."
sta_error 105 "missing -corner arg."
}
}
@ -438,7 +438,7 @@ proc parse_corner_or_default { keys_var } {
set corner_name $keys(-corner)
set corner [find_corner $corner_name]
if { $corner == "NULL" } {
sta_error 472 "$corner_name is not the name of process corner."
sta_error 106 "$corner_name is not the name of process corner."
} else {
return $corner
}
@ -455,7 +455,7 @@ proc parse_corner_or_all { keys_var } {
set corner_name $keys(-corner)
set corner [find_corner $corner_name]
if { $corner == "NULL" } {
sta_error 473 "$corner_name is not the name of process corner."
sta_error 107 "$corner_name is not the name of process corner."
} else {
return $corner
}
@ -480,7 +480,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 474 "both -min and -max specified."
sta_error 108 "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)] } {
@ -494,7 +494,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 475 "both -min and -max specified."
sta_error 109 "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)] } {
@ -521,20 +521,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 476 "only one of -early and -late can be specified."
sta_error 110 "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 477 "-early or -late must be specified."
sta_error 111 "-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 478 "both -early and -late specified."
sta_error 112 "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)] } {
@ -549,18 +549,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 479 "$arg_name must be a single library."
sta_error 113 "$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 480 "$arg_name type '$object_type' is not a library."
sta_error 114 "$arg_name type '$object_type' is not a library."
}
} else {
set lib [find_liberty $arg]
if { $lib == "NULL" } {
sta_error 481 "library '$arg' not found."
sta_error 115 "library '$arg' not found."
}
}
return $lib
@ -577,13 +577,13 @@ 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 482 "$arg_name must be a single lib cell."
sta_error 116 "$arg_name must be a single lib cell."
} elseif { [is_object $arg] } {
set object_type [object_type $arg]
if { $object_type == "LibertyCell" } {
set lib_cell $arg
} else {
$error_proc 700 "$arg_name type '$object_type' is not a liberty cell."
$error_proc 116 "$arg_name type '$object_type' is not a liberty cell."
}
# Parse library_name/cell_name.
} elseif {[regexp [cell_regexp] $arg ignore lib_name cell_name]} {
@ -591,15 +591,15 @@ proc get_lib_cell_arg { arg_name arg error_proc } {
if { $library != "NULL" } {
set lib_cell [$library find_liberty_cell $cell_name]
if { $lib_cell == "NULL" } {
$error_proc 701 "liberty cell '$arg' not found."
$error_proc 117 "liberty cell '$arg' not found."
}
} else {
$error_proc 702 "library '$lib_name' not found."
$error_proc 118 "library '$lib_name' not found."
}
} else {
set lib_cell [find_liberty_cell $arg]
if { $lib_cell == "NULL" } {
$error_proc 703 "liberty cell '$arg' not found."
$error_proc 119 "liberty cell '$arg' not found."
}
}
return $lib_cell
@ -619,7 +619,7 @@ proc get_lib_cells_arg { arg_name arglist error_proc } {
if { $object_type == "LibertyCell" } {
lappend lib_cells $arg
} else {
$error_proc 306 "unsupported object type $object_type."
$error_proc 120 "unsupported object type $object_type."
}
} elseif { $arg != {} } {
set arg_lib_cells [get_lib_cells1 $arg $error_proc]
@ -645,7 +645,7 @@ proc get_lib_cells1 { patterns error_proc } {
# Allow wildcards in the library name (incompatible).
set libs [get_libs -quiet $lib_name]
if { $libs == {} } {
$error_proc 375 "library '$lib_name' not found."
$error_proc 121 "library '$lib_name' not found."
} else {
foreach lib $libs {
set matches [$lib find_liberty_cells_matching $cell_pattern 0 0]
@ -654,7 +654,7 @@ proc get_lib_cells1 { patterns error_proc } {
}
}
if { $cells == {} } {
$error_proc 376 "cell '$cell_pattern' not found."
$error_proc 122 "cell '$cell_pattern' not found."
}
}
}
@ -664,18 +664,18 @@ proc get_lib_cells1 { patterns error_proc } {
proc get_instance_error { arg_name arg } {
set inst "NULL"
if {[llength $arg] > 1} {
sta_error 483 "$arg_name must be a single instance."
sta_error 123 "$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 484 "$arg_name type '$object_type' is not an instance."
sta_error 124 "$arg_name type '$object_type' is not an instance."
}
} else {
set inst [find_instance $arg]
if { $inst == "NULL" } {
sta_error 485 "instance '$arg' not found."
sta_error 125 "instance '$arg' not found."
}
}
return $inst
@ -694,14 +694,14 @@ proc get_instances_error { arg_name arglist } {
if { $object_type == "Instance" } {
lappend insts $arg
} else {
sta_error 486 "$arg_name type '$object_type' is not an instance."
sta_error 126 "$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 487 "instance '$arg' not found."
sta_error 127 "instance '$arg' not found."
}
}
}
@ -719,7 +719,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 307 $warn_error "$arg_name must be a single port or pin."
sta_warn_error 128 $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" } {
@ -728,7 +728,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 308 $warn_error "$arg_name type '$object_type' is not a pin or port."
sta_warn_error 129 $warn_error "$arg_name type '$object_type' is not a pin or port."
}
} else {
set top_instance [top_instance]
@ -740,7 +740,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 309 $warn_error "pin $arg not found."
sta_warn_error 130 $warn_error "pin $arg not found."
}
}
return $pin
@ -762,14 +762,14 @@ proc get_port_pins_error { arg_name arglist } {
# Convert port to pin.
lappend pins [find_pin [get_name $arg]]
} else {
sta_error 488 "$arg_name type '$object_type' is not a pin or port."
sta_error 131 "$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 489 "pin '$arg' not found."
sta_error 132 "pin '$arg' not found."
}
}
}
@ -789,7 +789,7 @@ proc get_ports_error { arg_name arglist } {
if { $object_type == "Port" } {
lappend ports $arg
} else {
sta_error 490 "$arg_name type '$object_type' is not a port."
sta_error 133 "$arg_name type '$object_type' is not a port."
}
} elseif { $arg != {} } {
set arg_ports [get_ports $arg]
@ -812,18 +812,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 310 $warn_error "$arg_name must be a single pin."
sta_warn_error 134 $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 311 $warn_error "$arg_name type '$object_type' is not a pin."
sta_warn_error 135 $warn_error "$arg_name type '$object_type' is not a pin."
}
} else {
set pin [find_pin $arg]
if { $pin == "NULL" } {
sta_warn_error 312 $warn_error "$arg_name pin $arg not found."
sta_warn_error 136 $warn_error "$arg_name pin $arg not found."
}
}
return $pin
@ -840,18 +840,18 @@ proc get_clock_error { arg_name arg } {
proc get_clock_arg { arg_name arg error_proc } {
set clk "NULL"
if {[llength $arg] > 1} {
$error_proc 597 "$arg_name arg must be a single clock, not a list."
$error_proc 137 "$arg_name arg must be a single clock, not a list."
} elseif { [is_object $arg] } {
set object_type [object_type $arg]
if { $object_type == "Clock" } {
set clk $arg
} else {
$error_proc 598 "$arg_name arg value is a $object_type, not a clock."
$error_proc 138 "$arg_name arg value is a $object_type, not a clock."
}
} elseif { $arg != {} } {
set clk [find_clock $arg]
if { $clk == "NULL" } {
$error_proc 599 "$arg_name arg '$arg' clock not found."
$error_proc 138 "$arg_name arg '$arg' clock not found."
}
}
return $clk
@ -870,7 +870,7 @@ proc get_clocks_warn { arg_name arglist } {
if { $object_type == "Clock" } {
lappend clks $arg
} else {
sta_warn 313 "unsupported object type $object_type."
sta_warn 139 "unsupported object type $object_type."
}
} elseif { $arg != {} } {
set arg_clocks [get_clocks $arg]
@ -885,18 +885,18 @@ proc get_clocks_warn { arg_name arglist } {
proc get_net_arg { arg_name arg } {
set net "NULL"
if {[llength $arg] > 1} {
sta_warn 314 "$arg_name must be a single net."
sta_warn 140 "$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 315 "$arg_name '$object_type' is not a net."
sta_warn 141 "$arg_name '$object_type' is not a net."
}
} else {
set net [find_net $arg]
if { $net == "NULL" } {
sta_warn 316 "$arg_name '$arg' not found."
sta_warn 143 "$arg_name '$arg' not found."
}
}
return $net
@ -915,7 +915,7 @@ proc get_nets_arg { arg_name arglist } {
if { $object_type == "Net" } {
lappend nets $arg
} else {
sta_warn 317 "unsupported object type $object_type."
sta_warn 142 "unsupported object type $object_type."
}
} elseif { $arg != {} } {
set arg_nets [get_nets $arg]

View File

@ -41,7 +41,7 @@ proc_redirect help {
show_cmd_args $cmd
}
} else {
sta_warn 300 "no commands match '$pattern'."
sta_warn 160 "no commands match '$pattern'."
}
}
@ -86,9 +86,9 @@ proc cmd_usage_error { cmd } {
variable cmd_args
if [info exists cmd_args($cmd)] {
sta_error 404 "Usage: $cmd $cmd_args($cmd)"
sta_error 161 "Usage: $cmd $cmd_args($cmd)"
} else {
sta_error 405 "Usage: $cmd argument error"
sta_error 162 "Usage: $cmd argument error"
}
}
@ -158,7 +158,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 515 "unknown $unit unit '$suffix'."
sta_error 163 "unknown $unit unit '$suffix'."
}
}
if [info exists keys(-digits)] {
@ -206,7 +206,7 @@ proc delete_objects_from_list_cmd { list objects } {
} elseif {$list_type == "LibertyPort"} {
set obj [get_lib_pins $obj]
} else {
sta_error 439 "unsupported object type $list_type."
sta_error 164 "unsupported object type $list_type."
}
}
set index [lsearch $list $obj]
@ -223,7 +223,7 @@ proc set_cmd_namespace { namespc } {
if { $namespc == "sdc" || $namespc == "sta" } {
set_cmd_namespace_cmd $namespc
} else {
sta_error 589 "unknown namespace $namespc."
sta_error 165 "unknown namespace $namespc."
}
}

View File

@ -30,7 +30,7 @@ proc_redirect read_liberty {
set corner [parse_corner keys]
set min_max [parse_min_max_all_flags flags]
if { [info exists flags(-no_latch_infer)] } {
sta_warn 625 "-no_latch_infer is deprecated."
sta_warn "-no_latch_infer is deprecated."
}
set infer_latches [info exists flags(-infer_latches)]
read_liberty_cmd $filename $corner $min_max $infer_latches

View File

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

View File

@ -32,7 +32,7 @@ proc_redirect report_instance {
if { $instance != "NULL" } {
report_instance1 $instance $connections $verbose
} else {
sta_error 590 "instance $instance_path not found."
sta_error 230 "instance $instance_path not found."
}
}
@ -218,10 +218,10 @@ proc_redirect report_net {
if { $net != "NULL" } {
report_net1 $net $connections $verbose $hier_pins $corner $digits
} else {
sta_error 591 "net $net_path not found."
sta_error 231 "net $net_path not found."
}
} else {
sta_error 592 "net $net_path not found."
sta_error 232 "net $net_path not found."
}
}
}

View File

@ -104,7 +104,7 @@ proc parse_connect_pin { arg } {
set inst [$pin instance]
set port [$pin port]
} else {
sta_error 586 "unsupported object type $object_type."
sta_error 250 "unsupported object type $object_type."
}
} else {
if {[regexp $path_regexp $arg ignore path_name port_name]} {
@ -134,7 +134,7 @@ proc parse_connect_pin { arg } {
}
proc connect_pins { net pins } {
sta_warn 372 "connect_pins is deprecated. Use connect_pin."
sta_warn 251 "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 } {
@ -203,7 +203,7 @@ proc delete_instance { instance } {
if { $object_type == "Instance" } {
set inst $instance
} else {
sta_error 587 "unsupported object type $object_type."
sta_error 252 "unsupported object type $object_type."
}
} else {
set inst [find_instance $instance]
@ -221,7 +221,7 @@ proc delete_net { net } {
if { [is_object $net] } {
set object_type [object_type $net]
if { $object_type != "Net" } {
sta_error 588 "unsupported object type $object_type."
sta_error 253 "unsupported object type $object_type."
}
} else {
set net [find_net $net]

View File

@ -29,12 +29,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 491 "$cmd object is null."
sta_error 320 "$cmd object is null."
} elseif { ![is_object $object] } {
if [info exists keys($type_key)] {
set object_type $keys($type_key)
} else {
sta_error 492 "$cmd $type_key must be specified with object name argument."
sta_error 321 "$cmd $type_key must be specified with object name argument."
}
set object [get_property_object_type $object_type $object $quiet]
}
@ -74,10 +74,10 @@ proc get_object_property { object prop } {
} elseif { $object_type == "TimingArcSet" } {
return [timing_arc_set_property $object $prop]
} else {
sta_error 606 "get_property unsupported object type $object_type."
sta_error 322 "get_property unsupported object type $object_type."
}
} else {
sta_error 493 "get_property $object is not an object."
sta_error 323 "get_property $object is not an object."
}
}
@ -104,10 +104,10 @@ proc get_property_object_type { object_type object_name quiet } {
|| $object_type == "lib"} {
set object [get_libs -quiet $object_name]
} else {
sta_error 494 "$object_type not supported."
sta_error 324 "$object_type not supported."
}
if { $object == "NULL" && !$quiet } {
sta_error 495 "$object_type '$object_name' not found."
sta_error 325 "$object_type '$object_name' not found."
}
return [lindex $object 0]
}

File diff suppressed because it is too large Load Diff

View File

@ -133,7 +133,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 420 "$cmd -path_delay must be min, min_rise, min_fall, max, max_rise, max_fall or min_max."
sta_error 510 "$cmd -path_delay must be min, min_rise, min_fall, max, max_rise, max_fall or min_max."
}
}
@ -143,7 +143,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 421 "$cmd command failed."
sta_error 511 "$cmd command failed."
}
check_for_key_args $cmd args
@ -162,7 +162,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 422 "-endpoint_count must be a positive integer."
sta_error 512 "-endpoint_count must be a positive integer."
}
}
@ -171,7 +171,7 @@ proc find_timing_paths_cmd { cmd args_var } {
set group_count $keys(-group_count)
check_positive_integer "-group_count" $group_count
if { $group_count < 1 } {
sta_error 423 "-group_count must be >= 1."
sta_error 513 "-group_count must be >= 1."
}
}
@ -202,9 +202,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 424 "'$arg' is not a known keyword or flag."
sta_error 514 "'$arg' is not a known keyword or flag."
} else {
sta_error 425 "positional arguments not supported."
sta_error 515 "positional arguments not supported."
}
}
@ -323,7 +323,7 @@ proc_redirect report_clock_skew {
check_argc_eq0 "report_clock_skew" $args
if { [info exists flags(-setup)] && [info exists flags(-hold)] } {
sta_error 419 "report_clock_skew -setup and -hold are mutually exclusive options."
sta_error 516 "report_clock_skew -setup and -hold are mutually exclusive options."
} elseif { [info exists flags(-setup)] } {
set setup_hold "setup"
} elseif { [info exists flags(-hold)] } {
@ -408,7 +408,7 @@ proc_redirect report_check_types {
set violators [info exists flags(-violators)]
if { [info exists flags(-all_violators)] } {
sta_warn 609 "-all_violators is deprecated. Use -violators"
sta_warn 517 "-all_violators is deprecated. Use -violators"
set violators 1
}
@ -488,12 +488,12 @@ proc_redirect report_check_types {
set clk_gating_hold [info exists flags(-clock_gating_hold)]
set max_slew [info exists flags(-max_slew)]
if { [info exists flags(-max_transition)] } {
sta_warn 610 "-max_transition deprecated. Use -max_slew."
sta_warn 518 "-max_transition deprecated. Use -max_slew."
set max_slew 1
}
set min_slew [info exists flags(-min_slew)]
if { [info exists flags(-min_transition)] } {
sta_warn 611 "-min_transition deprecated. Use -min_slew."
sta_warn 519 "-min_transition deprecated. Use -min_slew."
set min_slew 1
}
set max_fanout [info exists flags(-max_fanout)]
@ -507,12 +507,12 @@ proc_redirect report_check_types {
&& (($setup && $hold) \
|| ($recovery && $removal) \
|| ($clk_gating_setup && $clk_gating_hold)) } {
sta_error 426 "analysis type single is not consistent with doing both setup/max and hold/min checks."
sta_error 520 "analysis type single is not consistent with doing both setup/max and hold/min checks."
}
}
if { $args != {} } {
sta_error 427 "positional arguments not supported."
sta_error 521 "positional arguments not supported."
}
set corner [parse_corner_or_all keys]
@ -775,7 +775,7 @@ proc_redirect report_path {
flags {-max -min -all -tags} 0
if { [info exists flags(-min)] && [info exists flags(-max)] } {
sta_error 508 "-min and -max cannot both be specified."
sta_error 522 "-min and -max cannot both be specified."
} elseif [info exists flags(-min)] {
set min_max "min"
} elseif [info exists flags(-max)] {
@ -795,7 +795,7 @@ proc_redirect report_path {
set pin [get_port_pin_error "pin" $pin_arg]
if { [$pin is_hierarchical] } {
sta_error 509 "pin '$pin_arg' is hierarchical."
sta_error 523 "pin '$pin_arg' is hierarchical."
} else {
foreach vertex [$pin vertices] {
if { $vertex != "NULL" } {
@ -861,7 +861,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 510 "-format $format not recognized."
sta_error 524 "-format $format not recognized."
}
} else {
set path_options(-format) $default_format
@ -901,7 +901,7 @@ proc parse_report_path_options { cmd args_var default_format
set report_slew [expr [lsearch $fields "slew*"] != -1]
set report_fanout [expr [lsearch $fields "fanout*"] != -1]
if { [expr [lsearch $fields "trans*"] != -1] } {
sta_warn 1640 "The transition_time field is deprecated. Use slew instead."
sta_warn 525 "The transition_time field is deprecated. Use slew instead."
}
} else {
set report_input_pin 0
@ -1008,7 +1008,7 @@ proc worst_clock_skew { args } {
check_argc_eq0 "worst_clock_skew" $args
if { ([info exists flags(-setup)] && [info exists flags(-hold)]) \
|| (![info exists flags(-setup)] && ![info exists flags(-hold)]) } {
sta_error 616 "specify one of -setup and -hold."
sta_error 526 "specify one of -setup and -hold."
} elseif { [info exists flags(-setup)] } {
set setup_hold "setup"
} elseif { [info exists flags(-hold)] } {
@ -1057,7 +1057,7 @@ proc parse_path_group_arg { group_names } {
if { [is_path_group_name $name] } {
lappend names $name
} else {
sta_warn 318 "unknown path group '$name'."
sta_warn 527 "unknown path group '$name'."
}
}
return $names

View File

@ -155,7 +155,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 440 "-from/-to arguments not supported with -of_objects."
sta_error 540 "-from/-to arguments not supported with -of_objects."
}
set arcs [get_timing_arcs_objects $keys(-of_objects)]
} elseif { [info exists keys(-from)] \
@ -283,7 +283,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 441 "unsupported -filter expression."
sta_error 541 "unsupported -filter expression."
}
return $filtered_objects
}

View File

@ -115,7 +115,7 @@ cmdLinkedNetwork()
return network;
else {
Report *report = Sta::sta()->report();
report->error(201, "no network has been linked.");
report->error(1570, "no network has been linked.");
return nullptr;
}
}
@ -129,7 +129,7 @@ cmdEditNetwork()
return dynamic_cast<NetworkEdit*>(network);
else {
Report *report = Sta::sta()->report();
report->error(202, "network does not support edits.");
report->error(1571, "network does not support edits.");
return nullptr;
}
}
@ -4112,7 +4112,7 @@ set_crpr_mode(const char *mode)
else if (stringEq(mode, "same_transition"))
Sta::sta()->setCrprMode(CrprMode::same_transition);
else
sta->report()->critical(272, "unknown common clk pessimism mode.");
sta->report()->critical(1573, "unknown common clk pessimism mode.");
}
bool
@ -4126,7 +4126,7 @@ set_pocv_enabled(bool enabled)
{
#if !SSTA
if (enabled)
Sta::sta()->report()->error(204, "POCV support requires compilation with SSTA=1.");
Sta::sta()->report()->error(1574, "POCV support requires compilation with SSTA=1.");
#endif
return Sta::sta()->setPocvEnabled(enabled);
}
@ -4364,7 +4364,7 @@ set_report_path_field_properties(const char *field_name,
if (field)
field->setProperties(title, width, left_justify);
else
sta->report()->error(607, "unknown report path field %s", field_name);
sta->report()->error(1575, "unknown report path field %s", field_name);
}
void
@ -4376,7 +4376,7 @@ set_report_path_field_width(const char *field_name,
if (field)
field->setWidth(width);
else
sta->report()->error(608, "unknown report path field %s", field_name);
sta->report()->error(1576, "unknown report path field %s", field_name);
}
void
@ -5061,7 +5061,7 @@ set_clock_sense_cmd(PinSet *pins,
else if (stop_propagation)
sta->setClockSense(pins, clks, ClockSense::stop);
else
sta->report()->critical(273, "unknown clock sense");
sta->report()->critical(1577, "unknown clock sense");
}
bool

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 400 "$cmd $key missing value."
sta_error 560 "$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 401 "$cmd $key missing value."
sta_error 561 "$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 402 "$cmd $arg is not a known keyword or flag."
sta_error 562 "$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 403 "$cmd $arg is not a known keyword or flag."
sta_error 563 "$cmd $arg is not a known keyword or flag."
} else {
lappend args_rtn $arg
}
@ -238,45 +238,45 @@ define_cmd_args "log_end" {}
proc check_argc_eq0 { cmd arglist } {
if { $arglist != {} } {
sta_error 406 "$cmd positional arguments not supported."
sta_error 564 "$cmd positional arguments not supported."
}
}
proc check_argc_eq1 { cmd arglist } {
if { [llength $arglist] != 1 } {
sta_error 407 "$cmd requires one positional argument."
sta_error 565 "$cmd requires one positional argument."
}
}
proc check_argc_eq0or1 { cmd arglist } {
set argc [llength $arglist]
if { $argc != 0 && $argc != 1 } {
sta_error 408 "$cmd requires zero or one positional arguments."
sta_error 566 "$cmd requires zero or one positional arguments."
}
}
proc check_argc_eq2 { cmd arglist } {
if { [llength $arglist] != 2 } {
sta_error 409 "$cmd requires two positional arguments."
sta_error 567 "$cmd requires two positional arguments."
}
}
proc check_argc_eq1or2 { cmd arglist } {
set argc [llength $arglist]
if { $argc != 1 && $argc != 2 } {
sta_error 410 "$cmd requires one or two positional arguments."
sta_error 568 "$cmd requires one or two positional arguments."
}
}
proc check_argc_eq3 { cmd arglist } {
if { [llength $arglist] != 3 } {
sta_error 411 "$cmd requires three positional arguments."
sta_error 569 "$cmd requires three positional arguments."
}
}
proc check_argc_eq4 { cmd arglist } {
if { [llength $arglist] != 4 } {
sta_error 412 "$cmd requires four positional arguments."
sta_error 570 "$cmd requires four positional arguments."
}
}
@ -284,37 +284,37 @@ proc check_argc_eq4 { cmd arglist } {
proc check_float { cmd_arg arg } {
if {![string is double $arg]} {
sta_error 413 "$cmd_arg '$arg' is not a float."
sta_error 571 "$cmd_arg '$arg' is not a float."
}
}
proc check_positive_float { cmd_arg arg } {
if {!([string is double $arg] && $arg >= 0.0)} {
sta_error 414 "$cmd_arg '$arg' is not a positive float."
sta_error 572 "$cmd_arg '$arg' is not a positive float."
}
}
proc check_integer { cmd_arg arg } {
if {!([string is integer $arg])} {
sta_error 415 "$cmd_arg '$arg' is not an integer."
sta_error 573 "$cmd_arg '$arg' is not an integer."
}
}
proc check_positive_integer { cmd_arg arg } {
if {!([string is integer $arg] && $arg >= 0)} {
sta_error 416 "$cmd_arg '$arg' is not a positive integer."
sta_error 574 "$cmd_arg '$arg' is not a positive integer."
}
}
proc check_cardinal { cmd_arg arg } {
if {!([string is integer $arg] && $arg >= 1)} {
sta_error 417 "$cmd_arg '$arg' is not an integer greater than or equal to one."
sta_error 575 "$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 418 "$cmd_arg '$arg' is not between 0 and 100."
sta_error 576 "$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 436 "sta_report_default_digits must be a positive integer."
sta_error 590 "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 437 "sta_crpr_mode must be pin or transition."
sta_error 591 "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 438 "$var_name value must be 0 or 1."
sta_error 592 "$var_name value must be 0 or 1."
}
}
}

View File

@ -32,55 +32,55 @@ proc write_path_spice { args } {
if { [info exists keys(-spice_directory)] } {
set spice_dir [file nativename $keys(-spice_directory)]
if { ![file exists $spice_dir] } {
sta_error 496 "Directory $spice_dir not found."
sta_error 600 "Directory $spice_dir not found."
}
if { ![file isdirectory $spice_dir] } {
sta_error 497 "$spice_dir is not a directory."
sta_error 601 "$spice_dir is not a directory."
}
if { ![file writable $spice_dir] } {
sta_error 498 "Cannot write in $spice_dir."
sta_error 602 "Cannot write in $spice_dir."
}
} else {
sta_error 499 "No -spice_directory specified."
sta_error 603 "No -spice_directory specified."
}
if { [info exists keys(-lib_subckt_file)] } {
set lib_subckt_file [file nativename $keys(-lib_subckt_file)]
if { ![file readable $lib_subckt_file] } {
sta_error 500 "-lib_subckt_file $lib_subckt_file is not readable."
sta_error 604 "-lib_subckt_file $lib_subckt_file is not readable."
}
} else {
sta_error 501 "No -lib_subckt_file specified."
sta_error 605 "No -lib_subckt_file specified."
}
if { [info exists keys(-model_file)] } {
set model_file [file nativename $keys(-model_file)]
if { ![file readable $model_file] } {
sta_error 502 "-model_file $model_file is not readable."
sta_error 606 "-model_file $model_file is not readable."
}
} else {
sta_error 503 "No -model_file specified."
sta_error 607 "No -model_file specified."
}
if { [info exists keys(-power)] } {
set power $keys(-power)
} else {
sta_error 504 "No -power specified."
sta_error 608 "No -power specified."
}
if { [info exists keys(-ground)] } {
set ground $keys(-ground)
} else {
sta_error 505 "No -ground specified."
sta_error 609 "No -ground specified."
}
if { ![info exists keys(-path_args)] } {
sta_error 506 "No -path_args specified."
sta_error 610 "No -path_args specified."
}
set path_args $keys(-path_args)
set path_ends [eval [concat find_timing_paths $path_args]]
if { $path_ends == {} } {
sta_error 507 "No paths found for -path_args $path_args."
sta_error 611 "No paths found for -path_args $path_args."
} else {
set path_index 1
foreach path_end $path_ends {

View File

@ -883,7 +883,7 @@ VerilogModule::parseDcl(VerilogDcl *dcl,
dcl_map_[net_name] = dcl;
else if (!dcl->direction()->isInternal()) {
string net_vname = reader->netVerilogName(net_name);
reader->warn(18, filename_, dcl->line(),
reader->warn(1395, filename_, dcl->line(),
"signal %s previously declared on line %d.",
net_vname.c_str(),
existing_dcl->line());
@ -912,7 +912,7 @@ VerilogModule::checkInstanceName(VerilogInst *inst,
replacement_name = stringPrint("%s_%d", inst_name, i);
} while (inst_names.findKey(replacement_name));
string inst_vname = reader->instanceVerilogName(inst_name);
reader->warn(19, filename_, inst->line(),
reader->warn(1396, filename_, inst->line(),
"instance name %s duplicated - renamed to %s.",
inst_vname.c_str(),
replacement_name);
@ -1538,7 +1538,7 @@ VerilogNetConstant::parseConstant10(const char *constant_str,
if (length > max_length
|| (length == max_length
&& strcmp(tmp, reader->constant10Max()) > 0))
reader->warn(20, reader->filename(), reader->line(),
reader->warn(1397, reader->filename(), reader->line(),
"base 10 constant greater than %s not supported.",
reader->constant10Max());
else {
@ -1779,12 +1779,12 @@ VerilogReader::linkNetwork(const char *top_cell_name,
return top_instance;
}
else {
report->error(274, "%s is not a verilog module.", top_cell_name);
report->error(1398, "%s is not a verilog module.", top_cell_name);
return nullptr;
}
}
else {
report->error(275, "%s is not a verilog module.", top_cell_name);
report->error(1399, "%s is not a verilog module.", top_cell_name);
return nullptr;
}
}