微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > VCS加了+neg_tchk选项,负值的hold time为什么被反标为0?

VCS加了+neg_tchk选项,负值的hold time为什么被反标为0?

时间:10-02 整理:3721RD 点击:

我们项目做后仿真,出现一个时序违例。
时序违例信息如下:$setuphold(posedge CP &&& (EN===1'b1):1520393:62ns,negedge D:1520393:62ns,limits( 0.03ns,0ns))
这是hold time 检查失败。
我把SDF文件该CELL里对应的时序检查找了出来:
(SETUPHOLD (negedge D) (COND EN===1'b1) (posedgeCP)) (0.032::0.035) (-0.021::-0.018)
这里的hold time值是-0.018,如果按照这个值检查,时序是不违例的。
仿真器是vcs2009_06-5,加了选项:+neg_tchk和-negdelay。
又采用VCS2011.03版本,仿真同一个验证用例。
出现的时序违例信息是一样的。
这是什么原因呢?

This is because you have a negative hold time in the SDF file, while negative
time limit is not supported in $setup or $hold according to the Verilog LRM. VCS will
replace the limits with 0 when doing back_annotate. In such a case you need to use
$setuphold to specify setup and hold together. The $setuphold timing check is a
combination of the functionality of $setup and $hold, except that it supports
negative time values.
Note: The sum of setup time and hold time limits must be greater than zero.
Ususally you should request a simulation model that can support negative time
limits from your Vendor if you want to implement negative timing checks.

这段话,我在一份资料里看过。
但SDF文件里本身就是$setuphold,是支持负值保持时间的。

主要对应到你的Verilog Model。

跟verilog model是完本对应的。不会是model的问题。

有些仿真model好像有个NTC的宏定义,可以看下你的仿真model里面有没。

问题已解决,.

仿真器的特性都不同的,如果一定要查neg_tchk,可以好好检查一下!

请问你当时是如何解决这个问题的?

遇到同样的问题,请问LZ是怎么解决的

去synopsys官方网站发了帖子,跟技术人员沟通,
在VCS的编译选项里添加“-new_solver”,重新仿真,那个时序违例就消失了。

请问你当时是如何解决这个问题的?

我也试了+overlap+new_solver貌似没用,奇怪VCS为什么加了+overlap还是不能把负的limit精确标上去。

lz找到解决办法了么?

等SNPS AE的答复,感觉挺奇怪的。我算了violation window应该有overlapping才对。

恩 好东西

如何解决这个问题?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top