总结我的验证思路:波形为王

本文转自公众号“数字芯片实验室”,作者:夏晶 。谢谢

波形不撒谎,这是我做验证的格言。波形是真理,可以击破一切虚假、迷乱的谎言。

 

波形,是一个逻辑正确运行的最直观的体现,是逻辑在每一个时钟沿,触发每一个信号的跳变或不跳变,进而产生美丽的,如波浪般运转的脉动

 

中医看病,讲究的是,望、闻、听、切,验证看波形Check缺陷,正如中医诊断的切脉诊病,除非医术达到精深广博,否则仅靠望、闻、听断病,是不够的。

 

规格是人写的,详细设计是人写的,激励是人写的,RM是人写的,自动比对Log打印也是人写的。在做过的几个项目中,我无数次得看到这些内容在编写和理解的过程中出现误差,而导致最终的结果和实际不符,期间诞生了多少的磨难。正是经历了太多的磨难,我最终成为了一个验证原旨主义者,任何可以提升验证效率的自动化工具,我都会首先进行排斥,即使使用也充满疑虑。跟我共事过的兄弟应该比较了解了,呵呵,这和转载我文字的接入的傅晓兄弟几乎是南辕北辙的两极。因为我始终认为,自动化虽然提升了效率,但是自动化屏蔽了非常多信息,如果验证的员工对验证的根本性质理解不足的时候(特别是新员工),这种屏蔽非常有害,并且常常容易将错误隐藏起来,而这种隐藏,比效率低下更加致命

 

所以我始终认为,某些效率提升所带来的收益,是小于问题被遗留到最后才发现所造成的损害的,虽然,这不符合公司效率提升的导向。例如SV,我认为,在没有理解验证理念和方法之前,连《WritingTestbench》都没有看过两遍(注意,是两遍),还没明白验证不仅仅是跑TC之前,就开始玩SV的Class,有害无益(所以我是DT003做SV最坚决的反对者,很多新员工,甚至连OOP是啥都不知道)。想想我们自己是怎样前进的吧,从Verilog到Vera、SystemC、SV,一步步走来,经历了多少磨难。我看到有太多的,这两年新进的员工,表面上什么都知道、什么都会做,但在需要沉下心来分析和理解的问题上,却屡屡碰壁

 

所以,直至今天,我推崇,绝大部分工作,采用最原始的纯手工方式打造,包括设计和验证。我写的RTL代码,都是手工一行一行敲入的,我所验证的逻辑,都是一个一个波形Check的。我没有觉得自己效率非常差,反而乐在其中。呵呵,其中的乐趣,是那些只看Log,忽视波形的人可能无法体会的了。正如“向前一小步,文明一大步”这种长短之间的哲理,女人永远无法理解一样。呵呵,当然,我上面这一观点并不适用于任何人,应该会有很多兄弟拍砖的。

 

波形,反映的是逻辑运行的规律,是最切近于最终芯片工作状态的表现。波形中的每一个时钟脉冲,每一个毛刺,每一个Delay,都将最终完完全全映射到最终的芯片中(特别是后仿)。所以,看波形,能够最真切地发现芯片实际运行中可能的缺陷和风险。作为一个经历过三个项目的项目经理,我特别建议项目经理(其实包括所有有责任感的工程师)能够多看看波形。每一颗芯片,项目经理在其中经历了多少的艰辛和风险,实在不足为外人道。所以,每一颗芯片,对于项目经理而言,都是一个珍贵的孩子,能够在它出生之前,触摸它的每一次心跳,感受它的血管的流动和神经的传导,是多么的难以言语的经验。所以,最近的三次项目,我都承担了后仿的相当一部分工作,我会精心地Check每一个时钟和复位,在最典型的激励下,仔细的检查各个模块之间的数据流交互,还有每一个IO的延迟和时序,因为我知道,在波形中我看到的,就是最终芯片运转的情形,所以我一定会尽我最大的心力去保护它,毫不留情地去除掉任何一个可能会影响其健康成长的因素,让它能够健康出生、健康成长。

 

为人父者,无它,其责必重,其谋必远,其心必仁,而其言行必慎!总此四德,天下为父者不可不遵也!

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页