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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5749|回复: 13

[求助] 为什么后仿时用的库文件包含延时信息??

[复制链接]
发表于 2012-9-10 19:25:06 | 显示全部楼层 |阅读模式

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

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

x
用的是charted 0.18um工艺,库里单元定义如下:

`timescale 1ns/1ps
`celldefine
module AFHCINX2 ( S, CO, A, B, CIN);
output S, CO;
input A, B, CIN;
  not I0 (ci, CIN);
  xor I1 (S, A, B, ci);
  and I2 (a_and_b, A, B);
  and I3 (a_and_ci, A, ci);
  and I4 (b_and_ci, B, ci);
  or  I5 (CO, a_and_b, a_and_ci, b_and_ci);   
  specify
    specparam

      tplh$A$S  = 1.0,
      tphl$A$S  = 1.0,
      tplh$A$CO  = 1.0,
      tphl$A$CO  = 1.0,
      tplh$B$S  = 1.0,
      tphl$B$S  = 1.0,
      tplh$B$CO  = 1.0,
      tphl$B$CO  = 1.0,
      tplh$CIN$S  = 1.0,
      tphl$CIN$S  = 1.0,
      tplh$CIN$CO  = 1.0,
      tphl$CIN$CO  = 1.0;


     if ((A == 1'b0 && B == 1'b0) || (A == 1'b1 && B == 1'b1))
        (CIN *> S)  = (tplh$CIN$S,  tphl$CIN$S);
     if ((A == 1'b0 && B == 1'b1) || (A == 1'b1 && B == 1'b0))
        (CIN *> S)  = (tplh$CIN$S,  tphl$CIN$S);
     if (B == 1'b0 && CIN == 1'b0)
        (A  *> S)  = (tplh$A$S,   tphl$A$S);
     if (B == 1'b1 && CIN == 1'b1)
        (A  *> S)  = (tplh$A$S,   tphl$A$S);
     if (B == 1'b0 && CIN == 1'b1)
        (A  *> S)  = (tplh$A$S,   tphl$A$S);
     if (B == 1'b1 && CIN == 1'b0)
        (A  *> S)  = (tplh$A$S,   tphl$A$S);
     if (A == 1'b0 && CIN == 1'b0)
        (B  *> S)  = (tplh$B$S,   tphl$B$S);
     if (A == 1'b1 && CIN == 1'b1)
        (B  *> S)  = (tplh$B$S,   tphl$B$S);
     if (A == 1'b0 && CIN == 1'b1)
        (B  *> S)  = (tplh$B$S,   tphl$B$S);
     if (A == 1'b1 && CIN == 1'b0)
        (B  *> S)  = (tplh$B$S,   tphl$B$S);
     if (B == 1'b1)
        (A  *> CO) = (tplh$A$CO,  tphl$A$CO);
     if (B == 1'b0)
        (A  *> CO) = (tplh$A$CO,  tphl$A$CO);
     if (A == 1'b1)
        (B  *> CO) = (tplh$B$CO,  tphl$B$CO);
     if (A == 1'b0)
        (B  *> CO) = (tplh$B$CO,  tphl$B$CO);
     (CIN *> CO) = (tplh$CIN$CO, tphl$CIN$CO);

  endspecify
endmodule // AFHCINX2
`endcelldefine

有的单元还有时序检查的内容:
  // timing checks
      $width(posedge WW, tminpwh$WW, 0, NOTIFIER);
      $period(posedge WW, tperiod$WW, NOTIFIER);
      $setuphold(negedge WW, posedge WB, tsetup$WW$WB, thold$WW$WB, NOTIFIER);
      $setuphold(negedge WW, negedge WB, tsetup$WW$WB, thold$WW$WB, NOTIFIER);

在不加载SDF文件的情况下,仿真结果中就已经有了延迟,如下所示
捕获.PNG

而我加载SDF之后,仿真时出现了好多保持时间违例,而在encounter中却没有报保持时间违例,
捕获.PNG
我的问题是,为什么要在库中定义延时信息??有什么作用??
 楼主| 发表于 2012-9-11 17:21:58 | 显示全部楼层
顶一下,请教高人
发表于 2012-9-11 18:21:17 | 显示全部楼层
后仿用的软件和ENCOUNTER的时序分析能力不同吧
发表于 2012-9-11 23:52:09 | 显示全部楼层
1)library中的延时信息可以修改
2)back-annotated simulation中使用的是sdf中的delay信息,而不是library中的
 楼主| 发表于 2012-9-12 16:21:43 | 显示全部楼层
回复 4# eeares


    的确如你所说,加载SDF之后延时是SDF中的,但是时序检查还是库中定义的,这样不就是覆盖了SDF中的时序检查函数了吗??
发表于 2012-9-12 18:17:07 | 显示全部楼层
timing_check 是库中定义的,但是其使用的数值还是来自SDF,我不懂你的问题在什么地方?

所谓后仿,就是使用真实的delay,即SDF里面的delay信息来替代库中的信息进行仿真


发表于 2012-9-12 18:19:54 | 显示全部楼层
看来你是不了解SDF的产生过程,SDF中的timing check信息一般是来源于dotdb,作为同一个库,simulation model和dotdb中的timing_check应该是相同的,当然也有不同的情况,那个不是我们要说的重点。

所以你说的覆盖并不存在,两者是匹配的


回复  eeares


    的确如你所说,加载SDF之后延时是SDF中的,但是时序检查还是库中定义的,这样不就是 ...
禅师1988 发表于 2012-9-12 16:21

 楼主| 发表于 2012-9-12 18:25:47 | 显示全部楼层
回复 6# eeares

用modelsim仿真出现以下error
Error: /home/tian/work/modelsim/liang/encounter_back_end/source/csm18ic.v(9382): $hold( posedge CK &&& (rn_and_sn == 1):842005 ps, posedge D:842480 ps, 500 ps );
可见这里hold time检查的时间是500ps,即仿真库里定义的值:
thold$K$CK  = 0.5
而不是检查SDF中的hold time,换句话说,仿真库里的$setuphold函数在起作用,受其影响,生成了error
 楼主| 发表于 2012-9-12 18:31:19 | 显示全部楼层
回复 7# eeares
而且这些error显示对于每个DFF都是检查了500ps的hold time,而SDF中检查的hold time每个DFF都不一样,也就是仿真库和SDF中的hold time产生了不一致
发表于 2012-9-12 22:03:26 | 显示全部楼层
1)你确保你的SDF被正确反标了么?有没有没有反标的部分?
2)你报出来的那个log没有参考意义,要看具体出错的cell,然后在sdf中找到对应的cell看看哪里有问题



回复  eeares

用modelsim仿真出现以下error
Error: /home/tian/work/modelsim/liang/encounter_back_e ...
禅师1988 发表于 2012-9-12 18:25

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-7-19 13:48 , Processed in 0.055424 second(s), 12 queries , Gzip On, MemCached On.

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