ASIC 前端功能验证等级与对应年薪划分[个人意见] (2011-07-04 15:33:35

时间:2022-06-01 19:38:12

下面的讨论转载自eetop,我选取了一些有意义的讨论,加了我的评注。

楼主zhhzhuawei认为

=====================================

对于ASIC的前端功能验证(不含SOC的IP集成验证): 
1. 只会在别人搭建的环境上跑跑用例。       年薪<8W 
2. 若还会在别人搭建的环境上构造用例。       年薪<10W 
3. 若还会对测试点进行简单的分解,并能利用脚本或高级语言进行简单的编程,搞些自动化。年薪<14W 
4. 若自个能独立搭建自动化程度较高的验证环境(模块级,用高级语言C++/SV/SC),基本能独立进行模块级的全流程验证(含FL制定、测试点分解、随机程序编写、自动化验证环境编写)。 年薪<20W 
5.若能利用高级语言(C++/SC/SV)独立搭建中等以上的模块级全自动化验证平台、该平台拥有良好的扩展性和移植性,能利用流程(结队编程/检视等)、工具、脚本、程序进行完备性验证(如代码覆盖率/功能覆盖率/形式验证等)。能够编写验证用的算法模型。能有效指导他人进行验证工作。年薪<35W 
6.精通面向对象设计,精通C++编程(SV/SC是它的衍生品),能够进行系统级EDA验证平台(软件代码30万行以上)的设计和带领团队分工实现,能够将软件工程的方法学(抽象、层次化和模块化)熟练应用到验证平台设计中。精通verilog数字设计。能够制定一款中大型ASIC产品的验证策略(含EDA前仿、FPGA仿真、TapeOut后仿)。熟练掌握验证对象的算法。能够利用C/C++开发验证用的参考模型,能够进行性能验证。能带领10人以上的团队。 年薪<75W 
      对于ASIC的前端功能EDA验证来说,一个懂得数字电路设计的软件工程师是最好的人才。很火的VMM这套难吗?就8000多行代码。基本就是将软件工程中的模块化和层次化应用到EDA验证中。对于懂得面向对象设计的人来说,VMM很简单了。话说回来,VMM对提高业界验证工程师的认知是很有帮助的。软件设计能力体现在抽象和分解上,若软件能力强,则进行FL/TP分解是不存在任何障碍的。
      一般来说,大型外企(如AMD、Intel等)设在中国的ASIC验证岗位在技能上要求不会超过上述划分的4.5级。因为4.5级以上就要求你必须掌握验证对象(即RTL或算法实现)。若老外能够开放RTL或算法模型,那也是些边边角角的非关键模块。若你的收入超过了对应的薪水,个人觉得你应该感觉到庆幸了,呵呵。面试过一些在外企(或给外企)做EDA验证的,平均业务能力很一般,薪水要求确不低(也许能力强的不跳槽,呵呵) 
      故建议有志从事ASIC验证的兄弟姐妹,多在软件能力和面向对象设计(VMM方法学也可)上提升,优秀的ASIC前端验证工程师需掌握一些语言和特殊工具:
         算法模型:C++、C、CCSS、Matlab等
         数字设计:verilog 
         平台开发:C++、SystemVerilog/VMM 、SystemC、
         脚本语言:Perl、cshell、TCL
如果自己觉得验证能力(尤其是软件能力)还可以,想换个环境,欢迎给我发简历
fzh80@126.com (工作地上海,本三硕二,从事WCDMA/HSDPA终端芯片套片开发,非海思),谢谢!! 
上面的所有观点是我个人主观意见,不代表任何公司或组织。仅供参考!!!!!!!!!!最后请勿恶意攻击,谢谢

网友liushangtian(说实话现实工作中,本人最怕遇到这种强调灵感的所谓大牛

=====================================
吹牛皮吧 老子现在是系统工程师 带领一班人从模块级到系统级做验证,没看到多少钱。再说做验证其实做到一定程度,什么sv,e语言 什么方法学VMM OVM UVM 都是一样的原理,只是封装了下。

前段时间我们项目推广uvm 我抽了点时间 看了下源代码 也就那样 很简单。做验证关键是靠灵感 很多东西 你想不出为什么 但你独特的角度就会发现很多隐藏很深的bug

网友seeming(我也做过通信,我觉得seeming讲得挺中肯)

======================================================
 部分同意楼主的观点。

只做验证达到你所谓的5是不可能的,即使也掌握了相当的设计功力和面向对象语言能力。也许你在算法相关的系统上验证经验比较丰富吧,对软件层次的东西看的比较重。但从我做通讯类芯片验证的角度来看,对需求、协议的理解、对测试feature的把握,远比验证环境本身重要,毕竟无论VMM,UVM,都是手段,我们验证工程师的唯一目标。是尽量抓出芯片中的BUG,达到这个目的手段可以是多样的。

当然我对你一些观点也是非常赞同的,为了项目的快速收敛,环境一定要尽量自动化,为了验证环境的重用,我们面向对象编程的功力也要加强。

网友Bois

=============================================================
写的很好!忽略了OVM啊。国内这个行业的验证水平确实比较低下,很土。很多在外企工作的人也就是在别人的环境下跑跑,写写case,不思进取。(这个我也同意)

不过说过来,你说的所谓的4.5级以上的人,对于一般项目有一两两三个这样的人坐镇就行了,这种人要特别牛,否则搞出来的破环境拖累整个项目(我现在还在思考我是不是曾经做过拖累团队的事情,虽然我们的团队也就2,3个人)。要的最多的人还是1,2,3,然后从中慢慢培养几个出来。