今天,抽空学习和整理一下后仿真中的VCS仿真选项之+nospecify/+notimingcheck/+no_notifier共三个选项。“后仿真很重要,坚持点滴学习”
一 选项:+nospeicy
作用:在仿真时忽略库文件中指定的延时信息
以标准库单元中一个与非门为例,库.v文件中作了如下描述:
module nand(X,A1,A2)
output X ;
input A1,A2 ;
specify
(A1 => X) = 30 ;
(A2 => X) = 50 ;
endspecify
endmodule
在标准单元中,定义输入A1和A2到输出X的路径延时分别为:30、50 time units。只有添加这个选项,后仿真中的延时信息,才能起到作用。
二 选项:+notimingcheck
+notimingcheck :时序检查开关,比如定义在specify...endspecify模块中的setup/hold/width检查等,如使用了该option,则仿真时不检查时序,行为类似于RTL仿真。在PR未结束,sdf反标文件还没准备好时,可用该选项忽略延时,可用于功能性的粗略检查。但真正跑后仿真时,不可使用该选项,否则仿真有效性大大降低。可使用tfile来将特定的路径加到no timing check list file中。
notimingcheck在RTL级仿真中,可以避免如sram、flash以及你RTL中例化的std cell报出时序违背,而影响你的仿真结果。后仿真一般仅将notimingcheck设置在跨时钟域处理的第一级DFF上,以规避其报时序违背,导致仿真出现X态。第二级的时序是需要解决的(也就是说第二级不能出现时序问题,因为他属于同一个时钟域)。
文件内容为:
instance {
u1/u2/u3,
u1/u2/u4
} {noTiming};
然后在仿真编译中加入 “+optconfigfile+notimingcheck.cfg”
执行仿真即可。