2020年秋招中,笔者参加了许多公司的数字IC类岗位招聘,积累了丰富的笔面试经验,将为大家带来最全面的数字IC求职前、后端知识分享。在对面试过程进行详细复盘后,我们分别整理了各个公司的面经供牛客网的同学们参考,也欢迎大家在评论区交流讨论!
一面(技术面试) 约60分钟
-
首先英文自我介绍。
-
你了解ASIC PD是做什么的吗?然后就给我详细介绍了上海ASIC PD部门;
-
介绍印象最深的在校项目经历;
-
setup和hold time、transition time的概念;
-
跨时钟域信号传输的方法;
-
STA中Constraints有哪些内容,是怎么实现的;
-
为什么要设置case analysis?
-
提问环节。
二面(技术面试) 约60分钟
-
首先问一下,你对ASIC PD部门工作职责还有什么想要了解的。
-
在校项目经历和ASIC PD有一定的差异,是出于什么考虑选择ASIC PD?
-
详细介绍下你的在校项目经历、项目分工、项目中遇到的问题、项目中的软件部分。
-
介绍下你使用Verilog进行的相关设计、仿真、调试工作;通过哪些验证手段证明设计意图的实现;团队分工如何;项目周期;
-
Verilog里面什么是敏感列表?
由关键词or或者“,”连接的多个事件名或信号名组成的列表称为敏感列表。例如时序逻辑边沿触发的posedge或negedge,组合逻辑所有的输入变量@*或@(*)。敏感列表内的任一变量发生变化时其下面的过程赋值语句就会被执行一次,执行完最后一个语句,执行挂起,always语句再次等待敏感列表内变量发生变化。
-
if-else和case的区别。
(1)if语句指定了一个有优先级的判断逻辑,而case语句生成的逻辑语句可认为是并行的,不具有优先级。
(2)if语句可以包含一系列不同的表达式,而case语句比较的是一个公共的控制表达式。
(3)if-else是二态比较,case是四态比较。
(4)通常if-else结构速度较慢,但占用的面积小,如果对速度没有要求但对面积有较高要求,则可用if-else结构完成。case结构速度较快,但占用面积较大,所以用case语句实现对速度有较高要求的设计。
-
解释一下latch和flip-flop的区别。
-
Verilog实现过程中怎样避免产生不想要的latch
(1)使用完整的if-else语句;case语句中使用default分支;
(2)在代码简单信号少的情况,在所有条件下,对信号都进行赋值;在代码复杂信号多的情况,在case或if语句前给所有信号赋初值。
-
使用Verilog语言分别实现同步复位和异步复位。
-
简单介绍下clock gating的概念。
-
设计过程中,如何处理跨时钟域的问题。
-
简单介绍下ASIC设计从前端到后端的流程,以及每个阶段用到的EDA工具。
-
简单介绍下你对逻辑综合的理解。
-
STA中,clock skew的概念,如何消除skew?
(1)通过在时钟树上使用lvt cell、中驱动cell或者插inverter增加驱动等方式使得clk路径延时降低,可以减小delay的variations,进而降低clock间的skew;
(2)使用高层金属对时钟布线;
(3)减少时钟树的non-common part;
(3)采用inv,而不是buffer,因为缩短时钟树长度有利于减少skew。
-
所有的获奖经历里,你觉得最出色或者印象最深刻的是哪个?
-
提问环节。
三面(主管面试-1) 约50分钟
-
自我介绍
-
通过前面两面你觉得我们是做什么的?然后介绍了英伟达ASIC PD部门的职责。
-
为什么想应聘ASIC PD职位?
-
综合过程中的clock是怎么定义的?
-
如果综合中timing比较差,有哪些优化的方法?
-
实际的综合或STA中,skew如何影响setup和hold检查?有setup/hold violation的话如何调skew?
-
为什么要用clock uncertainty?skew和uncertainty有关系吗?
clock skew和clock uncertainty基本上没有任何关系。uncertainty是指jitter、ocv等无法直接计算的情况,需要在设置uncertainty时人为指定,而skew在CTS之后是可以通过计算得到的,因此不算是uncertainty。综合中在set_clock_uncertainty时考虑skew只是为了模拟/预估这一部分skew,避免pre-CTS过于乐观。
【总结】clock uncertainty在PD不同阶段的设置
(1)pre-CTS:由于没有clock tree skew,clock uncertainty = PLL jitter + skew + margin
(2)post-CTS:clock skew通过clock tree确定,clock uncertainty中没有skew
-
什么是OCV?什么要在综合或者STA过程中做OCV?业界中有哪些种类的OCV?
面试官说其实uncertainty和OCV都是在考虑设计的margin,在进入深亚微米工艺下,OCV需要做的越来越精确。OCV种类:OCV、AOCV(Advanced OCV)、POCV(Parametric OCV)又称为SOCV(Statistical OCV)
-
在前面两次面试之后、第三次面试前,你为应聘ASIC PD职位又做了哪些准备?
-
两轮面试之后,你觉得ASIC PD部门需要具有哪些能力的同学?
-
简单介绍下你的在校项目、创新点、先进性。
-
你觉得做班长,在协调同学、老师的工作之间,你认为最重要的事情是什么?你最大的收获是什么?
-
如何评价自己?自己的优势与不足。
四面(主管面试-2) 约36分钟
-
你是通过什么渠道获得我们职位招聘信息的?
-
通过前面三面你对ASIC PD部门的岗位范围有没有一定了解?
-
你是出于什么考虑选择ASIC PD作为应聘职位呢?为什么没有考虑VLSI PD?
-
你想来上海工作有和家人沟通过吗?
-
你的专业方向?你在什么情况下了解到后端设计这个岗位呢?怎么选择自己的职业呢?你为这个职业选择做了哪些准备?
-
简单介绍下你的在校项目?针对项目问了几个细节问题。你的项目灵感来源、原理、创新点。
-
提问环节。
(1)岗位分配:依据项目需求决定你的第一个项目。
(2)关于笔试:60%后端+20%脚本+20%前端Verilog。
五面(主管面试-3,线下面试) 约80分钟
-
研究生项目聊了很久。
-
技术问题1:ICG的时序分析;
-
技术问题2:反相器的晶体管电路;
-
技术问题3:power gating的电路实现;
-
其他时间基本在发散地聊天,主要偏向综合面,关于职业规划、人生理想之类的(成长过程中印象最难忘的一件事、父母对你的影响等一类的问题)。
-
提问环节。
全部评论
(3) 回帖