IC行业收藏数字后端面试问题文档格式.docx
- 文档编号:22410581
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:50
- 大小:44.36KB
IC行业收藏数字后端面试问题文档格式.docx
《IC行业收藏数字后端面试问题文档格式.docx》由会员分享,可在线阅读,更多相关《IC行业收藏数字后端面试问题文档格式.docx(50页珍藏版)》请在冰豆网上搜索。
WhydoyouusealternateroutingapproachHVH/VHV(Horizontal-Vertical-Horizontal/Vertical-Horizontal-Vertical)?
为什么要使用横竖交替的走线方式?
〔感觉这个问题比较弱智,但是号称是intel的面试问题,晕!
我憧憬和向往的圣地啊!
!
〕
为了节省布线资源---主要原因
横竖的两根线之间的耦合系数最小,信号干扰小
003〕
Howtofixx-talkviolation?
如何解决线间干扰?
答案:
1〕upsizevictimnetdriver,downsizeaggressornetdriver
2〕increasewirespace,shielding,changelayer,changewirewidth
3〕insertbutterinvictimnet能答出以上3条的,在工作中已经根本够用,但是还有两个不常用到的,是AMD的一个大牛告诉我的。
4〕把与victimnet相连的输入端改成Hi-Vth的单元
5〕改变信号的timingwindow。
这个不易做到,但是也是解决方法
004〕
Whatareseveralfactorstoimprovepropagationdelayofstandardcell?
哪些因素可以影响标准单元的延迟?
1〕
PVT
2〕inputtransition,
outputload
3〕Vth
005〕
Whatwouldyoudoinordertonotusecertaincellsfromthelibrary?
如何制止使用库里面的某些单元?
禁用就用set_dont_use制止修改就用set_dont_touch
006〕
Duringthesynthesis,whattypeofwireloadmodelareoftenused?
做RTL综合时,经常使用的wireloadmodel有哪几种?
1〕zerowireloadmodel
2〕基于fanout的传统
WLM
3〕基于物理位置〔距离〕的wireloadmodel,在Cadence的RC中叫PLE,Synopsys叫DCUltraTopographical附加问题:
Whattypesofdelaymodelareusedindigitaldesign?
(数字IC设计中有多少种类型的delaymodel)答案:
NLDM
CCS
ECSM还有一个现在根本不用了的—LDM
007)
HowdelaysarecharacterizedusingWLM(WireLoadModel)?
使用一般的WLM
〔不是zeroWLM,也不是按照物理位置算的DCT〕,DC是如何计算delay的?
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的延时。
008〕
Therearesourceclockclka(create_clock),andgeneratedclockclkbbyclka.
Inpre-CTSnetlist,thereisnetworklatencyinclka,howthislatencypropagatestoclkb?
Inpost-CTSnetlist,Whatyouneedtodoforthisnetworklatency?
假设有两个时钟,原始为clka,生成的时钟为clkb,在没有时钟树的网表中,clka的networklatency会自动传递到clkb上吗?
clkb的latency如何描述?
在生成时钟树的网表中,如何处理networklatency?
clkb的latency又如何描述?
在pre-CTS时,clka的networklatency会自动传到clkb上在post-CTS时,可以把networklatency去掉,通过set_propagated_clock命令,让工具根据clocktree去计算实际的clocknetworklatency
009〕
Therearesourceclockclka(create_clock),andgeneratedclockclkbbyclka.howdoyouspecifytheminCTSspecfile?
Assumethereisrealtimingpathbetweenclkaandclkb.clkb是clka的生成时钟,在CTS的spec文件中如何定义这两个时钟?
假设clka和clkb之间的FF有时序收敛的要求。
难度:
3答案:
在CTS的spec文件中定义
clka
是
root,clkb
为
throughpin,再加上那些应该有的skew,transition,insertiondelay等就好了,其它的事CTS会给你做
010〕
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答案:
pre-CTS,
setup的clockuncertainty=PLLjitter+clocktreeskew
hold的clockuncertainty=clocktreeskew
2〕
post-CTS,
setup的clockuncertainty=PLLjitter
hold的clockuncertainty=0
011〕
Whatarevarioustechniquestoresolveroutingcongestion?
请详细解释解决走线阻塞的问题难度:
4提示:
routingcongestion发生在后端,前端一般不太考虑这个问题,需要后端自己去想方法解决,但是解决的方法不只在后端,也有一些方法需要前端的配合
阻塞有多种情形,要分别讨论,没有一个统一的解决方法。
能够把大局部的阻塞情况列举出来,就已经够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
012〕
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走线完成
013〕
Ifgivingtotalstandardcellgatecount,allmemorymacrolistincludingmemorytype,bitwidthanddepth,allothermacrowithrealsize,andIOtypeandtotalnumber.Howdoyouestimatethediesize?
如果告诉你标准单元的门数,所有内存的类型和逻辑大小,其他IP的实际大小,以及IOcell的种类和数量,你如何估算整个芯片的面积?
IOneck
和
coreneck
一般称作
IOlimited
corelimited,
:
这个芯片的面积是因为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%
014〕
whatisprosandconsofusingbufferandinvtersinCTS?
CTS中使用buffer和inverter的优缺点是什么?
使用BUF:
优点:
逻辑简单,便于post-CTS对时钟树的修改缺点:
面积大,功耗大,insertiondelay大使用INV:
面积小,功耗小,insertiondelay小,对时钟dutycycle有利缺点:
不易做时钟树的修改
015〕
Ifgivingtwophysicaldiesasbelow,andaskyouselectoneofthem.Howdoyoupickitup?
explainthereasonplease.〔1〕
width=2xheight
(2)height=2xwidth如果从下面的两个芯片中选一个给你做后端设计,你选哪个?
请说明选择的理由?
〔1〕
宽
=2倍的长〔2〕
长
=2倍的宽
去除不太好用的layer〔比方metal1〕和power专用layer〔比方RDL〕后,比较剩下的layer可以提供的H和V的routingresource,如果H的多,就选宽的,反之,就选高的。
016〕
ifthedesignisIOlimited,howtoreducethediesize?
因为IO太多而导致芯片面积过大,有什么方法减小面积?
1〕staggerIO,2重io
可以算一个方法
2〕IO可以不全放到四边,只要封装没问题就行啦
--flipchip
算第二个方法
3〕如果有多套IOcell可以选择,尽量选瘦的
4〕调整芯片的长宽比
017〕
givingtheschematicanddelayinattachedpicture,calculatetheWCsetupslackatDpinofF2,andBCholdslackatDpinofF4如下列图电路,时钟和延迟,计算到F2输入端D的setupslack,到F4输入端D的holdslack
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
018〕
如果考虑clockpath的OCV,在第17题的电路里面,哪几个时钟BUF要被用来计算OCV的derating,哪几个不用〔又叫CPPR〕?
暂不考虑X-talk产生的incrementaldelay难度:
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。
019〕
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时,是
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要按比例缩小所以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都可以抵消掉
020〕
ExplainECO(EngineeringChangeOrder)methodology.说一下ECO的流程难度:
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
(一般不再做综合),只能使用sparecell或者象gatearray一样的ECOcell
4〕如果使用sparecell,不用ECOplace;
如果用ECOcell,要将ECOcell放在以前带gatearray功能的fillcell的位置上,再按照指定的layer做ECOroute
021)cts
WhatdoyouwriteinCTSspecfile?
CTSspec
文件中一般包含哪些内容?
〔以CadenceCTSspecfile
格式为例〕
AutoCTSRootPinpad
Period
MaxDelay
MinDelay
MaxSkew
SinkMaxTran
BufMaxTran
Buffer
NoGatingNO/YES
DetailReportYES/NO
#SetDPinAsSy
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IC 行业 收藏 数字 后端 面试 问题