diff --git a/.gitignore b/.gitignore index 2013c841..3d0ac7c1 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,5 @@ doc/._Sta.docx test/results # ngspice turd test/b3v3_1check.log + +doc/messages.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index d6773d91..d9b64958 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -596,3 +596,10 @@ add_custom_target(sta_tags etags -o TAGS ${SWIG_TCL_FILES} WORKING_DIRECTORY ${STA_HOME} ) + +add_custom_command( + TARGET OpenSTA + POST_BUILD + COMMAND ${CMAKE_SOURCE_DIR}/etc/FindMessages.tcl > ${CMAKE_SOURCE_DIR}/doc/messages.txt || true + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} +) diff --git a/dcalc/DelayCalc.tcl b/dcalc/DelayCalc.tcl index 89ea0862..b920e4b0 100644 --- a/dcalc/DelayCalc.tcl +++ b/dcalc/DelayCalc.tcl @@ -131,7 +131,7 @@ proc set_delay_calculator { alg } { if { [is_delay_calc_name $alg] } { set_delay_calculator_cmd $alg } else { - sta_error 180 "delay calculator $alg not found." + sta_error 195 "delay calculator $alg not found." } } @@ -156,7 +156,7 @@ proc set_assigned_delay { args } { if [info exists keys(-from)] { set from_pins [get_port_pins_error "from_pins" $keys(-from)] } else { - sta_error 181 "set_assigned_delay missing -from argument." + sta_error 196 "set_assigned_delay missing -from argument." } if [info exists keys(-to)] { set to_pins [get_port_pins_error "to_pins" $keys(-to)] diff --git a/doc/messages.txt b/doc/messages.txt deleted file mode 100644 index ea0fb51a..00000000 --- a/doc/messages.txt +++ /dev/null @@ -1,581 +0,0 @@ -0100 CmdArgs.tcl:108 unsupported object type $object_type. -0101 CmdArgs.tcl:165 object '$obj' not found. -0102 CmdArgs.tcl:413 $corner_arg is not the name of process corner. -0103 CmdArgs.tcl:419 -corner keyword required with multi-corner analysis. -0104 CmdArgs.tcl:433 $corner_name is not the name of process corner. -0105 CmdArgs.tcl:438 missing -corner arg. -0106 CmdArgs.tcl:449 $corner_name is not the name of process corner. -0107 CmdArgs.tcl:466 $corner_name is not the name of process corner. -0108 CmdArgs.tcl:501 both -min and -max specified. -0109 CmdArgs.tcl:515 both -min and -max specified. -0110 CmdArgs.tcl:542 only one of -early and -late can be specified. -0111 CmdArgs.tcl:548 -early or -late must be specified. -0112 CmdArgs.tcl:555 both -early and -late specified. -0113 CmdArgs.tcl:570 $arg_name must be a single library. -0114 CmdArgs.tcl:576 $arg_name type '$object_type' is not a library. -0115 CmdArgs.tcl:581 library '$arg' not found. -0116 CmdArgs.tcl:598 $arg_name must be a single lib cell. -0123 CmdArgs.tcl:685 $arg_name must be a single instance. -0124 CmdArgs.tcl:691 $arg_name type '$object_type' is not an instance. -0125 CmdArgs.tcl:696 instance '$arg' not found. -0126 CmdArgs.tcl:715 $arg_name type '$object_type' is not an instance. -0127 CmdArgs.tcl:722 instance '$arg' not found. -0128 CmdArgs.tcl:742 $arg_name type '$object_type' is not a liberty cell. -0129 CmdArgs.tcl:749 liberty cell '$arg' not found. -0131 CmdArgs.tcl:810 $arg_name type '$object_type' is not a pin or port. -0132 CmdArgs.tcl:817 pin '$arg' not found. -0133 CmdArgs.tcl:837 $arg_name type '$object_type' is not a port. -0139 CmdArgs.tcl:918 unsupported object type $object_type. -0141 CmdArgs.tcl:939 $arg_name '$object_type' is not a net. -0142 CmdArgs.tcl:963 unsupported object type $object_type. -0143 CmdArgs.tcl:944 $arg_name '$arg' not found. -0144 CmdArgs.tcl:408 corner object type '$object_type' is not a corner. -0160 CmdUtil.tcl:44 no commands match '$pattern'. -0161 CmdUtil.tcl:89 Usage: $cmd $cmd_args($cmd) -0162 CmdUtil.tcl:91 Usage: $cmd argument error -0164 CmdUtil.tcl:220 unsupported object type $list_type. -0165 CmdUtil.tcl:237 unknown namespace $namespc. -0166 CmdUtil.tcl:170 unknown unit $unit prefix '${arg_prefix}'. -0167 CmdUtil.tcl:173 incorrect unit suffix '$arg_suffix'. -0180 DelayCalc.tcl:126 delay calculator $alg not found. -0181 DelayCalc.tcl:151 set_assigned_delay missing -from argument. -0182 DelayCalc.tcl:156 set_assigned_delay missing -to argument. -0183 DelayCalc.tcl:161 set_assigned_delay delay is not a float. -0184 DelayCalc.tcl:166 set_annotated_delay -cell and -net options are mutually excluive. -0185 DelayCalc.tcl:172 set_assigned_delay pin [get_full_name $pin] is not attached to instance [get_full_name $inst]. -0186 DelayCalc.tcl:177 set_assigned_delay pin [get_full_name $pin] is not attached to instance [get_full_name $inst] -0187 DelayCalc.tcl:182 set_assigned_delay -cell or -net required. -0188 DelayCalc.tcl:247 set_assigned_check missing -from argument. -0189 DelayCalc.tcl:256 set_assigned_check -clock must be rise or fall. -0190 DelayCalc.tcl:263 set_assigned_check missing -to argument. -0191 DelayCalc.tcl:278 set_assigned_check missing -setup|-hold|-recovery|-removal check type.. -0192 DelayCalc.tcl:286 set_assigned_check check_value is not a float. -0193 DelayCalc.tcl:226 set_assigned_delay no timing arcs found between from/to pins. -0194 DelayCalc.tcl:338 set_assigned_check no check arcs found between from/to pins. -0204 ArnoldiDelayCalc.cc:607 arnoldi delay calc failed. -0210 DelayCalc.tcl:359 set_assigned_transition transition is not a float. -0220 Link.tcl:36 missing top_cell_name argument and no current_design. -0225 InternalPower.cc:192 unsupported table order -0226 InternalPower.cc:207 unsupported table axes -0230 Network.tcl:41 instance $instance_path not found. -0231 Network.tcl:217 net $net_path not found. -0232 Network.tcl:220 net $net_path not found. -0233 Network.tcl:30 report_instance -connections is deprecated. -0234 Network.tcl:34 report_instance -verbose is deprecated. -0235 Network.tcl:189 report_net -connections is deprecated. -0236 Network.tcl:193 report_net -verbose is deprecated. -0237 Network.tcl:197 report_net -hier_pins is deprecated. -0239 TableModel.cc:265 unsupported table order -0240 TableModel.cc:328 unsupported table axes -0241 TableModel.cc:545 unsupported table order -0242 TableModel.cc:563 unsupported table axes -0243 TimingArc.cc:242 timing arc max index exceeded - -0244 Clock.cc:474 generated clock edges size is not three. -0245 CheckTiming.cc:428 unknown print flag -0246 Corner.cc:377 unknown parasitic analysis point count -0247 Corner.cc:421 unknown analysis point count -0249 GatedClk.cc:247 illegal gated clock active value -0250 NetworkEdit.tcl:107 unsupported object type $object_type. -0252 NetworkEdit.tcl:174 unsupported object type $object_type. -0253 NetworkEdit.tcl:192 unsupported object type $object_type. -0266 VertexVisitor.cc:32 VertexPinCollector::copy not supported. -0267 WriteSpice.cc:1217 out of memory -0268 VerilogWriter.cc:258 unknown port direction -0272 Parasitics.tcl:41 read_spef -quiet is deprecated. -0273 Parasitics.tcl:45 read_spef -reduce_to is deprecated. Use -reduce instead. -0274 Parasitics.tcl:50 read_spef -delete_after_reduce is deprecated. -0275 Parasitics.tcl:54 read_spef -save is deprecated. -0276 Parasitics.tcl:62 path instance '$path' not found. -0280 PathEnum.cc:574 diversion path not found -0301 Power.tcl:234 activity should be 0.0 to 1.0 or 2.0 -0302 Power.tcl:242 duty should be 0.0 to 1.0 -0303 Power.tcl:257 activity cannot be set on clock ports. -0304 Power.tcl:40 No liberty libraries have been read. -0305 Power.tcl:286 read_power_activities is deprecated. Use read_vcd. -0320 Property.tcl:32 $cmd object is null. -0321 Property.tcl:37 $cmd $type_key must be specified with object name argument. -0322 Property.tcl:77 get_property unsupported object type $object_type. -0323 Property.tcl:80 get_property $object is not an object. -0324 Property.tcl:107 $object_type not supported. -0325 Property.tcl:110 $object_type '$object_name' not found. -0326 Sdc.tcl:494 object '$pattern' is not an instance. -0327 Sdc.tcl:542 object '$pattern' is not an clock. -0328 Sdc.tcl:606 object '$pattern' is not a liberty cell. -0329 Sdc.tcl:689 object '$pattern' is not a liberty pin. -0330 Sdc.tcl:769 object '$pattern' is not a liberty library. -0331 Sdc.tcl:868 object '$pattern' is not a net. -0332 Sdc.tcl:948 object '$pattern' is not a pin. -0333 Sdc.tcl:1005 object '$pattern' is not a port. -0334 Sdc.tcl:2860 object '$cell_name' is not a liberty cell. -0335 Sdc.tcl:679 positional arguments not supported with -of_objects. -0340 Sdc.tcl:73 cannot open '$filename'. -0341 Sdc.tcl:128 incomplete command at end of file. -0342 Sdc.tcl:212 hierarchy separator must be one of '$sdc_dividers'. -0343 Sdc.tcl:256 unknown unit $unit prefix '${arg_prefix}'. -0344 Sdc.tcl:275 unknown $unit prefix '$prefix'. -0345 Sdc.tcl:281 $unit scale [format %.0e $scale] does not match library scale [format %.0e $unit_scale]. -0346 Sdc.tcl:358 only one of -cells, -data_pins, -clock_pins, -async_pins, -output_pins are suppported. -0347 Sdc.tcl:401 current_design for other than top cell not supported. -0348 Sdc.tcl:468 patterns argument not supported with -of_objects. -0349 Sdc.tcl:507 instance '$pattern' not found. -0350 Sdc.tcl:429 unsupported $object_type -filter expression. -0351 Sdc.tcl:551 clock '$pattern' not found. -0352 Sdc.tcl:581 positional arguments not supported with -of_objects. -0353 Sdc.tcl:618 library '$lib_name' not found. -0354 Sdc.tcl:630 cell '$cell_pattern' not found. -0355 Sdc.tcl:702 library/cell/port '$pattern' not found. -0356 Sdc.tcl:722 port '$port_pattern' not found. -0357 Sdc.tcl:727 library '$lib_name' not found. -0358 Sdc.tcl:742 -nocase ignored without -regexp. -0359 Sdc.tcl:778 library '$pattern' not found. -0360 Sdc.tcl:849 patterns argument not supported with -of_objects. -0361 Sdc.tcl:879 net '$pattern' not found. -0362 Sdc.tcl:912 patterns argument not supported with -of_objects. -0363 Sdc.tcl:959 pin '$pattern' not found. -0365 Sdc.tcl:994 patterns argument not supported with -of_objects. -0366 Sdc.tcl:1014 port '$pattern' not found. -0368 Sdc.tcl:1054 -add requires -name. -0369 Sdc.tcl:1059 -name or port_pin_list must be specified. -0370 Sdc.tcl:1067 missing -period argument. -0371 Sdc.tcl:1073 -waveform edge_list must have an even number of edge times. -0372 Sdc.tcl:1082 non-increasing clock -waveform edge times. -0373 Sdc.tcl:1085 -waveform time greater than two periods. -0374 Sdc.tcl:1143 empty ports/pins/nets argument. -0375 Sdc.tcl:1151 -add requires -name. -0376 Sdc.tcl:1156 name or port_pin_list must be specified. -0377 Sdc.tcl:1163 missing -source argument. -0378 Sdc.tcl:1178 -master_clock argument empty. -0379 Sdc.tcl:1181 -add requireds -master_clock. -0380 Sdc.tcl:1185 -multiply_by and -divide_by options are exclusive. -0381 Sdc.tcl:1189 -divide_by is not an integer greater than one. -0382 Sdc.tcl:1192 -combinational implies -divide_by 1. -0383 Sdc.tcl:1197 -multiply_by is not an integer greater than one. -0384 Sdc.tcl:1203 -duty_cycle is not a float between 0 and 100. -0385 Sdc.tcl:1209 -edges only supported for three edges. -0386 Sdc.tcl:1215 edges times are not monotonically increasing. -0387 Sdc.tcl:1224 -edge_shift length does not match -edges length. -0388 Sdc.tcl:1230 missing -multiply_by, -divide_by, -combinational or -edges argument. -0389 Sdc.tcl:1238 cannot specify -invert without -multiply_by, -divide_by or -combinational. -0390 Sdc.tcl:1244 -duty_cycle requires -multiply_by value. -0391 Sdc.tcl:1304 group_path command failed. -0392 Sdc.tcl:1311 positional arguments not supported. -0393 Sdc.tcl:1315 -from, -through or -to required. -0394 Sdc.tcl:1321 -name and -default are mutually exclusive. -0395 Sdc.tcl:1323 -name or -default option is required. -0396 Sdc.tcl:1364 cannot specify both -high and -low. -0397 Sdc.tcl:1372 missing -setup or -hold argument. -0398 Sdc.tcl:1386 -high and -low only permitted for pins and instances. -0399 Sdc.tcl:1393 -high and -low only permitted for pins and instances. -0400 Sdc.tcl:1436 one of -logically_exclusive, -physically_exclusive or -asynchronous is required. -0401 Sdc.tcl:1439 the keywords -logically_exclusive, -physically_exclusive and -asynchronous are mutually exclusive. -0402 Sdc.tcl:1458 unknown keyword argument $arg. -0403 Sdc.tcl:1460 extra positional argument $arg. -0404 Sdc.tcl:1489 the -all and -name options are mutually exclusive. -0405 Sdc.tcl:1492 either -all or -name options must be specified. -0406 Sdc.tcl:1500 one of -logically_exclusive, -physically_exclusive or -asynchronous is required. -0407 Sdc.tcl:1503 the keywords -logically_exclusive, -physically_exclusive and -asynchronous are mutually exclusive. -0408 Sdc.tcl:1553 -clock ignored for clock objects. -0409 Sdc.tcl:1567 -source '[get_full_name $pin]' is not a clock pin. -0410 Sdc.tcl:1574 -early/-late is only allowed with -source. -0411 Sdc.tcl:1603 -clock ignored for clock objects. -0412 Sdc.tcl:1615 -source '[$pin path_name]' is not a clock pin. -0413 Sdc.tcl:1643 set_sense -type data not supported. -0414 Sdc.tcl:1647 set_sense -type clock|data -0415 Sdc.tcl:1658 set_clock_sense is deprecated as of SDC 2.1. Use set_sense -type clock. -0416 Sdc.tcl:1670 -pulse argument not supported. -0417 Sdc.tcl:1679 -positive, -negative, -stop_propagation and -pulse are mutually exclusive. -0418 Sdc.tcl:1692 hierarchical pin '[get_full_name $pin]' not supported. -0419 Sdc.tcl:1716 transition time can not be specified for virtual clocks. -0420 Sdc.tcl:1749 missing uncertainty value. -0421 Sdc.tcl:1797 -from/-to must be used together. -0422 Sdc.tcl:1817 -rise, -fall options not allowed for single clock uncertainty. -0423 Sdc.tcl:1883 -from/-to must be used together. -0424 Sdc.tcl:1903 -rise, -fall options not allowed for single clock uncertainty. -0425 Sdc.tcl:1944 missing -from, -rise_from or -fall_from argument. -0426 Sdc.tcl:1956 missing -to, -rise_to or -fall_to argument. -0427 Sdc.tcl:2004 missing -from, -rise_from or -fall_from argument. -0428 Sdc.tcl:2016 missing -to, -rise_to or -fall_to argument. -0429 Sdc.tcl:2058 -from/-to keywords ignored for lib_pin, port and pin arguments. -0430 Sdc.tcl:2088 -from/-to hierarchical instance not supported. -0431 Sdc.tcl:2120 pin '[get_full_name $inst]${hierarchy_separator}${port_name}' not found. -0432 Sdc.tcl:2177 pin '[get_name $cell]${hierarchy_separator}${port_name}' not found. -0434 Sdc.tcl:2211 -from/-to keywords ignored for lib_pin, port and pin arguments. -0435 Sdc.tcl:2263 -from/-to hierarchical instance not supported. -0436 Sdc.tcl:2317 '$args' ignored. -0437 Sdc.tcl:2321 -from, -through or -to required. -0438 Sdc.tcl:2400 -source_latency_included ignored with -reference_pin. -0439 Sdc.tcl:2403 -network_latency_included ignored with -reference_pin. -0440 Sdc.tcl:2422 $cmd not allowed on [pin_direction $pin] port '[get_full_name $pin]'. -0441 Sdc.tcl:2424 $cmd relative to a clock defined on the same port/pin not allowed. -0442 Sdc.tcl:2472 missing delay argument. -0443 Sdc.tcl:2478 '$args' ignored. -0444 Sdc.tcl:2603 missing path multiplier argument. -0445 Sdc.tcl:2608 '$args' ignored. -0446 Sdc.tcl:2615 cannot use -start with -end. -0447 Sdc.tcl:2665 $cmd command failed. -0448 Sdc.tcl:2672 positional arguments not supported. -0449 Sdc.tcl:2676 -from, -through or -to required. -0450 Sdc.tcl:2743 virtual clock [get_name $clk] can not be propagated. -0451 Sdc.tcl:2785 value must be 0, zero, 1, one, rise, rising, fall, or falling. -0452 Sdc.tcl:2854 cell '$lib_name:$cell_name' not found. -0453 Sdc.tcl:2867 '$cell_name' not found. -0454 Sdc.tcl:2871 missing -lib_cell argument. -0455 Sdc.tcl:2879 port '$to_port_name' not found. -0456 Sdc.tcl:2891 -pin argument required for cells with multiple outputs. -0457 Sdc.tcl:2906 port '$from_port_name' not found. -0458 Sdc.tcl:2924 -multiply_by ignored. -0459 Sdc.tcl:2927 -dont_scale ignored. -0460 Sdc.tcl:2930 -no_design_rule ignored. -0461 Sdc.tcl:2953 set_fanout_load not supported. -0462 Sdc.tcl:2977 -clock not supported. -0463 Sdc.tcl:2980 -clock_fall not supported. -0464 Sdc.tcl:3030 -pin_load not allowed for net objects. -0465 Sdc.tcl:3033 -wire_load not allowed for net objects. -0466 Sdc.tcl:3036 -rise/-fall not allowed for net objects. -0467 Sdc.tcl:3123 port '[get_name $port]' is not an input. -0468 Sdc.tcl:3169 -data_path, -clock_path, -rise, -fall ignored for ports and designs. -0469 Sdc.tcl:3240 derating factor greater than 2.0. -0470 Sdc.tcl:3277 -cell_delay and -cell_check flags ignored for net objects. -0471 Sdc.tcl:3347 no valid objects specified for $key. -0472 Sdc.tcl:3380 no valid objects specified for $key -0473 Sdc.tcl:3429 no valid objects specified for $key. -0474 Sdc.tcl:3497 operating condition '$op_cond_name' not found. -0475 Sdc.tcl:3515 operating condition '$op_cond_name' not found. -0476 Sdc.tcl:3529 -analysis_type must be single, bc_wc or on_chip_variation. -0477 Sdc.tcl:3541 set_wire_load_min_block_size not supported. -0478 Sdc.tcl:3554 mode must be top, enclosed or segmented. -0479 Sdc.tcl:3569 no wire load model specified. -0480 Sdc.tcl:3591 wire load model '$model_name' not found. -0481 Sdc.tcl:3630 wire load selection group '$selection_name' not found. -0482 Sdc.tcl:3718 define_corners must be called before read_liberty. -0500 Sdc.tcl:3791 no default operating conditions found. -0501 Sdc.tcl:259 incorrect unit suffix '$arg_suffix'. -0502 Search.tcl:165 $cmd -endpoint_count is deprecated. Use -endpoint_path_count instead. -0503 Search.tcl:178 $cmd -group_count is deprecated. Use -group_path_count instead. -0510 Search.tcl:137 $cmd -path_delay must be min, min_rise, min_fall, max, max_rise, max_fall or min_max. -0511 Search.tcl:147 $cmd command failed. -0512 Search.tcl:172 -endpoint_path_count must be a positive integer. -0513 Search.tcl:186 -group_path_count must be >= 1. -0514 Search.tcl:216 '$arg' is not a known keyword or flag. -0515 Search.tcl:218 positional arguments not supported. -0516 Search.tcl:339 report_clock_skew -setup and -hold are mutually exclusive options. -0520 Search.tcl:543 analysis type single is not consistent with doing both setup/max and hold/min checks. -0521 Search.tcl:548 positional arguments not supported. -0522 Search.tcl:802 -min and -max cannot both be specified. -0523 Search.tcl:822 pin '$pin_arg' is hierarchical. -0524 Search.tcl:878 -format $format not recognized. -0526 Search.tcl:1026 specify one of -setup and -hold. -0527 Search.tcl:1076 unknown path group '$name'. -0540 Sta.tcl:158 -from/-to arguments not supported with -of_objects. -0560 Util.tcl:44 $cmd $key missing value. -0561 Util.tcl:61 $cmd $key missing value. -0562 Util.tcl:71 $cmd $arg is not a known keyword or flag. -0563 Util.tcl:93 $cmd $arg is not a known keyword or flag. -0564 Util.tcl:241 $cmd positional arguments not supported. -0565 Util.tcl:247 $cmd requires one positional argument. -0566 Util.tcl:254 $cmd requires zero or one positional arguments. -0567 Util.tcl:260 $cmd requires two positional arguments. -0568 Util.tcl:267 $cmd requires one or two positional arguments. -0569 Util.tcl:273 $cmd requires three positional arguments. -0570 Util.tcl:279 $cmd requires four positional arguments. -0571 Util.tcl:287 $cmd_arg '$arg' is not a float. -0572 Util.tcl:293 $cmd_arg '$arg' is not a positive float. -0573 Util.tcl:299 $cmd_arg '$arg' is not an integer. -0574 Util.tcl:305 $cmd_arg '$arg' is not a positive integer. -0575 Util.tcl:311 $cmd_arg '$arg' is not an integer greater than or equal to one. -0576 Util.tcl:317 $cmd_arg '$arg' is not between 0 and 100. -0577 Sdc.tcl:3721 define_corners must define at least one corner. -0590 Variables.tcl:37 sta_report_default_digits must be a positive integer. -0591 Variables.tcl:62 sta_crpr_mode must be pin or transition. -0592 Variables.tcl:179 $var_name value must be 0 or 1. -0616 Levelize.cc:220 maximum logic level exceeded -0620 Sdf.tcl:41 -cond_use must be min, max or min_max. -0621 Sdf.tcl:46 -cond_use min_max cannot be used with analysis type single. -0623 Sdf.tcl:154 SDF -divider must be / or . -0800 VcdReader.cc:112 unhandled vcd command. -0801 VcdReader.cc:151 timescale syntax error. -0802 VcdReader.cc:165 Unknown timescale unit. -0804 VcdReader.cc:222 Variable syntax error. -1000 ConcreteNetwork.cc:1973 cell type %s can not be linked. -1010 CycleAccting.cc:87 No common period was found between clocks %s and %s. -1040 DmpCeff.cc:1510 parasitic Pi model has NaNs. -1041 DmpCeff.cc:1536 cell %s delay model not supported on SPF parasitics by DMP delay calculator -1060 Genclks.cc:275 no master clock found for generated clock %s. -1062 Genclks.cc:939 generated clock %s source pin %s missing paths from master clock %s. -1100 Power.cc:559 unknown cudd constant -1110 Liberty.cc:763 cell %s/%s port %s not found in cell %s/%s. -1111 Liberty.cc:789 cell %s/%s %s -> %s timing group %s not found in cell %s/%s. -1112 Liberty.cc:808 Liberty cell %s/%s for corner %s/%s not found. -1113 Liberty.cc:1824 cell %s/%s %s -> %s latch enable %s_edge is inconsistent with %s -> %s setup_%s check. -1114 Liberty.cc:1765 cell %s/%s %s -> %s latch enable %s_edge is inconsistent with latch group enable function positive sense. -1115 Liberty.cc:1773 cell %s/%s %s -> %s latch enable %s_edge is inconsistent with latch group enable function negative sense. -1116 Liberty.cc:362 unsupported slew degradation table axes -1117 Liberty.cc:378 unsupported slew degradation table axes -1118 Liberty.cc:383 unsupported slew degradation table order -1119 Liberty.cc:413 unsupported slew degradation table axes -1120 Liberty.cc:1979 library missing vdd -1121 Liberty.cc:1391 timing arc count mismatch -1125 LibertyParser.cc:310 valueIterator called for LibertySimpleAttribute -1126 LibertyParser.cc:390 LibertyStringAttrValue called for float value -1127 LibertyParser.cc:420 LibertyStringAttrValue called for float value -1130 LibertyExpr.cc:82 %s references unknown port %s. -1131 LibertyExpr.cc:175 %s %s. -1140 LibertyReader.cc:632 library %s already exists. -1141 LibertyReader.cc:665 library missing name. -1142 LibertyReader.cc:691 default_wire_load %s not found. -1143 LibertyReader.cc:702 default_wire_selection %s not found. -1144 LibertyReader.cc:714 default_operating_condition %s not found. -1145 LibertyReader.cc:724 input_threshold_pct_%s not found. -1146 LibertyReader.cc:728 output_threshold_pct_%s not found. -1147 LibertyReader.cc:732 slew_lower_threshold_pct_%s not found. -1148 LibertyReader.cc:736 slew_upper_threshold_pct_%s not found. -1149 LibertyReader.cc:741 Library %s is missing one or more thresholds. -1150 LibertyReader.cc:820 unknown unit multiplier %s. -1151 LibertyReader.cc:843 unknown unit scale %c. -1152 LibertyReader.cc:846 unknown unit suffix %s. -1153 LibertyReader.cc:849 unknown unit suffix %s. -1154 LibertyReader.cc:874 capacitive_load_units are not ff or pf. -1155 LibertyReader.cc:877 capacitive_load_units are not a string. -1156 LibertyReader.cc:880 capacitive_load_units missing suffix. -1157 LibertyReader.cc:883 capacitive_load_units scale is not a float. -1158 LibertyReader.cc:886 capacitive_load_units missing scale and suffix. -1159 LibertyReader.cc:889 capacitive_load_unit missing values suffix. -1160 LibertyReader.cc:907 delay_model %s not supported. -1161 LibertyReader.cc:911 delay_model %s not supported. -1162 LibertyReader.cc:915 delay_model %s not supported. -1163 LibertyReader.cc:920 delay_model %s not supported.. -1164 LibertyReader.cc:923 unknown delay_model %s. -1165 LibertyReader.cc:942 unknown bus_naming_style format. -1166 LibertyReader.cc:963 voltage_map voltage is not a float. -1167 LibertyReader.cc:966 voltage_map missing voltage. -1168 LibertyReader.cc:969 voltage_map supply name is not a string. -1169 LibertyReader.cc:972 voltage_map missing supply name and voltage. -1170 LibertyReader.cc:975 voltage_map missing values suffix. -1171 LibertyReader.cc:1060 default_max_transition is 0.0. -1172 LibertyReader.cc:1075 default_max_fanout is 0.0. -1173 LibertyReader.cc:1165 default_fanout_load is 0.0. -1174 LibertyReader.cc:1193 default_wire_load_mode %s not found. -1175 LibertyReader.cc:1379 table template missing name. -1176 LibertyReader.cc:1424 missing variable_%d attribute. -1177 LibertyReader.cc:1500 missing table index values. -1178 LibertyReader.cc:1506 non-increasing table index values. -1179 LibertyReader.cc:1538 bus type %s missing bit_from. -1180 LibertyReader.cc:1540 bus type %s missing bit_to. -1181 LibertyReader.cc:1544 type missing name. -1182 LibertyReader.cc:1571 scaling_factors do not have a name. -1183 LibertyReader.cc:1740 operating_conditions missing name. -1184 LibertyReader.cc:1811 wire_load missing name. -1185 LibertyReader.cc:1854 fanout_length is missing length and fanout. -1186 LibertyReader.cc:1869 wire_load_selection missing name. -1187 LibertyReader.cc:1900 wireload %s not found. -1189 LibertyReader.cc:1907 wire_load_from_area min not a float. -1190 LibertyReader.cc:1910 wire_load_from_area max not a float. -1191 LibertyReader.cc:1913 wire_load_from_area missing parameters. -1192 LibertyReader.cc:1916 wire_load_from_area missing parameters. -1193 LibertyReader.cc:1935 cell missing name. -1194 LibertyReader.cc:1959 cell %s ocv_derate_group %s not found. -1195 LibertyReader.cc:1992 port %s function size does not match port size. -1196 LibertyReader.cc:2089 %s %s bus width mismatch. -1197 LibertyReader.cc:2100 %s %s bus width mismatch. -1198 LibertyReader.cc:2110 clear -1199 LibertyReader.cc:2120 preset -1200 LibertyReader.cc:2156 latch enable function is non-unate for port %s. -1201 LibertyReader.cc:2161 latch enable function is unknown for port %s. -1202 LibertyReader.cc:2263 operating conditions %s not found. -1203 LibertyReader.cc:2266 scaled_cell missing operating condition. -1204 LibertyReader.cc:2269 scaled_cell cell %s has not been defined. -1205 LibertyReader.cc:2272 scaled_cell missing name. -1206 LibertyReader.cc:2298 scaled_cell %s, %s port functions do not match cell port functions. -1207 LibertyReader.cc:2303 scaled_cell ports do not match cell ports. -1208 LibertyReader.cc:2305 scaled_cell %s, %s timing does not match cell timing. -1209 LibertyReader.cc:2324 combinational timing to an input port. -1210 LibertyReader.cc:2419 missing %s_transition. -1211 LibertyReader.cc:2421 missing cell_%s. -1212 LibertyReader.cc:2442 timing group from output port. -1213 LibertyReader.cc:2452 timing group from output port. -1214 LibertyReader.cc:2462 timing group from output port. -1215 LibertyReader.cc:2497 timing group from output port. -1217 LibertyReader.cc:2507 timing group from output port. -1218 LibertyReader.cc:2608 receiver_capacitance group not in timing or pin group. -1219 LibertyReader.cc:2626 unsupported model axis. -1220 LibertyReader.cc:2654 output_current_%s group not in timing group. -1221 LibertyReader.cc:2696 output current waveform %.2e %.2e not found. -1222 LibertyReader.cc:2717 unsupported model axis. -1223 LibertyReader.cc:2759 vector index_1 and index_2 must have exactly one value. -1224 LibertyReader.cc:2761 vector reference_time not found. -1225 LibertyReader.cc:2794 normalized_driver_waveform variable_2 must be normalized_voltage -1226 LibertyReader.cc:2797 normalized_driver_waveform variable_1 must be input_net_transition -1228 LibertyReader.cc:3019 level_shifter_type must be HL, LH, or HL_LH -1229 LibertyReader.cc:3055 switch_cell_type must be coarse_grain or fine_grain -1230 LibertyReader.cc:3079 scaling_factors %s not found. -1231 LibertyReader.cc:3140 pin name is not a string. -1232 LibertyReader.cc:3157 pin name is not a string. -1233 LibertyReader.cc:3171 pin name is not a string. -1234 LibertyReader.cc:3243 bus %s bus_type not found. -1235 LibertyReader.cc:3295 bus_type %s not found. -1236 LibertyReader.cc:3298 bus_type is not a string. -1237 LibertyReader.cc:3316 bundle %s member not found. -1238 LibertyReader.cc:3339 member is not a string. -1239 LibertyReader.cc:3346 members attribute is missing values. -1240 LibertyReader.cc:3397 unknown port direction. -1241 LibertyReader.cc:3644 max_transition is 0.0. -1242 LibertyReader.cc:3750 pulse_latch unknown pulse type. -1243 LibertyReader.cc:4202 timing group missing related_pin/related_bus_pin. -1244 LibertyReader.cc:4301 unknown timing_type %s. -1245 LibertyReader.cc:4321 unknown timing_sense %s. -1246 LibertyReader.cc:4361 mode value is not a string. -1247 LibertyReader.cc:4364 missing mode value. -1248 LibertyReader.cc:4367 mode name is not a string. -1249 LibertyReader.cc:4370 mode missing values. -1250 LibertyReader.cc:4373 mode missing mode name and value. -1251 LibertyReader.cc:4449 unsupported model axis. -1252 LibertyReader.cc:4476 unsupported model axis. -1253 LibertyReader.cc:4505 unsupported model axis. -1254 LibertyReader.cc:4540 unsupported model axis. -1255 LibertyReader.cc:4556 %s group not in timing group. -1256 LibertyReader.cc:4595 table template %s not found. -1257 LibertyReader.cc:4679 %s is missing values. -1258 LibertyReader.cc:4702 %s is not a list of floats. -1259 LibertyReader.cc:4704 table row has %u columns but axis has %d. -1260 LibertyReader.cc:4714 table has %u rows but axis has %d. -1261 LibertyReader.cc:4765 lut output is not a string. -1262 LibertyReader.cc:4781 cell %s test_cell redefinition. -1263 LibertyReader.cc:4829 mode definition missing name. -1264 LibertyReader.cc:4846 mode value missing name. -1265 LibertyReader.cc:4860 when attribute inside table model. -1266 LibertyReader.cc:4909 %s attribute is not a string. -1267 LibertyReader.cc:4912 %s is not a simple attribute. -1268 LibertyReader.cc:4932 %s attribute is not an integer. -1269 LibertyReader.cc:4935 %s is not a simple attribute. -1270 LibertyReader.cc:4948 %s is not a simple attribute. -1271 LibertyReader.cc:4974 %s value %s is not a float. -1272 LibertyReader.cc:5003 %s missing values. -1273 LibertyReader.cc:5007 %s missing values. -1274 LibertyReader.cc:5010 %s is not a complex attribute. -1275 LibertyReader.cc:5036 %s is not a float. -1276 LibertyReader.cc:5059 %s is missing values. -1277 LibertyReader.cc:5062 %s has more than one string. -1278 LibertyReader.cc:5071 %s is missing values. -1279 LibertyReader.cc:5096 %s attribute is not boolean. -1280 LibertyReader.cc:5099 %s attribute is not boolean. -1281 LibertyReader.cc:5102 %s is not a simple attribute. -1282 LibertyReader.cc:5118 attribute %s value %s not recognized. -1283 LibertyReader.cc:5149 unknown early/late value. -1284 LibertyReader.cc:5369 OCV derate group named %s not found. -1285 LibertyReader.cc:5385 ocv_derate missing name. -1286 LibertyReader.cc:5438 unknown rise/fall. -1287 LibertyReader.cc:5458 unknown derate type. -1288 LibertyReader.cc:5490 unsupported model axis. -1289 LibertyReader.cc:5522 unsupported model axis. -1290 LibertyReader.cc:5554 unsupported model axis. -1291 LibertyReader.cc:5625 unknown pg_type. -1292 LibertyReader.cc:6039 port %s subscript out of range. -1293 LibertyReader.cc:6043 port range %s of non-bus port %s. -1294 LibertyReader.cc:6057 port %s not found. -1295 LibertyReader.cc:6127 port %s not found. -1297 LibertyReader.cc:1466 axis type %s not supported. -1298 LibertyReader.cc:2180 statetable input port %s not found. -1299 LibertyReader.cc:3809 unknown signal_type %s. -1300 LibertyReader.cc:4076 table row must have 3 groups separated by ':'. -1301 LibertyReader.cc:4081 table row has %zu input values but %zu are required. -1302 LibertyReader.cc:4088 table row has %zu current values but %zu are required. -1303 LibertyReader.cc:4095 table row has %zu next values but %zu are required. -1304 LibertyReader.cc:4141 table input value '%s' not recognized. -1305 LibertyReader.cc:4160 table internal value '%s' not recognized. -1340 LibertyWriter.cc:308 %s/%s bundled ports not supported. -1341 LibertyWriter.cc:456 %s/%s/%s timing model not supported. -1342 LibertyWriter.cc:476 3 axis table models not supported. -1343 LibertyWriter.cc:625 %s/%s/%s timing arc type %s not supported. -1350 LumpedCapDelayCalc.cc:138 gate delay input variable is NaN -1355 MakeTimingModel.cc:227 clock %s pin %s is inside model block. -1360 Vcd.cc:172 Unknown variable %s ID %s -1370 PathEnum.cc:478 path diversion missing edge. -1398 VerilogReader.cc:1860 %s is not a verilog module. -1399 VerilogReader.cc:1865 %s is not a verilog module. -1400 PathVertex.cc:236 missing arrivals. -1401 PathVertex.cc:250 missing arrivals. -1402 PathVertex.cc:279 missing requireds. -1422 PathVertexRep.cc:153 missing arrivals. -1450 ReadVcdActivities.cc:107 VCD max time is zero. -1451 ReadVcdActivities.cc:174 problem parsing bus %s. -1452 ReadVcdActivities.cc:250 clock %s vcd period %s differs from SDC clock period %s -1521 Sim.cc:511 propagated logic value %c differs from constraint value of %c on pin %s. -1525 SpefParse.yy:805 %d is not positive. -1526 SpefParse.yy:814 %.4f is not positive. -1527 SpefParse.yy:820 %.4f is not positive. -1550 Sta.cc:2000 '%s' is not a valid start point. -1551 Sta.cc:2073 '%s' is not a valid endpoint. -1552 Sta.cc:2076 '%s' is not a valid endpoint. -1553 Sta.cc:2393 maximum corner count exceeded -1554 Sta.cc:1997 '%s' is not a valid start point. -1570 Sta.cc:3413 No network has been linked. -1574 Search.i:1026 POCV support requires compilation with SSTA=1. -1575 Search.i:465 unknown report path field %s -1576 Search.i:477 unknown report path field %s -1602 WriteSpice.cc:458 Liberty pg_port %s/%s missing voltage_name attribute, -1603 WriteSpice.cc:428 %s pg_port %s not found, -1604 WriteSpice.cc:1019 no register/latch found for path from %s to %s, -1605 WriteSpice.cc:241 The subkct file %s is missing definitions for %s -1606 WriteSpice.cc:270 subckt %s port %s has no corresponding liberty port, pg_port and is not power or ground. -1640 SpefReader.cc:157 illegal bus delimiters. -1641 SpefReader.cc:241 unknown units %s. -1642 SpefReader.cc:254 unknown units %s. -1643 SpefReader.cc:267 unknown units %s. -1644 SpefReader.cc:282 unknown units %s. -1645 SpefReader.cc:303 no name map entry for %d. -1646 SpefReader.cc:322 unknown port direction %s. -1647 SpefReader.cc:349 pin %s not found. -1648 SpefReader.cc:352 instance %s not found. -1650 SpefReader.cc:372 net %s not found. -1651 SpefReader.cc:486 %s not connected to net %s. -1652 SpefReader.cc:492 pin %s not found. -1653 SpefReader.cc:506 %s not connected to net %s. -1654 SpefReader.cc:512 node %s not a pin or net:number -1655 SpefReader.cc:524 %s not connected to net %s. -1656 SpefReader.cc:528 pin %s not found. -1657 SpefReader.cc:645 %s. -1658 SpefReader.cc:61 Delay calculator %s does not support reduction. -1700 CcsCeffDelayCalc.cc:102 VDD not defined in library %s -1701 CcsCeffDelayCalc.cc:273 unsupported ccs region count. -1720 PrimaDelayCalc.cc:229 VDD not defined in library %s -1751 ArcDcalcWaveforms.cc:56 VDD not defined in library %s -1752 PrimaDelayCalc.cc:765 G matrix is singular. -1903 WriteSpice.tcl:145 Cannot write $spice_dir. -1904 WriteSpice.tcl:148 No -spice_filename specified. -1905 WriteSpice.tcl:154 -lib_subckt_file $lib_subckt_file is not readable. -1906 WriteSpice.tcl:157 No -lib_subckt_file specified. -1907 WriteSpice.tcl:163 -model_file $model_file is not readable. -1908 WriteSpice.tcl:166 No -model_file specified. -1909 WriteSpice.tcl:172 No -power specified. -1910 WriteSpice.tcl:111 Unknown circuit simulator -1913 WriteSpice.tcl:244 Cannot write $plot_dir. -1914 WriteSpice.tcl:247 No -plot_basename specified. -1915 WriteSpice.tcl:178 No -ground specified. -1920 WriteSpice.tcl:36 Directory $spice_dir not found. -1921 WriteSpice.tcl:39 $spice_dir is not a directory. -1922 WriteSpice.tcl:42 Cannot write in $spice_dir. -1923 WriteSpice.tcl:45 No -spice_directory specified. -1924 WriteSpice.tcl:51 -lib_subckt_file $lib_subckt_file is not readable. -1925 WriteSpice.tcl:54 No -lib_subckt_file specified. -1926 WriteSpice.tcl:60 -model_file $model_file is not readable. -1927 WriteSpice.tcl:63 No -model_file specified. -1928 WriteSpice.tcl:69 No -power specified. -1929 WriteSpice.tcl:75 No -ground specified. -1930 WriteSpice.tcl:81 No -path_args specified. -1931 WriteSpice.tcl:86 No paths found for -path_args $path_args. -1932 WriteSpice.tcl:139 Missing -gates argument. -1933 WriteSpice.tcl:212 Missing -gates argument. -2100 ArcDelayCalc.cc:86 no timing arc for %s input/driver pins. -2101 ArcDelayCalc.cc:91 %s not a valid rise/fall. -2102 ArcDelayCalc.cc:94 Pin %s/%s not found. -2103 ArcDelayCalc.cc:97 %s not a valid rise/fall. -2104 ArcDelayCalc.cc:100 Pin %s/%s not found. -2105 ArcDelayCalc.cc:103 Instance %s not found. -2120 Network.i:255 unknown namespace -2121 Sdc.i:104 unknown analysis type -2122 Sdc.i:227 unknown wire load mode -2140 StaTclTypes.i:424 Delay calc arg requires 5 or 6 args. -2141 Sta.cc:3417 No liberty libraries found. -2200 Crpr.cc:62 missing prev paths -2201 Crpr.cc:73 missing prev paths diff --git a/etc/FindMessages.tcl b/etc/FindMessages.tcl index a844de79..ad8fbdc2 100755 --- a/etc/FindMessages.tcl +++ b/etc/FindMessages.tcl @@ -29,8 +29,11 @@ exec tclsh $0 ${1+"$@"} # Find warning/error message IDs and detect collisions. # Usage: FindMessages.tcl > doc/messages.txt +set has_error 0 + proc scan_file { file warn_regexp } { global msgs + global has_error if { [file exists $file] } { set in_stream [open $file r] @@ -46,7 +49,8 @@ proc scan_file { file warn_regexp } { } close $in_stream } else { - puts "Warning: file $file not found." + puts stderr "Warning: Source file $file not found during message scanning" + set has_error 1 } } @@ -73,13 +77,15 @@ proc scan_files {files warn_regexp } { proc check_msgs { } { global msgs + global has_error set msgs [lsort -index 0 -integer $msgs] set prev_id -1 foreach msg $msgs { set msg_id [lindex $msg 0] if { $msg_id == $prev_id } { - puts "Warning: $msg_id duplicated" + puts stderr "Warning: Message id $msg_id duplicated" + set has_error 1 } set prev_id $msg_id } @@ -99,3 +105,7 @@ scan_files $files_c $warn_regexp_c scan_files $files_tcl $warn_regexp_tcl check_msgs report_msgs + +if {$has_error} { + exit 1 +} diff --git a/parasitics/SpefReader.cc b/parasitics/SpefReader.cc index 049928b1..17d156b9 100644 --- a/parasitics/SpefReader.cc +++ b/parasitics/SpefReader.cc @@ -624,7 +624,7 @@ SpefScanner::SpefScanner(std::istream *stream, void SpefScanner::error(const char *msg) { - report_->fileError(1866, filename_.c_str(), lineno(), "%s", msg); + report_->fileError(1867, filename_.c_str(), lineno(), "%s", msg); } } // namespace diff --git a/power/Power.tcl b/power/Power.tcl index dca43217..feebc7c1 100644 --- a/power/Power.tcl +++ b/power/Power.tcl @@ -266,7 +266,7 @@ proc set_power_activity { args } { check_positive_float "density" $density set density [expr $density / [time_ui_sta 1.0]] if { [info exists keys(-clock)] } { - sta_warn 302 "-clock ignored for -density" + sta_warn 308 "-clock ignored for -density" } } set duty 0.5 @@ -274,7 +274,7 @@ proc set_power_activity { args } { set duty $keys(-duty) check_float "duty" $duty if { $duty < 0.0 || $duty > 1.0 } {i - sta_error 302 "duty should be 0.0 to 1.0" + sta_error 309 "duty should be 0.0 to 1.0" } } diff --git a/power/SaifParse.yy b/power/SaifParse.yy index 15cfd08b..03076627 100644 --- a/power/SaifParse.yy +++ b/power/SaifParse.yy @@ -42,7 +42,7 @@ void sta::SaifParse::error(const location_type &loc, const string &msg) { - reader->report()->fileError(164,reader->filename(),loc.begin.line,"%s",msg.c_str()); + reader->report()->fileError(169,reader->filename(),loc.begin.line,"%s",msg.c_str()); } %} diff --git a/power/SaifReader.cc b/power/SaifReader.cc index 629e6008..2e717799 100644 --- a/power/SaifReader.cc +++ b/power/SaifReader.cc @@ -222,7 +222,7 @@ SaifScanner::SaifScanner(std::istream *stream, void SaifScanner::error(const char *msg) { - report_->fileError(1866, filename_.c_str(), lineno(), "%s", msg); + report_->fileError(1868, filename_.c_str(), lineno(), "%s", msg); } } // namespace diff --git a/sdf/SdfReader.cc b/sdf/SdfReader.cc index 963db575..d3f8a6dc 100644 --- a/sdf/SdfReader.cc +++ b/sdf/SdfReader.cc @@ -1100,7 +1100,7 @@ SdfScanner::SdfScanner(std::istream *stream, void SdfScanner::error(const char *msg) { - report_->fileError(1866, filename_.c_str(), lineno(), "%s", msg); + report_->fileError(1869, filename_.c_str(), lineno(), "%s", msg); } } // namespace diff --git a/search/Search.tcl b/search/Search.tcl index 1e960ad6..4a9aefb5 100644 --- a/search/Search.tcl +++ b/search/Search.tcl @@ -934,7 +934,7 @@ proc parse_report_path_options { cmd args_var default_format } elseif { [string match "src*" $field] } { set report_src_attr 1 } else { - sta_warn 166 "unknown field $field." + sta_warn 168 "unknown field $field." } } } diff --git a/search/Sta.cc b/search/Sta.cc index 35e2e644..d070df1b 100644 --- a/search/Sta.cc +++ b/search/Sta.cc @@ -3451,7 +3451,7 @@ Network * Sta::ensureLibLinked() { if (network_ == nullptr || !network_->isLinked()) - report_->error(1570, "No network has been linked."); + report_->error(1571, "No network has been linked."); // OpenROAD db is inherently linked but may not have associated // liberty files so check for them here. if (network_->defaultLibertyLibrary() == nullptr) diff --git a/verilog/VerilogReader.cc b/verilog/VerilogReader.cc index dc80c1f5..3baea0e5 100644 --- a/verilog/VerilogReader.cc +++ b/verilog/VerilogReader.cc @@ -2263,7 +2263,7 @@ VerilogScanner::VerilogScanner(std::istream *stream, void VerilogScanner::error(const char *msg) { - report_->fileError(1866, filename_, lineno(), "%s", msg); + report_->fileError(1870, filename_, lineno(), "%s", msg); } } // namespace