DC综合没错但仿真出现错误
时间:10-02
整理:3721RD
点击:
我的问题如下:
我综合的时候用125MHZ的频率综合,report_timing没有报告违规,但是我用综合之后的网表和sdf文件做仿真的时候呢,用的时钟是100MHZ,能出来结果,但是结果不对。我又把频率降低到某一个数值,在这个数值之下的频率仿真结果都是正确的。
我做的前仿用的都是100MHZ,结果是正确的。
现在我就不知道问题出在了什么地方了,望大家指教。
我综合的时候用125MHZ的频率综合,report_timing没有报告违规,但是我用综合之后的网表和sdf文件做仿真的时候呢,用的时钟是100MHZ,能出来结果,但是结果不对。我又把频率降低到某一个数值,在这个数值之下的频率仿真结果都是正确的。
我做的前仿用的都是100MHZ,结果是正确的。
现在我就不知道问题出在了什么地方了,望大家指教。
你首先需要好好看看仿真的log文件,里面是否有报一些时序问题或者sdf反标的信息;
有几种可能性吧:
1. 约束不全面,有的路径没有约束到,所以也报不出来违例的情况
2. sdf文件有问题,可以用pt分析一下sdf
那就耐心地用verdi追一下,不对的地方根源到底在哪里。
然后和正确的波形比较一下,这条path在不同的时钟下,为什么会出错。
追带sdf的仿真会比较痛苦,要耐心……
首先检查你的仿真log文件,看有没有什么地方出现时序未违例,如果有,则说明时序就不满足,你需要确认时序不满足的路径,然后去eco(具体怎么做本人不清楚,而且据我了解dc后时序不满足貌似就直接需要改rtl了)。如果没有时序违例,则可通过功能仿真与时序仿真比对的方法找到出问题的地方,然后再分析是什么原因造成了仿真结果的错误。比如说一个multicycle为2的路径,高频与低频的时候第一拍与第二拍采集到的数据可能就不一样了。 小弟愚见,仅供参考。
