个人意见:ASIC 前端功能验证等级与对应年薪划分
好像发不上来, 见二楼
对于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终端芯片套片开发,非海思),谢谢!
上面的所有观点是我个人主观意见,不代表任何公司或组织。仅供参考!最后请勿恶意攻击,谢谢!
谢谢~动力啊!不过还是研一啊!忙于搞验证,现在能自己搭分层自动化验证平台额!嘿嘿~
SV和VMM是针对验证的,若想实现业务(参考模型)和验证平台的无缝融合,还得靠C++
SV非常适合搭验证环境,但在建模上不行
我个人觉得我达到了你说的4.5级,拿的是刚过2级不到3级的薪水。
觉得LZ写的好像是站在软件工程师的角度考虑问题,虽然现在大家在向vmm ovm靠拢,我总觉得asic工程师还是要把底层的东西钻研透,至于那些高级的东西,我们只要会用就好,还是要把重心放在“验证设计本身“。
另外还请教:
CCSS是什么?我不懂。
Matlab在硬件验证能用到吗?我想不到哪里会用到,请指教。
回楼上:
0. 薪水这东西还与其他因素相关,如业务能力、产品盈利水平、领导对你的认知等等,不好做映射,当然得上述薪水在跳槽时是可以参考的(不是年工资,是年总收入)。外来的和尚给的粥多,这也是很多公司的普遍现象。
1. 大规模ASIC的验证需要靠自动化平台的,尤其是算法型的芯片,如无线协议处理,视频处理等。而这些芯片的验证,类似于VMM的环境只是替你完成了验证平台的15%左右的工作。自动化平台的85%与业务相关,需要你去对业务、参数、配置进行抽象、随机、跑gold数据、对比控制。这些是EDA厂商不能给你的,除非在大型外企像Sony、松下、AMD、博通等,这些是外国人搭建和积累起来的。尤其是需要进行芯片快速系列化商用时,拥有自己的自动化业务验证平台是多么关键。像炬力这类公司快速成长后,现在没能跟上,我觉得也是在算法研究和功能性能快速收敛上没有做扎实。若算法模型开发OK,RTL设计只是一个翻译的过程(当然低功耗设计和结构设计还是需要水平的)。
数字逻辑细节是要了解,但一般也仅限于顶层的接口与时序。个人认为若将太多的精力放在RTL内部细节(而不是算法本身),是不能进行有效的全自动化和全随机化验证的,是不能去思考哪些接口和功能合不合理,可不可扩展(如果认为这些只与设计人员相关,那我们就把自己定位成测试人员,即做成啥就验啥)。对于算法型ASIC的EDA验证,80%是软件工作,若国内的前端IC验证人员能认识到这一点,我们就可以在高端芯片(如3G手机芯片、高清视频解码芯片等)上有所作为,因为70%工作量在验证。
2. CCSS 是一个算法模型的开发工具,类C语言。可实现算法的设计、位宽/方案选型、性能仿真。Matlab类似啦。有些算法模型的开发,需要用到这两个工具。CCSS在无线接收机上用的较多。
受教了,听君一席话,获益匪浅啊!
我还需多多努力!
没用到CCSS/Matlab啊......
Cocentric System Studio(CCSS)是Synopsys公司推出的基于SystemC的系统开发和模拟工具.
Matlab也可以产生激励和做结果分析。
哎,才刚刚开始啊,努力!可是有些东西自己会但公司现在也不用啊,也不能生疏了。
学习学习
谢谢 你说的很对
我们这些初来乍道的 对于验证的理解还达不到你讲的那么深刻
希望能和有经验的前辈多多交流
个人觉得IC验证,尤其前端的验证是很有意思、值得研习的
qqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqq
不错,长见识了,呵呵
大家用SV怎么调试啊?又不能设断点,也不能拉波形?
1. 只会在别人搭建的环境上跑跑用例。
目标……
郁闷的学工艺中
干5的事情,拿2的年薪,杯具啊~
理想和现实总是有差距的
要好多东西学啊
顶一个!
说的好,希望多一些牛人上来发表评论
支持小编意见,验证也应该站得更高的角度上看!
工具是死的,项目是活的,不可能靠工具解决所有的问题