相关阅读
SDC命令详解
https://blog.csdn.net/weixin_45791458/category_12931432.html?spm=1001.2014.3001.5482
quit、exit和return命令用于控制Shell的运行状态(其实它并不是一个SDC命令,归为此类只是为了方便管理),其中exit和return是标准Tcl命令,而quit则是exit或exit 0命令的别名。
本文针对Design Compiler,但该命令同样存在于PrimeTime、IC Compiler等工具中,它们大致相同,略有差别。
exit命令
exit命令用于退出当前Shell并返回一个退出码,默认为0(表示正常退出),也可以自行指定,如下所示。
dcnxt_shell> exit # 等价于exit 0
Memory usagefor this session 71 Mbytes.
Memory usagefor this session including child processes 71 Mbytes.
CPU usage for this session 2 seconds ( 0.00hours ).
Elapsed time for this session 297 seconds( 0.08 hours ).
$> echo $status
0
quit命令
quit命令相当于exit 0命令,即正常退出,是拓展Tcl命令。而quit!是qui命令的替代命令,当在GUI界面启动的情况下使用exit命令或quit命令时,会弹出一个退出对话框,如图1所示。为了避免用户必须处理这个退出对话框,用户可以改为调用quit!命令,该命令可以直接退出Shell,而不会弹出退出对话框。

图1 退出提示框
return命令
return命令可用于从proc返回,也可用于从source命令返回,如下所示。
proc abs {x} {
if {$x >= 0} {
return $x
} else {
return [expr {-$x}]
}
puts "这一句不会执行"
}
puts [abs 10]
puts [abs -5]
10
5
# test.tcl
puts "开始执行 test.tcl"
set a 100
return "这是从 source 文件返回的结果"
puts "这一句不会执行"
# 主脚本
set result [source test.tcl]
puts "source 返回值是:$result"
开始执行 test.tcl
source 返回值是:这是从 source 文件返回的结果
如果是shell直接source了脚本(如dcnxt_shell -f ***.tcl),脚本中存在return命令,则会停止后续脚本执行,并返回到shell命令行界面,如下所示。
# test_return.tcl
echo "before return"
return
echo "after return"
dcnxt_shell> source test_return.tcl
before return
dcnxt_shell>