Synopsys:消息管理
相关阅读
Synopsyshttps://blog.csdn.net/weixin_45791458/category_12812219.html?spm=1001.2014.3001.5482
在EDA工具执行命令时,可能会出现一些消息提示,下面展示了一条在Design Compiler的拓扑模式下使用不支持的命令而产生的错误。
Error: Command set_wire_load_mode is not supported in DC Topographical mode. (OPT-1406)
根据消息的严重性等级,从轻到重可以分为信息(Info)、警告(Warning)、错误(Error)、严重错误(Severe Error)和致命错误(Fatal),可以使用一些命令对消息进行管理,本文就将介绍这些命令。
get_message_ids
string get_message_ids [-type severity] [pattern]
get_message_ids命令可以根据模式串获得一条消息的ID, 模式串中可包含通配符*与?,并可以指定消息类型。
下面展示了该命令的使用方式。
dc_shell> get_message_ids -type Error *1406
FPHSM-1406 OPT-1406
set_message_info
set_message_info -id message_id -limit max_limit | -stop_on | -stop_off
set_message_info命令用于对指定消息设置上限(如果消息的严重性等级为Severe Error或Fatal则无法设置上限也无法被抑制),出现次数超过上限后再次出现的消息将被抑制(需要注意的是,即使消息被抑制,依旧会将其统计在出现次数中;将上限设置为0表示无限制)。该命令也可以将消息的严重性等级设置为Severe Error,如果该消息是在脚本执行中出现的,脚本将会立刻终止执行(此时不管sh_continue_on_error变量的设置如何)。
下面展示了该命令的使用方式。
dc_shell-topo> set_message_info -id OPT-1406 -limit 2
dc_shell-topo> set_wire_load_mode test
Error: Command set_wire_load_mode is not supported in DC Topographical mode. (OPT-1406)
dc_shell-topo> set_wire_load_mode test
Error: Command set_wire_load_mode is not supported in DC Topographical mode. (OPT-1406)
dc_shell-topo> set_wire_load_mode test
Note - message 'OPT-1406' limit (2) exceeded. Remainder will be suppressed.
dc_shell-topo> set_wire_load_mode test
dc_shell-topo> set_message_info -id OPT-1406 -stop_on
dc_shell-topo> set_wire_load_mode test
Severe Error: Command set_wire_load_mode is not supported in DC Topographical mode. (OPT-1406)
Error: A Severe error has occurred. To ensure that the script does not continue, the value of sh_continue_on_errorhas been overridden to be false. Your script is being interrupted.To see the Tcl call stack for the part of your script which generatedthe Severe error use the error_info command. (CMD-103)
Error: Severe error encounteredUse error_info for more info. (CMD-013)
suppress_message
suppress_messagemessage_list
suppress_message命令可以无条件抑制严重性等级为Info或Warning的消息,可以使用unsuppress_message命令取消无条件抑制(同一条消息可以被多次抑制,因此需要适应相应次数的unsuppress_message命令)。
下面展示了该命令的使用方式。
dc_shell-topo> get_cells test
Warning: Can't find object 'test' in design 'SNPS_CLOCK_GATE_HIGH_simple_register'. (UID-95)
dc_shell-topo> suppress_message UID-95
dc_shell-topo> get_cells test
dc_shell-topo> suppress_message UID-95
dc_shell-topo> unsuppress_message UID-95
dc_shell-topo> get_cells test
dc_shell-topo> unsuppress_message UID-95
dc_shell-topo> get_cells test
Warning: Can't find object 'test' in design 'SNPS_CLOCK_GATE_HIGH_simple_register'. (UID-95)
get_message_info
get_message_info [-error_count | -warning_count | -info_count| -limit l_id | -occurrences o_id | -suppressed s_id | -id i_id]
get_message_info命令可以显示所有严重性等级为Info、Warning或Error的消息的出现次数(不包括被抑制的)。该命令也可以显示某条消息的上限(由set_message_info命令设置)、出现次数(包括被抑制的)、被抑制次数或总体详细信息。
下面展示了该命令的使用方式。
dc_shell-topo> set_message_info -id OPT-1406 -limit 2
dc_shell-topo> set_wire_load_mode test
Error: Command set_wire_load_mode is not supported in DC Topographical mode. (OPT-1406)
dc_shell-topo> set_wire_load_mode test
Error: Command set_wire_load_mode is not supported in DC Topographical mode. (OPT-1406)
dc_shell-topo> set_wire_load_mode test
Note - message 'OPT-1406' limit (2) exceeded. Remainder will be suppressed.
dc_shell-topo> get_cells test
Warning: Can't find object 'test' in design 'SNPS_CLOCK_GATE_HIGH_simple_register'. (UID-95)
dc_shell-topo> get_message_info -error_count
2
dc_shell-topo> get_message_info -warning_count
1
dc_shell-topo> get_message_info -id OPT-1406
id OPT-1406 severity Error limit 2 occurrences 3 suppressed 1 message {Command %s is not supported in DC Topographical mode.}
print_message_info
print_message_info [-ids id_list] [-summary]
print_message_info命令可以显示所有严重性等级为Info、Warning或Error的消息的上限、出现次数(包括被抑制的)和被抑制次数,也可以指定消息(可以是模式串),并在最后显示消息汇总摘要(严重性等级为Info、Warning或Error的消息的出现次数(不包括被抑制的))。
下面展示了该命令的使用方式。
dc_shell-topo> set_message_info -id OPT-1406 -limit 2
dc_shell-topo> set_wire_load_mode test
Error: Command set_wire_load_mode is not supported in DC Topographical mode. (OPT-1406)
dc_shell-topo> set_wire_load_mode test
Error: Command set_wire_load_mode is not supported in DC Topographical mode. (OPT-1406)
dc_shell-topo> set_wire_load_mode test
Note - message 'OPT-1406' limit (2) exceeded. Remainder will be suppressed.
dc_shell-topo> get_cells test
Warning: Can't find object 'test' in design 'SNPS_CLOCK_GATE_HIGH_simple_register'. (UID-95)
dc_shell-topo> print_message_info Id Severity Limit Occurrences Suppressed
--------------------------------------------------------------------
OPT-1406 Error 2 3 1
UID-95 Warning 0 1 0
ZRT-105 Warning 10 0 0Diagnostics summary: 2 errors, 1 warning
dc_shell-topo> print_message_info -summary Diagnostics summary: 2 errors, 1 warning
dc_shell-topo> print_message_info -id OPT-*Id Severity Limit Occurrences Suppressed
--------------------------------------------------------------------
OPT-1406 Error 2 3 1
PrimeTime中引入的变量
PrimeTime为了进行更好的消息管理,增加了三个额外的变量进行控制。
sh_limited_messages
该变量默认包含了一个消息列表,每条消息在每次执行read_parasitics、report_annotated_parasitics -check、read_sdf或update_timing命令(显示或隐式)时拥有sh_message_limit变量指定的上限,需要注意的是,该上限在每次调用命令时会刷新。
此变量的优先级低于set_message_info命令,同时受到sh_global_per_message_limit变量的影响。
DES-002 RC-002 RC-004 RC-005 RC-006 RC-009 RC-011 RC-012 RC-013
RC-104 RC-201 RC-202 RC-203 RC-204 SLG-214 SLG-216 SLG-217 SLG-222 SLG-227
SLG-228 SLG-229 PTE-014 PTE-060 PTE-070 PYSR-001 PYSR-002 PYSR-003
PYSR-004 PYSR-005 PTE-114 SDF-036 SDF-046 UITE-494 UITE-474 LNK-039 LNK-038
LNK-043 LNK-044 UPF-757 HS-015 HS-023 HS-031 HS-037 PTE-101 PTIO-5 UITE-504
UITE-519 UITE-529 UITE-581 DES-028 DES-023 DES-024 ENV-003 XTALK-307
XTALK-308 PARA-001 PARA-003 PARA-004 PARA-005 PARA-006 PARA-007 PARA-010
PARA-011 PARA-020 PARA-040 PARA-041 PARA-043 PARA-044 PARA-045 PARA-046
PARA-047 PARA-050 PARA-051 PARA-052 PARA-053 PARA-060 PARA-061 PARA-063
PARA-064 PARA-065 PARA-066 PARA-067 PARA-068 PARA-071 PARA-072 PARA-073
PARA-074 PARA-075 PARA-078 PARA-079 PARA-081 PARA-082 PARA-083 PARA-084
PARA-085 PARA-086 PARA-087 PARA-088 PARA-089 PARA-090 PARA-092 PARA-093
PARA-094 PARA-095 PARA-096 PARA-098 PARA-100 PARA-104 PARA-106 PARA-007
PARA-110 PARA-111 PARA-112 PARA-113 PARA-114 PARA-115 PARA-118 PARA-119
PARA-120 PARA-121 PARA-122 PARA-123 PARA-124 PARA-140 PARA-141 PARA-142
PARA-143 PARA-144 PARA-145 PARA-146 PARA-159 PARA-162 PARA-183 PARA-184
PARA-185 SPFP-001 SPFP-002 SPFP-010 SPFP-011 SPFP-012 SPFP-013 SPFP-014
SPFP-015 SPFP-100 SPFP-101 SPFP-102 SPFP-103 SPFP-104 SPFP-105 SPFP-106
SPFP-107 SPFP-108 SPFP-109 SPFP-110 SPFP-111 SPFP-112 SPFP-113 SPFP-114
SPFP-115 SPFP-116 SPFP-118 SPFP-119 SPFP-120 SPFP-121 SPFP-122 SPFP-123
NED-075
sh_message_limit
该变量配合sh_limited_messages使用,默认值为100。
sh_global_per_message_limit
该变量设置了所有消息的全局上限,默认值为10000。此变量的优先级低于set_message_info命令,同时受到sh_limited_messages变量的影响。