IC行业收藏数字后端面试问题文档格式.docx

上传人:b****8 文档编号:22410581 上传时间:2023-02-04 格式:DOCX 页数:50 大小:44.36KB
下载 相关 举报
IC行业收藏数字后端面试问题文档格式.docx_第1页
第1页 / 共50页
IC行业收藏数字后端面试问题文档格式.docx_第2页
第2页 / 共50页
IC行业收藏数字后端面试问题文档格式.docx_第3页
第3页 / 共50页
IC行业收藏数字后端面试问题文档格式.docx_第4页
第4页 / 共50页
IC行业收藏数字后端面试问题文档格式.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

IC行业收藏数字后端面试问题文档格式.docx

《IC行业收藏数字后端面试问题文档格式.docx》由会员分享,可在线阅读,更多相关《IC行业收藏数字后端面试问题文档格式.docx(50页珍藏版)》请在冰豆网上搜索。

IC行业收藏数字后端面试问题文档格式.docx

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模板 > 自然景观

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1