您好,欢迎访问三七文档
数字后端⾯面试问题-PRlayout〖数字后端设计〗-IC设计⼩小镇-PoweredbyDiscuz!1.1EETOP版主⾯面试问题001)Whypowerstripesroutedinthetopmetallayers?为什么电源⾛走线选⽤用最上⾯面的⾦金属层?因为顶层⾦金属通常⽐比较厚,可以通过较⼤大的电流1.⾼高层更适合globalrouting.低层使⽤用率⽐比较⾼高,⽤用来做power的话会占⽤用⼀一些有⽤用的资源,⽐比如stdcell通常是m1Pin。2.EM能⼒力不⼀一样,⼀一般顶层是低层的2~3倍。更适合电源布线。3.⼀一般ip占⽤用的层次都靠近下⼏几层,如果上层没有被禁⽌止routing的话,toplayer可以穿越,低层是不可能的,并且⾼高层对下层的noise影响也⼩小很多。002)WhydoyouusealternateroutingapproachHVH/VHV(Horizontal-Vertical-Horizontal/Vertical-Horizontal-Vertical)?为什么要使⽤用横竖交替的⾛走线⽅方式?(感觉这个问题⽐比较弱智,但是号称是intel的⾯面试问题,晕!我憧憬和向往的圣地啊!!!)为了节省布线资源---主要原因横竖的两根线之间的耦合系数最⼩小,信号⼲干扰⼩小003)Howtofixx-talkviolation?如何解决线间⼲干扰?答案:1)upsizevictimnetdriver,downsizeaggressornetdriver2)increasewirespace,shielding,changelayer,changewirewidth3)insertbutterinvictimnet能答出以上3条的,在⼯工作中已经基本够⽤用,但是还有两个不常⽤用到的,是AMD的⼀一个⼤大⽜牛告诉我的。4)把与victimnet相连的输⼊入端改成Hi-Vth的单元5)改变信号的timingwindow。这个不易做到,但是也是解决⽅方法004)Whatareseveralfactorstoimprovepropagationdelayofstandardcell?哪些因素可以影响标准单元的延迟?答案:1)PVT2)inputtransition,outputload3)Vth005)Whatwouldyoudoinordertonotusecertaincellsfromthelibrary?如何禁⽌止使⽤用库⾥里⾯面的某些单元?禁⽤用就⽤用set_dont_use禁⽌止修改就⽤用set_dont_touch006)Duringthesynthesis,whattypeofwireloadmodelareoftenused?做RTL综合时,经常使⽤用的wireloadmodel有哪⼏几种?答案:1)zerowireloadmodel2)基于fanout的传统WLM3)基于物理位置(距离)的wireloadmodel,在Cadence的RC中叫PLE,Synopsys叫DCUltraTopographical附加问题:Whattypesofdelaymodelareusedindigitaldesign?(数字IC设计中有多少种类型的delaymodel)答案:NLDMCCSECSM还有⼀一个现在基本不⽤用了的—LDM007)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去计算实际的clocknetworklatency009)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答案:1)pre-CTS,setup的clockuncertainty=PLLjitter+clocktreeskewhold的clockuncertainty=clocktreeskew2)post-CTS,setup的clockuncertainty=PLLjitterhold的clockuncertainty=0011)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⽆无法解决时,可以考虑切掉部分powermesh012)Howdoyougetbetterskew/insertiondelaysinCTS(ClockTreeSynthesis)?如何得到更好的时钟树skew和insertiondelay难度:4答案:clockmesh是⼀一种⽅方法。如果是⽤用普通的CTS的⽅方法,可以从下⾯面⼏几个⽅方⾯面着⼿手。不太可能⼀一次就把CTS做得很好,要反复调试各种参数,达到最佳效果。1)合理的clockroot和throughpin。这个看似CTS会从SDC⾃自动抓出来,但是并不⼀一定是最好的,特别是多个clock相互有重叠的leafpin时,要特别注意2)不要⽤用太⼤大或者太⼩小的clockbuf/inv3)选⽤用RC最⼩小的⾦金属层。如果上⾯面RC最⼩小的⾦金属层已经被占⽤用,⽐比如RC最⼩小的top,top-1已经不够clocknet时,⽽而top-2到layer2都是⼀一样的RC时,可以选⽤用layer3/4。为什么不⽤用更⾼高层哪?因为这样既照顾了layer2/1的pin,有不⽤用太多的via到更⾼高层4)如果⽤用doublewidthclockwire,可以适当增⼤大clockbuf/inv的size5)合理的maxfanout。有时clockbuf/inv的fanout可以超过max_fanout的限制6)不要把skew设得太⼩小7)min_insertion_delay=0ns8)合理的transitiontime,不要太⼩小9)使⽤用postCTS的CTSopt10)做clocktree时,就直接把clocknet⾛走线完成013)Ifgivingtotalstandardcellgatecount,allmemorymacrolistincludingmemorytype,bitwidthanddepth,allothermacrowithrealsize,andIOtypeandtotalnumber.Howdoyouestimatethediesize?如果告诉你标准单元的门数,所有内存的类型和逻辑⼤大⼩小,其他IP的实际⼤大⼩小,以及IOcell的种类和数量,你如何估算整个芯⽚片的⾯面积?难度:3答案:IOneck和coreneck⼀一般称作IOlimited和corelimited,IOlimited:这个芯⽚片
本文标题:数字后端面试问题
链接地址:https://www.777doc.com/doc-1054334 .html