ASIC验证,关于后仿那些事

1. 什么是后仿?

后仿真也被称为时序仿真,或者门级仿真。当芯片在后端完成布局布线后,时序文件SDF文件,会被反标到网表文件上,那么此时针对带有时序信息的网表进行仿真,称为后仿真。

2. 后仿真有何用?

检查电路中的timing violation和 test fail,一般都是已知的问题。一般后仿真花销2周左右的时间。

网表仿真的目的是,检查RTL仿真和pd综合后的一致性(logic Equivalence check),由于网表仿真非常慢,所以 并不会对前仿中的所有testcase 都做后仿。有的公司甚至没有网表仿真,即使有后仿真,后仿真一般比较少,因为后仿真时间特慢,一个testcase需要非常长的时间。在实际的芯片开发中可以没有网表仿真,因为形式化验证和静态时序分析可以保证设计的正确性。

3. 有了LEC(等效性检查)和STA(静态时序分析),为什么还要做门级仿真(Gate-level simulation ,GLS)?

GLS can catch issues that static timing analysis (STA) or logical equivalence tools are not able to report. The areas

where GLS is useful include:

  • Overcoming the limitations of STA, such as:

           –The inability of STA to identify asynchronous interfaces

           –Static timing constraint requirements, such as those for false and multi-cycle paths

  • Verifying system initialization and that the reset sequence is correct
  • DFT verification, since scan-chains are inserted after RTL synthesis
  • Clock-tree synthesis
  • For switching factor to estimate power
  • Analyzing X state pessimism or an optimistic view, in RTL or GLS

4. 零延迟仿真(Zero-Delay Simulation),或称综合后仿真

zero-delay mode run much faster than simulation using full timing.

在仿真时添加以下仿真参数(VCS)

+nospecify :vcs不加入50 time unit的延时

+notimingcheck : 时序检查开关,比如setup/hold/width检查等等,如使用了该option,则仿真时不检查时序,行为类似于RTL仿真。在PR未结束,sdf反标文件还没准备好时,可用该选项忽略延时,可用于功能性的粗略检查。但真正跑后仿真时,不可使用该选项,否则仿真有效性大大降低。可使用tfile来将特定的路径加到no timing check list file中。建立notimingcheck.cfg文件,把违例的路径按格式instance {t_test.i_all.i_top.i_xx} {noTiming}; 添加到notimingcheck.cfg文件中,在编译的时候加入命令+optconfigfile+../notimingcheck.cfg 注意文件路径是相对makefile文件。
 

+no_notifier : 

+delay_mode_zero:将标准单元中定义的延时替换为0

注意:零延迟仿真用于调试仿真环境,挑testcase, 检验网表有没有问题。 当这些完成之后,就可以将SDF文件反标到网表文件上进行时序仿真,零延迟仿真将极大的提高仿真效率。

5. SDF文件

a file which contains all the net delays in design。An sdf has 3 kinds of delay(best,Worst,Typical)。

6. 如何挑时序仿真的testcase(时序仿真的策略 )

  • 选取2~3寄存器访问testcase
  • 初始化的case
  • 典型的功能case
  • 关键路径,跨时钟域case

7. 当后仿真出问题,仿真不起来时

  • 检查clk,rst,PLL, reg
  • timing violation 不定态 x. 见path 
  • test fail

8. 用VCS做后仿真

做后仿真时,应该先做zero_delay仿真,确保加载的网表文件是正确的,然后,再将SDF文件反标到网标文件上。

`ifdef SDF

initial

begin

  $sdf_annotate("../../rtl/post_sim/U_sramc.sdf",u_top,,"sdf.log",);

end

`endif

编译时添加参数:-negdelay   +neg_tchk  

  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

那么菜

你的鼓励和批评是我最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值