用NCverilog 仿真,加入sdf后,工具提示将负值变为0了,求大神解答~
时间:10-02
整理:3721RD
点击:
RT,NCverilog提示:ncelab: *W,SDFNL1 (/Plib/digital/chart35/layout_used_SE/lib/chart35.v,11729|5): Attempt to annotate a negative va
lue to a 1 limit timing check in instance (shiftreg_test.t1.u3.latch238_reg_15_), setting to 0 <./final1.sdf, lin
e 253950>.
求哪位大侠知道怎样让仿真工具不把负值变为0呢?
我打开ncverilog的命令是: ncverilog -f ncscript1
ncscript1的内容如下:
testbench3.v
-v /Plib/digital/chart35/layout_used_SE/lib/chart35.v
-v /home/LHG/zzyu/houfang0606/final1.v
+ncaccess+rwc -s +gui+neg_tchk
final1.v是PR后抽出的网表。
之前发了好几个帖子都沉了。还有十天就要流片了。急急急。
没有人遇到和我相同或相似的问题吗?
继续自己顶,求高手解答!
确实遇到过这样的问题,这样必须保证后仿时使用的lib的verilog file中timingcheck和sdf中的函数一致,比如sdf中如果要生成负的hold,那么必须使用的是$setuphold函数,而不是setup,hold分别独立,lib的•v 档中也是一样的。
ps:如果即便hold从负值变成了0,你的后仿还是可以过的话,那就没有什么问题
搞定了没?
写sdf的时候,sdf版本指定为3.0可以解决这个问题。
但是ncverilog似乎读不进去3.0版本的CONDELSE结构.....
摸索中.....
加+neg_tchk试过没有?这个是避免负反标被仿真器认为是0
遇到过,不过这样不会有问题的,0就好了。
原来如此 学习了!
PT产生SDF文件的时候也会检查setup+hold是否负数