相关阅读
Synopsys的EDA工具中存在一类变量,它们能控制工具的行为,被称为应用变量(application variable),与之对应的是用户自定义变量(user-defined variable)。
get_app_var命令将应用变量的值作为字符串返回(其实它并不是一个SDC命令,归为此类只是为了方便管理)。
本文针对Design Compiler,但该命令同样存在于PrimeTime、IC Compiler等工具中,它们大致相同,略有差别。get_app_var命令的BNF范式(有关BNF范式,可以参考以往文章)为:
get_app_var
var
[-default | -details | -list]
[-only_changed_vars]
//注:该命令的选项和参数顺序任意
注意事项
如果尝试使用get_app_var命令获取一个用户自定义变量的值时,会提示"Error: Variable '***' is not an application variable. Using Tcl global variable. ",用户即可据此纠正错误;如果将应用变量sh_allow_tcl_with_set_app_var设置为false(默认值为true),则会提示"Error: can't read "***": no such variable Use error_info for more info. ",并且获取会失败(更加保守)。
与printvar和report_app_var命令不同的是,get_app_var命令是返回值而不是显示值,这点让其结果可以作为其他命令的参数。
指定应用变量名
var是一个应用变量名或模式串(仅当使用-list选项时),支持在模式串使用通配符,模式串中可以包含*(匹配0至多个字符)和?(匹配1个字符)。
指定获取默认值
-default选项指定返回应用变量的默认值。-default选项、-details选项和-list选项是互斥的,只能使用其中一个。
指定显示详细信息
-details选项指定获取应用变量的详细信息(返回一个键值对列表,如表1所示)。-default选项、-details选项和-list选项是互斥的,只能使用其中一个。
表1 键说明
键 | 说明 |
name | 应用变量名 |
value | 当前值 |
default | 默认值 |
help | 帮助字符串 |
type | 数据类型(string、bool、int、real其中之一) |
constraint | 限制类型(none、list、range其中之一) |
min | 最小值(仅在constraint为range时存在) |
max | 最大值(仅在constraint为range时存在) |
list | 可接受的值列表(仅在constraint为list时存在) |
指定返回应用变量名
如果指定了-list选项,var将被视为模式串,此时get_app_var命令返回满足该模式的应用变量名列表。
指定仅返回已更改的应用变量
当与-list选项一起使用时,-only_changed_vars选项指定只返回已更改的应用变量名。