如题,做dynamic analysis时,不需要switch cell的timing window信息,但是做low power analysis需要做上电分析时switch cell的timing window就是必须的了,本文对switch cell control pin没有timing window (STA CHECK覆盖率为零)的这种现象做分析。
相关文章:
Redhawk: Low Power Analysis
Redhawk: GSC与STA file
Redhawk: create STA file
Redhawk: Dynamic Analysis
Redhawk: 什么是timing window
1.ADS_CELLS_NEED_INPUT_TW
用默认设置去产生STA file,做power analysis后都会发现STA CHECK中switch cell的覆盖率为0,仔细看过getSTA的log,会发现一个WARNING。
WARNING(SHL-0623):Timing windows for non-clock input pins will not be generated to save runtime since they are not need.If your design contains power switches AND you will be running RedHowk to analyze their behavior , RedHawk needs timing windows for their control pins.If this is the case,please kill the run and refer to the user manual for ADS_CELLS_NEED_INPUT_TW variable.
在user guide中这个变量的用法如下:
ADS_CELLS_NEED_INPUT_TW {null/ref_cell ref_cell2/ALL}
指定需要输出timing window的cell list,默认是null,也就是说除了clocks pin以外其他input pin不产生timing window;让所有input pin都产生timing window,就用"ALL";也可以指定cell ref name,switch cell就需要用这个选项。
在run ate的文件中加入:
set ADS_CELLS_NEED_INPUT_TW {SW_REF_NAME}
重新产生STA file,设置这个变量前后的对比如下示例:
可以看出SLEEP pin (control pin) 在加了这个变量后有timing window信息了(T SLEEP 0 13.246 13.338 14.192 296.152)。
2.set_case_analysis
使用了上述命令就能产生switch cell control pin的timing window信息了吗?未必,当sdc中对switch cell的控制信号加了set_case_analysis之后,STA file中switch cell的control pin就被设置为恒0或恒1。如下图示例,SLEEP pin被设成了恒0(C SLEEP 0)。
所以在,产生STA file做low power analysis时需要检查sdc中有没有把switch cell的控制信号用set_case_analysis设置成0/1,有的话注释掉再产生STA file。