|

楼主 |
发表于 2011-12-15 21:53:14
|
显示全部楼层
本帖最后由 haier822 于 2012-1-13 16:06 编辑
非常感谢你的指导!
还是我对PT的认识还不够,做完DC,就将DC中的脚本改动了一些作为PT的脚本,大部分感觉是一样的,特别是link_path这里,没有追究它与DC link_lib的区别。通过这个问题我对PT的认识更加清楚一些。特别是PT分析中存在三种分析模式:single, bc_wc, OCV。为了节省时间PT可以进行bc_wc或者OCV的分析,同时分析出min delay 和max delay,前提要告诉PT分析min delay和max delay指定对应的lib(best-case lib 和worst-case lib)。之前我的问题是没有为PT分析min delay和max delay指明相应的lib,虽然在脚本中也写到:set_operating_conditions -min l180hv_bc -min_library l180hv_bc -max l180hv_wc -max_library l180hv_wc。但是link_path的对象不对,只能是worst-case lib,还有缺少了set_min_delay,该命令主要是在两种库之间建立max/min的关系,为后面PT同时进行min delay和max delay分析做好库的准备。对于PT的delay分析过程,PT的手册中说到:PrimeTime first checks the library cell in the maximum library, and then looks in the minimum library to see if a match exists. If a library cell with the same name, the same pins, and the same timing arcs exists in the minimum library, PrimeTime uses that timing information for minimum analysis.
现在正确的脚本如下:
set search_path [list /data1/lib_all/l180hv_lib]
set link_path [list {*} l180hv_wc.db]
#-------------------------------------------------------
#read files
set active_design digital
read_verilog ./syn_netlist/$active_design.v
current_design $active_design
#--------------------------------------------------------
#environment conditions
set_min_library l180hv_wc.db -min_version l180hv_bc.db
set_operating_conditions -min l180hv_bc -min_library l180hv_bc -max l180hv_wc -max_library l180hv_wc
set_wire_load_model -name "wl50" -library l180hv_wc -max
set_wire_load_model -name "wl10" -library l180hv_wc -min
set_wire_load_mode top
------
------
这样PT分析的结果就和DC一致了。
另外PT根据上面的脚本分配给set_operating_conditions 分析模式为BC_WC(user guide中提到在set_operating_conditions 用到-min,-max,那么默认模式就是BC-WC),但是它的推荐模式为OCV。因为我试过加上-analysis_type bc_wc,PT会报出warning,BC_WC模式将在未来的版本中取消。原句:Warning: The BC_WC ananlysis mode will be phased out in future releases. (PT-009)
原因是BC_WC分析不够精确,没有覆盖最悲观的情况。
后面还是要深入的研读手册。
自己做个小结,也让其他同仁从中避免此种问题。
补充内容 (2020-7-29 12:21):
只能是worst-case lib,还有缺少了set_min_delay---这句有输入手误,set_min_delay 改为set_min_library |
|