感谢作者water同学投稿,投稿方式见文末。
秋招前期准备
1
基本情况
先说一下我个人的基本情况,本科双非硕士某211通信专业。硕士期间主要项目方向是做通信算法的硬件实现。
在硕士期间主要是参与了两个实验室项目,都是FPGA相关的。由于实验室项目都是基于FPGA开发板进行实现的,所以在做实验室项目之前也自学了一些数字IC设计的相关知识。在秋招过程中感觉相对于往届师兄师姐来说感觉整体较为困难,拿到的offer也不算是很多,困难可能也是因为一些公司、研究所投递的较晚,一般前面招满了后面可能就不会再招了。
秋招拿到的offer有:鼎信通信、中兴、ADI、华为(泡池子)、安路科技、中电41所等。
2
学习历程
由于我的实验室项目是跟FPGA开发有关的,所以我研二开始找工作的方向就是FPGA开发和数字IC设计两个方向,从去年10月份开始我大体上学习计划分为一下几个部分:
(1)Verilog基础:
在这一方面我开始主要是看的夏宇闻老师的《Verilog数字系统设计教程》,因为感觉好多人都是看的这本书,师兄师姐也给我推荐过,所以我就主要是根据这本书学习的一些Verilog基础语法,自我感觉还是写的不错的。
我是从去年10月份开始刷HDLbits上面的题,这个网站主要是英文的,题目也很基础,都是一些简单的组合逻辑、时序逻辑、状态机之类的,因为平时也需要做项目,所以每周我都会抽一些时间来刷刷题,基本上年前就把上面的题目过了一遍,然后错的题目又重新回顾了一下。
年后我发现牛客上也出新的题目了,然后就开始刷牛客的题目,差不多刷了三四遍,我觉得还是要多做题,因为面试说不好就给你出一道手撕代码。
(2)数电基础:
本科的时候我是学过数电的,但是那时候学的也一般,所以我又重新拿起本科的数电课本来做了一个回顾。从秋招经历来看,自我感觉数电基础还是挺重要的,因为不光笔试题会涉及大量的电路分析和相关逻辑的知识,面试有时候也会让你自己搭建电路,所以我建议大家一定要打好数电基础,可以结合一些笔试真题进行学习。
(3)项目:
至于项目的话我就是把手头上的两个FPGA项目做了一个总结,基本上感觉每家公司面试都会问你项目的问题,所以手头上有项目的一定要把自己的项目吃透,如果没有相关项目的话最好自己找两个相关的项目吃透,当然如果可以实习的话就更好了。
(4)数字IC设计及FPGA逻辑设计八股学习:
在今年三月份的时候,我就开始看一些书籍还会关注一些公众号、知乎账号。书籍的话我推荐《硬件架构的艺术》、《综合与时序分析的约束》、《计算机组成与设计》这些书,我觉得都是写的不错的书,同时一定要关注一些比较好的公众号,比如数字ICer等,因为不仅会推送一些基础知识,还有大量的笔试面试真题,另外也要多逛逛知乎。至于面经的话就可以从公众号、知乎还有牛客上找一些前辈们总结的知识点和面经看,这样更容易知道要学什么。
面试经历
1
鼎信通信
鼎信通信算是我投递的比较早的一个公司吧,也算是偶然看见了就想着投递一下,那时候还是提前批,一共有两轮面试。
第一轮面试先让我挑一个项目讲一下整体架构,然后就让我讲一下自己写的关键模块,之后就问我项目中有没有遇到什么难点,是怎么解决的,还问了一下亚稳态的概念,让我解释一下竞争冒险,整体感觉面试不是很难,这增加了一点信心。
二面的话就是先问了一下项目,然后感觉就是闲聊,比如家事那里的等等,主要可能就是看你去的可能性吧。
2
中兴
中兴我是投递的领军计划的数字IC设计的岗位,总共就一轮技术面然后就终面洽谈签约了。
一面先让我讲了一下项目整体的流程,可能也是因为面试我的是无线相关的部门,就问了我一下某个通信算法你们是怎么进行硬件实现的,还有跨时钟是怎么进行解决的,之后还问了我一些八股,比如数字IC设计的流程是什么,和FPGA开发流程有什么异同。一面感觉回答的还不错,之后也没有收到二面通知,最后直接邀请终面洽谈了。
3
ADI
ADI是我8月份投递的,然后9月份进行的一轮面试,一共只有一轮技术面试,一面的时间还是稍微有点长的,问的内容也比较全面。
一面刚开始先是让我画了一下项目框图然后给面试官讲解了一下,之后就是围绕项目进行提问,具体问了你们项目各个模块是怎么验证功能正确性的,有没有进行时序约束,你对建立保持时间怎么理解的,最后的话就是手撕了一个简单的计数器,要求带复位置位,具备清零功能,感觉面试官人挺不错的,面试过程很轻松。
4
华为
华为我是投递的硬件逻辑岗,一面开始也是介绍项目,然后就围绕项目问了一个关键算法的硬件实现,占用了多少硬件资源,有没有进行过优化,之后就是三段式状态机,独热码格雷码什么区别之类的,最后手撕代码也是一个状态机然后截图保存。二面跟一面感觉差不多,也是开始项目,让我说了FPGA开发的流程,撕题撕了一道三分频电路。主管面感觉全程就是聊天,重点考察你的学习能力,思考能力,感觉还是要好好准备一下的。
5
芯海科技
芯海科技我是9月份进行的面试,一面完就没有消息了,应该是有的地方可能答得不是很好。
一面刚开始问了本科硕士学的一些主要课程,之后直接开始问项目中主要负责的模块是怎么进行实现的,询问我有没有跨时钟处理,具体是怎么处理的,然后问FIFO深度怎么进行计算,然后让我画一个序列检测器的状态机,后来又问了我跨时钟同步有哪些方式,让我画了一个快时钟到慢时钟的同步电路,这里好像画的有点问题,最后说了一下快时钟到慢时钟的处理思路。
总结
就今年秋招而言,感觉整体难度比去年上升了一个档次,但是数字IC设计和FPGA开发这一块如果好好准备的话还是挺有优势的。
首先我认为基础知识一定要掌握扎实,然后就多看面经八股,同时自己做的项目一定要熟悉,最好整理一下,做到了熟于心,因为感觉大部分公司都会问项目,所以一定要把项目吃透。
最后一点我觉得还是要尽早准备,不要老是觉得秋招还早,实际上要学的东西还是挺多的,你越早准备就会学的东西越多,面试的时候越有底气,切忌临时抱佛脚。
—END—