SDC命令详解:使用set_app_var命令进行设置
相关阅读
SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm=1001.2014.3001.5482
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选项,可以将应用变量的值设置为其默认值。
Multicorner-Multimode支持
该命令对所有场景生效。
关于场景的更多介绍,可以参考下面的博客。
Design Compiler:多工艺角和多工作模式(Multicorner-Multimode, MCMM)https://blog.csdn.net/weixin_45791458/article/details/149578771?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522e3267dcc7cc26380435f53994dc8b9b8%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=e3267dcc7cc26380435f53994dc8b9b8&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-149578771-null-null.nonecase&utm_term=MCMM&spm=1018.2226.3001.4450
写在最后
建议使用大写字母命名用户自定义变量,这样更加直观,可以将其与应用变量显著区分。需要注意的是,不管是应用变量还是用户自定义变量,它们都无法保存在文件中,即使是.ddc格式,所以每次启动Design Compiler时,应用变量将还原为默认值,需要重新设置应用变量以避免出现错误。
可以使用write_app_var命令将当前设计中的应用变量设置命令输出为脚本文件 ,具体如下博客所示。SDC命令详解:使用write_app_var命令进行输出https://chenzhang.blog.csdn.net/article/details/157967907
关于应用变量的命令还有以下几个,感兴趣的读者可以阅读。
SDC命令详解:使用printvar命令进行报告https://chenzhang.blog.csdn.net/article/details/147404464SDC命令详解:使用report_app_var命令进行报告
https://chenzhang.blog.csdn.net/article/details/148856149SDC命令详解:使用get_app_var命令进行查询
https://chenzhang.blog.csdn.net/article/details/148867734
