相关阅读
Synopsys的EDA工具中存在一类变量,它们能控制工具的行为,被称为应用变量(application variable),与之对应的是用户自定义变量(user-defined variable)。
以Design Compiler为例,使用标准Tcl命令set即可设置应用变量,包括target_library、search_path等常见应用变量,但更建议使用拓展Tcl命令set_app_var设置应用变量,因为它更加安全和强大(其实它并不是一个SDC命令,归为此类只是为了方便管理)。
本文针对Design Compiler,但该命令同样存在于PrimeTime、IC Compiler等工具中,它们大致相同,略有差别。set_app_var命令的BNF范式(有关BNF范式,可以参考以往文章)为:
set_app_var
var
value
-default
//注:该命令的value参数一定要放在var参数后
注意事项
当应用变量是只读的或者设置的值是非法的时,设置会失败并返回失败原因。
与set命令的区别
1、确保应用变量名正确
假设用户想设置应用变量target_library为fast.db,但由于疏忽将变量名target_library错误地拼写为targett_library:
如果使用set命令则不会有任何提示,Design Compiler会认为设置了一个名为targett_library的用户自定义变量,此时进行综合会提示找不到target_library。
如果使用set_app_var命令则会在定义用户自定义变量前提示"Error: Variable 'targett_library' is not an application variable. Using Tcl global variable. ",用户即可据此纠正错误;如果将应用变量sh_allow_tcl_with_set_app_var设置为false(默认值为true),则会提示"Error: can't set 'targett_library': no such variable Use error_info for more info. ",并且设置会失败(更加保守)。
2、可以还原应用变量默认值
在使用set_app_var命令时添加-default选项,可以将应用变量的值设置为其默认值。
写在最后
建议使用大写字母命名用户自定义变量,这样更加直观,可以将其与应用变量显著区分。需要注意的是,不管是应用变量还是用户自定义变量,它们都无法保存在文件中,即使是.ddc格式,所以每次启动Design Compiler时,应用变量将还原为默认值,需要重新设置应用变量以避免出现错误。