【SiliconSmart基础篇】了解基本文件及命令(下)

【SiliconSmart基础篇】了解基本文件及命令(下)

点击上面“蓝字”关注我们!

3

set_config_opt命令

set_config_opt命令是SiliconSmart最常见的命令之一,用来设置全局参数、pintype参数等等。这个命令非常好用,出现的频率也非常高。set_config_opt的语法这里不详细罗列,请大家参考UserGuideset_config_opt命令经常用来对某些特殊arccondition进行重置,挑几个常见的应用来介绍一下。

 

-type

这个参数指定后面的option会应用到哪些measurement type上,比如delayslewsetupholdrecoveryremovalmpwibis等等。如果不指定typeoption将用于所有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这条arctiming时,将pinZload指定为0.5pF

 

set_config_opt -cell {DF*} -type {setup hold} glitch_high_threshold 0.8

通配DF*类型的cell,在测量setuphold时,将glitch检查时的glitch_high_threshold设置成80%

 

set_config_opt -type {timing} -from {CP} -to {Q} state_partitions all

测量CP->Qtiming arc时,设置state_partitions=all

 

state_partitions是什么?state_partitions=all又是什么?接下来我们就介绍这个。

4

基于state的测量

我们在做某个cellcharacterization的时候,它的输入inputs往往不止一个,我们将某一条arcinput之外的inputs称为secondary inputs,它的状态会对这条arc的测量产生影响。比如一个两输入的与门,输入pinAB,输出pinZ,在测量A->Zdelay时,B的状态(0或者1)对这条arcdelay会有影响吗?有时是会的。因此,我们需要基于B的状态进行测量,这就是state_partitions

 

state_partitions参数的值有很多,常用的有alloneexplicitnone

 

  • state_partitions=all

Full states,给出所有secondary inputs的状态,每一条arc的测量基于全部secondary inputs states

set_config_opt -type delay -from A state_partitions all

【SiliconSmart基础篇】了解基本文件及命令(下)

【SiliconSmart基础篇】了解基本文件及命令(下)

  • state_partitions=one

仅考虑secondary inputs的一个状态,相应arc的测量也仅做一次。这里要敲个黑板,这个state是工具选择的,换言之是不受用户控制的

set_config_opt -type delay -from A state_partitions one

【SiliconSmart基础篇】了解基本文件及命令(下)

【SiliconSmart基础篇】了解基本文件及命令(下)

到这里,会有人提问题,那不行,我不想被工具控制,工具给定的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里,上面两句话定义了BC的状态分别为01定义state_partitions=explicit后不要忘了指定whens

【SiliconSmart基础篇】了解基本文件及命令(下)

  • state_partitions=none

这个就比较简单了,关闭指定arc的测量。

 

set_config_opt -type delay -from A -to Z state_partitions none

不测量A->Z这条arcdelay

 

set_config_opt state_partitions none

关闭所有arcs的测量。这个设置在某些场合是有用的,比如用户需要自行定义所有的arc;再比如我们在做IBIS characterization的时候就会先disable掉所有的arcIBIS的内容会在以后的推文里详细介绍。

 

  • dontcare_bias

 

前面提到两个方法来指定secondary inputsstate,第一个方法是用state_partitions=explicit来指定,另一个方法就是dontcare_bias

 

还是拿state_partitions=one来举例,工具自动选择了B=0C=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

【SiliconSmart基础篇】了解基本文件及命令(下)

还有一个经常会用到,也是给定pin的状态,但它是一个命令而不是option

 

  • add_fixed_value

 这个命令指定一个input或者IO pin为某个恒定的状态(01Z)。如果我们认为某个pin的状态不会对整个cell产生影响,或者不在意影响,或者我们不希望这个pin在整个characterization过程中翻转,那么就可以使用这个命令将这个pin定死。

 

但要注意一点的是,如果用add_fixed_value指定某个pin为恒定状态,如add_fixed_value C 1,那么pin C就不会再被认为是input,相应的,也就不会测量pin Ccapacitance,也不会测量pin Chidden powerhidden power会在后面的推文介绍)。

【SiliconSmart基础篇】了解基本文件及命令(下)

我们有个微信交流群

可长按右边二维码

加我微信,拉您入群

【SiliconSmart基础篇】了解基本文件及命令(下)

【SiliconSmart基础篇】了解基本文件及命令(下)

【SiliconSmart基础篇】了解基本文件及命令(下)

【SiliconSmart基础篇】了解基本文件及命令(下)

长按二维码关注我们

点一下"在看"再走吧

【SiliconSmart基础篇】了解基本文件及命令(下)