无论是UVM验证还是系统C验证亦或是其它,大公司的普遍特点是做过多层封装、已经准备好轮子、各式各样的工具库。如果一毕业就进大公司,那你会在UVM等基础之上再学习公司封装的那部分工具、脚本或者是库,一旦掌握以后你接下来将会脱离一些初级的工作内容,简单来说这部分内容公司已经从效率的角度着手统一且优化过了,你只需要填写若干参数、让它构建好再进行二次开发就可以了。大公司的利益点是需要每个人都在其岗位上乘以效率参数以后进行工作的,这对于大公司机器是有显著好处的。
但有时候坏也坏在这一点,因为当你习惯每次出门都脚踩风火轮时候,你以为你生下来就是三太子转世金身护体的。大公司在流程、工具、脚本等多个层面都有多年积累,可以让你舒舒服服地留在这家公司,每天摸摸鱼也能把工作搞定,再鼓励你做做工作改进,于是这样的层层裹裹的封装就越来越厚,以至于有的时候你还需要捋一捋哪些内容是通识、标准、IP、基础技术,哪些知识又是仅限于这家大公司的环境、流程、自研、未公开技术。如果要考虑以后跳槽,从大公司到大公司,你大概见过了猪跑也吃过猪肉,换家公司也能较快适应。但如果从大公司到小公司,那么你可能需要自己养猪才能吃到猪肉,但这个养猪的过程未必是你想做或者能做的了的。
再换到一家中型公司,是按照他的规模还是按照他成立的时间,这里假定规模和成立时间都已满足中型公司吧,那么他也会有自己的流程、工具,只是可能没有大公司那么好用,毕竟做这些CAD相关工作是需要专门的人力和资深经验的。如果公司缺少CAD工程师,那中型公司往往会由工程师从工作实际出发来做一些点状的流程、工具、脚本来弥合日常工作需要。一句话,用倒是也能用的,就像BYD还没有出爆款汉之前,还找不到车型对标特斯拉的Model3。处在中型公司时期,每个组都已经有意识要做提高效率的事情了,但就是公司整体没有到达一个阶段就跟华为当年斥巨资师从IBM一样,就像每块田地都在改良种植,但下的不是一盘棋。这种肯定要好过小公司、初创公司的原始积累阶段,毕竟有一定时间可以做做提高效率的事情,但做为新人加入这些公司的话,要多留意公司做得好的地方和还有待完善的地方。
在这样的中型公司,你只要肯思考挖掘,一定有你能扎钉子将想法实现的地方,有一定的灵活度,即便你不是CAD只要你有想法,你也能从框架到实现再到方案推广,将你的代码遗产留在这家公司,这往往是大公司不会带给你的另外一种成就感。此外,中型公司的流程、工具、脚本这些东西也没有嵌套得太深以至于爹妈都不认识的程度,所以你还有机会去一层层剥开,去理解它的实现细节,借鉴它的思想,再将它转换为你的东西。
大公司在代码层面会有framework、layered methodology、coding style,小公司往往没有这些,而中型公司的话可能有一部分在里头,比如有的公司会有framework,有的公司会基于UVM之上推一套自己的layered package,也有的公司要求在测试中访问寄存器、激励、数据比较等步骤按照一定的编码风格。又或者有的中型公司不同的验证组之间,各有各的工具箱,互不干涉但也较难跨部门最终统一起来。
那作为一个新人,在对以上的点难有一个全面理解的情况下,还是更推荐去大公司,知道某家大公司的框架大致是什么样的,这样即便2-3年后换到某家中小公司,也能知道以前自己每天的工作中提取测试点、写测试平台、实现测试用例、调试设计和验证代码各用去多少时间,这个比例是否换了一家公司以后有较大的比例变化。比如写测试平台、调试测试平台甚至调试流程、环境都用去更多的时间,那么这部分增重就是工作环境不稳定所导致的。知道了问题出在哪里,才有机会在工作稍有闲暇的时候做一些优化,即便享受到这个便利的人一开始只有你,但你也减少了加班时间。
如果一个新人进了一家公司,尽管芯片产品已经有系列推出了,但内部设计、验证的流程还多有不足的情况下,他往往需要疲于奔命做项目,而又找不到哪里出问题了,甚至他可能觉得加班就是新人的宿命,但其实他有机会看看猪跑的。
对于大公司而言,法治大于人治的地方占主要比例,年轻人遇到不懂的地方,有很多文档可以去看去琢磨,而后才是去问老同事整个事情脉络;对于中型公司而言,从效率上面会比小公司、初创公司要好,但你懂得,能用和好用之间还差着许多的一点点,这些一点点也是逐步改善的工程问题,或者全局统筹的推倒重来。新人很难意识到这中间的差别,但他一定有机会在大、中、小公司之间游梭一轮。等到那个时候,就能理解大、中、小公司的差异了,但对新人而言,有机会去大厂的,还是先去打打螺丝,见见世面蛮好的。
至少,咱们能知道抖音小红书上讲的芯片,和实际上要参与复杂工程的芯片,简直就不是一个东西好吧……所以呢,从新人规范做事方法来看,毕业先去大厂打工有普遍的意义所在,在芯片、验证、乃至UVM这个点上来看,背后的逻辑都是一样的。
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。