您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > 陈涛后端面试总结-v1
难度指数:1:常识--无论是否有工作经验,都应该准确回答2:简单--只要做过一点后端的设计,就应该明白3:一般--有实际工作经验一年左右,做过2个以上真正的设计,应该可以答上来4:较难--在这个特定的领域有较多的研究,并积累了一定的经验5:很难--基本上是专家级的牛人了!transition是正确判断delay的前提,如果transition有violation,setup/hold的值就不准确,也就没有修的必要所以要先修好tran/cap这样的基本参数,然后再去看setup/hold,这样才是比较准确真实的setup/hold增加decap会减小IR_drop,会带来什么影响?影响:面积大,占用size边泄漏功耗产生作用:会减小noise,稳定电压sign-off的标准一般是timingbalancingclockskew只是CTS的一个中间步骤,判定timing的话还是要optdatapath之后才能够得到。如果说skew的target比较小,CTS不容易进行balance而达到目标,那么tool很有可能采用牺牲clockpath,或者叫latency,再或者叫insertiondelay,来实现skew的目标。那么,这样当然会插入更多的cell,走更长的path来实现,自然功耗就大了。同时,clocknet比较sensitive,path越长,潜在的OCV越明显。那么,反过来说,将skew的target设得比较大,tool可能可以采用更加简单的结构来buildclocktree。再说个题外话,CCOpt是timing-driven的CTStool,可以用更短的clockpath长度和更少的clockcell实现clock。总之一点,只要保证你的设计结果满足你的constraints,就没有问题。PBA:一个cell中,如果有一条path的transition或者loading很大,它不但会影响自己的时序,还会影响这个单元的其他path的时序。CTS之前,clock都是ideal的,这时候的transition和setup都是由datapath引起,如果一定要在这个时候fix,无论从数量还是产生因果上来看,显然应该先fixtransitionviolation。用latch可以borrowtiming,即便enable信号不满足setup,也可以成功采到实现gating功能。如果用Flop,一旦因为干扰或者时序本身的问题,很可能导致第一拍采不到数,会使得gating的时序落后一拍,如果时序要求严格,会产生问题。@@1、下面是第一个真正的问题:Whypowerstripesroutedinthetopmetallayers?为什么电源走线选用最上面的金属层?难度:1因为顶层金属通常比较厚,可以通过较大的电流1.高层更适合globalrouting.低层使用率比较高,用来做power的话会占用一些有用的资源,比如stdcell通常是m1Pin。2.EM能力不一样,一般顶层是低层的2~3倍。更适合电源布线。顶层金属通常比较厚,可以通过较大的电流3.一般ip占用的层次都靠近下几层,如果上层没有被禁止routing的话,toplayer可以穿越,低层是不可能的,并且高层对下层的noise影响也小很多。@@2、WhydoyouusealternateroutingapproachHVH/VHV(Horizontal-Vertical-Horizontal/Vertical-Horizontal-Vertical)?为什么要使用横竖交替的走线方式?(感觉这个问题比较弱智,但是号称是intel的面试问题,晕!我憧憬和向往的圣地啊!!!)难度:11.有效利用布线资源,更利于布线2.线间干扰最小@@3、Howtofixx-talkviolation?如何解决线间干扰?难度:4(关于难度的定义,在第一题里面)(应该至少有5大类解决办法,wirespacing,shielding,changelayer之类的只算其中1类)1.增加受害网络的驱动能力upsizevictimdriver减小侵害网络的驱动能力2.Doublewitch,doublespacing,wireshileding3.Insertbufinvictimnet4.Victim的输入端改成hi-vthcell,hi-vth保证了再小纹波干扰下不发生翻转5.改变timingwindows@@4、Whatareseveralfactorstoimprovepropagationdelayofstandardcell?哪些因素可以影响标准单元的延迟?难度:3答案应该包括1)PVT2)inputtransition,outputload3)Vth@@5、Whatwouldyoudoinordertonotusecertaincellsfromthelibrary?如何禁止使用库里面的某些单元?难度:1禁用就用set_dont_use禁止修改就用set_dont_touch@@6、Duringthesynthesis,whattypeofwireloadmodelareoftenused?做RTL综合时,经常使用的wireloadmodel有哪几种?难度:2注意:问题是wireloadmodel,不是wireloadmode,也不是delaymodel答案:1)zerowireloadmodel2)基于fanout的传统WLM3)基于物理位置(距离)的wireloadmodel,在Cadence的RC中叫PLE,Synopsys叫DCUltraTopographical附加问题:Whattypesofdelaymodelareusedindigitaldesign?(数字IC设计中有多少种类型的delaymodel)答案就是你说的“NLDM,CCS,和ECSM”,还有一个现在基本不用了的--LDMDC默认的应该是zerowireloadmodel,当然也会根据design的大小选择不同K值的wiremodel,nldm(非线性负载模型)CCS(synopsys)和ecsm(cadence)都是电流源模型,精细度更高,这三种模型是对celldelay的计算方式的不同区分;PVT(processvoltagetemperature)条件就是我们平时做时序分析的wcl、wc、lt、tc、ml等corner设置workcondition一般情况下wcl下修复setuplt下修复hold、ml下查看leakage答案:NLDMCCSECSM还有一个现在基本不用了的—LDM@@7、HowdelaysarecharacterizedusingWLM(WireLoadModel)?使用一般的WLM(不是zeroWLM,也不是按照物理位置算的DCT),DC是如何计算delay的?难度:2lookuptableLUT一条Timingpath上的Delay有2部分组成,CellDelay+NetDelay。在DC中,NetDelay应该来说就是有WLM中得到的,而CellDelay就是根据WLM中得到的inputTran跟Cell的outputload通过查表得到Celldelay。DC在计算延时的时候,主要根据输出的tansition和net的RC值来计算。outputtansition是由驱动cell的inputtansition和load通过查表得到的,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的延时。@@8、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@@9、Therearesourceclockclka(create_clock),andgeneratedclockclkbbyclka.howdoyouspecifytheminCTSspecfile?Assumethereisrealtimingpathbetweenclkaandclkb.clkb是clka的生成时钟,在CTS的spec文件中如何定义这两个时钟?假设clka和clkb间的FF有时序收敛的要求。难度:3答案:CTS的spec文件中定义clka是root,clkb为throughpin,再加上那些应该有的skewtransition,insertiondelay等就好了,其它的事CTS会给你做@@10、假设在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=0@@11、Whatarevarioustechniquestoresolveroutingcongestion?请详细解释解决走线阻塞的问题难度:4提示:1)routingcongestion发生在后端,前端一般不太考虑这个问题,需要后端自己去办法解决,但是解决的办法不只在后端,也有一些方法需要前端的配合2)阻塞有多种情形,要分别讨论,没有一个统一的解决办法。能够把大部分的阻塞情况列举出来,就已经够4级的水平啦答案:1)阻塞在RAM(macro)之间:可能RAM之间的距离没有计算正确,可以加大RAM之间的间距;扭转RAM的方向,使得RAM的IOpin朝向更容易走线的那边;如果是多个RAM共用地址或者数据线,尽量把RAM的地址数据pin对齐2)阻塞出现在RAM和帮助单元交界的地方:在RAM周围加一条halo(keepout);把RAM放在四周,尽量把中间留下的空间变成方形;在有阻塞的地方加一些由小的placement
本文标题:陈涛后端面试总结-v1
链接地址:https://www.777doc.com/doc-3463148 .html