打造IC人才
科技生态圈

数字ic验证工程师是做什么的?_前景怎么样?

发布时间:2022-10-21

来源:IC修真院

数字ic验证工程师主要是做什么的?需要掌握什么技能?就业的发展前景如何呢?数字验证工程师是芯片设计领域缺口最大的岗位之一,能掌握systemverilog和UVM,基本都可以应聘成功,拿到30万+的高薪。今天小编给大家进行详细的介绍。

数字ic验证工程师主要是做什么的

数字验证处于数字IC设计流程的前端,属于数字IC设计类岗位的一种。 数字验证主要分成几种层次的验证:IP level, unitlevel,fullchip/SoC level, gatelevellevel,硬件加速仿真等。

一、数字ic验证工程师主要是做什么的?

1. 阅读各种SPEC

最重要的一份spec是design spec,就是和你一起合作的好基友设计工程师写的设计文档,比如下面这种:UART IP Core Specification

其中需要重点了解的是:

fetures:这个模块需要支持的性能列表。

IO ports:这个模块对外的IO端口。

operation mode:这个模块的主要工作模式。

除了这份详细的设计文档之外,如果这个IP需要用到很多协议,那你自然还要去阅读一些协议文档咯,比如AMBA总线协议,MIPI协议,DDR协议等。

2. 撰写verification spec

公司里面,工程师做事情之前都需要出一份详细的文档,验证工程师也不例外,你要出的文档叫做verification spec,其中主要的内容包括:

验证平台架构:以UVM验证平台为例。

现在IC行业内,很多公司的验证环境都不尽相同,比如有纯C/C++的环境,有纯UVM的环境,有UVM+C++的环境,甚至还有systemc的环境。总的来说,现在的趋势都是在往UVM的验证环境上转。

测试用例(test plan)

test plan的出炉是一个高质量的工作,因为它决定了你验证的工作量,最重要是它决定了你验证的完整度。验证工程师的终极目标就是:覆盖所有的情况,不放过任何一个bug。

这份东西需要你和designer反复的详细讨论,在后面的过程中,还需要进一步的优化补充这份文档。

3. 码代码,搭建验证环境

verification spec完成之后,接下来就要开始码代码了,使用各种验证语言去搭建验证环境,常用的验证语言有C/C++,systemC,systemverilog。

4. 创建test cases

根据前面完成的详细test plan去创建验证需要用的test cases,每家公司对test cases的命名有一定规则,比如长这样的:

在这里插入图片描述

有些公司就直接用数字来给test cases命名。

还有些公司,直接用脚本来生成test cases,只要把关键的一些设置调好,用脚本一刷,case就全部生成了。

当然每种创建cases的方法各有优缺点,你进去公司之后,也只能入乡随俗。

5. debug

验证环境和测试用例都搭建好了,下一步重点就是仿真和debug了。前面搭环境的时间其实大概只占20%,debug才是最花时间的。

仿真所用到的工具主要有:

mentor:questasim

cadence:NC-sim

synopsys:VCS

几款工具一个比一个好,当然价格也是一个比一个贵。工欲善其事必先利其器,要想提高你的仿真和debug效率,工具里面好的功能也要好好研究下的。

debug主要目的是寻找RTL的bug,当然前面搭建的验证平台也会存在很多bug,最终的目标就是所有的test cases都能完全仿真通过。

最主要的debug手段有:

查看log文件:仿真结束会生成很多结果文件。

看波形:最常用工具就是verdi了。

每家公司对于验证工程师debug的要求不尽相同,比如AMD,就要求验证工程师能找到最终的root cause,而大多数公司只要求验证工程师能基本定位,然后designer去详细debug。

6. regression和coverage

到了项目的后期,所有的case都pass过了,并且比较稳定了,下一步就要开始跑regression和coverage了。

所谓regression就是把所有的case同时跑一遍,因为大多数case里面会有很多random的机制,所以在不断重跑的过程中,会随机性的出现case fail。这也是regression的主要目的,就是抓出那些极端情况下出现的debug。

coverage主要包括code coverage和function coverage等,每家公司的要求都不尽相同。

每家公司跑regression和coverage都会使用脚本来完成,怎么高效顺利跑完,是最关键的问题,最终的结果一般会以网页的形式呈现,直观明了。

7. support

前面属于验证工程师的常规任务差不多就完成了,support属于进阶版的。比如项目用的database出问题了,跑仿真用的flow碰到问题了,经常就会叫验证工程师去support,帮忙解决问题。

当然搞不定也无所谓,但是如果你经常能帮同事搞定这些问题,那你在公司的地位就能与日俱增,升职加薪就更有筹码了。

8. meeting

作为验证工程师,和其他工程师一样,经常还有无穷无尽的会议要开,各种review,各种讨论。

如果你作为会议组织者,请记得事先做好充分的准备噢,不然很容易被人鄙视的。

所以总结来说,最主要做的两件重要的事情是:编程、debug

二、数字IC验证工程师需要掌握什么技能?

现阶段由于数字验证的平台有很多种,主要的平台有:

纯verilog平台、SystemC、纯C/C++(CPU验证)、纯UVM平台、UVM+C/C++平台、其他语言混合平台(Matlab等)

每种平台需要你掌握的技能不大一样,但比较主流的平台是3、4、5三种。一个初级工程师想全部掌握这些技能也很难,如果这些平台你都搭过,就变成老司机了。

由于验证工程师需要编程,所以掌握编程语言也是必须的,比如掌握下面知识就显得比较重要:

Verilog、 C/C++、 Systemverilog、 UVM

另外,验证工程师经常需要流程的自动化,所以一些脚本语言也是必须的:

Shell、 Makefile、 Perl、 Python

除了这些外,熟悉一些协议和架构,也是有很大帮助的,比如:

ARM架构、 AXI/AHB协议、 MIPI协议、 DDR协议等等

所有的技术类岗位,主要看的两点就是:专业技能(skills)和项目经验(experience)。

所以除了上面列的这些技能,你能实际做过一两个项目,哪怕是IP级别的验证项目,也是很重要的,尤其是做项目过程中积攒的debug经验。

如果你是在校学生,早几年懂验证的人极少,所以基本上你只要会verilog,可能就可以找到验证工程师的职位了。现在在校学生通过各种渠道(比如:ic修真院)学习,掌握了上面的这些技能,甚至积累了一两个项目经验。

三、数字ic验证工程师就业前景如何?

这个岗位的薪资待遇是比较高的。年薪起步大概在20-30万,相比于其他行业,这个薪资已经非常可观了。

现阶段我国的IC设计人才是比较稀缺的,随着芯片规模不断加大,在IC设计过程中验证的复杂度也进一步加到,需要的用到的岗位人数也越来越多,很多大公司,数字前端设计工程师与验证工程师的比例已经达到1:3。资深数字验证工程师(5年经验)的薪资在50K-70K,所以对于即将走入IC验证行业的科班人,亦或是其他专业有意转行IC的在职人,数字验证工程师将是你踏入IC行业一个不错的选择。

给大家列出了数字ic验证工程师的薪资表

在这里插入图片描述

芯片设计对于大多数新人来说,显得过于专业和神秘,总感觉自己信心不足。而且,虽然验证岗位招聘数量很多,但是也还是有相应的要求,一般System Verilog和UVM都是必备技能,要熟悉IC设计流程和EDA工具的使用,还要有项目经验。想搞清楚自己究竟适不适合成为一名数字验证工程师?可以点击免费课程观看自己适不适合。

以上的就是给大家介绍的“数字ic验证工程师是做什么的?_前景怎么样?”有问题可以点击咨询或留言。

相关推荐:

学员追访 | 天坑专业转行IC,40W+年薪逆袭

数字ic验证工程师需要学什么?需要掌握哪些技能?

学员追访丨下定决心,那就开始干吧!

立即下载

推荐阅读

换一换