上海几大外企数字后端PRAPR面试终极资料你懂的.docx
- 文档编号:4361833
- 上传时间:2022-11-30
- 格式:DOCX
- 页数:35
- 大小:117.09KB
上海几大外企数字后端PRAPR面试终极资料你懂的.docx
《上海几大外企数字后端PRAPR面试终极资料你懂的.docx》由会员分享,可在线阅读,更多相关《上海几大外企数字后端PRAPR面试终极资料你懂的.docx(35页珍藏版)》请在冰豆网上搜索。
上海几大外企数字后端PRAPR面试终极资料你懂的
后端试题
1.老是简单的问题比较无趣,问一个貌似简单,但是不容易回答完整的
Howtofixx-talkviolation?
如何解决线间干扰?
难度:
4(关于难度的定义,在第一题里面)
(应该至少有5大类解决办法,wirespacing,shielding,changelayer之类的只算其中1类)
答案:
1)upsizevictimnetdriver,downsizeaggressornetdriver
2)increasewirespace,shielding,changelayer,changewirewidth
3)insertbutterinvictimnet
能答出以上3条的,在工作中已经基本够用,但是还有两个不常用到的,是AMD的一个大牛告诉我的。
4)把与victimnet相连的输入端改成Hi-Vth的单元
5)改变信号的timingwindow。
这个不易做到,但是也是解决方法
2.Whatareseveralfactorstoimprovepropagationdelayofstandardcell?
哪些因素可以影响标准单元的延迟?
难度:
3
答案:
1)PVT
2)inputtransition,outputload
3)Vth
3.Whatwouldyoudoinordertonotusecertaincellsfromthelibrary?
如何禁止使用库里面的某些单元?
难度:
1
答案:
set_dont_use
set_dont_touch
4.Duringthesynthesis,whattypeofwireloadmodelareoftenused?
做RTL综合时,经常使用的wireloadmodel有哪几种?
难度:
2
注意:
问题是wireloadmodel,不是wireloadmode,也不是delaymodel
答案:
1)zerowireloadmodel
2)基于fanout的传统WLM
3)基于物理位置(距离)的wireloadmodel,在Cadence的RC中叫PLE,Synopsys叫DCUltraTopographical
附加问题:
Whattypesofdelaymodelareusedindigitaldesign?
(数字IC设计中有多少种类型的delaymodel)
答案:
NLDM
CCS
ECSM
还有一个现在基本不用了的—LDM
5.HowdelaysarecharacterizedusingWLM(WireLoadModel)?
使用一般的WLM(不是zeroWLM,也不是按照物理位置算的DCT),DC是如何计算delay的?
难度:
2
答案:
DC在计算延时的时候,net的rc就要根据所选取的wrieloadmodel来计算,
计算时和输出的fanout决定
以smic13的smic13_wl10为例
wire_load("smic13_wl10"){
resistance :
8.5e-8;
capacitance :
1.5e-4;
area :
0.7;
slope :
66.667;
fanout_length (1,66.667);
根据fanout值,由fanout(1,66.667)可以得出互连线长度为66.667,然后根据resistance和capacitance计算出互连线电容为1.5e-4*66.667,互连线电阻为8.5e-8*66.667
,当然如果扇出值表中没有,就会用到slope,例如扇出为3时,此时估算的互连线长度为1*66.667+(3-1)*slope,再计算出RC值,然后DC由此计算net的延时。
6.Therearesourceclockclka(create_clock),andgeneratedclockclkbbyclka.
Inpre-CTSnetlist,thereisnetworklatencyinclka,howthislatencypropagatestoclkb?
Inpost-CTSnetlist,Whatyouneedtodoforthisnetworklatency?
假设有两个时钟,原始为clka,生成的时钟为clkb,
在没有时钟树的网表中,clka的networklatency会自动传递到clkb上吗?
clkb的latency如何描述?
在生成时钟树的网表中,如何处理networklatency?
clkb的latency又如何描述?
难度:
3
答案:
在pre-CTS时,clka的networklatency会自动传到clkb上
在post-CTS时,可以把networklatency去掉,通过set_propagated_clock命令,让工具根据clocktree去计算实际的clocknetworklatency
7.Therearesourceclockclka(create_clock),andgeneratedclockclkbbyclka.howdoyouspecifytheminCTSspecfile?
Assumethereisrealtimingpathbetweenclkaandclkb.
clkb是clka的生成时钟,在CTS的spec文件中如何定义这两个时钟?
假设clka和clkb之间的FF有时序收敛的要求。
难度:
3
答案:
在CTS的spec文件中定义clka是root,clkb为throughpin,再加上那些应该有的skew,transition,insertiondelay等就好了,其它的事CTS会给你做
8.assumeinpre-CTSSDC,clockuncertaintyforsetupcontainsplljitter+clocktreeskew.Howdoyousetclockuncertaintyforhold,andhowtomodifyittopost-CTSsdc?
假设在pre-CTS的时序约束中,setup的clockuncertainty是由PLLjitter和clocktreeskew两部分组成,那么
1)pre-CTS的时序约束中,hold的clockuncertainty是什么?
2)post-CTS的时序约束中,setup和hold的clockuncertainty要做什么样的修改?
难度:
2
答案:
1)pre-CTS,
setup的clockuncertainty=PLLjitter+clocktreeskew
hold的clockuncertainty=clocktreeskew
2)post-CTS,
setup的clockuncertainty=PLLjitter
hold的clockuncertainty=0
9.Whatarevarioustechniquestoresolveroutingcongestion?
请详细解释解决走线阻塞的问题
难度:
4
提示:
1)routingcongestion发生在后端,前端一般不太考虑这个问题,需要后端自己去想办法解决,但是解决的办法不只在后端,也有一些方法需要前端的配合
2)阻塞有多种情形,要分别讨论,没有一个统一的解决办法。
能够把大部分的阻塞情况列举出来,就已经够4级的水平啦
答案:
1)阻塞在RAM(macro)之间:
可能RAM之间的距离没有计算正确,可以加大RAM之间的间距;扭转RAM的方向,使得RAM的IOpin朝向更容易走线的那边;如果是多个RAM共用地址或者数据线,尽量把RAM的地址数据pin对齐
2)阻塞出现在RAM和帮助单元交界的地方:
在RAM周围加一条halo(keepout);把RAM放在四周,尽量把中间留下的空间变成方形;在有阻塞的地方加一些由小的placementblockage组成的矩阵
3)阻塞出现在标准单元的某一块:
也可以加一些由小的placementblockage组成的矩阵;module/instancepadding;利用placementguide减少那块地方的标准单元个数;scanchainreordering也会改善一些阻塞;定义density上限;使用congestiondriven的placement,并且要求place之后做congestion优化;在综合是禁止使用那些pin太多太密集的标准单元(多半是那些复杂的组合逻辑单元);请前端使用RAM代替触发器矩阵;请前端修改算法
4)应该尽量减少powerroute占有的资源,谨慎选择powermesh使用的金属层,VIA的大小等。
在detailroute完成之后,你如果已经试了各种解决signalcongestion的方法,还有少量DRC无法解决时,可以考虑切掉部分powermesh
10.Howdoyougetbetterskew/insertiondelaysinCTS(ClockTreeSynthesis)?
如何得到更好的时钟树skew和insertiondelay
难度:
4
答案:
clockmesh是一种方法。
如果是用普通的CTS的方法,可以从下面几个方面着手。
不太可能一次就把CTS做得很好,要反复调试各种参数,达到最佳效果。
1)合理的clockroot和throughpin。
这个看似CTS会从SDC自动抓出来,但是并不一定是最好的,特别是多个clock相互有重叠的leafpin时,要特别注意
2)不要用太大或者太小的clockbuf/inv
3)选用RC最小的金属层。
如果上面RC最小的金属层已经被占用,比如RC最小的top,top-1已经不够clocknet时,而top-2到layer2都是一样的RC时,可以选用layer3/4。
为什么不用更高层哪?
因为这样既照顾了layer2/1的pin,有不用太多的via到更高层
4)如果用doublewidthclockwire,可以适当增大clockbuf/inv的size
5)合理的maxfanout。
有时clockbuf/inv的fanout可以超过max_fanout的限制
6)不要把skew设得太小
7)min_insertion_delay=0ns
8)合理的transitiontime,不要太小
9)使用postCTS的CTSopt
10)做clocktree时,就直接把clocknet走线完成
11.Ifgivingtotalstandardcellgatecount,allmemorymacrolistincludingmemorytype,bitwidthanddepth,allothermacrowithrealsize,andIOtypeandtotalnumber.Howdoyouestimatethediesize?
如果告诉你标准单元的门数,所有内存的类型和逻辑大小,其他IP的实际大小,以及IOcell的种类和数量,你如何估算整个芯片的面积?
难度:
3
答案:
IOneck和coreneck一般称作IOlimited和corelimited,
IOlimited:
这个芯片的面积是因为IO个数限制(太多),而不得不做得那么大。
core部分其实用不了那么大。
这时面积计算就简化为每边IO个数的计算了。
Corelimited:
芯片面积是有core部分的决定的,IO没有那么多
在Corelimited情况下,diesize的估算如下:
芯片面积=core面积+powerring面积+PADring面积
core面积=RAM面积+其他macro面积+标准单元面积
RAM面积=RAM自身的面积+RAMpowerring面积+keepout面积 +mbist面积
RAM自身的面积可以通过memorycompiler或者查datasheet得到,
有些RAM可以不要powerring。
如果要的话,按照powermesh的宽度xRAM的长宽x2=面积
keepout+mbist的面积一般是RAM自身面积的10%
其他macro的面积,比如PLL,ADC,DAC等,直接把面积加起来,再留3~5%的keepout面积就好了
标准单元的面积=(预估的gatecountx每个gate的面积)/utilization
utilization与使用的金属层数和设计的用途有关,简单地计算方法是
5层metal:
50%
6层metal:
60%
7层metal:
70%
8层metal:
80%
以上不包括power专用的金属层
如果设计是多媒体芯片,一般可以增加3~5%utilizaion,如果是网络芯片,则要减少3~5%
12.whatisprosandconsofusingbufferandinvtersinCTS?
CTS中使用buffer和inverter的优缺点是什么?
难度:
3
答案:
使用BUF:
优点:
逻辑简单,便于post-CTS对时钟树的修改
缺点:
面积大,功耗大,insertiondelay大
使用INV:
优点:
面积小,功耗小,insertiondelay小,对时钟dutycycle有利
缺点:
不易做时钟树的修改
13.Ifgivingtwophysicaldiesasbelow,andaskyouselectoneofthem.Howdoyoupickitup?
explainthereasonplease.
(1)width=2xheight
(2)height=2xwidth
如果从下面的两个芯片中选一个给你做后端设计,你选哪个?
请说明选择的理由?
(1)宽=2倍的长
(2)长=2倍的宽
难度:
2
答案:
去除不太好用的layer(比如metal1)和power专用layer(比如RDL)后,比较剩下的layer可以提供的H和V的routingresource,如果H的多,就选宽的,反之,就选高的。
14.ifthedesignisIOlimited,howtoreducethediesize?
因为IO太多而导致芯片面积过大,有什么方法减小面积?
难度:
2
答案:
1)staggerIO,2重io可以算一个方法
2)IO可以不全放到四边,只要封装没问题就行啦--flipchip算第二个方法
3)如果有多套IOcell可以选择,尽量选瘦的
4)调整芯片的长宽比
15.
givingtheschematicanddelayinattachedpicture,calculatetheWCsetupslackatDpinofF2,andBCholdslackatDpinofF4
如图所示电路,时钟和延迟,计算到F2输入端D的setupslack,到F4输入端D的holdslack
难度:
3
答案:
F2输入端D的setupslack是(8+0.5-0.3)-(0.7+7.0)=0.5
F4输入端D的holdslack是(0.2+0.2)-(0.2+0.2+0.1)=-0.1
16.usingthesamelogicasquestion#17,consideringOCVonclockpathonly,whichclockbufferwillbeusedforOCVderatingcalculationandwhichclockbufferwillnot(a.k.a.CPPR)?
如果考虑clockpath的OCV,在第17题的电路里面,哪几个时钟BUF要被用来计算OCV的derating,哪几个不用(又叫CPPR)?
暂不考虑X-talk产生的incrementaldelay
难度:
2
答案:
C1C2不用算入derating(应该是也计算过,但是会通过CRPR弥补),C3,C4,C5要计算derating
附录:
以下是几个概念的通俗解释。
OCV:
因为制造工艺的限制,同一芯片上不同位置的单元会有一点差异,这就是OCV。
现在还有LOCV和AOCV,暂且不提。
derating:
是计算OCV的一种简单方法,在某个单一条件下,比如WC或者BC,把指定path的延迟放大或者缩小一点,这个比率就是derating。
注意,这里要强调的是某个单一条件,要么是WC,要么是BC,不能把WC和BC混在一起,再OCV,因为那样太悲观,实际上是很难发生的。
除了derating以外,在使用incrementalSDF的时候,也会对OCV发生作用。
这是明天的问题,比较有难度。
CPPR:
一条path的startflop和endflop的时钟路径,有时会有一部分是重合的,重合的部分不应该算OCV(注意,这里假设没有使用incrementalSDF),这就叫CPPR
17.
continuefromquestion#18.BecausethereisCPPR,theOCVderatingonclockpathC1andC2arecanceled.Nowgivingincrementaldelaycausedbyx-talkatnetbetweenC1andC2.PleaseusethederatingtocalculatethedifferenceofclockpathdelayfromC1toC2(includingthenetbetweenthem)forWCsetupandBChold.
接上面#18的问题继续讨论,因为有CPPR,在C1到C2那段clockpath上面的OCV被抵消掉了。
现在我们增加一个由x-talk引起的incremental延迟在C1到C2的那段net上,具体数字见图。
问题:
对于C1到C2那段clockpath,
在计算WCsetup时,因为OCV引起的路径延迟的差是多少?
在计算BChold时,因为OCV引起的路径延迟的差是多少?
注意:
问题是那段clockpath因为OCV引起的pathdelay的差,不是问pathdelay的绝对值
难度:
5
难度5的问题不是盖的吧,
好,改为选择题,
C1到C2一段的OCV延迟的差,
1)在计算WCsetup时,是
a) 0
b) 0.0005
c) 0.00075
d) 0.0245
2)在计算BChold时,是
a) 0
b) 0.001
c) 0.0015
d) 0.0265
答案:
现在从incrementalSDF的格式说起,
(-0.01:
:
0.015)(-0.015:
:
0.01)
左边括弧里的是risingtiming延迟,右边的是fallingtiming
括弧里面的一对数字表示在这个条件下(WC或者BC)延迟的最大和最小值
因为是incremental延迟,要和基本延迟结合使用,所以,会有负数出现。
再讲OCV的使用incrementalSDF的方法,
OCV计算pathdelay时挑选最困难的情况,
在WCsetup时,比如从F1到F2,
计算F1的clockpath,就选incrementalSDF里面的最大值0.015,
计算F2的clockpath,就选最小值-0.01
因为有0.95derating在-clock,-early上,所以F2的clockpath要按比例缩小-0.01x0.95=-0.0095
所以C1到C2那段的OCV的差是0.015+0.0095=0.0245(选项d)
在BChold时,比如congF3到F4,因为2个FF在同一个时钟沿检测holdtiming,
CPPR可以把incrementalSDF的延迟也抵消掉,
所以C1到C2那段的OCV的差是0(选项a)
结论:
计算setup时,CPPR不抵消incrementalSDF
计算hold时,CPPR连incrementalSDF都可以抵消掉
18.ExplainECO(EngineeringChangeOrder)methodology.
说一下ECO的流程
难度:
2
答案:
ECO有两种,pre-maskECO和post-maskECO,它的分界线就是baselayertapeout之前和之后。
pre-maskECO的流程是
1)后端写出网表,给前端
2)前端修改这个网表(一般不再做综合),可以使用任何标准单元(只要不是dont_use),交给后端
3)后端读入ECO网表,和ECO之前的place和route
4)ECOplace&route,STA,DRC/LVS
post-maskECO流程,假设你不想动baselayer
1)后端写出网表,给前端
2)前端修改这个网表(一般不再做综合),只能使用sparecell或者象gatearray一样的ECOcell
3)后端读入ECO网表,和ECO之前的place和route
4)如果使用sparecell,不用ECOplace;如果用ECOcell,要将ECOcell放在以前带gatearray功能的fillcell的位置上,再按照指定的layer做ECOroute
19.WhatdoyouwriteinCTSspecfile?
CTSspec文件中一般包含哪些内容?
难度:
3
答案:
(以CadenceCTSspecfile格式为例)
AutoCTSRootPinpad
Period
MaxDelay
MinDelay
MaxSkew
SinkMaxTran
BufMaxTran
Buffer
NoGatingNO/YES
DetailReportYES/NO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上海 外企 数字 后端 PRAPR 面试 终极 资料