数字IC验证工程师加班吗?工资高吗?一天是怎么样的呢?

现阶段的IC行业,数字IC验证工程师非常紧缺,尤其是在这个行业中干了很多年的工程师那更是奇货可居。但是最近和一些在校学生和刚入行的朋友们交流的时候,发现大多数人对数字IC验证工程师的具体工作不了解,甚至还停留在写verilog验证的阶段。

下面看看我做数字验证工程师的那段日子,希望能让更多的人了解这个职位,进入这个职位,并喜欢上这个职位。

当然每家IC设计公司会有不同,我只能尽量的列出比较通用的工作内容了,就算是抛砖引玉吧。

首先,IC设计公司一般都会把验证分成几个层次:

· IP level verification

· unit level / fullchip level verification

· gatelevel verification

每个层次的工作重点都略有不同,这里就暂不详细介绍,后面另开一篇文章来交流吧。但是大致的工作流程都是一致的。我重点以IP level simulation来作介绍。

数字IC验证工程师加班吗?工资高吗?一天是怎么样的呢?_第1张图片

上图是一个SOC芯片的架构(先不管它是个啥),IP level verification就是对其中一个个小模块来做验证。你的工作主要有:

1.阅读各种SPEC

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

I2C IP specification
其中需要重点了解的内容是:

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

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

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

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

2.撰写verification spec

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

· 验证平台架构:以UVM验证平台为例。
数字IC验证工程师加班吗?工资高吗?一天是怎么样的呢?_第2张图片

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

· 测试用例(test plan)

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

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

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

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

以现在主流的UVM验证平台为例:大概要去码完类似这样的文件。
数字IC验证工程师加班吗?工资高吗?一天是怎么样的呢?_第3张图片

好的验证平台是检验工程师优秀的一个重要标准,要考虑实用性、扩展性。

好消息是,公司里面有很多已有的验证环境,你可以模仿,在已有的基础上进行修改就可以了。

4.创建test cases

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

数字IC验证工程师加班吗?工资高吗?一天是怎么样的呢?_第4张图片

有些公司就直接用数字来给test cases命名。还有些公司,直接用脚本来生成test cases,只要把关键的一些设置调好,用脚本一刷,case就全部生成了。当然每种创建cases的方法各有优缺点,你进去公司之后,也只能入乡随俗。

  1. debug

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

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

· mentor:questasim

· cadence:NC-sim

· synopsys:VCS

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

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

最主要的debug手段有:

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

· 看波形:最常用工具就是verdi了。
数字IC验证工程师加班吗?工资高吗?一天是怎么样的呢?_第5张图片

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

  1. regression和coverage

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

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

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

每家公司跑regression和coverage都会使用脚本来完成,怎么高效顺利跑完,是最关键的问题,

最终的结果一般会以网页的形式呈现,直观明了。
数字IC验证工程师加班吗?工资高吗?一天是怎么样的呢?_第6张图片

  1. support

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

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

  1. meeting

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

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

大致的工作内容就罗列这些了,当然还有很多不能列完全,比如验证工程师经常需要移植验证环境,把从别家公司买了的东西移植到自家公司环境中。

希望以上这些能给未入行或者刚入行的验证工程师们带来些许帮忙。另外,数字IC验证工程师在行业内非常吃香,大家好好干吧,钱途无量噢。

数字IC验证工程师加班吗?

这年头,还有不加班的公司吗?如果有,而且工资还不错,请联系我。

资本家不傻,给开这么高的工资,要是还能每天朝九晚五,周末双休,他直接叫你爸好了。付出与收获成正比,你创造的价值,决定你的工资高低。加班频率的高低每个公司都不一样,不要在该奋斗的年纪选择安逸,不然生活会给你一记响亮的耳光。

部分IC公司加班堪比互联网996,也有加班情况少的公司,关键是看自己如何选择。验证工程师的工作并不是大家想象的那样吭哧吭哧干,跑仿真有时候也要花费很长时间,所以可能你下午开始跑仿真,喝个茶睡一会,到了晚上看一下仿真结果,然后再跑仿真,第二天再观看结果。

至于工资高吗?

不分地域不分公司谈薪资高低,那是耍流氓。对于知乎验证工程师人均30W的现象,我首先就要提出异议。我就没有嘛,我难道是假的IC验证工程师?

但是,普遍一线城市,IC验证的工资在15K+往上,如果你能受得了一线城市的快节奏,房价,这个钱,你可以挣。我是不行,一想到房价我就头皮发麻。

你可能感兴趣的:(数字IC验证工程师加班吗?工资高吗?一天是怎么样的呢?)