前期准备
1月下旬-2月下旬:学习闫石老师的《数字电子技术基础》,除了TTL电路、可编程逻辑器件,每一部分都做到尽可能的理解掌握。在参加笔试面试后发现,这本书上的内容真的是太重要了,几乎每家公司招聘都会涉及到里边的部分内容!
2月下旬-4月初:先学习了夏宇闻老师的Verilog数字系统设计教程,然后学习了Modelsim的使用,将书中的代码写入Modelsim中并编写简单的Testbench进行验证。主要目的是通过仿真来理解一些基本的简单的数字电路,也是打基础的一个过程,理解的电路越多,你的基础也就越牢,Coding能力提升的也就越快。
4月初-4月22日:准备华为实习生的笔试,通过视频学习了System Verilog的一些知识。我投的实习岗位是数字芯片,笔试内容有数字电路基础、Verilog基础、System Verilog基础(绿皮书)、ASIC芯片综合以及时序分析等的一些知识。到考试之前,我只准备了前三项的知识,并且SystemVerilog只是学了一点皮毛,但是也通过了(66分),说明华为的笔试确实不难,如果你能多刷一些题,那么考个80分以上也是难度不大的。
4月22日-5月15日:准备华为实习生的面试,通过在网上(CSDN、知乎、微信公众号),找到了一些常问的问题,然后专项准备。这个时候准备的很多问题虽然实习面试的时候没有问到,但在正式秋招时很多也是涉及到了。华为的专业面试主要是自我介绍、询问成绩,然后主要是问项目(我没项目,所以让我讲了讲自己的研究方向),最后是手撕代码(串并转换),最关键的就是项目和手撕代码;综合面试主要是自我介绍、项目,然后会考察你的抗压能力,了解你未来的职业规划(这个挺重要的,听一个面试官说过,他们不喜欢对自己职业完全没规划的人),了解你的家庭情况,对华为的了解程度,为什么想来华为,等等一些常规问题,最好是认真对待,诚实应答,否则面试挺难受的,因为他们可能会刨根问底(比如,你说你喜欢华为,就问你为什么喜欢,你说你认为华为5G很强,就会问你对5G的理解)。最后的结果是综合面试未通过,综合面试官给的建议是,一定要有项目,不一定要很复杂,但是他们要通过我们对项目的理解程度来判断我们的能力,没有项目很难了解我们的个人能力!
参加了华为的面试后我发现,无论怎么自学,基础打得有多牢,但是没有项目是硬伤,公司很难接受。所以我开始想办法做一些项目,通过跟数字设计科班的朋友交流,发现可以通过做一些FPGA的小项目来获得项目经验,虽然FPGA跟ASIC设计有一些差距,但是作为入门教程来提高自己的Coding能力、项目能力还是很有用的。
5月20日-7月上旬:FPGA学习。买了块板子(有很多品牌,可以在B站上搜索,选一个教程更容易接受的品牌),通过教程理解了FPGA的工作原理,然后开始从流水灯、按键控制、数码管显示、呼吸灯、UART串口通信、E2PROM读写实验(I2C)等项目按部就班的学习,由浅入深,开始是直接用教程上的代码实现教程上的功能,之后完全自己写代码实现教程上的功能,再之后自己设计代码完成自己想要实现的功能。每次综合之后查看综合出来的电路,对于不太复杂的电路我都尽量去读懂。每次都去查看自己消耗了多少资源,然后通过改进代码减少资源的使用(还有其他方法,当时我只会改代码减少资源消耗)。
在6月下旬的时候自己开始做SDRAM控制器的项目,从读文档开始,一直到实现SDRAM控制器的功能,然后又将PC、UART模块、FIFO、SDRAM控制器、SDRAM芯片连接起来,实现了通过PC端的串口调试助手软件写入数据到SDRAM中,也可以将SDRAM中的数据读出并显示到PC端的功能。这个项目虽然不是很复杂,但是理解透了,也足可以应付一些不太难的公司的面试了。
7月上旬-8月上旬:进行了大量的基本电路的练习(手撕代码锻炼),学习Linux系统的使用,VCS的使用,如何进行DC综合等。浏览了很多的培训视频(B站上有很多,从Verilog语法开始到数字后端,不够清晰凑合着用,查漏补缺),开始投简历,刷题,然后秋招开始了!
秋招经历
联发科(IC设计工程师合肥岗)
8月7日笔试联发科:题目都是简答题,主要题目有:芯片设计的流程,根据电路画出各个信号的波形图,逻辑推理题,简述自己做过的项目以及自己担任的工作,Verilog写代码的题,C语言编程题(或者脚本编程题),按照要求画出电路图,简答题二选一(电路理论,信号与系统方面)。一共一个半小时,共100分,挺难的。
8月13日联发科一面:线上视频面试,面试官有两人,一男一女,都是做技术的。先是自我介绍,然后挑一个自己简历里边最拿手的项目讲一讲,期间面试官随时提问(所以一定要对项目非常理解),讲项目这一段自己控制,如果不想他们问太多其他问题,自己就多讲一些,因为面试时间一共四十分钟左右。然后问我IC设计流程是什么,自己的优势是什么,为什么想来合肥(尽量表达自己想在合肥定居的想法,因为合肥相对一线城市没有优势,面试官不喜欢最后被放鸽子)。最后就是问我有什么问题想问他们的(这个环节几乎每个面试都会有,所以提前准备几个问题,免得没得问尴尬)。还有就是我的面试过程是没有手撕代码的,本来正常是有的,但是联发科的面试系统有点不稳定,老是掉线,所以后半部分改为电话面试,就没法手撕代码了。
8月14日联发科二面:线上视频面试,面试官一人,合肥联发科的台湾主管。主管的问题非常多,都是一些比较灵活的问题:问我的研究方向是什么,简单解释一下?为什么想要做IC设计?IC设计很累的啊,你抗的住吗?为什么选择合肥啊,其他地方多好啊,上海、北京,都是大都市啊?你都是自学的啊,你怎么学的啊,简单讲一下?你的简历上写了你会VCS啊、DC啊,那VCS是干什么用的啊,DC是干什么用的啊?你的项目里STA、布局布线是怎么完成的啊?你的方向是工艺器件,你们组没有EDA啊,那你从哪里学的这些啊?说一下你的职业规划?你为啥想来联发科啊,它有啥吸引你的地方啊,你还想去哪个公司啊?你知道合肥联发科具体是做啥的吗?大致说一下你的家庭情况?你有什么想问的问题吗?
大致从这些问题可以看出来:主管会考察你的诚信,所以不要说谎,简历里边也不要乱写,不会的不要写上;考察你的IC设计的能力,不会要求很高,但是基本的要会;考察你对联发科的重视程度,面试是否有好好准备;考察你对合肥的看法,最起码有留在合肥的意向;考察你的抗压能力等
9月17日发offer
华为(逻辑上海岗)
8月19日华为笔试,内容跟数字芯片差不多,多了一些FPGA相关的知识(FPGA的基本原理,速度等级,同步异步设计)。
9月28日华为面试:自我介绍,简要介绍研究方向,学过的课程(与FPGA相关的),成绩怎么样?为啥想转方向?然后就是讲项目,根据项目问了几个问题(面试官吐槽项目太简单)?讲一下竞争与冒险,建立时间与保持时间,用的哪个板子,有哪些资源?FPGA如何进行时序约束?接下来就是手撕代码环节:
100MHZ时钟域的脉冲要求在20MHZ时钟采样,再延迟1us,产生新脉冲,新脉冲再用100MHZ采样之后送出去?要求5分钟写完。
最终结果是一面就挂了,面试官从一听说我的研究方向是半导体器件之后就感觉不太想往下进行了,问了很多的基础问题(其实基础问题我基本都答出来了,但是对于FPGA的时序约束我确实掌握太少),然后手撕代码写的功能和面试官要求的有偏差,最后一个always块有点错误,时间用了七八分钟左右。最后面试官的评价是代码能力偏弱,项目历练太少!
中兴(投的IC岗,提前批简历IC岗未通过,FPGA岗位的面试官捞了我的简历,所以最后面的是FPGA岗)
8月22日中兴面试:中兴对于我们学校免了笔试。面试比较常规,自我介绍,然后讲项目,面试官根据项目问问题。最后问了家庭情况,职业规划。大致在40分钟左右(一般都挺短的,我是第一个,所以面试的时间比较长)。
9月1日被锁定。
紫光展锐(数字IC设计天津岗)
9月10日笔试:本来是9月7日笔试,但是发了通知未发链接。考试题直接在网上就可以找到,几乎全是原题。原题意味着好多人都会,所以估计要相当高的分数才能通过笔试。
9月14日面试:首先是自我介绍,然后面试官问为啥投天津的岗位,其他地方可不可以。然后让我讲一讲自己的研究方向,问了我几个工艺器件的问题,然后问我想不想做后端、标准单元库之类的工作啊?我直接给拒绝了(现在挺后悔的,听说标准单元库类的工作也不错)。然后面试官说既然铁了心要转行,那就了解一下我学的怎么样吧?然后就是让我讲项目,问了很多极其细节的东西(都很难回答,毕竟项目做得也不是很完美,面试官很有水平,直接就能看出来我项目的漏洞以及不足),项目这儿大致用了接近三十分钟。最后让我问了个问题。最后面试官给的评价是,还可以,他这一面应该是通过了,但是地点不一定能分到天津!然后说可能会有二面,好好准备。结果并没有等到二面。。。
紫光展锐招聘的特点是面试的轮数越多,薪资越高,一面通过是白菜,二面通过是sp,三面通过是ssp。一面后未收到感谢信的估计可能是被放到池子里去了。
总结建议
最终拿到了联发科以及中兴的offer,被紫光展锐泡在了池子里。虽然结果不是特别理想,但是还是上岸了,希望我的经历能给未来要找工作、想要转行数字IC的同学提供一些经验和教训!下边是我的六点建议:
1、如果你的方向是器件或者工艺,并且并不是对于数字IC特别感兴趣,今年之后可以不用转行了,直接应聘华为,今年华为招聘大批量的做工艺器件的,薪资不会低于做数字芯片的。国内半导体制造真的要崛起了!
2、如果你必须要转行,建议考虑一下后端或者验证,竞争压力要小很多,薪资相对前端设计只多不少。秋招结束后,你可能会手握几个薪资非常满意的offer!
3、建议简历不要投太少,也不要投太多。投太少选择太少,投太多没法专项准备。最好多找几个参加校招的同学,组建一个小组,笔试面试题、校招信息、薪资等等信息都可以共享。
4、一定要有项目,并且对于项目要非常理解。无论什么面试,项目的内容以及你的理解程度始终是面试最核心的地方。
5、笔试多刷题,面试多看面经(知乎、牛客网、CSDN、公众号:数字芯片设计)
6、尽早准备
最后祝大家都能找到自己满意的offer!