背景:本硕双非 电子类非集成电路专业
研一学习了部分java.python的知识,但在看到师兄java就业的情况后决定另寻他路。研一结束研二暑假时在了解到验证这个岗位以后开始学习verilog、system verilog,跟着v0课程学习一段时间以后,报v2x开始系统的学习了system veriog、UVM等知识,由于研一学习过java、python等语言,system verilog学习起来感觉难度不大,上手也较快。在把秋季班的项目学习完以后,年后开始找实习。
4月份到一家小公司实习,实习的项目和路科X模块的难度差不多,部分稍微复杂一点。小公司由于人员紧张,所以也没时间对你进行培训,不过认真学习完路科项目后应对实习项目完全没问题。
实习期间做的工作就是验证环境搭建、测试用例编写、覆盖率收集分析、撰写验证报告。实习期间遇到最多的问题,大部分都是验证环境的问题。由于公司没有很有经验的验证人员很多问题都需要自己摸索,验证过程中至少有三分之一的时间是在找自己环境的问题,有的是粗心造成的问题,有的是对SV语法理解不到位造成的问题。对自己的验证环境熟悉以后,验证最大的困难在于如何将测试点转化为测试用例以及验证数据(scorebored和参考模型的编写),对于新人来说可能需要与公司leader共同确定。在初期遇到波形异常情况时,对我来说,去抓DUT内部的信号也是一个较为困难的事情,这都需要设计人员和我一起debug,所以对于验证人员来说,理解RTL代码也很重要,这将决定在你遇到波形问题以后,解决问题的时间长短。
在实习期间也尝试过投递简历,由于背景原因收到的反馈也较少,在实习过程中,也是一边实习,一边看与笔试面试相关的知识(8月份左右开始)。在9月中旬结束实习以后回学校秋招。整个秋招基本公众号推送的招聘都有投递,但是大多数都是没消息,最终到秋招结束,有面试6、7家公司,其中有几家是线下宣讲并笔试的。有2、3家技术面通过,但是或许是因为背景原因最终未通过面试,最终10月中下旬通过一家到校线下宣讲企业面试并签约。在秋招前期,基本是很难有机会拿得到面试,自己就是单纯尝试一下。面试的分布情况基本9月和10月各占一半,但是10月都是线下投递的公司。面试的机会对于背景不够的同学来说较少。
项目:在面试前必须对自己的项目足够熟悉,不管是X模块还是实习项目,必须对模块的功能足够熟悉,面试官可能对你做的模块不熟悉,但是会通过你的回答来判断是不是真的是你自己做的,面试前最好准备一个项目的框图,介绍项目时根据框图进行介绍。
八股:除了项目之外,相关的八股也必不可少。八股包括:system verilog、 UVM、Verilog的基础知识;IC全流程的基本知识,例如和验证相关的流程后仿真(我就因为没回答出来后仿真主要干嘛,和前仿真有什么区别被挂过)
其他知识:项目相关的知识点也必须熟悉,比如若是验证一个算法相关的模块,对于算法的原理需要了解。如果是接口相关模块,例如AHB接口等,最好要能够知道怎么实现简单的driver,面试过程中可能会手撕。关于实习:背景好的同学不用学完X模块也能找到实习,背景不够优秀建议学完X模块以后预留半年以上的时间实习,找实习时,可以通过招聘软件联系HR询问公司是否招聘实习生(有的公司不会专门写实习生的招聘)。
关于投递简历:建议多线下投递,参加学校宣讲,一般线下宣讲都会线下笔试,然后面试,有的公司只线下筛简历,线上投递由于简历太多,背景不够很难有机会。