【SiliconSmart基础篇】了解基本文件及命令(下)
点击上面“蓝字”关注我们!
3
set_config_opt命令
set_config_opt命令是SiliconSmart最常见的命令之一,用来设置全局参数、pintype参数等等。这个命令非常好用,出现的频率也非常高。set_config_opt的语法这里不详细罗列,请大家参考UserGuide。set_config_opt命令经常用来对某些特殊arc的condition进行重置,挑几个常见的应用来介绍一下。
-type
这个参数指定后面的option会应用到哪些measurement type上,比如delay,slew,setup,hold,recovery,removal,mpw,ibis等等。如果不指定type,option将用于所有type类型。
-from/-to/-pin
-from指定从一个(或一组)pin开始,-to指定另一个(或另一组)pin结束,-pin用来重置configure.tcl文件里相应pintype里设置的参数。
如:
set_config_opt -type {timing} -from I -to Z -pin Z explicit_points_load {0.5e-12}
测量I->Z这条arc的timing时,将pinZ的load指定为0.5pF。
set_config_opt -cell {DF*} -type {setup hold} glitch_high_threshold 0.8
通配DF*类型的cell,在测量setup,hold时,将glitch检查时的glitch_high_threshold设置成80%。
set_config_opt -type {timing} -from {CP} -to {Q} state_partitions all
测量CP->Q的timing arc时,设置state_partitions=all。
state_partitions是什么?state_partitions=all又是什么?接下来我们就介绍这个。
4
基于state的测量
我们在做某个cell的characterization的时候,它的输入inputs往往不止一个,我们将某一条arc的input之外的inputs称为secondary inputs,它的状态会对这条arc的测量产生影响。比如一个两输入的与门,输入pin是A和B,输出pin是Z,在测量A->Z的delay时,B的状态(0或者1)对这条arc的delay会有影响吗?有时是会的。因此,我们需要基于B的状态进行测量,这就是state_partitions。
state_partitions参数的值有很多,常用的有all,one,explicit,none。
state_partitions=all
Full states,给出所有secondary inputs的状态,每一条arc的测量基于全部secondary inputs states。
set_config_opt -type delay -from A state_partitions all
state_partitions=one
仅考虑secondary inputs的一个状态,相应arc的测量也仅做一次。这里要敲个黑板,这个state是工具选择的,换言之是不受用户控制的。
set_config_opt -type delay -from A state_partitions one
到这里,会有人提问题,那不行,我不想被工具控制,工具给定的state不是我想要的,怎么办?两个方法:一个是用explicit来自定义when_condition,另一个是用dontcare_bias来直接给定状态。先说explicit定义whens。
state_patitions=explicit
explicit开放给用户自行定义state的状态。
set_config_opt -type delay -from A state_partitions explicit
set_config_opt -type delay -from A whens {!B&C}
secondary inputs用布尔表达式定义在whens里,上面两句话定义了B和C的状态分别为0和1。定义state_partitions=explicit后不要忘了指定whens。
state_partitions=none
这个就比较简单了,关闭指定arc的测量。
set_config_opt -type delay -from A -to Z state_partitions none
不测量A->Z这条arc的delay。
set_config_opt state_partitions none
关闭所有arcs的测量。这个设置在某些场合是有用的,比如用户需要自行定义所有的arc;再比如我们在做IBIS characterization的时候就会先disable掉所有的arc。IBIS的内容会在以后的推文里详细介绍。
dontcare_bias
前面提到两个方法来指定secondary inputs的state,第一个方法是用state_partitions=explicit来指定,另一个方法就是dontcare_bias。
还是拿state_partitions=one来举例,工具自动选择了B=0,C=0来测量,假设我们希望指定C=1,用dontcare_bias就能实现了。
set_config_opt -type delay -from A state_partitions one
set_config_opt -type delay -from A -pin C dontcare_bias 1
还有一个经常会用到,也是给定pin的状态,但它是一个命令而不是option。
add_fixed_value
这个命令指定一个input或者IO pin为某个恒定的状态(0,1,Z)。如果我们认为某个pin的状态不会对整个cell产生影响,或者不在意影响,或者我们不希望这个pin在整个characterization过程中翻转,那么就可以使用这个命令将这个pin定死。
但要注意一点的是,如果用add_fixed_value指定某个pin为恒定状态,如add_fixed_value C 1,那么pin C就不会再被认为是input,相应的,也就不会测量pin C的capacitance,也不会测量pin C的hidden power(hidden power会在后面的推文介绍)。
我们有个微信交流群
可长按右边二维码
加我微信,拉您入群
长按二维码关注我们
点一下"在看"再走吧