硬件ASIC full-time求职总结

avatar 57946
hhx821982
26139
52
刚VP approved,为了回报地里给为前辈同仁的信息与帮助,在这里把自己硬件ASIC全职求职过程以及一点心得体会和大家分享一下,也希望论坛越办越好,帮助留美华人群体不断壮大!{:4_81:}

先按面试过的公司大概为大家捋一下流程吧:

Marvell:

著名的ASIC大众情人公司,7月份刚投简历没多久就有组给我发电面,还耐心等到我八月份回来再打电话,还是蛮感谢的。一共有拿过四个组的面试,第一个CPU组时差还没倒过来发挥的特差被毁三观就没消息了,第二、三个verification组一个是急着要人,另一个自己脑残问了一个不该问的问题就都没然后了,最后一个SOC组给了onsite,让我skype面5轮,因为主要做中端synthesis所以对ASIC design flow要求较高 (这个之后会细讲)。前三轮技术面出题简历与介绍都蛮顺利的,话里话外都要放口头offer了,搞得自己提前放松,结果第四轮HR manager姐姐来了一个数学证明题考逻辑{:4_105:},弄的自己措手不及,加上第一次onsite经验太少不知道该怎么调整节奏,于是便连跪两轮(包括第五轮的perl), 所以很可惜的没过。。

Marvell这两年招人形势貌似都不错,前中后端各个组两栋楼都有放opening,个人感觉,一方面自从移动终端市场崛起后,芯片的用途被大大扩宽,各大公司在不同领域都在重新洗牌。Marvell之前做SSD,后来加上chip set,之后又在手机芯片吃掉了Intel的份额,市场扩的很宽,这也是为什么作为一家硬件公司把前中后端基本包完了的节奏(管的最宽的还是Intel)。家大业大了之后嘛,招人是不可少了啦。另一方面,Marvell的待遇在大公司中偏低,加上组员skill set往往很广,有轮值的的习惯(怎么感觉这两点都是老中工程师的通病,和烙印一比差别顿显),所以组员流动性较大,自然也给新人提供了更多的机会啦。自己由于第一家就面它,经验太弱没把握住机会,各位童鞋伙伴们还是可以多多关注它的哦

Nvidia:

没错,就是那个笔记本Intel标志旁边绿色眼睛标示的公司,垄断GPU市场多年(虽然这两年情况有变)。给了我一个verification组的电面,第一轮问简历还是蛮欢乐的,过个礼拜第二轮的时候在线编binary tree(咦,这不是CS公司的节奏吗),然后深挖cache,感觉一般就没然后了。

Nvidia感觉算是硬件公司中的软件园了,这次说是招GPU verification,但组里用的都是C/C++,感觉更适合码农们踊跃报名(profit margin蛮高的),作为硅工的我没下文也正常。至于公司自身吗,同上文的marvell一样,受到移动终端发展的影响,也开始转战mobile GPU,只是不同于marvell抢其他人地盘,nvidia的市场反倒在被挤压,也许是技术上一旦没占到先手资金又跟不上就注定要在战场上厮杀了而不是坐享其成了吧。公司待遇在湾区比average高不少(对比marvell),组里印度人掌控的现象不强,对于软硬件的童鞋们都是一个不错的选择哦

Qualcomm:

很奇怪作为硬件评价最高的公司之一,高通居然搞了接近两年的hiring freeze,然后今年又开始招人了,然后把我的简历递给了一个名字叫memory实际做physical level的组,然后电面善良的面试官直接说我也不知道HR在想什么,要不帮你内推到其他组吧,然后。。。确实内推了,反正到现在没消息。高通不多做评价了,个人建议,能投就投,能推就推,蛮好的一家公司,进去了很高大上的哦{:4_100:}

Juniper:

从它家总算还是拿到一个蛮合适的offer,所以才有脸来地里求轻拍{:4_86:}。 本来刚开始投简历的时候没有太关注这家公司,毕竟做通信设备出身,不是像之前几家纯偏芯片。面我的是ASIC team at Boston area,唯一一个不是加州找我点。第一轮manager问简历,第二轮skype出题编verilog发过去讨论,觉得孺子可教也然后就给onsite了,终于可以花回公司的钱出门了(marvell居然懒得出机票钱,skype就打发我了。。。)。onsite一共六轮,难度高于marvell,但都还是ASIC前端设计与验证,verilog为主,UVM与C为辅,前五轮都是技术面,题都答出来了,沟通的也蛮顺利的(紧张就深呼吸,管用)。第六轮manager介绍性的问了问觉得positive就给了口头offer,然后带我去芯片成品测试车间逛了逛,又是聊芯片路由器终端,又是聊性能低功耗设计散热,感觉这小子实在是有备而来过两天在加州的HR就给offer谈package了(Boston组里的人面完就没事情的了),等到现在approved算是最终定下来了吧(师兄师姐说给offer接了就是定下来了,看来我还是胆子太小{:4_92:})。待遇从绝对数来讲中等偏上一点,算上地区因素可能还更滋润一点(westford的税和生活成本相比于湾区还是有优势的),身份政策也蛮给力的,终于可以松一口气继续享受engineer的美(ku)好(bi)生活了{:4_81:}~

/*----------------------------------------------------------------------------------------------分割线1------------------------------------------------------------------------------------------------------------*/

对于东部学校的VLSI专业来说,实习和全职都不占地利,尤其是Rochester这个极少被硬件公司光顾开career fair的地方。下面我从个人角度抛砖引玉来聊一聊求职的准备以及行业的发展,也希望地里各位前辈同仁能多多指点。

求职和面试,自身的知识框架搭建与积累是基石,那我就先从ASIC design flow为主线拉一下相关知识储备吧。

前端:design specification, architectual design, functinoal verification

design spec估计每所学校的VLSI导论课都会讲,但就像我一个PHD师兄说的一样,搞硬件就是在前端与后端之间反复来回才能不断取其精髓,实际要把对delay,power,area以及更多细节的spec落实下来需要之后verilog,systemverilog,tcl,sta,place&route等等一步步大量反复工作。总之,上导论课可以试着把概念植入脑海作为design idea,为之后的学习工作做好guidance。

架构设计是重中之重,估计也是多数学校课程重点,其中以CPU架构设计与mem controller为重点方向。前者从基本MIPS pipeline到cache到tomasolu out of order,后者DDR2/3 controller都是工业界关注的重点。曾经的RISC与CISC之争现在已经开始慢慢融合,各取所长,看上去越来越复杂的pipeline实际上已经有了一个大致的方向,只是memory system反倒成了问题,所以面试的时候如果写了tomasolu就问tomasolu,没写就着重问cache,再没写的话。。。CPU组估计与你无缘了。总之,个人感觉架构设计是整个ASIC流程中最有难度的一环,连接OS与VLSI,之前一起上架构课一个大神找了大牛老师读架构博士,另一个觉得硬件来的太慢主攻OS去了,剩下我跟在后面姥姥不疼舅舅不爱继续坚守VLSI{:4_85:}。唉,其实见多了大神自己心里反倒会平衡一些了,也就慢慢静下心来了。

functional verification估计学校教的不多,原因很简单,课程里那些设计用个testbench做functional simulation就足够了,没必要搭一个UVM平台费时费力。但换到工业界,设计量往往巨大,单纯用仿真已经不能满足测试要求了。而前端测试基本要满足bug near free,否则后面综合和layout的人还怎么活啊。。anyway,UVM说起来复杂,其实基本原理就是做一个测试用的model,和实际设计的DUT在相同输入环境下对比输出结果。具体实现起来需要In/Out agent(sequence,sequencer,driver,monitor),virtual interface连接DUT,reference model做对比,scoreboard做比对,中间还有各种port,fifo。面Juniper的时候测试组的头头和我说做测试的代码量一般是做设计的10倍左右,对比可见。

中端:synthesis,sta,dft insertion

做好RTLcode, 接下来就是把代码综合成实际的schematic netlist了。不管是Cadence RC 还是 synoptic DC,用的都是TCL。根据自己的设置它会输出一系列报告,用perl将报告中自己感兴趣的方面提取出来分析,然后要嘛改TC了,要嘛回去改RTL,知道最后各种report达到要求为止。DFT insertion学校里也很少接触到,这是因为学校一般没钱给学生做fab,反正做出来也是一堆废板子。DFT是在fab之后检查flip-flop用的,所以在synthesis的时候就要给每一个FF加一个mux变成scan-FF,之后fab完用ATPG加input vector,再用ATE调到scan mode。不过面试官知道学校不怎么教,也不会问的太深,觉得这一块头脑清晰逻辑分明就蛮好的了,别汗哦~~

后端:floorplan, place&route, cts

综合生成的std cell网表还要做成layout才能发去生产。floorplan主要是给各个模块在芯片区域上大概规划一下地盘,哪一块是mem,哪一块是ALU啥的。之后就把cell按网表place上去,然后在一层一层的route,最后再加上clock tree(cts file)。值得注意的是工业界中因为每一步都会向TCL file中加入新的约束,所以每一步之后都需要重新做一次STA,检查setup,hold等等。

大家也能看出来,越偏生产的环节学校做的越少,而工业界又有需要,所以中间的差距就只有自己下来补咯。这也是为什么我在这里格外强调知识架构的重要性。一方面,一个清晰地知识框架会让你在学校的学习研究有的放矢,做到有条不紊。这一点对CS也很重要啊,CS说是一个大类,其中细分无数,基础是算法,往后一条走OS,一条走数据库,再上层还有网页前端以及应用app,可不只是刷体那么简单哦。另外,在准备面试的过程中总会遇到许多自己陌生的知识,一个清晰的知识框架能更好的帮助自己定位所欠缺的东西,并能够结合前后理解掌握,即使没有太多实践经历,但在面试过程中能一五一十的把自己的理解清楚地表达出来会给面试官一个很好的印象。

/*------------------------------------------------------------------------------------------------分割线2-------------------------------------------------------------------------------------------------*/

好了,现在说到面试,当然第一步是简历啦。关于简历怎么写地里有太多的前辈总结,肯定比我能讲的多得多,这里只说一点吧,那就是尽可能突出重点。就像蒙古军队从成吉思汗到速不台,每次以小克大,战略上与对手最大的区别就是突出重点,主力就是主力,偏师就是偏师,一正一奇,往往收效颇丰。你要找哪一类的职位,就把哪一类的project集中分类展示,不相关的能省就省掉,这样你的重点也突出,人家看起也方便,自然拿面试的几率更高咯。

电面多数问简历,注意一下一些细节,比如project中做的processor频率啊,cache的size啊之类,之前在这上面栽过,希望能帮大家少走一点弯路。

onsite技术面的话一般分这么几类:

1. 简历的project:

这个最好准备,毕竟主动权完全在自己手上,巴不得人家多问这一块自己熟悉的。首先是简短清晰地介绍这个project,然后会有画出框图走一遍流程,细节一点会要求讲一下具体算法、波形以及compiler code,再讲一讲改进。

2. 概念题:

附一个链接吧asic.co.in。这里面涵盖还是蛮广的,不过有些只是略过,细节还需要自己继续google深挖。不过能有一个guide总还是好的,毕竟概念先理解,不能理解联系自己的知识体系解释,不能解释就硬背,总能过的。

3. 设计题:

这个变数最大,一般会给出一个design spec(或是input output),从框图或是状态图画起,再在白板上写code(Verilog为主,C为辅,会比较关注链表)。不写code的话一般会画波形图解释。中间多注意和面试官交流。比如面Juniper onsite第四轮的时候有一道题开始没有头绪,聊着聊着接着面试官的提示就想出来了,然后一步步从mem架构到read、write波形就做出来了,而且人家也觉得聊得蛮高兴的,自然positive咯。附一个面试设计题链接吧bawankule.com,很多题答案都是开放的,训练出解题思维方式之后就一通百通了。

一般onsite每一轮会从上面三种出2~3道题细讲,再问问概念和behavior。Behavior建议不要轻视,准备一个常见问题和自己的答案,回答的时候语速慢一些清楚一些,再带上中国人特有的眼神和微笑{:4_86:}

/*-------------------------------------------------------------------------------------------分割线3--------------------------------------------------------------------------------------------*/

再聊聊自己知道的一些行业信息吧,也希望能抛砖引玉向各位多多学习。

硬件行业这两年就业形势在走下坡。高通终于结束了hiring freeze但依旧高冷。Intel和Apple总觉得可望不可及,多数需要工作经历或是PHD。Broadcom本来是招实习大户,好多人去UCI就奔着它来的,结果。。今年搞裁员,硬件类部门裁掉接近5000,内部实习生消化一半,剩下寥寥无几的opening因为实习生新人太多也多要senior level,一度analog的opening比数电还多。Oracle去年小高潮,好像是因为要新出CPU使劲招人,当然还是有GPA划线,今年貌似硬件招满了。。9月中才开始零星放entry level,之前投过的senior level HR实在看不下去了直接和我聊邮件说我们这儿现在真没有entry level的坑儿,要不你再等等。Marvell一直在招人,如前面说的,但给的待遇略低,不知道是不是有台湾老板吃透了中国留学生小九九的原因,而且华人比例实在很高,好多组的工作语言都是中文,这个有好有坏,不过感觉在烙印慢慢把持中上层的硅谷能有marvell nvidia apple这样华人话语权相对较高的公司在还是蛮欣慰的。

再来聊聊我现在要去的这家Juniper吧。Juniper和思科华为同属通信设备公司,本来是和思科分地盘全球第二的(当然比思科小不少),但近几年用“无量头颅无量血”一步步做起来的华为力道越来越大,已经超越Juniper直追思科了。这三家公司各有特点:思科重在设备整合,Juniper提出芯片自主开发(所以才有了给我的坑儿),而华为虽然技术上暂时没有领军项目,但低一层的设备做的非常扎实,而且从战略、销售、技术三个方面勤勤恳恳做了这么多年,从中国通信四巨头中脱颖而出一家独大,继而利用国内用工成本低的优势(Juniper招我的待遇够华为招6、7个人了)开辟海外市场,当然在美国因为打着反垄断名义的保护主义影响还比较难(中国对于高通等等亦然)。现在通信市场正在向网络通信发展,各家都在抢制高点,不过这三家之间除了竞争之外还有共存的制衡作用,估计短时间内局面不会有大的变化,长期的话就是公司战略与市场发展的问题了。作为尘世间一小小ASIC engineer,自己顺势而为吧。

再聊聊我身边小伙伴们的情况吧。U of Rochester名声还可以,但在ECE/CS领域并没有受到太多关注,这对于我们这群中国留学生来讲感受更加直接。而且作为留学生,在国内总觉得会有些异样的眼光。比如之前CE的一个朋友回国内某外企实习,身边的本土硕士们就会有些闲言碎语,无外乎是觉得留学生家里一定有钱云云,搞得我那个同学蛮调整了一阵的。作为留学生群体,我们也是同龄人中的一份子,来到了一个更为健全的国度,同时也面临着更为激烈的竞争。我们这一届到现在为止,CS有一个找到工作,ECE拿到全职offer的还只有我一个,可以三学期顺利毕业,甚至连VLSI上一届的好多师兄师姐都还没有找落,都准备考虑转软件了。我写这篇帖子,也是希望为身边以及上一届的的师兄师姐小伙伴们打打气加加油,同时也为自己的未来鼓劲,从开始哭着嫉妒,变成了笑着羡慕,时间是怎么样滑过了我刚满23岁的皮肤只有我自己最清楚。

最后,祝各位学业顺利,工作如意,也希望地里各位前辈同仁能不吝赐教。我的Linkedin用户名是Haoxiang Hu,还希望能有机会与更多在美国奋斗的国人交流学习{:4_95:}
  • 61
52条回复