先简单和你说下我的经历,给你点信心。
我大学学的自动化,第一份工作是软件开发,windows桌面应用,用C和C++;第二份工作本来还是某为终端的软开,但因为个人原因入职推迟了三个月,最后被调到了某思芯片验证,HR和我沟通的时候,我一脸懵逼,完全不知道这个岗位是干什么的,对IC行业更是零概念,但事已至此,只能硬着头皮上。
整个我们那一批几十个新人,只有我不是微电子相关专业,也因此我那前三年经验清零,薪资和应届生一模一样。然而令我惊喜的是,我之前的软开经验给我做验证帮了大忙,由于扎实的C++基础,转到SystemVerilog几乎无缝切换,写参考模型比谁都快,多复杂的模型都不叫事,研究VMM源码毫无压力,然后我就有大量的时间去debug,去模仿,并厚着脸皮向设计工程师提出自己的看法并讨论,从这个过程中逐渐去了解和学习设计是怎么做的。前四年我虽然一直在做验证,但所有DUV的设计代码我也同步摸透了,借助公司强大的资源库我内部培训机制,设计的基础知识与基本技能也尽在掌握。然后在一个升级改造项目中,我提出转岗申请,分到了一个改动规模不大的小模块,从此开始IC设计之路,到现在一晃又十多年了。
ic验证转ic设计的难度大不大?我觉得是不大的。
首先你没有跨行业,验证也好,设计也好,你工作日常接触的东西其实都是差不多的,流程、规范、平台、软件几无差别,不会有陌生感;其次验证与设计工作不是割离的,你每天发现问题,定位问题,和设计工程师一起解决问题,借用一句俗语,你没吃过猪肉总见过猪跑吧,经年累月的耳濡目染,你对设计的基本套路绝对是有概念的,除非你平时工作中是Testcase一fail就无脑丢给设计的甩手掌柜,如果这样作为验证工程师也是不合格的哦;
所以这个难度大不大,主要取决于你的决心大不大。知乎上跨180度转行的都大有人在,你这个只能算换到相邻车道而己。
知识储备也不高深,我当年和微电子唯一有点关联的储备就是大学学过模电和数电,模电还差点没及格。你现在做验证,我默认你是转数字设计(模拟一般不用验证这个词),那么,逻辑代数会吧,说白了就是与或非这些东西,寄存器概念有吧,verilog的always块会写吧,阻塞与非阻塞赋值的含义和区别了解吧,如果都会,恭喜你,你具备了做设计的基本条件,因为你可以写出一个仿真平台上能跑的设计了;然后往接近实现的方面靠一点,上点时钟概念吧,什么是同步,什么是异步,什么是亚稳态,减少亚稳态的方式,异步之间怎么穿,再上点复位概念,依旧是同步,异步,以及穿时钟域时怎么处理,好了,你的设计能力又进一步了;有了时钟就要有timing了,那么时序路径的概念了解一下,setup/hold time了解一下,电路的工作频率与时序路径之间的关联性,怎样分析,怎样改进,这里可能会要玩下工具脚本之类的,DC做做综合,PT做做STA,用TCL脚本辅助一下,好了,到这一步你的基础打完了。当然这只是一个粗放的骨架,你还需要去琢磨细节,无非就是在频率、面积、功耗之间周旋,那就是一个长期积累的过程了。
至于会不会卡学历,验证的学历难道比设计低一等?不存在的!确实,以前国内绝大部分IC设计公司不重视验证,更有甚者认为验证可有可无,设计工程师一手操办了完事,但现在这种不正确的观念已经很大改善了,很多公司都开始组建专业的验证团队,资深验证工程师更是一将难求,验证设计完全是平起平坐了好吧。你的学历能做验证,那就可以做设计,毫无疑问。但如果你是既想换岗位的同时也换公司,这可能真有点难,因为你没法用你上一家公司的验证经历去说服下家相信你能做好设计,所以我觉得如果你想换,最好是像我一样,先从公司内部转岗,大家都是熟人,有商有量的就好办多了。
上面所有说的这些东西,纸上得来终觉浅,一定要有一个实实在在的项目让你去做,解决一些问题,才可能真正成为你的知识储备与技能。沉下心来慢慢练,有句老话叫“板凳要坐十年冷”,放在IC行业最合适。
最后,再问一遍自己为什么想转设计,我当年转是因为做验证很难走到架构师的位置,而设计相对容易走通,但那是10多年前了。上面我也说了现在验证在行业内的地位得到了快速提升,一颗芯片的成功,验证同样功不可没。如果你是真的喜欢做设计,那就大胆转,但如果你只是担心验证前途渺茫,讲真的,大可不必,深耕下去,未来收获得可能会更多!
作者:luckyyuhua
链接:https://www.zhihu.com/question/404862844/answer/1317988425
来源:知乎