数字IC验证和设计分工有何不同?

描述

这种搞二元对立的比较,没有任何意义,因为二者面临的对象就是不同的。就国内目前的情况来看,设计的工作量大都是无形的,而验证的工作量基本都是有形的。

从coding的角度来看,DV的work load远比DE要大,所以有些公司为了满足deadline会要求de和dv要达到1:1.5(预算不足),乃至1:2(预算充足)的配比。而且,即使达到上述比例,就比较单位coding时间,DV仍然远高于DE。

所以从spec review后的RTL coding开始到sign off前,DV的debug时间会占掉整个前端开发的7成。

原因1:DV的很多工作对DE存在依赖性。

RTL没有release前,DV是没有办法进行sanity case的调试的,换句话说,此时验证环境是打不通的,后续的工作很多都会被pending住。其次RTL中如果存在基础性的bug没有及时fix,又会反过头来影响DV环境的进度。所以,DV的速度快,DE的速度未必会快,但DE的速度慢,DV的速度一定快不了。

原因2:DV code受spec影响的程度远高于RTL。

因为DV code大多是面向对象语言编写的,其质量很大程度上受制于owner的水平,而且即使是顶级验证工程师也没法精确预判模块未来的继承关系,所以绝对的,可永恒复用的验证环境是不存在的。当IP的功能发生结构性改变的时候,对DV owner无异于重写环境,所以经常会出现RTL小改,DV环境大改的情况。

原因3:RTL不仅仅需要经过可综合性检查,还需要经过可复用性检查。

仅从code上来说,RTL的继承关系远比DV code要明显。再退一步说,即使重写RTL,对DE来说,整体工作量仍可控制在可接受的范围内。

原因4:DE和DV的工作重心不同。

DE的工作很大一部分时间是在写微架构和design spec,RTL coding的时间其实只占一小部分(包括找出bug后的fix time)。而DV要在学习完微架构后,需要对各个feature进行充分的验证,这涉及到最后整个block的完备性和可靠性的问题,自然需要投入大量的时间完善各种 corner  case。

原因5:投入周期。

DV的投入周期从前期的微架构review到tapeout前是full time,从RTL release到RTL freeze之间基本coding不间断,所以“可见的”工作量远远高于DE,“体力活”的特征十分明显。

综上所述,DE的工作相比之下需要更高的思维强度,需要花时间coding的“简单劳动”并不多。而DV的工作中,各种“杂活”太多,对微架构的参与度并不高。但是,一旦DV owner将自己从繁杂的环境改动和基本case的编写中解放出来,持续深化对设计和软件的理解,其战斗指数会飙升,对微架构的参与度和话语权也将大大提高...这就是我们所谓的高档位DV。

一款复杂soc芯片的设计,从设计到验证,从前端到后端,乃至软件团队,需要数百人的参与,这其中蕴含着集体的智慧和劳动

没有哪个单一个体或部门可以贪天之功为己任。

编辑:黄飞

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分