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
————————————————
版权声明:本文为CSDN博主「那么菜」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_16423857/article/details/123804699