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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 20691|回复: 22

[解决] 用VCS做后仿,反标sdf的问题

[复制链接]
发表于 2020-11-13 21:31:05 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 ZHZIC 于 2020-11-14 15:16 编辑

我用pt写sdf文件的时候,设置了选项:-include {SETUPHOLD RECREM}
出来的sdf文件里也是setuphold和recrem格式的
image.png
然后我用vcs仿真的时候,也添加了选项:+neg_tchk -negdelay
但是跑vcs的时候,却报出了下面的warning
Warning-[SDFCOM_NL] Negative Limit Not Allowed
/home/IC/Desktop/work/pt/top_spi_1/out/wc/top_spi_sim_setuphold_recrem.sdf, 1833
module: DFNCND0BWP7T, "instance: tb_top_spi.u_top_spi.master.master_shift.data_reg_60_"
  SDF Warning: $recovery/$removal timing checks does not support negative
  values.
  Please use $recrem timing check instead.



Warning-[SDFCOM_CFTC] Cannot find timing check
/home/IC/Desktop/work/pt/top_spi_1/out/wc/top_spi_sim_setuphold_recrem.sdf, 1833
module: DFNCND0BWP7T, "instance: tb_top_spi.u_top_spi.master.master_shift.data_reg_60_"
  SDF Warning: Cannot find timing check $removal(posedge CDN,negedge
  CPN,...)for RECREM

我定位到1833行,是下面这样:
(RECREM (posedge CDN) (negedge CPN) (-0.3679::-0.1396) (0.4448::0.9378))
第一个警告说recovery和removal的timing check不支持负值,请使用recrem,可是wodesdf文件里明明是recrem啊求求大佬解答一下,非常感谢

发表于 2020-11-14 02:29:47 | 显示全部楼层
你的 sdf 里是 recrem, 但库的 Verilog model 不是。 查一下 DFNCNB0BWP7T 这个flop 的 Verilog model.  通常 model 里有 `ifdef,选择是否合并 setup hold, removal recovery。加上这个就可以了
 楼主| 发表于 2020-11-14 10:17:58 | 显示全部楼层


jake 发表于 2020-11-14 02:29
你的 sdf 里是 recrem, 但库的 Verilog model 不是。 查一下 DFNCNB0BWP7T 这个flop 的 Verilog model.  通 ...


这个选择是否合并是在哪里设置啊,是在跑vcs的时候还是在verilog里面修改啊
 楼主| 发表于 2020-11-14 10:25:13 | 显示全部楼层


jake 发表于 2020-11-14 02:29
你的 sdf 里是 recrem, 但库的 Verilog model 不是。 查一下 DFNCNB0BWP7T 这个flop 的 Verilog model.  通 ...


Verilog module里是这样的
image.png
发表于 2020-11-14 10:33:52 | 显示全部楼层
在 VCS 命令行加上 -define NTC -define RECREM 应该就可以了。
也可能是 +define+NTC +define+RECREM.  VCS 很久不用了。 请查一下 VCS 手册
 楼主| 发表于 2020-11-14 10:40:59 | 显示全部楼层
嗯嗯嗯,好的,我去试试,多谢啦
发表于 2020-11-14 11:12:08 | 显示全部楼层
收藏,之前碰到过没有解决
 楼主| 发表于 2020-11-14 11:37:30 | 显示全部楼层


ZHZIC 发表于 2020-11-14 10:40
嗯嗯嗯,好的,我去试试,多谢啦


我加上+define+NTC+RECREM之后,没有warning了,但是显示好多关于recrem的timing violation,这个应该去哪里解决啊
时序违例是这样描述的:
"/home/IC/Desktop/work/tamc18_std_cell/tcb018gbwp7t_290a/TSMCHOME/digital/Front_End/verilog/tcb018gbwp7t_270a/tcb018gbwp7t.v", 5136: Timing violation in tb_top_spi.u_top_spi.master.master_ctrl.cstate_reg_1_
    $recrem( posedge CDN:4000799, posedge CP:4000426, limits: (-67,700) );

问题是我STA和形式验证都过了
跑vcs是用的下面的语句:
vcs -R -full64 -fsdb -f flist.f -l top_spi.log -timescale=1ns/1ps +neg_tchk -negdelay +define+NTC+RECREM


master/master_ctrl/cstate_reg_1_这个flop的recrem的描述是这样的:
image.png
直接发在这个帖子里,主要是我怕再发一个帖子,没人回我。。。
希望大佬指条路啊




发表于 2020-12-4 14:35:56 | 显示全部楼层
本帖最后由 高瞻forever 于 2020-12-4 15:51 编辑


ZHZIC 发表于 2020-11-14 11:37
我加上+define+NTC+RECREM之后,没有warning了,但是显示好多关于recrem的timing violation,这个应该去 ...


  首先,STA是基于sdc约束分析的;
  其次,FV 只是做功能一致性验证;
  最后,gate_sim是进一步
动态的确保timing和function的可靠性。
  因此,STA 和 FV 都通过,不代表gate_sim就能通过。
  你需要对RECREM有一定的了解:即:recovery time(恢复时间) 和
removal time(去除时间)具体定义,可自行百度
  
gate_sim报出相应违例,原因分析有:
          1、该cstate_reg_1_触发器的复位端时序不满足recovery time,
removal time。
               通常需要确认rtl设计是否为异步复位,同步释放;继而再STA在该路径上报出delay,来确
               认违例是否真实,是否需要修正。
          2、
一般逻辑对此时序不用关心,比如很多模块的操作流程是复位释放,才开启模块时钟,再启动模块工作。
                   该流程能保证不会出现recovery 和 removal的问题,因为复位置起撤销时都没有时钟;即使操作流程保
                   证不了,出现recovery和removal违例,由于模块此时都不会工作,也没什么问题;可以在sdc约束是做false path。


发表于 2020-12-5 21:12:51 | 显示全部楼层
路过,学习,谢谢大神们的讨论
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-2-12 20:03 , Processed in 0.022303 second(s), 7 queries , Gzip On, Redis On.

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