SDC命令详解:使用source命令读取脚本
相关阅读
SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm=1001.2014.3001.5482
目录
指定回显命令
指定回显命令返回值
指定发生错误时继续执行
sh_continue_on_error(默认值为true)
sh_script_stop_severity(默认值为none)
指定文件名
其他相关变量
sh_command_abbrev_mode(默认值为Anywhere)
sh_command_abbrev_options(默认值为true)
source命令用于读取一个Tcl脚本,并在当前shell环境执行(其实它并不是一个SDC命令,归为此类只是为了方便管理),该命令相对标准Tcl命令source添加了一些功能增强选项。
本文针对Design Compiler,但该命令同样存在于PrimeTime、IC Compiler等工具中,它们大致相同,略有差别。source命令的BNF范式(有关BNF范式,可以参考以往文章)为:
source [-echo] [-verbose] [-continue_on_error] file //注:该命令的选项和参数顺序任意指定回显命令
默认情况下,Design Compiler中的source命令与标准Tcl命令一样,会回显其返回值,即Tcl脚本中最后一条执行命令的返回值(如有return语句,则以该语句为准)。如果指定了-echo选项,则在执行Tcl脚本中的命令时,会将其回显,如下所示。
dcnxt_shell> source test.tcl 1 dcnxt_shell> source test.tcl -echo set a 1 # THIS IS A COMMENT set b 1 1 dcnxt_shell>需要的是:对于Tcl脚本中的注释(#),如果指定了-echo选项,也会回显;对于命令中的变量置换($)、命令置换([])等操作,如果指定了-echo选项,会保持其置换前的形式;回显是按实际执行情况进行的,即如果Tcl脚本提前终止,则后续命令不会被回显。
指定回显命令返回值
-verbose选项指定在Tcl脚本中的命令执行后,回显其返回值,如下所示。-verbose选项可以配合-echo选项一起使用。
dcnxt_shell> source test.tcl -verbose 1 1 1 dcnxt_shell> source test.tcl -verbose -echo set a 1 1 # THIS IS A COMMENT set b 1 1 1 dcnxt_shell>使用dc(nxt)_shell -f <file>的方式执行Tcl脚本时,相当于启动dc(nxt)_shell后执行source -echo -verbose <file>命令。
指定发生错误时继续执行
-sh_continue_on_error选项用于指定在命令执行出现语法错误(如CMD-005和CMD-010错误)和其他语义错误(实际上,如果sh_script_stop_severity变量为none,非致命的语义错误不会导致Tcl脚本执行终止)后继续执行。
sh_continue_on_error(默认值为true)
该变量用于指定在命令执行出现语法错误和其他语义错误(实际上,即使sh_continue_on_error变量为false,如果sh_script_stop_severity变量为none,非致命的语义错误不会导致Tcl脚本执行终止)后继续执行。
建议使用source命令的-continue_on_error选项,而不是使用此变量,因为该选项只适用于单个Tcl脚本,而不是整个会话。
sh_script_stop_severity(默认值为none)
该变量只在sh_continue_on_error设置为false时生效。当其设置为E时,如果出现了任何错误,终止Tcl脚本执行;当其设置为W时,如果出现了任何警告或错误,终止Tcl脚本执行。
指定文件名
文件名可以是完全展开的文件名,也可以以波浪号~(家目录)开头。在正常情况下,仅根据你输入的内容查找文件。但是,如果系统变量sh_source_uses_search_path设置为true,则会根据search_path变量设置的路径来查找文件。source命令支持多种文件格式,可以是简单的ASCII脚本文件、使用gzip压缩后的ASCII脚本文件。
关于search_path变量的更多信息,可以参考下面的博客。
Design Compiler:搜索路径search_path变量详解https://blog.csdn.net/weixin_45791458/article/details/143085356?ops_request_misc=elastic_search_misc&request_id=cfaa08ac2e40826b6e046b794c56702f&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~ElasticSearch~search_v2-1-143085356-null-null.nonecase&utm_term=search_path&spm=1018.2226.3001.4450
其他相关变量
sh_command_abbrev_mode(默认值为Anywhere)
该变量用于设置命令名简写模式,作为一种便利功能。如read_file命令可以简写为read_f,只要其代表唯一的命令名即可。
脚本文件中不应使用任何命令或选项的缩写形式,因为这些缩写在后续版本中可能会发生变化,从而导致脚本不兼容或出错。
尽管该变量的默认值是Anywhere,但建议在配置文件中将其设置为Command-Line-Only。同时,也可以将其设置为None,以完全禁用命令缩写功能。
sh_command_abbrev_options(默认值为true)
该变量用于设置选项简写模式,作为一种便利功能。如read_file -format verilog命令可以简写为read_file -f verilog,只要其代表唯一的选项即可。
脚本文件中不应使用任何命令或选项的缩写形式,因为这些缩写在后续版本中可能会发生变化,从而导致脚本不兼容或出错。
尽管该变量的默认值是true,但建议在将其设置为false,以完全禁用选项缩写功能。
