打造IC人才
科技生态圈

月薪4W的数字前端设计工程师,每天上班都在干啥?

发布时间:2022-11-28

来源:IC修真院

数字设计处于数字IC设计流程的前端,属于数字IC设计类岗位的一种。随着芯片规模不断加大,在IC设计过程中设计的复杂度也进一步加到,需要用到的岗位人数也越来越多。

数字设计主要分成几种层次的设计:IP level, unitlevel,fullchip/SoC level, gatelevel等。人才的需求量进一步加大,这也是现阶段数字设计工程师招聘量巨大的原因。

数字前端设计工程师主要在干啥?

1. 阅读各种SPEC

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

图片

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

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

2. 撰写design spec

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

IP设计架构:

图片

3. 编写代码,搭建设计环境

design spec完成之后,接下来就要开始编写代码了,使用各种设计语言去搭建设计环境,常用的硬件描述语言有,Verilog, VHDL, SystemVerilog。

以现在主流的IP设计平台为例:大概要去编写类似这样的文件。

图片

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

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

4. 创建test cases,进行功能仿真

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

图片

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

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

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

5. debug调试能力

设计和仿真用例都搭建好了,下一步重点就是进行功能仿真和问题调试(debug)了。前面的设计的时间其实大概只占20%,debug才是最花时间的。

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

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

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

最主要的debug手段有:

每家公司对于设计工程师debug的要求不尽相同,终极目标都是要求设计工程师能找到最终的root cause,共提出最终的解决方案。

6. support

前面属于设计工程师的常规任务差不多就完成了,support属于进阶版的。比如项目用的database出问题了,跑仿真用的flow碰到问题了,经常就会叫设计工程师support,帮忙解决问题。当然搞不定也无所谓,但是如果你经常能帮同事搞定这些问题,那你在公司的地位就能与日俱增,升职加薪就更有筹码了。

7. 每周例会Weekly Meeting

作为数字IC设计工程师,和其他工程师一样,经常还有无穷无尽的会议要开,各种评审review,各种讨论。

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

所以总结来说,数字IC设计工程师最主要做的两件重要的事情是:

跟谁打交道?

图片

数字IC前端设计工程师打交道最多的就是前端验证工程师,一起讨论问题,经常一起debugcase,目的就是让写的RTL(Register Transfer Level)代码没有bug。

还经常需要和架构工程师打交道,去了解更多芯片的整体架构和功能属性;如果你也负责后仿gatelevelsimulation的话,那还经常需要和后端工程师打交道,因为后仿的网表是他提供给你的;DFT工程师经常也会来找你,因为他也需要做测试和设计,很多时候他的仿真环境经常就是从你的设计仿真平台移植过去的;FPGA工程师也经常会打交道,因为FPGA设计也是数字设计的一种。

当然,如果你是在一家大公司的话,分工就非常明确,你也就不需要和这么多人打交道了,比如如果你只负责IP level的设计,那基本只要和前端验证工程师打交道就可以了。

数字前端设计工程师得会啥?

现阶段由于数字设计的方向很多,主要的有:

CPU设计:Intel、AMD、ARM、兆芯、海光、

GPU设计:Nvidia、AMD、ARM、Imagination

MCU设计:基于ARM Cortex M系列的MCU是主流

音视频编解码设计:H.264, H.265

接口设计:DDR、HDMI、USB

手机芯片:高通、联发科、展讯

整机芯片方案:APPLE、华为海思、三星

每个专业设计领域需要你掌握的技能不大一样。一个初级工程师想全部掌握这些技能也很难,很多时候设计工程师是沿着一个专业方向一直往下做,比如CPU,GPU设计等。

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

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

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

所有的技术类岗位,主要看的两点就是:专业技能(skills)和项目经验(experience)。所以除了上面列的这些技能,你能实际做过一两个项目,哪怕是IP级别的设计项目,也是很重要的,尤其是做项目过程中积攒的debug经验

如果你是在校学生,早几年懂设计的人极少,所以基本上你只要会Verilog,可能就可以找到设计工程师的职位了。现在在校学生通过各种渠道(比如E课网www.eecourse.com专注于集成电路设计行业的职业技能培训),很多同学都掌握了上面的这些技能,也积累了一定的项目经验。会的人多了,招聘的要求也自然高一些了。在跟学校的学生竞争时,有项目经验的学生比只学习过基本理论的学生,更加有优势。

现阶段,数字设计工程师主要还是以招聘研究生为主,本科生招的很少。不过好消息是对专业的要求并不是很苛刻,并非集成电路或者微电子方向不可,只要你掌握了上面的这些技能,哪怕不相关专业,比如材料、物理、自动化、机械、通信、电子等专业,也是可以成功应聘。

学历本科的同学也不要气馁,有工作经验的本科生,还是可以找到设计工程师的职位的,而且有很多成功的例子的。毕业学校一般的同学也不要气馁,985高校毕业,肯定是有优势的,但毕竟每年毕业生不多,在现在IC行业整体缺人的大背景下,依然会招收学校排名一般的学生的;当然前提还是一样,有专业技能(skills)和项目经验(experience)。

工作环境

设计工程师的工作环境就比较简单,大多数时间就是待在办公室里面,面对电脑进行工作。一般配备两台电脑,一台台式机用来工作,一台笔记本用来看资料、处理邮件、文案处理等。

image

当然会议室是设计工程师经常要去的地方,各种会议、各种review都要在办公室完成,偶尔要少不了一些争吵和撕逼。

图片

如果你在的公司,在全国甚至全球有很多site,偶尔也会需要出差。总的来说出差概率都比较少。当然,如果你是在设计服务公司做设计工程师,可能另当别论,一个项目完成之后可能会派到另外一家公司去。

设计工程师的工作强度还算可以,项目启动的时候相对轻松一些,越接近项目结束时,就会更忙,加班也是常事。当然,工作的强度还是依所在公司的性质来看,一般外企比较轻松,国内的公司就要辛苦很多。

如果你想要了解,可以点击数字ic前端设计课程了解哦,还有更多的免费课程

相关推荐:

学员追访丨转行就是为了更好的生活

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

学员追访 |本硕材料转验证,年薪35w

推荐阅读

换一换