2020年秋招中,笔者参加了许多公司的数字IC类岗位招聘,积累了丰富的笔面试经验,将为大家带来最全面的数字IC求职前、后端知识分享。在对面试过程进行详细复盘后,我们分别整理了各个公司的 面经供牛客网的同学们参考,也欢迎大家在评论区交流讨论!
岗位:数字前端工程师(FPGA芯片部门)
一面技术面(电话面试)约50分钟
1、首先问了个人基本情况,学校、专业、成绩、荣誉等。
2、工作意向:数字前端工程师or后端版图工程师?简单介绍了下工作岗位划分
3、简单介绍下你的在校项目?
4、STA中timing path有几种?四条timing path其实是由更多的timing arc组成的,具体有哪些timing arc?
timing arc有FF的clk2Q延时,net的延时,cell输入pin到输出pin的延时,setup/hold time和recovery/removal time等。
5、setup violation和hold violation会受哪些因素影响?
setup:clk2Q、组合路径延时、时钟周期、clock skew,clock jitter
hold:clk2Q、组合路径延时、clock skew
6、了解过retiming吗?比如有三个寄存器,时钟是同步的,每两个寄存器间都有组合逻辑,前两个寄存器间的组合逻辑延时大于一个时钟周期,后两个寄存器间的组合逻辑延时小于一个时钟周期,如何对这样的时序进行修改?
可以有以下几种方法:
(1)可以设置Multicycle:由RTL前端设计人员确定
(2)将组合逻辑打散:将前面一级组合逻辑拆到后面一级。类似于流水线技术,移动中间寄存器位置,平衡前后级组合逻辑深度。
(3)采用timing borrow的方法:插入latch。
(4)调整skew:也可以认为是timing borrow的一种,利用useful skew的概念。这里可以将第二级FF的时钟延时拉长,以满足第二级FF的setup要求,但需注意该级FF的hold margin。这样的做法对第三级FF的setup不利,对hold有利。
7、简单介绍下timing borrow的原理。
8、Matlab和python有用过吗?
文本处理一般用Perl,软硬件交互一般用python,IC设计中EDA工具一般用tcl语言做交互。祖传脚本perl比较多,新开发的一般用python。
全部评论
(3) 回帖