关于ICC中MCMM的问题?
大家好,在ICC中,我用MCMM进行时序分析,但是,ICC_ug中说,ICC在MCMM时不支持时序库中的k-factor,因此,我现在有点疑惑,假如我设置如下命令,其中,std_max.db和std_min.db中只有标准单元的时序信息,没有IO的是时序信息。那么,在S1的mode下,iCC怎么得到某个IO的时序信息呢?(说明:标准单元和IO的PVT是不一样的)
icc_shell> create_scenario s1
icc_shell> set_operating_conditions -max WORST –max_library std_max.db –min BEST –min_library std_min.db
icc采用corner map的方式,就是operting condition设了以后, 看最近的PVT 靠近,
会选中其中一组library,包括IO, STD , MACRO等,就是靠最近的process, voltage,和temperature,
这叫隐含的map, 没有明显的说明,
可以用 report_scenarios , check_scenarios 开看结果, 看看library group对否,
icc采用corner map的方式,就是operting condition设了以后, 看最近的PVT 靠近,
会选中其中一组library,包括IO, STD , MACRO等,就是靠最近的process, voltage,和temperature,
这叫隐含的map, 没有明显的说明,
可以用 report_scenarios , check_scenarios 开看结果, 看看library group对否,
这也就是 为啥 set_operting_condition 只要设一个library ,通常是std cell lib,
而不用把所有library都设上的原因,
edi比较清楚,
create_rc_corner , create_delay_corner , create_library_set,
create_constraints_modes , create_analysis_views ,
library set 要写在一起的, 就比较清楚
Mentor的那个Olympus定义MMMC也比ICC清晰, ICC的那个定义方式,感觉就是一团浆糊。
贴几个 olympus的 mmmc 的命令来看看啊, 兄弟
talus的能 也能 贴些么
不用Magma的那个东西,
set_analysis_corner setup_tt0p9v110c_typrc110c -crpr setup_hold -library $lib_name_tt0p9v110c -process_technology $rc_name_typrc -enable true -setup true -hold false -rc_temperature 110
set_timing_derate -clock -early -cell_delay -net_delay -derate 0.975 -corners {setup_tt0p9v110c_typrc110c}
set_timing_derate -clock -late -cell_delay -net_delay -derate 1.025 -corners {setup_tt0p9v110c_typrc110c}
set_timing_derate -data -early -cell_delay -net_delay -derate 0.975 -corners {setup_tt0p9v110c_typrc110c}
set_timing_derate -data -late -cell_delay -net_delay -derate 1.025 -corners {setup_tt0p9v110c_typrc110c}
set_timing_derate -cell_check -early -derate 1.025 -corners {setup_tt0p9v110c_typrc110c}
set_timing_derate -cell_check -late -derate 1.025 -corners {setup_tt0p9v110c_typrc110c}
不错, olympus 里面叫 mmmc 叫啥,
icc叫scenario, edi叫 view,
set_analysis_corner hold_ff0p99v0c_cbest0c -crpr setup_hold -library $lib_name_ff0p99v0c -process_technology $rc_name_cbest -enable true -setup false -hold true -rc_temperature 0
set_timing_derate -clock -early -cell_delay -net_delay -derate 0.93 -corners {hold_ff0p99v0c_cbest0c}
set_timing_derate -clock -late -cell_delay -net_delay -derate 1.07 -corners {hold_ff0p99v0c_cbest0c}
set_timing_derate -data -early -cell_delay -net_delay -derate 0.93 -corners {hold_ff0p99v0c_cbest0c}
set_timing_derate -data -late -cell_delay -net_delay -derate 1.07 -corners {hold_ff0p99v0c_cbest0c}
set_timing_derate -cell_check -early -derate 1.07 -corners {hold_ff0p99v0c_cbest0c}
set_timing_derate -cell_check -late -derate 1.07 -corners {hold_ff0p99v0c_cbest0c}
define_design_mode -design_mode modeFuncFF1p1v
set_design_mode -design_mode modeFuncFF1p1v -enable true -corners {hold_ff1p1v0c_cbest0c hold_ff1p1v0c_cworst110c}
read_constraints -file xxx.sdc -mode "modeFuncFF1p1v"
==============================
对比与这种定义的方法,ICC理由的MMMC的定义方式,我个人认为就是一团浆糊。
Mentor的这个工具,定义的比较清晰,跟上 corner跟Mode的名字,就可以直接定义,ICC里头的太模糊了。
谢谢,我回去试试。
mentor原来叫 mode和corner, 没有单独叫啥,
这个像28nm的 script啊
不是28nm的。
28nm的Hold的Signoff RC用的是rcbest0c跟rcwost110c.