遇到违例是每个做后仿的同学必然会经历的事情,如果你还没遇到过,那说明你还年轻。而很多同学第一次遇到这问题时,都会一脸茫然,找不着北。本篇文章给出我能想到的思路,如下:
1.查看是否为异步路径
如果是异步路径,理应将其加到notiming_check列表中。
2.查看VCS的输入(包括网表和SDF文件)是否正确
不光是VCS,只要是跟工具相关的流程,遇到异常,我们都需要先确保工具的输入信息是准确无误的,才能继续往下debug。而后仿的输入主要就是网表和SDF文件。对于这两个文件,我们要检查它们的路径是否正确,网表和SDF文件的版本是否对应得上。
3.查看后仿中时钟时钟频率是否跟STA一致
在不规范的流程中经常会看到,后仿的频率与STA分析的频率不一致。所以遇到违例时,我们要先去查看后仿的时钟频率,如果频率比STA分析的频率还要高,那setup出问题也是理所应当的。
4.查看STA报告,timing是否clean
后仿时钟频率跟STA一致没问题的前提是STA已经timing clean。但是在实际情况下,尤其是在MPW项目中,由于项目进度紧,STA可能会将某些违例放过。例如,系统时钟200M,但是有点小违例,而时钟的精度又可以微调,这时候就有可能直接放过。因此,我们要跟STA owner确认这事,并根据实际情况来调整后仿的时钟频率。
5.对比STA中path的delay与波形的delay是否一致
当前面步骤都确保无误后,这时就要考虑是不是吐SDF的过程中出现了什么幺蛾子,例如手残将derate值改了。检查这个的方法也很简单,直接请STA owner把相应路径报出来,然后跟后仿波形的延时对比,这时很大可能是对应不上的。所以接下来的事情就是STA owner的事情了,我们只需要坐等更新SDF。
作者:martin
原文链接:IC小迷弟
推荐阅读
更多IC设计技术干货请关注IC设计技术专栏。