icc和pt中operating condition的设置
set search_path "$ss_lib_path $ff_lib_path"
set target_library "ss.db"
set link_library "* $target_library"
set_operating_condition -max ss_condition -max_lib ss \
-min ff_condition -min_lib ff \
-analysis_type ocv
set_min_library ss.db -min_version ff.db
问题:
1. 这种设置方法没有在link_library中加入ff.db,工具在ocv分析setup时,data lanch path会用ss的计算,data capture path会用ff计算,但这实在太悲观了吧?
2. 我理解的ocv应该是用timing_derate设置下,且计算setup时,都用ss.db库。但是data_capture path会乘上这个timing_derate(如0.8),但是data_lanch path不变(也就是timing derate设置了1)。
3. 如果要做到2中的这点,并且工具也要能够分析类似的hold问题,脚本里面对库是否还可以用上述的设置?
ocv了,就不要-min/-max了,这是矛盾的,
-min/-max仅用于bc-wc模式,
那如果希望使用ocv进行设计的话脚本应该如何写才行呢?
我的目标是希望icc能够做到on_chip_variation,然后同时能够对setup和hold都做好。
这样的目标下,operating condition里面要写什么?以及set_min_library需要么?
pt对ocv的解释是不是说,在setup时用max delay做lanch,用min delay做capture?
我就是感觉这个分析方法太悲观了。
mcmm,
请抛弃bc-wc ,
create_scenariofunc_max
set_operating_conditions max_opcond -analaysis_mode on_chip_variation
source func_max.sdc
set_tlu_plus_files -max _tluplus
create_scenario func_min
set_operating_conditions min_opcond -analaysis_mode on_chip_variation
source func_max.sdc
set_tlu_plus_files -max _tluplus
set_min_library 只适应在bc-wc mode,在mcmm下淘汰了
讨论仅在bc_wc模式的一个测试现象脚本如下
set search_path "$ss_lib_path $ff_lib_path"
set target_library "ss.db"
set link_library "* $target_library" ; 我没有加上ff lib,这是ug上特地说的:"如果需要使用set_min_library命令,就不能在link library中加入ff lib”。
set_operating_condition -max ss_condition -max_lib ss \
-min ff_condition -min_lib ff \
-analysis_type bc_wc
set_min_library ss.db -min_version ff.db
1.如果不加set_min_library,那么设计报告的report_timing -delay min的结果和仅仅用max_lib报出的得出的时序结果一样。但是在timing报告里面居然说它用的是ff的lib,和ff的condition。
2.如果加上了set_min_library,那么设计报告出的report_timing -delay min的结果要比上述的时序更快,说明icc用了min库。
请问上述问题的原因?补充,我看到10年的iccug上面说,如果使用bc_wc模式的话,link_library中指定的库会用于max和min path的计算,但是link_libray如果设置成“* $target_maxlib $min_lib”,那么工具会怎么处理这个问题?
你老和我来bc-wc,set_min_library ,我也受不了,多少年不用这个命令了,
赶紧mcmm吧
小编,我在mcmm的情况有些疑问。
1、在mcmm情况下每个scenario中是不是要对target_library和link_library都定义一次各个scenario的lib?tluplus file也是同理?另外,mcmm应该是先把design读取进来才设置么?那么在读design的时候也要先定义一次target_library和link_library,不然报告找不到库之类的error
其实单库,bcwc 还有ocv都行,只不过ocv更精确些!
用的时候可以统一把所有scenario需要的库设置好!后面设置不同的分析条件!Guide上讲解很详细的!
LZmmcm的情况下operating condition到底怎么设置的呢?解决了吗?
target_library和link_library在mcmm的情况下,怎么设置的
target_library加每个mcmm用到的db。link_library我的设置是有warning的,你可以试一下加其它的lib,就是不要带library的内容。
operating condition在每个scenario里面设置一下你需要的该corner下的operating就可以了。
set_operating_conditions -analysis_type on_chip_variation \ -max "ff32_1.15V_m40C" \
-min "ff32_1.15V_m40C" \
-max_library
"C32_SC_12_CORE_LSL_ff32_1.15V_m40C.db:C32_SC_12_CORE_LSL" \
-min_library
"C32_SC_12_CORE_LSL_ff32_1.15V_m40C.db:C32_SC_12_CORE_LSL"
我看到有段是这么写的,这样对不?
这种做法和ocv的概念是不同的,分析出来的ocv会过分悲观了。一般的ocv做法是在同一个max或者min的情况下,设置timing_derate来分析timing
我的感觉是ocv分析时,可以用两个库比如FAST库和LESS_FAST库做,但是很多时候foundry不会给这么多的库,可能只给FAST库、TYP库和SLOW库。这个时候如果想做ocv,可以只用一个库,比如FAST库,然后定义一个derate来模拟LESS_FAST库,setup时会用less fast分析launch path,用fast分析capture path;hold会用fast 分析launch path,用less_fast分析capture path。我的ocv脚本是这样的:
set link_library "****/IC***_typ.db"
set target_library "****/IC***_typ.db"
set_operating_conditions -max TYPICAL -min TYPICAL -analysis_type on_chip_variation
set_timing_derate -late 1.05
set_app_var timing_remove_clock_reconvergence_pessimism ture
以上仅是我个人的理解,可能有些问题,共同学习
我的理解是:ocv是对corner而言的,如果想做多个corner的ocv需要用MCMM来做。
bc_wc是用fast corner分析hold,slow corner分析setup,这种分析并没有模拟片上变量的情况,可能没有ocv悲观。以上仅仅是我个人的理解,可能有瑕疵,希望大家多多指点。
set_operating_conditions \-analysis_type on_chip_variation -max_library $OPCOND_1_LIB -max $OPCOND_1
这个是icc推荐的script ,应该是你说的意思吧。ocv指定了一个库,只是我没有找到derate的设置
MAX 和MIN 都用同一个TYP.LIB其实就是只有了一个lib,设置timing_derate的方式来做的。
因此,如果是MAX 和MIN都用SS.LIB,那么在timing_derate的时候也只要设置一下就可以了。在SS时,因为path已经都是最慢的了。将cap clock path的derate设置一下,让cap clock path走的更快一些就可以了。这样可以检查出ocv下潜在的setup violation.
那就是说set_operating_conditions -analysis_type on_chip_variation \ -max "ff32_1.15V_m40C" \
-min "ff32_1.15V_m40C" \
-max_library
"C32_SC_12_CORE_LSL_ff32_1.15V_m40C.db:C32_SC_12_CORE_LSL" \
-min_library
"C32_SC_12_CORE_LSL_ff32_1.15V_m40C.db:C32_SC_12_CORE_LSL"
和set_operating_conditions -analysis_type on_chip_variation -library C32_SC_12_CORE_LSL其实是一个意思?
我man了一下,应该是这样的
感谢小编的问题和大神的精彩解答
thanks for the info