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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜全文
查看: 19320|回复: 18

[求助] 关于P&R后,仿真时的的RECOVERY和 DFF CK 与 RN 的timing问题

[复制链接]
发表于 2010-11-8 15:29:05 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 meijingguoyu 于 2010-11-8 15:33 编辑

请问大家,我在P&R之后用modelsim仿真遇到点问题,不知道该如何解决,希望哪位大侠能伸出援助之手,谢谢~
-------------------------------------------------------------------------------
----------------------------分割线---------------------------------------------
-------------------------------------------------------------------------------
问题1:
P&R是别人完成的,然后他给我P&R之后的netlist和sdf文件。
当我用modelsim 点simulate时,会有好多这样的error。

# ** Error: (vsim-SDF-3262) IT22_wc.sdf(24090): Failed to find matching specify timing constraint.

每次出现这样的error: 我都会把相对应的IT22_wc.sdf文件中的24090行的:
(RECOVERY (posedge RN) (posedge CK) (0.209138:0.209138:0.209138)) 给注释掉,这样的行有好多,都必须要注释掉的。

有的项目还有REMOVAL所在行也需要注释的。

都注释了后就可以正常仿真了。

请问这是什么问题啊,该如何解决,谢谢。

-------------------------------------------------------------------------------
----------------------------分割线---------------------------------------------
-------------------------------------------------------------------------------
问题2:

还有个问题就是我在P&R后仿真的话,会有setup timing的问题,如下:
# ** Error: D:/WORK/1505/Post_sim/tsmc25_new.v(5729): $setup( posedge RN:489 ps, posedge CK:966 ps, 1 ns );
#    Time: 966 ps  Iteration: 0  Instance: /tb/U_IT1505/U_RESET/disconnect_counter_reg_5_
# ** Error: D:/WORK/1505/Post_sim/tsmc25_new.v(5729): $setup( posedge RN:489 ps, posedge CK:966 ps, 1 ns );
#    Time: 966 ps  Iteration: 0  Instance: /tb/U_IT1505/U_RESET/disconnect_counter_reg_6_
# ** Error: D:/WORK/1505/Post_sim/tsmc25_new.v(5729): $setup( posedge RN:484 ps, posedge CK:966 ps, 1 ns );
#    Time: 966 ps  Iteration: 0  Instance: /tb/U_IT1505/U_RESET/disconnect_counter_reg_13_
..........

其中tsmc25_new.v是我用到的仿真库。 但是此类error我在用DC综合后(P&R之前)仿真时是没有的。请问该error如何解决啊。不知道是不是和我注释掉sdf文件里的RECOVERY 有关系啊。
我要是把相应的tsmc25_new.v里的5729行注释掉啊(我试过,这样的话就没有Timing问题了)。

相对应的RTL code如下:

  always @ (posedge osc or posedge por)         // osc是input clock, por是input power on reset signal
  begin:
    if (por)
      disconnect_counter <= OSCCOUNTER ;
    else if ( cki_8cycle )
      disconnect_counter <= disconnect_counter + 1'b1 ;
    else
      disconnect_counter <= disconnect_counter ;
  end


-------------------------------------------------------------------------------
----------------------------分割线---------------------------------------------
-------------------------------------------------------------------------------
问题3:

还有点就是FF的CK和RN之间的timing是如何定义的啊,FF的RN信号一有效就立马执行了,为啥还要和CK定义Timing啊,谢谢。
下面是仿真库tsmc25_new.v里关于DFFRX1的定义:
那位大侠能帮我解释一下我加粗的那行的timing定义啊,谢谢啦~~

`timescale 1ns/1ps
`celldefine
module DFFRX1 (Q, QN, D, CK, RN);
output Q, QN;
input  D, CK, RN;
reg NOTIFIER;
supply1 xSN;
  buf   XX0 (xRN, RN);
  buf     IC (clk, CK);
  udp_dff I0 (n0, D, clk, xRN, xSN, NOTIFIER);
  and     I4 (flag, xRN, xSN);
  buf     I1 (Q, n0);
  not     I2 (QN, n0);
  specify
    specparam
    tplh$RN$Q  = 1.0,
    tphl$RN$Q  = 1.0,
    tplh$RN$QN  = 1.0,
    tphl$RN$QN  = 1.0,
    tplh$CK$Q = 1.0,
    tphl$CK$Q = 1.0,
    tplh$CK$QN = 1.0,
    tphl$CK$QN = 1.0,
    tsetup$D$CK = 1.0,
    thold$D$CK = 0.5,
    tsetup$RN$CK    = 1.0,
    thold$RN$CK    = 0.5,
    tminpwl$RN     = 1.0,
    tminpwl$CK    = 1.0,
    tminpwh$CK    = 1.0;

    if (flag)
      (posedge CK *> (Q +: D)) = (tplh$CK$Q,    tphl$CK$Q);
    if (flag)
      (posedge CK *> (QN -: D)) = (tplh$CK$QN,   tphl$CK$QN);
    $setuphold(posedge CK &&& (flag == 1), posedge D, tsetup$D$CK, thold$D$CK, NOTIFIER);
    $setuphold(posedge CK &&& (flag == 1), negedge D, tsetup$D$CK, thold$D$CK, NOTIFIER);
      (negedge RN *> (Q +: 1'b0)) = (tphl$RN$Q);
      (negedge RN *> (QN -: 1'b0)) = (tplh$RN$QN);
    $setuphold(posedge CK, posedge RN, tsetup$RN$CK, thold$RN$CK, NOTIFIER);
    $width(negedge RN, tminpwl$RN, 0, NOTIFIER);
    $width(negedge CK &&& (flag == 1), tminpwl$CK, 0, NOTIFIER);
    $width(posedge CK &&& (flag == 1), tminpwh$CK, 0, NOTIFIER);
   endspecify
endmodule // DFFRX1
`endcelldefine

-------------------------------------------------------------------------------
----------------------------分割线---------------------------------------------
-------------------------------------------------------------------------------

这几个问题我一直不理解,烦请大哥大姐们帮帮忙,小弟不胜感激~
谢谢啦!
发表于 2010-11-8 16:15:08 | 显示全部楼层
异步set/reset有相对于CK的recovery/removal时序要求,类似于D上的setup/hold要求。

--〉“但是此类error我在用DC综合后(P&R之前)仿真时是没有的。”
此类问题一般在CTS之后开始关注,所以DC综合的时候是不考虑的

LZ有没有跑Post layout STA?
确认一下这些问题是否在PR时已经修复。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-11-8 18:20:47 | 显示全部楼层
回复 2# 分特


    异步set/reset有相对于CK的recovery/removal时序要求,类似于D上的setup/hold要求。
---------可是modelsim报错啊,所以我在sdf中注释掉recovery/removal了,仿真时却会有CK和RN的setup问题。
那么是我注释掉的原因吗?

  我没有跑过Post layout STA,因为我觉得我的这个项目很小,应该不会有问题。

谢谢你的回答,谢谢~~~
回复 支持 反对

使用道具 举报

发表于 2010-11-8 19:56:22 | 显示全部楼层
good experience
回复 支持 反对

使用道具 举报

发表于 2010-11-9 09:04:50 | 显示全部楼层
同步复位置位才有recovery/removal时序要求。建议看看库里面的定义。
你的设计timing应该有问题的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-11-9 10:01:21 | 显示全部楼层
回复 5# zh123456789


    谢谢你的回答,可是我相应的RTL已经帖出来了,我用的是异步复位啊。
烦请详解~~  谢谢哦
回复 支持 反对

使用道具 举报

发表于 2010-11-9 12:06:42 | 显示全部楼层
查看约束文件,是否对rst设置了false path
回复 支持 反对

使用道具 举报

发表于 2010-11-9 13:28:27 | 显示全部楼层



看上去问题像是有recovery/removal的问题在PR阶段没有解决,却被后仿发现了。
没被PR解决时有可能的,比如Astro中修removal/recovery是要在timing setup中打开开关才会修,缺省是关闭不修的。

个人觉得还是先确保Post layout sta没问题再跑后仿吧。项目小不能成为不跑post layout sta的理由。
回复 支持 反对

使用道具 举报

发表于 2010-11-9 13:32:09 | 显示全部楼层


   
同步复位置位才有recovery/removal时序要求。建议看看库里面的定义。
你的设计timing应该有问题的
zh123456789 发表于 2010-11-9 09:04




    啊?同步?分特了。。。
  哥们你再翻翻教科书吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-11-9 14:47:53 | 显示全部楼层
回复 8# 分特


    哦,这边P&R的工具是enconter,我不知道有没有你说的那个选项,因为不是我R&P的。好的,我会先STA看看,那么请问假如STA没有问题的话,RECOVERY该如何办啊,注释吗(问题1),还有 DFF CK 与 RN 的timing的问题该如何解决啊,需要在仿真库里同样注释吗?(问题2)

感谢你的回答,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-9-14 10:36 , Processed in 0.300646 second(s), 5 queries , Gzip On, Redis On.

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