1. 建立后仿testbench,尽量做到和RTL的testbench一致。特别是时序上以及hierarchy上。
需要修改的地方一般有:涉及到hierarchy层次的地方。annotate.v 根据不同的define吃进min|typ|max的SDF。以及NOSDF。
在annotate.v中指定要force的信号。以及要初始化的register,memory等。
在rtl中查找initial 块,如果是register或者memory的初始化,分析并找到gate中相应的register以及memory。
2. 不挂任何timing信息,纯gate仿真。+nospecify +notimingcheck +no_notifier +delay_mode_zero
查找clock reset generation block。 设法将output clock 以及reset初始值设为零。消除不定态。(需要force 某些clock reset的选择信号)。
3. 挂入timing。
3.
PostSimulation 由于一部电路的存在,经常出现X态,影响仿真结果。如何排除这部分电路的timingcheck?而用Notimingchecks或nonotifer 会使整个design的timing 的检查停止。有没有只是disable部分instance的timing check呢?
1。 抽取SDF时,排除。
麻烦。
2。 VCS提供了很好的方法:
vcs +optconfigfile+vcs_cfg
================vcs_cfg 的内容==========
instance {tb_top.U_TOP.U_CORE.U_Async} {noTiming}
=============================================