Gate level Simulation(门级仿真)
1 什么是后仿真?
后仿真也成为时序仿真,门级仿真,在芯片布局布线后将时序文件SDF反标到网标文件上,针对带有时序信息的网标仿真称为后仿真。
2 后仿真是用来干嘛的?
检查电路中的timing violation和 test fail,一般都是已知的问题。一般后仿真花销2周左右的时间。
网标仿真的目的是检查RTL仿真和综合后的一致性(logic Equivalence check),由于网标仿真非常慢,所以网标仿真不充分,有的公司没有网标仿真,即使有后仿真,后仿真一般是时间非常少,因为后仿真时间非常慢,一个case需要非常长(跟设计和case有关,一般一两天跑一个case).在实际的芯片开发中可以没有网标仿真,因为形式化验证和静态时序分析可以保证设计的正确性。
Gate level Simulation
Include the verilog model of standard cell and gate-level netlist to your testbench
Add the following synopsys directives to the testbench
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
+notimingcheck
+no_notifier
+delay_mode_zero
零延迟仿真用于调仿真平台,挑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.
- 初始化的testcase
- 典型的功能
- 关键路径,跨时钟域
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
参考文献:
[1] Gagandeep Singh, Cadence Design Systems, Inc. Gate-Level Simulation Methodology.