这种搞二元对立的比较,没有任何意义,因为二者面临的对象就是不同的。就国内目前的情况来看,设计的工作量大都是无形的,而验证的工作量基本都是有形的。
从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芯片的设计,从设计到验证,从前端到后端,乃至软件团队,需要数百人的参与,这其中蕴含着集体的智慧和劳动。
没有哪个单一个体或部门可以贪天之功为己任。
编辑:黄飞
-
IC设计
+关注
关注
37文章
1290浏览量
103678 -
DEBUG
+关注
关注
3文章
89浏览量
19843
原文标题:数字IC验证和设计谁工作量大?
文章出处:【微信号:数字芯片实验室,微信公众号:数字芯片实验室】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论