微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > 微电子学习交流 > 关于netlist仿真timing violation的问题

关于netlist仿真timing violation的问题

时间:12-12 整理:3721RD 点击:
不知道发在这里是否合适。
我有个电路是跑300M的,DC综合后report timing都是满足的,至少也有0.21的timing slack.
然后拿这个netlist去做后仿真,为什么会报setup violation呢?
本来我觉得既然DC综合后时序过了的化应该不会有timing violation了吧?
不然岂不是timing 不满足要求吗?
百思不得其解。
还请有经验的前辈指教。谢谢

再补充一点。这个模块里面用到了designware的ip,报setup violation的路径是从designware输出,然后到后面的寄存器。
也就是用说用一个寄存器直接寄存了一拍designware IP的输出,然后这条路径上就有setup violation.
能通过什么约束来改善吗?

sdf哪里来的?

你这种状况,可能有两个原因:
1. constraint和netlist不一致,比如说false path, 或者constraint中没有约束的valid path
   在DC里,你可以把check_timing得到结果都检查一下
2. sdf和netlist不一致,你可以去检查sdf反标时的log,或者sdf生成时的log
其实,post-synthesis的时序仿真是没有意义的。
如果你想check timing,应该用STA工具,而且是post-layout的数据
如果你是想检查synthesis的结果,应该用formal check,或者zero delay的gate level simulation

看看是不是异步引起的,如果是异步引起的不用管的。

gate sim可以检查出cdc bug,还有constraint下错的bug,还是有意义的吧

综合后的netlist都没有真正的时序信息clock tree也没好,你仿个猫啊。

你仿真用的是综合的网表吧,有带sdf吗?如果有,sdf在写的时候有没有用脚本处理下,把clock路径delay标成0?我绝对非常可能是sdf问题,你看下报violation地方应该很容易定位。

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

网站地图

Top