首页 > 【数字IC后端岗】校招笔试如何准备?
头像
校招硬件大牛
编辑于 2021-08-04 11:17
+ 关注

【数字IC后端岗】校招笔试如何准备?


牛客校招研究院出品,专题特约作者:@牛客592515490号
未经授权不可转载,违者必究。

一、笔试的知识准备

数字IC后端笔试需要准备的知识非常多,不仅要准备数字IC后端相关的一系列知识,比如物理设计flow的详细流程后端相关的术语解释静态时序的分析和计算基础的数字版图知识低功耗等。

另外,编写脚本的能力也是后端需要的一项很重要的能力,可以选择python/perl/TCL中的其中一种脚本语言进行学习。

除此以外,其它还需要准备的有数字IC前端设计的知识比如根据需求设计电路,手撕verilog代码,甚至还需要验证,DFT等基础知识。

这是因为有些公司的笔试题前端/验证/后端都是一套题,所以对于这类公司的笔试题,会要求综合的数字IC知识。在给大家推荐一些我准备笔试时非常受用的资料:

1、陈春章的《数字集成电路物理设计》,业界所谓的红宝书,虽然是很老的一本书,不过也算是IC后端入门必看的书籍了,便于了解整个IC后端设计的流程;
2、《Static timing analysis for nanometer design》,学静态时序分析的神书,虽然是全英文,不过已经有汉化版了,英语欠佳的同学可以自己去找一下。里面涉及到大量关于STA的基本概念和原理,delay的计算,串扰和噪声,以及如何用命令约束STA环境等。这些基础的原理知识都容易出现在笔试的考题中;
3、IC前端设计方面的话,个人是看的《设计与验证:Verilog HDL》,这本书是导师要求学IC设计必看的书之一,适合初学者入门。

除此以外还有几个微信公众号推荐给大家,这些公众号会整理很多笔试题,知识点以方便同学们提前学习准备:
(1)达尔闻说:非常良心的一个公众号,整理了华为,大疆,紫光等秋招/实习的笔试题,每一道题都会给出答案,并且都分析得特别特别细,即使是非常简单的一道选择题,也能够总结和发散出很多知识点,同学们一定要去看一下!
(2)摸鱼范式:公众号中有对《Static timing analysis for nanometer design》中重要知识点的总结和分析,为了节省学习时间的同学可以直接进入该公众号学习“STA笔记”,除此以外,该公众号的“秋招记录”中的面经总结也非常经典,能够了解到公司详细的面试流程和问题;
(3)数字ICer:整理了很多企业的笔试题以及面经,笔试题整理得很详细,但是有些没有答案,需要自己去思考。而其他有答案的笔试题分析得也很透彻,值得学习。面经都是华为,大疆,oppo,汇顶,寒武纪等大厂,面试流程总结得特别细;

二、笔试的内容和形式

数字IC后端的笔试,根据不同的公司笔试的内容和形式差异都较大,有些公司没有笔试,有些公司的笔试是和前端/验证一套题,有些公司的笔试是单独一套专门针对后端的笔试题。

在此基于个人的秋招经历对各类公司后端岗位笔试的形式进行总结:
1、华为:如果投递的是华为的后端岗位(ASIC设计工程师),笔试题是基于后端方向的题,全是选择题,偏基础较简单;
2、大疆:数字岗位都是一套题,往年的笔试题题型很多而且很难,选择填空手撕代码等。然而面向2021届秋招一改常态全是选择题(都是不定项选择),考题较综合,难度偏中;
3、OPPO:后端单独一套题,涉及简答题,脚本题,难度较高;
4、紫光展锐:后端单独一套题,全选择题,较简单;
5、阿里平头哥:没有笔试,简历通过直接面试;
6、乐鑫:提前批数字都是一套题,涉及单选多选填空编程题,难度高;
7、全志:内推面笔试;
8、联发科提前批:数字一套题,涉及填空,简答,智力,脚本,软硬件编程题,难度很高;
9、海光:后端单独一套题,全选择,难度低;
10、ARM中国:后端单独一套题,全选择,难度中;
11、兆芯:无笔试;
12、芯原:后端单独一套题,都是大题,非常广泛综合,涉及画版图,STA,名词术语解释等,难度中;
13、芯源:数字后端一套题,和网上百度文库的一模一样,可以参考一下,难度中;
14、AMD:全选择题,考点极多,前端设计,验证,DFT,后端,C语言,正则匹配,Linux指令,存储器,模数转换,工艺等。难度不低,(肯定复习不过来的,建议看看历年的题然后直接上);
15、Cadence:无笔试。

三、笔试答题技巧和注意事项

1、遇到前端/验证/后端一套题的时候,心态千万也不要慌,觉得自己前端验证都不会,就直接放弃。
实际上心中要知道和你竞争的同学都是后端岗位的,所以其他同学也不一定能很熟练地回答前端/验证的题,而且竞争后端这一岗位的人也不多,不是很卷,所以即使笔试结果不理想,也有很大可能可以进入面试的。
我自己笔试的时候就感觉乐鑫和AMD的笔试题做得不太好,然而还是喜出望外地收到了面试通知。我并不是想让大家放弃除了后端以外的题,只是希望大家调整好心态,因为刚开始遇到这种一套题的笔试会特别紧张。
所以大家心态要调整好;
2、有些公司的笔试题时间特别紧张,所以遇到卡壳的题千万不要过于纠结,先放一放,然后再回来看看,没时间了蒙一个答案也不是不可以。时间特别紧的公司有乐鑫,AMD,联发科,大疆。
做这些公司的笔试题的时候一定不要卡太久(像乐鑫联发科这类ti'qi'a做到还剩20分钟左右的时候,发现还有3道编程大题的时候心里是非常绝望的)。
3、笔试的时候遇到不会的题,一定要有意识地记录下来,以便于笔试完后整理集错。
而且有些公司的面试官在面试的时候甚至会拿出你的笔试试卷一道一道询问做错的题,如果能下来纠错,那么进入面试后会有一个很好的印象。

四、常见笔试题解析

1、什么是天线效应?如何修复?【华为海思】

由于等离子刻蚀法使金属刻蚀过程中收集大量空间静电电荷,当金属积累的静电电荷超过一定数量,形成的电势超过它所接连门栅所能承受的击穿电压时,晶体管就会被击穿,导致器件损坏,这就是天线效应。
修复的方法:(1)插入Diode二极管;(2)向上跳线法;(3)size up cell

2、芯片tapeout前要做哪些检查?【华为海思】

时序(setup/hold)检查,后仿,DRC/LVS,电气规则检查ERC,DFM(可制造性设计),LEC(等价性检查)

3、闩锁效应是什么,怎么产生如何解决【格科微】

闩锁效应是CMOS工艺所特有的寄生效应,是指在芯片的电源和地之间存在一个低阻抗的通路,产生很大的电流,导致电路无法正常工作,甚至烧毁电路。严重会导致电路的失效,甚至烧毁芯片。闩锁效应是由NMOS的有源区、P衬底、N阱、PMOS的有源区构成的n-p-n-p结构产生的,当其中一个三极管正偏时,就会构成正反馈形成闩锁。避免闩锁的方法就是要减小衬底和N阱的寄生电阻,使寄生的三极管不会处于正偏状态。

如下图:n阱的pnp寄生双极晶体管和P型衬底中的npn型寄生双极晶体管,和阱区电阻Rw,衬底电阻Rs组一起组成了正反馈放大回路。一旦某个晶体管具有足够的基极偏置电压,是正反馈电路工作,将使电流不断放大,造成电源和地之间形成极大的导通电流,破坏电路正常工作,甚至烧毁。
图片说明

下图是上图完全等效电路: 当Rw或Rp较大时,容易产生基极偏置。
图片说明

预防措施:
(1)减小衬底的电阻:普通P衬底工艺将整个电路做在一个低掺杂的P-衬底上,使得衬底电阻较大;所以说,外延衬底应该使用双层衬底,在低掺杂的P-衬底下方还有一层较高掺杂的P+衬底,以此大大减小了衬底电阻,预防了闩锁效应。
(2)减小阱电阻:该工艺的目的是使阱中较深处的杂质浓度较大,以此来减小阱的电阻,提高闩锁预防水平;而表面的杂质浓度较小,以此保证载流子迁移率高,驱动电流足够大,MOS器件获得足够的速度。
(3)槽绝缘层(Trench Isolation)该工艺是在PN有缘区之间形成一个绝缘的槽体,以此来降低横向三极管的增益、削弱PNPN放电路径。槽的深度越深,对闩锁的防治就越好。
图片说明

4、前后端的整个flow,以及每一个步骤中会用到的工具【芯原】

前端:
(1)规格制定
芯片规格,也就像功能列表一样,是客户向芯片设计公司(称为 Fabless,无晶圆设计公司)提出的设计要求,包括芯片需要达到的具体功能和性能方面的要求。

(2)详细设计
Fabless根据客户提出的规格要求,拿出设计解决方案和具体实现架构,划分模块功能。

(3)HDL编码
使用硬件描述语言(VHDL,Verilog HDL,业界公司一般都是使用后者)将模块功能以代码来描述实现,也就是将实际的硬件电路功能通过 HDL语言描述出来,形成 RTL(寄存器传输级)代码。

(4)仿真验证
仿真验证就是检验编码设计的正确性,检验的标准就是(1)中制定的规格。看设计是否精确地满足了规格中的所有要求。规格是设计正确与否的黄金标准,一切违反,不符合规格要求的,就需要重新修改设计和编码。设计和仿真验证是反复迭代的过程,直到验证结果显示完全符合规格标准。
仿真验证工具 Synopsys 的VCS,还有Cadence的NC-Verilog。

(5)逻辑综合――Design Compiler
仿真验证通过,进行逻辑综合。逻辑综合的结果就是把设计实现的 HDL代码翻译成门级网表 netlist。综合需要设定约束条件,就是你希望综合出来的电路在面积,时序等目标参数上达到的标准。逻辑综合需要基于特定的综合库,不同的库中,门电路基本标准单元(standard cell)的面积,时序参数是不一样的。所以,选用的综合库不一样,综合出来的电路在时序,面积上是有差异的。 一般来说,综合完成后需要再次做仿真验证(这个也称为后仿真,之前的称为前仿真)
逻辑综合工具 Synopsys 的 Design Compiler。

(6)STA
Static Timing Analysis(STA),静态时序分析,这也属于验证范畴,它主要是在时序上对电路进行验证,检查电路是否存在建立时间(setup time)和保持时间(hold time)的违例(violation) 。这个是数字电路基础知识,一个寄存器出现这两个时序违例时,是没有办法正确采样数据和输出数据的,所以以寄存器为基础的数字芯片功能肯定会出现问题。
STA工具有Synopsys 的Prime Time。

(7)形式验证
这也是验证范畴,它是从功能上(STA 是时序上)对综合后的网表进行验证。常用的就是等价性检查方法,以功能验证后的 HDL 设计为参考,对比综合后的网表功能,他们是否在功能上存在等价性。这样做是为了保证在逻辑综合过程中没有改变原先 HDL描述的电路功能。
形式验证工具有 Synopsys 的Formality。

前端设计的流程暂时写到这里。从设计程度上来讲,前端设计的结果就是得到了芯片的门级网表电路。

后端:
(1)DFT
Design For Test,可测性设计。芯片内部往往都自带测试电路,DFT的目的就是在设计的时候就考虑将来的测试。DFT的常见方法就是,在设计中插入扫描链,将非扫描单元(如寄存器)变为扫描单元。关于 DFT,有些书上有详细介绍,对照图片就好理解一点。 DFT
工具 Synopsys 的DFT Compiler

(2)布局规划(FloorPlan)
布局规划就是放置芯片的宏单元模块,在总体上确定各种功能电路的摆放位置,如 IP模块,RAM,I/O引脚等等。布局规划能直接影响芯片最终的面积。

(3)CTS
Clock Tree Synthesis,时钟树综合,简单点说就是时钟的布线。由于时钟信号在数字芯片的全局指挥作用,它的分布应该是对称式的连到各个寄存器单元,从而使时钟从同一个时钟源到达各个寄存器时,时钟延迟差异最小。这也是为什么时钟信号需要单独布线的原因。

(4)布线(Place & Route)
这里的布线就是普通信号布线了,包括各种标准单元(基本逻辑门电路)之间的走线。比如我们平常听到的 0.13um 工艺,或者说 90nm 工艺,实际上就是这里金属布线可以达到的最小宽度,从微观上看就是MOS管的沟道长度。
2-4的工具有Synopsys的ICC/ICC2和Cadence的Innovus

(5)版图物理验证
对完成布线的物理版图进行功能和时序上的验证,验证项目很多,如 LVS(Layout Vs Schematic)验证,简单说,就是版图与逻辑综合后的门级电路图的对比验证;DRC(Design Rule Checking) :设计规则检查,检查连线间距,连线宽度等是否满足工艺要求ERC(Electrical Rule Checking) :电气规则检查,检查短路和开路等电气 规则违例;等等。
工具为Mentor的calibre

(6)寄生参数提取
由于导线本身存在的电阻,相邻导线之间的互感,耦合电容在芯片内部会产生信号噪声,串扰和反射。这些效应会产生信号完整性问题,导致信号电压波动和变化,如果严重就会导致信号失真错误。提取寄生参数进行再次的分析验证,分析信号完整性问题是非常重要的。
工具 Synopsys的 Star-RCXT。
(7) STA
(8) post-simulation(前仿是功能仿真,后仿真需要考虑门和线延迟),动态时序仿真,是对加入了延时信息的网表文件进行的仿真,目的是验证时序以及功能都正确。它主要应用在异步逻辑、多周期路径、错误路径的验证中。需要布局布线后生成的网表文件.v和SDF文件.sdf。

5、低功耗设计方法【华为海思】

前端来讲:
(1)采用合适的编码算法
(2)门控时钟
(3)操作数隔离技术
(4)综合中:相位分配,引脚互换,插入缓冲器
(5)多阈值单元,非关键路径上采用高阈值器件,对于关键路径上,采用的是低阈值器件。

后端上来讲:对于设计中翻转频繁的节点,采用低电容金属层布线。尽量缩短翻转率高的线长。采用低功耗为目的时钟树。
(1)静态功耗: a. 在非关键路径用HVT cell; b. power shutfown c. 减少decap cell d. 降温散热;
(2)动态功耗:a. 降压;b. 限制transition time c. 非关键时钟降频;d. 高频信号减少线长;e, 体偏置;f. 非关键路径用HVT Cell;g. MSMV;h. power domain;i. DVFS;j. clock gating;k. power gating。

6、芯片的漏电和下面哪些因素有关(BCD) 【大疆】

A 频率 B 电压 C温度 D 工艺

解析:影响漏电流的因素: (1)工艺;(2)电压;(3)温度(温度越高,阈值电压Vth越小),没有频率(影响动态功耗)

7、以下哪些变化存在功耗消耗(ABCD) 【大疆】

A只有数据信号翻转 B只有复位信号翻转
C只有时钟信号翻转 D所以信号都不翻转

解析:不翻转也有静态功耗

8、消除噪声的方法 【AMD】

消除噪声的方法: (1) Shielding (2) Deep n-well (3) Isolating a block (4) guard ring

9、设计门电路实现以下波形。 【联发科】

图片说明

图片说明

解析:先设计一个2分频电路,然后再用clk_in的低电平把二分频的波形过滤一下即可。

10、关于跨时钟域电路的设计,以下说法正确的是(D) 【乐鑫提前批】

A: 信号经两级D触发器同步后即可进行跨时钟域传递
B: 跨时钟域电路存在亚稳态风险,应当避免使用
C: 跨时钟域电路中一定存在亚稳态
D: 采用单一时钟的电路也可能产生亚稳态

解析:单一时钟不满足setup/hold要求也会出现亚稳态的。

11、NAND和NOR Flash的主要区别是1.(NAND)中常存在坏块, 2.(NAND)容量可以做到很大,3.(NAND)写入速度比较快, 4.(NOR Flash)读出速度比较快。 【乐鑫提前批】

解析:NOR容量小,NAND容量大;NOR读速度快,NAND擦写速度快;NAND会出现坏区

12、可以正常工作的数字电路芯片中一定不存在亚稳态 (错) 【大疆创新】

解析:比如跨时域所用的两级触发器,第一级是会出现亚稳态的,第二级就得到消除。

13、关于网表仿真的描述正确的是:(D ) 【大疆创新】

A 为了保证芯片的正常工作,即使在时间和资源紧张的情况下,也需要将所有RTL仿真用例都进行网表仿真并且确保通过
B 网表仿真的速度比RTL仿真的速度更快
C 网表仿真不能发现实现约束的问题
D 网表仿真可以发现电路设计中的异步问题

解析:网表仿真:通过网表反标标准延时格式文件(SDF)进行仿真,仿真速度较RTL仿真慢,由于标准延时格式文件通过SDC约束和单元逻辑延时和线网延时而来,可以发现约束问题
如果设计的规模较大的话,网表仿真所耗费的时间就比较长(所以B选项错误),所以常采用形式验证手段来保证门级网表在功能上与RTL设计保持一致(所以A选项错误),配合静态时序分析工具保证门级网表的时序。网表仿真中的门级仿真可以发现异步问题(所以D选项正确)。

14、SDF文件在IC哪个阶段使用?文件包含了哪些信息? 【复旦微】

答:静态时序分析和后仿真(前仿真是功能仿真,时序为理想;而后仿真包含时序信息,会包含时序验证)。后仿的时候通过反标SDF得到真正的时序信息。
SDF包含了线延时和单元门延时。

15、请解释一下D触发器和latch的区别。请解释一下同步复位和异步复位的区别及优缺点。 【联芸】

(1) latch锁存器: 电平触发。当使能信号有效时通路,相反无效时保持输出。容易产生毛刺。门级电路latch消耗的资源少。但是如果在FPGA中,没有latch资源(有D触发器),因此需要多个LE才能实现。
(2) D触发器:边沿触发。仅在时钟有效沿到来时传递数据。不会产生毛刺。
(3)同步复位:只有在时钟有效沿到来时,复位信号才起作用。优点: a. 有利于仿真器仿真; b. 使电路成为100%的同步时序电路,便于时序分析;c. 过滤毛刺。 缺点: a. 大多数库只有异步DFF,所以需要额外资源搭建同步复位DFF; b. 复位信号的宽度必须大于一个时钟周期。
(4)异步复位:只要有复位信号就能马上复位。优点:a. 节省资源;b. 设计相对简单; 缺点: a. 复位信号易受到毛刺; b. 复位释放的时候容易出现亚稳态问题。

16、已知某种工艺商提供下面四种标准单元库,HVT_C30, HVT_C40, LVT_C30, LVT_C40,其中HVT表示high threshold voltage,LVT表示low threshold voltage,C30和C40表示channel length数值的大小。问:哪种器件静态功耗有优势?哪种器件的速度有优势? 【比特大陆】

答:HVT_C40静态功耗有优势。因为阈值电压越高,沟道长度越长,漏电流越小。
LVT_C30速度有优势,阈值电压越小,沟道长度越短,饱和电流越高。


关注 @校招硬件大牛 大牛 ,跟大家聊聊硬件校招那些事儿鸭~
想成为专题作者,欢迎私信哟!

全部评论

(0) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

近期精华帖

热门推荐