有多大的视角,就能发现多少的Bug。引用CCTV的一句台词,心有多大,舞台就有多大。
我比较不喜欢看到的,就是一个验证人员跑来告诉设计人员,说某某TC Fail了,波形在XXX,请分析。我不能认定这位验证人员的工作是否合格,只能表达强烈的情绪,特别是最后发现Fail的原因是验证环境问题的时候。
这种验证人员,对设计人员、项目经理,都是巨大的风险。因为设计和验证,是一定需要有交集的,并且耦合越大,风险越小,只能提Feature、写TC的验证人员,就像初三的新月一样,反而需要别人去耦合,如果设计人员视野不足,野心不够,就存在空隙了。
一个验证人员,如果能够发现设计中的Critical Path并告诉PR,一定不会得到批评,反而会在实现工作中得到更多的发言权,和更多的发展。一个验证人员,如果仅仅只能跑写TC、跑TC,那么多年得不到晋升恐怕也怨不得别人。
OK,回到原点。验证人员必须要懂得代码,懂得分析逻辑,甚至能够通过代码分析出可能的疑点,更好的,能够理解整个系统的运作,理解前端后端的实现,找出设计人员视角的盲区,才能更好的发现Bug,解决Bug。
当然,某些同志会认为,验证人员,发现实现的问题耽误了主业,而且实现的问题,实现人员更容易发现。OK,这里同样存在一个视角的问题,你的视角和实现人员的视角是不一样的,也许觉得很容易发现的问题,恰好别人不容易发现呢?反过来说,实现人员或设计人员还可以觉得代码Bug对于验证人员是很容易发现的呢。此外还有一个时间成本的问题,任何问题,遗留的时间约长,代价越大。
所以我说一句,验证人员,一定要放开视角,努力去看你所能够看到的,然后,你能够看得更多。然后再补充不务正业的说明,验证人员的目的是发现Bug,这是唯一的目的,不仅仅是一个TC所能发现的Bug,而是整个芯片可能存在于任何环节、任何位置的Bug。只有芯片的成功,才是真正的成功,而一个Bug,就可以毁掉一个芯片,而覆巢之下,安有完卵?
当然,验证人员会问,整个芯片太大了,扩展视角,不是不努力,而是看不到啊。OK,我再说一句,对于验证人员,最简单,最真切的视角就在脚下。TC,每一条TC,每一个TC的波形,都代表了芯片中的全部或部分,真实运作的场景,有血有肉。如果把波形当作TC Pass的附属物,那么,恭喜,验证人员,你拿了芝麻丢了西瓜。波形真的可以告诉你很多、很多。
我甚至可以公布我做验证的时间分布(不包括最初搭建环境的时间),20%时间写TC,10%时间调环境,50%时间看波形,确认TC达到我想要的意图(TC Log中的Pass?噢,对不起,这种狗屎信息我向来忽略),剩余20%时间?对,剩余20%的时间,是我固定的,从当前表面上正确运行的波形中,对照代码,寻找其他可能发现的时间。
不要跟我说现在系统太复杂,看波形效率太低。OK,Hi1380的系统复杂不?整个波形我也从头到尾看过啊。而且,就在我看波形的第一天,就是从一个已经Pass的,好像是GIC的系统验证波形中,拿到了超过20个问题单(加上代码检索的30个问题单,创造了下图中陡升的曲线,不过可惜了,没能突破300)。
往期精彩
总结我的思路:发现Bug,发现所有的Bug,或者证明没有Bug,是验证存在的唯一目的
作者:夏晶
网址:http://bbs.eetop.cn/thread-274126-1-1.html?id=2930135447473&23=mV7I
推荐阅读
更多数字IC设计技术干货等请关注数字芯片实验室专栏。添加极术小姐姐(微信:aijishu20)微信可申请加入IC设计交流群。