在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6369|回复: 12

[求助] lib库的问题

[复制链接]
发表于 2013-8-1 22:35:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
在一般的lib文件中每个单元下都有一个索引值即index_1(.....),index_2(.....),而这个库中没有,库信息如下,如果给出连线负载电容为1.6pf,转换时间为3.58ns,那么在这个库中对于下面所示单元L612NQ应该怎样查到它的单元传播延时,我做完布局布线后报告保持时间的时序信息,几乎所有的延时都为0(如下图所示),导致保持时间根本无法修复,请问是什么原因,会不会是这个库的信息不完整??谢谢,急求回答,我现在所用的库中lib文件中内容如下

                               
登录/注册后可看大图

lu_table_template(Table1) {


variable_1 : total_output_net_capacitance ;


index_1("1.0, 2.0") ;


}


lu_table_template(Table2) {


variable_1 : total_output_net_capacitance ;


variable_2 : input_net_transition ;


index_1("0.010000, 0.100000, 0.300000, 0.500000, 1.000000") ;


index_2("0.010000, 1.000000, 3.000000, 5.000000") ;


}


lu_table_template(Table3) {


variable_1 : total_output_net_capacitance ;


variable_2 : input_net_transition ;


index_1("0.010000, 0.100000, 0.500000, 1.000000, 2.000000") ;


index_2("0.010000, 1.000000, 3.000000, 5.000000") ;


}


lu_table_template(Table4) {


variable_1 : total_output_net_capacitance ;


variable_2 : input_net_transition ;


index_1("0.010000, 0.100000, 0.500000, 1.500000, 4.000000") ;


index_2("0.010000, 1.000000, 3.000000, 5.000000") ;


}


lu_table_template(Table5) {


variable_1 : total_output_net_capacitance ;


variable_2 : input_net_transition ;


index_1("0.010000, 0.300000, 1.000000, 3.000000, 8.000000") ;



index_2("0.010000, 1.000000, 3.000000,5.000000") ;


}


lu_table_template(Table6) {


variable_1 : total_output_net_capacitance ;


variable_2 : input_net_transition ;


index_1("0.010000, 0.050000, 0.100000, 0.200000, 0.500000") ;


index_2("0.010000, 1.000000, 3.000000, 5.000000") ;


}


lu_table_template(Const1) {


variable_1 : constrained_pin_transition ;


variable_2 : related_pin_transition ;


index_1("0.010000, 1.000000, 3.000000, 5.000000") ;


index_2("0.010000, 1.000000, 3.000000, 5.000000") ;


}

...........


/* V1.0 L612NQ produced by synopsys */

/*
date : Tue Jan 16 11:52:10 JST1996
*/


cell(L612NQ) {


area : 316.2816;


ff(QN01, QBZ1
){


next_state : "H01" ;


clocked_on : "H02" ;


clear : "H03" ;


}


pin(N01) {


direction : output ;


function : "QN01" ;


max_capacitance : 0.228991 ;


timing() {


related_pin : "H02" ;


timing_type : rising_edge ;


cell_rise(Table2) {


values(\


"0.527071, 0.659148,0.751193, 0.785045",\


"0.783656, 0.915962,1.007917, 1.041308",\


"1.343339, 1.475892,1.567883, 1.601686",\


"1.902271, 2.034784,2.128148, 2.161550",\



"3.302488, 3.435398, 3.529699,3.562897"\


);


}


rise_transition(Table1) {


values("8.066196, 16.056603") ;


}



lib.png
发表于 2013-8-1 23:06:11 | 显示全部楼层
本帖最后由 陈涛 于 2013-8-1 23:07 编辑

确实不合理,你对照lib的manual确认下
发表于 2013-8-2 09:39:58 | 显示全部楼层
这个cell的delay不是已经说明套用table 2 表格模板了吗?

cell_rise(Table2) {
values(\

然后上面也给出了table2的index信息了:

lu_table_template(Table2) {


variable_1 : total_output_net_capacitance ;


variable_2 : input_net_transition ;


index_1("0.010000, 0.100000, 0.300000, 0.500000, 1.000000") ;


index_2("0.010000, 1.000000, 3.000000, 5.000000") ;


}
 楼主| 发表于 2013-8-2 15:11:39 | 显示全部楼层
回复 3# magic14

但是一般的库单元是在每个单元定义时有index信息,如会在上面的cell(L612NQ)定义时存在(红色字体),而我根据它这样说的到table2中搜索,查出的在电容值为0.16pf,转换时间为3.58ns时,该单元的上升延时应该为1.008~1.60中的一个值,不可能会是0啊,而从时序报告中来看单元延时都是为0的,这让我很费解,如果是这样,我的保持时间违例根本没办法修复,请求回答,谢谢
cell(L612NQ) {


area : 316.2816;


ff(QN01, QBZ1
){


next_state : "H01" ;


clocked_on : "H02" ;


clear : "H03" ;


}


pin(N01) {


direction : output ;


function : "QN01" ;


max_capacitance : 0.228991 ;


timing() {


related_pin : "H02" ;


timing_type : rising_edge ;


cell_rise(Table2) {

index_1 ("........");

index_2 ("........");
values(\


"0.527071, 0.659148,0.751193, 0.785045",\


"0.783656, 0.915962,1.007917, 1.041308",\


"1.343339, 1.475892,1.567883, 1.601686",\


"1.902271, 2.034784,2.128148, 2.161550",\



"3.302488, 3.435398, 3.529699,3.562897"\


);


}

发表于 2013-8-2 17:26:03 | 显示全部楼层
那能不能手动修改一下lib文件,把这个cell的两个index加进去,再报一下timing,看看这个cell的delay是不是还是0 ?
发表于 2013-8-2 17:56:51 | 显示全部楼层
是不是你的单位不对,你看看lib中capacitive_load_unit大小是pf 还是nf。
发表于 2013-8-2 17:59:54 | 显示全部楼层
看看capacitive_load_unit 单位是不是nf,还有,还有是不是你只定义了cell_rise,而实际中却是fall?没有对应的表。
 楼主| 发表于 2013-8-3 15:21:03 | 显示全部楼层
回复 7# znxxznx

capacitance_load_unit的单位是pf,没有问题,lib里面有fall_rise的内容,只是我没有粘贴上来,我把报告时序的精度设高一点,还是有值,只是很小为0.00xxxns或0.000xxxns,按照库中说的不应该这么小的,lib里的值至少都是0.xxxns
发表于 2013-8-3 15:28:25 | 显示全部楼层
发表于 2013-8-5 14:47:58 | 显示全部楼层
回复 8# sunny_yangfeng

不会是时间单位不一样吧,看看其他库和这个库和ICC report_units命令的时间单位。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-7-19 06:04 , Processed in 0.027001 second(s), 9 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表