USC EE VLSI 选课/找工经验分享

avatar 610912
MagellanGYZ
12358
34
有些内容省略了,因为地里,或者其他地方讲usc vlsi的帖子都会提到。本帖在b乎也有发布,而且那边编辑更方便,搜相同标题即可。本帖是入学后的经验帖,至于要不要选择usc vlsi不作讨论。很多对课程的看法纯属个人观点,多看几篇帖子,入学之后多问,更准确。

背景:22年6月陆本测控专业毕业,22fall入学,23fall(23年12月)毕业。无实习,24秋招国内国外都投了,最后入职了一家湾区公司的数字设计前端。

选课:22fall: 457 477;23spring: 533 552;23summer: 560;23fall: 557 658。一般来讲,28分/7门课可以分配为3个学期+暑假560,或者4个学期(一般是出于暑假各种原因没有上课,或者想多一个学期找工作,这两个原因)。第一学期一般457+477比较固定,所以有些地方看不明白的话,第二学期选课前再来看帖子也不晚。

457:很难跳过,也不错,略过不提。

477:基础的后端知识,这些东西其他岗位也会问到。但只是应付面试的话自学足够,我认识有人就没上。但一是477作为前置牵涉太多,不上容易把自己堵死,二是。。对自己的自学态度/效果要有清醒认知。所以还是上一门后端课比较靠谱。
但我一直又觉得477和577a拆成两门不划算,毕竟一门课就九千大洋,因此,强烈建议尝试477placement考试以省略掉477直接577a,但至于能否通过,比较看个人操作,而且第一学期刚来,似乎赶不上考试。我就因为不想上两门后端课,就舍弃了577a,从而也舍弃了577b。另外,如果是shahin上课,那么这门课某种程度上就废了,他比较混,给分倒是不错。听说pedram的会好很多。其他课如果碰到shahin的话同理。
大部分人还是会按部就班把77系列三门课上完的,有很多帖子会讲这三门课讲什么,入学之后也会有很多信息。

552:异步电路,确实如其他帖子所讲,毫无用处。能在这门课上学到的systemverilog很少。不建议浪费这个钱。但可选的好课有没那么多,所以要是最后一个学期实在没什么可选了,也不是不行。

533:纯前端设计,目前仅春季开课。这位韩国老师的黑点主要在于他的lecture几乎不传授东西,就只在那吹水,属于不得不浪费的时间。大家主要奔着project去,他的另一门课542同理。他是做网络的,两门课都与网络有关,只是一个硬件一个软件。但不需要学过网络,目前也没有把450当作前置。
做project的过程会比较折磨。能抱上好队友大腿自然不错,没的话也多向GitHub/学长/老印请教。听说24年的课程会更新实验平台,那么过往经验可能会失效一些,但也应该会少很多麻烦事情。
项目本身比较有特点,上的人也不多,全是自己写的代码,因此和面试官的讨论空间比较大。早点在简历上写上这种适合用来在面试中讲的项目,有助于提前适应秋招。暑假的560相比533,不适合作为自己的主要项目来进行展示,后面会解释原因。我面试几个月全是靠这个做自我介绍。

560:名字叫digital system design,目的是让大家接触更多的topic:cpu,cache,pcie,axi,gpgpu,ddr等等,以拿到面试。
(之后的部分如果还没上560可以不用看,上完再看就可以。且以下经验均以甘地23年暑假的560为基础,很可能24年新老师有很大改动,但不需要悲观,因为甘地作为老师其实挺让人折磨,并不是像一些帖子说的那样那么完美。新老师Mark Redekopp风评还不错)
显然两个月把这些都学明白是不可能的,所以这是一门修饰简历的课,让大家能先写上去,拿到面试。如果真拿到面试了,一定!要把自己写上去的topic重新学习一遍,搞懂自己做的,和实际标准,或者面试官知道的,之间的关系。知乎牛客公众号,都找来看一看。
解释一下是这个意思:由于每个lab时间很有限,而且要写执行具体功能的verilog,lab里面有大量极具甘地个人风格的处理,包括名词,执行逻辑。这些内容一般是为了降低理解/写代码的难度,常常是由几年前某个TA发明的。这无可厚非,毕竟这就是design嘛。但我很长一段时间都搞不明白,哪些是具体的design trick,哪些是标准的要求,哪些是大家都能接受的术语。换句话说,把560变成面试官能听懂的东西很重要。最典型的就是cpu(tomasulo),axi这两个lab。
我简历上写了tomasulo,pcie,axi这三个。cpu岗位必问tomasulo,soc岗位爱问axi,pcie一般是简单问两下,除非这个岗位就是做pcie的,或者面试官做过pcie。pcie lab问题不大。axi lab简化比较多,所以课下要多学一下。tomasulo可以考虑搭配557服用(后文介绍)。同时由于甘地的完形填空式verilog lab,真要练习verilog得靠533,577b这种课程。

557: 架构。可以这么说,560是从verilog的角度讲这些东西,让你能写简历。557不提verilog,而是讲这个东西实际中到底是怎么设计的。老师murali讲课很不错,是我觉得我接触的老师里面讲得最清楚的,是软件出身(他说自己没写过一行verilog)。还有一个新老师Christopher听说也不错,但是更偏硬件一些。还有一个walters听说不推荐。
如果面试cpu的岗位,只靠560那一套tomasulo容易让面试官糊涂,面试官听不懂560的名词,但能听懂557的,在557的背景下对着面试官讲560效果比较好。cpu岗位还爱问coherency/consistency,也是557讲的最清楚(虽然我还不是很明白,太难了)。再加上分支预测,缓存prefetch等。如果想面试cpu design,那一定要去557。架构的话当然也需要,不过架构我觉得没背景的ng很难进。这门课更多是学知识的(作业考试那种传统型),不是项目主导,不太好写简历(我是没有写)。

658: DFT。某种程度上和533类似,上课根本听不明白,考试全靠油管一个台湾教授的视频。project全是cpp,全靠GitHub/队友/chatgpt。作用就是让自己可以投递dft的岗位,增加就业机会,整体还算推荐。但比较难抢,所以早点注册。而且给分一般。
其他课程如599,680等都可以考虑,慢慢了解。

找工:国内一般开始的都早很多,秋招的话七月底就能搞个提前批什么的,而且相对好拿面试(但不代表好通过,也是一年比一年卷),所以是很好的练习机会。不管以后是不是想回国,都可以多多尝试。早点准备没有坏处,多了解国内的行情也没有坏处,可以及时调整策略。
能找到实习自然是最好的。从这个角度来说,spring入学更好,因为第一个暑假560上过之后,找来年的实习成功率高多了。
岗位上,个人感觉,dv最缺,然后是后端和dft,前端的话大厂招ng的比较少(我至今也没拿到过那些大厂的design面试)。dv呢学校又不开课,所以得自学,我也没有学过就不多写了。后端一般是577a,有同学也报了国内的网课。dft的话658足够,到时再问问做dft工作的学长学姐。前端就是记住那几个八股问题,熟悉一下verilog的小问题,和自己的项目,和公司可能爱问的topic。刷verilog题比cs的刷题简单多了。当然实际执行会复杂很多,所以只能建议多实战练习,国内公司的hr也是要刷kpi的。
美国这边找工并没有国内统一的“校招”这么个东西,所以如果不是简历很出彩,漫无目的的海投属于浪费时间。多在LinkedIn上问问学长学姐组里有没有机会;多用几个平台(比如handshake);多找找那些中国人比较多的公司(国内公司在美国的site,我最后去的就属于这种类型),然后去投。美国人很懒,总是到十一二月了才有大量岗位/面试消息,不要太急。

求米看文章!
有问题随时提出。
34条回复