数字芯片设计岗面试专题
一、面试知识准备
面试前的准备工作,其实是对自己简历的复盘和预演。
(1)主要技能
- 复习Verilog、System Verilog等硬件描述语言的编程规则;
- 了解状态机、FIFO的电路设计,能够写出代码,了解流水线的工作原理,能够讲解其技术要点;
- 了解如何处理跨时钟域的单/多比特信号;
- 能够搭建Testbench,能够独立设计Testcase;
- 了解Linux系统的使用,能够使用常见的数字设计软件,如Spyglass、Design Compiler等
(2)主修课程
- 复习《数字电子技术基础》的三种基本运算、门电路、逻辑电路、触发器等的知识;
- 复习《半导体器件物理》的PN结机理、双极性、场效应晶体管等的知识;
- 《数字集成电路EDA技术》、《集成电路制造工艺》、《数字电子技术基础》等的知识
(3)项目经历
- 准备回答项目中的难点,自己是怎么克服的?
- 从项目中学到了什么?
- 怎么和项目中其他人进行沟通的?
- 当项目遇到挫折时,是怎么克服的?
(4)论文与专利
(5)竞赛奖项
- 准备回答:在竞赛过程中,是怎么和队友协同合作的?
- 当相互的意见不同时,怎么处理?
- 当一个队友对自己该完成部分不负责时,怎么处理?
(6)实习经历
- 准备回答:在哪里实习的?
- 实习中完成了什么项目,学到了什么,觉得最难克服的是什么?
二、自我介绍环节与模板
尊敬的面试官,您好!我是XX大学XX学院XX专业的研X学生,***。我面试的岗位是数字IC设计工程师。在研究生在读期间,我曾经在XX级期刊/会议上发表了论文X篇,申请专利X项,参与数学建模/电子设计大赛,获得X等奖X次。在导师的项目组中,我参与科研项目X项,第一个项目主要是***,我在该项目中担任***的任务,经过我们的努力,该项目最后达到***的结果;第二个项目主要是***,我在该项目中担任***的任务,经过我们的努力,该项目最后达到***的结果…(一般最多三个项目)经过上述X个项目,我学到了***。上面是我的自我介绍,请问有哪里表述得不清楚吗?
三、面试流程
【技术面】-【主管面】-【总裁面】-【HR面】
(1)技术群面
技术群面,顾名思义,多个技术面试官同时面对应聘者一人,轮流提问他们感兴趣的问题,他们会综合决定应聘者是否通过此次面试,类似于“车轮战“(2)技术多轮面
技术多轮面,类似于“过关斩将“,通过一个技术面试官后,会立即接入到下一个技术面试官,他们可能是一个技术组的普通组员、技术小组长、技术组负责人的递进关系,与技术群面相比,技术多轮面更难,更考验应聘者的心理素质。【举例1】国内民营企业【华为】
面试流程:【技术面1】-【技术面2】-【主管面】-【HR洽谈薪酬】技术一面日期:2020年9月15日;技术二面日期:2020年9月17日;主管面日期:2020年9月19日;HR沟通日期:2020年12月7日
【举例2】国内央企【58所】
面试流程:【技术面】-【主管面】-【HR面】技术一面日期:2020年8月27日;主管面日期:2020年9月3日;HR面日期:2020年9月7日
【举例3】外企【美满】
面试流程:【技术多轮面】日期:2020年10月13日有无外文面:无
四、面试技巧
(1)较难问题的回答
- Q:你觉得自己有什么缺点?
【错误示范】我觉得自己在做事时过于追求完美,不够灵活,对自己过于苛刻
(上面这段问答是出现在2020年华为主管面中,主管对该同学的回复是,我觉得你最大的缺点是不够踏实,回答有些浮躁,最终主管面不通过)
- A:我觉得自己一直在读书,没有参与过实习和实际的工作,可能会因为经验不足,在实际工作中不能顺利地完成工作
(2)反问的技巧
一般【反问】,是在技术面结束前,或者,HR面过程中
- Q:同学,我的问题就这些了,你还有什么想要了解的呢?
- A:
- 部门的主营业务是什么?办公地点在哪里?部门有多大的规模?
- 假如我能入职贵公司,将从事具体什么方向的工作,是偏向ASIC还是SOC?
- 在IC设计中,设计完成后设计人员完成初步的验证功能后,后续的验证工作是谁来做?公司有没有专门的IC验证人员来配合?
- 工资的基本组成是什么?有没有补贴?能否帮忙落户?公积金比例是多少?
- 能否提前入职实习?后续的招聘流程是什么?多久能够发放offer?是意愿书还是两方的形式?
五、注意事项
(1)保证在线面试时的网络稳定,建议自己使用手机热点,曾经出现过因为面试网络卡顿导致面试官失去耐心,直接面试不通过的情况
六、经典面试题解析
【经典面试题1】你了解低功耗设计吗?有哪些常见的低功耗设计方法?
【考察公司】NVIDA
【解题思路】芯片最关键的三个参数PPA,其中第二个P是Power,应聘者需要结构性地回答低功耗设计方法的结构,再回答每个层次下具体的低功耗设计方法
我们可以在系统级、体系结构级、RTL级或门级、晶体管级四个层次上进行低功耗设计。
对于系统级的低功耗设计,我们可以采取软硬件划分的方法,将硬件可以替代软件完成的功能使用硬件替代,降低使用CPU带来的功耗;
对于体系结构级,我们可以采用电压/频率调整、电源门控、异步设计等方法;
对于RTL级或门级,我们可以采用减少字长、独热编码、避免组合环路、去掉逻辑云等方法;
对于晶体管级,一般属于数字设计后端的工作范畴,我们可以采用版图优化、减少氧化厚度、技术工艺优化等方法。
【经典面试题2】你了解跨时钟域的方法吗?
【考察公司】华为
【解题思路】跨时钟域的情况有很多种,分别为由慢时钟到快时钟,由快时钟到慢时钟,跨时钟域传输单比特信号,跨时钟域传输多比特信号,上述四种情况两两组合即是一个应用场景,需要回答完备。
【参考答案】
跨时钟域有多种情况,对于单比特信号,如果是从慢时钟域传输到快时钟域,我们一般采用电平同步器的方式处理;如果是从快时钟域传输到慢时钟域,我们一般采用脉冲同步器或者引入握手反馈机制。对于多比特信号,如果条件允许,可以将多比特信号转为单比特信号进行处理,如果条件不允许,可以使用DMUX同步器、格雷编码、握手反馈机制。如果多比特位数较多,还可以设计异步FIFO来进行数据传输。异步FIFO的优势在于,可以进行数据速率的转换、不同数据位宽的数据接口的匹配,在设计中需要根据实际两个时钟域的传输、接收速率,计算FIFO深度,保证不出现数据溢出的情况。