微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > 急求助:.lib文件中的index_1的含义到底是什么啊?

急求助:.lib文件中的index_1的含义到底是什么啊?

时间:10-02 整理:3721RD 点击:
在做单元库的后仿,通过扩展.lib文件中的index_1、index_2的取值范围,验证下当前库是否能满足要求,但搞了几天了,仿真结果总是有出入,反复查找也没能找到原因。特别是对于index_1到底是指的输入信息的上升或下降沿的斜率还是其从10%->90%的翻转时间,还是0->100%的变化时间啊?
以前没做过后端的,还望高手赐教!在线等啊。

在库文件的开头会有你想查看的timing_group的template,上面描述了index各代表了什么。
对于transition,一般的库数据上都是表示10%~90%,有的测量使用了30%~70%,但乘以2放大到10-90。
如果有这个操作,应该在开头注明slew_derate_from_library : 0.5 ;

thansk alot!

谢谢详尽的解答,明白了。

BINGO!

index1通常是input slew ,index2是output load,

请问下:slew_derate_from_library 0.5代表啥意思呢?

简单来讲就是说,库里标注的是10%-90%的transition,但是你实际测量的是30%-70%的transition,是一个缩放系数。

谢谢你的回复,感觉还是没有太明白。
现在库里的设置是这样的:
slew_low_threshold_pct_fall :30
slew_low_threshold_pct_rise :30
slew_upper_threshold_pct_fall :70
slew_upper_threshold_pct_rise :70
这些信息表示tran的计算是信号从30%--70%或者70%--30%的delay。
那么如果库里面有 slew_derate_from_library : 0.5 这条命令及上述设置,那么是不是代表库里面描述的信息:
rise_transition (delay_template_7x7) {
index_1 ("0.005, 0.010, 0.02, 0.04, 0.08, 0.16, 0.32 ");
index_2 ("0.0001, 0.0003, 0.001, 0.003, 0.006, 0.012, 0.024 ");
values ( \
"0.009224 0.010008 0.015876 0.03396 0.06512 0.12574 0.249 " \
"0.008458 0.01054 0.015872 0.0341 0.06336 0.12764 0.2432 " \
"0.009102 0.010424 0.015946 0.03414 0.06598 0.12382 0.2508 " \
"0.010604 0.012118 0.016386 0.03436 0.06528 0.12324 0.2496 " \
"0.009274 0.011692 0.01662 0.03418 0.0646 0.12642 0.2444 " \
"0.02328 0.013304 0.03192 0.04174 0.06428 0.12556 0.252 " \
"0.0144 0.01722 0.04082 0.03612 0.06416 0.12428 0.2424 " \
);
是否表示的是10%--90%测量的结果?而查表时希望查出的是30%--70%的tran delay?
那么如果如果一个信号的30% ---70%的tran delay是0.02,那么在查表的时候时候是按照0.04的值来查呢?谢谢!

不影响delay的值,因为delay的测量时50%-50%
影响:
所有二位查找表的input_transition刻度;
timing group: rise_transition() fall_transition()里边的值。
很老的工艺,测量cell rise/fall transition时使用10%~90% VDD, 测量区间80%,
当今的工艺,测量cell rise/fall transition时使用30%~70% VDD, 测量区间40%。
为了和以前的工艺库对应,所以现在的库都将transition映射成10%~90%, 所以将测量的值乘以2
比如30%-70%测量index 0.1 0.2 0.5的rise/fall transition时,在liberty格式文件中:
index_1:input_transition的坐标是0.2 0.4 1.0
rise_transition/fall_transition LUT里边的数据时真是测量值*2


如果lib里面有slew_derate_from_library : 0.5这条命令与没有这条命令相比,tran的值要大一倍,delay LUT的值也会大(tran 变大),可以这样理解,对吧?

这个属性其实和数据没有因果关系,因为liberty里都是10%~90%的结果。这个值=0.5,只是告诉使用者,里边的transition的index刻度和具体rise_transition/fall_transition是通过测量值*2得到的

明白了,感谢解答!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top