我是靠谱客的博主 辛勤咖啡豆,最近开发中收集的这篇文章主要介绍后端题目--陈涛,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、https://zhuanlan.zhihu.com/p/279941084

二、

@@1、下面是第一个真正的问题:
Why power stripes routed in the top metal layers? 为什么电源走线选用最上面的金属层?
难度:1

1.高层更适合global routing.低层使用率比较高,用来做power的话会占用一些有用的资源,
比如std cell 通常是m1 Pin 。
2. EM能力不一样,一般顶层是低层的2~3倍。更适合电源布线。顶层金属通常比较厚,可以通过较大的电流
3.一般ip占用的层次都靠近下几层,如果上层没有被禁止routing的话,top layer 可以穿越,低层是不可能的,并且高层对下层的noise影响也小很多。

4.高层具有较小的寄生电阻,产生的电压降更小。

@@2Why do you use alternate routing approach HVH/VHV (Horizontal-Vertical-Horizontal/ Vertical-Horizontal-Vertical)?
为什么要使用横竖交替的走线方式? (感觉这个问题比较弱智,但是号称是intel的面试问题,晕!我憧憬和向往的圣地啊!!!) 难度:1

老是简单的问题比较无趣,问一个貌似简单,但是不容易回答完整的
1.有效利用布线资源,更利于布线

2.线间干扰最小
@@3How to fix x-talk violation
如何解决线间干扰?
难度:4 (关于难度的定义,在第一题里面)
(应该至少有5大类解决办法,wire spacing, shielding, change layer之类的只算其中1类)

1.增加受害网络的驱动能力upsize victim driver减小侵害网络的驱动能力

2Double witch double spacingwire shileding

3Insert buf in victim net

4Victim的输入端改成hi-vth cell hi-vth保证了再小纹波干扰下不发生翻转

5.改变timing windows

@@4What are several factors to improve propagation delay of standard cell?
哪些因素可以影响标准单元的延迟?难度:3

答案应该包括
1) PVT
2)input transition, output load
3)Vth

@@5What would you do in order to not use certain cells from the library?如何禁止使用库里面的某些单元?难度:1

禁用就用set_dont_use禁止修改就用set_dont_touch

@@6During the synthesis, what type of wire load model are often used?
RTL综合时经常使用的wire load model有哪几种难度2

注意问题是wire load model不是wire load mode也不是delay model
答案
1zero wire load model
2
基于fanout的传统 WLM
3
基于物理位置距离wire load modelCadenceRC中叫PLESynopsysDC Ultra Topographical
附加问题
What types of delay model are used in digital design? (数字IC设计中有多少种类型的delay model)

答案NLDM   CCS  ECSM  还有一个现在基本不用了的—LDM

@@7How delays are characterized using WLM (Wire Load Model)?使用一般的WLM (不是zero WLM,也不是按照物理位置算的DCT),DC是如何计算delay的?难度:2

DC在计算延时的时候netrc就要根据所选取的wrie load model来计算
计算时和输出的fanout决定
smic13smic13_wl10为例
  wire_load("smic13_wl10") {
    resistance        : 8.5e-8;
    capacitance        : 1.5e-4;
    area        : 0.7;
    slope        : 66.667;
    fanout_length        (1,66.667);

根据fanoutfanout(1,66.667)可以得出互连线长度为66.667然后根据resistancecapacitance计算出互连线电容为1.5e-4*66.667互连线电阻为8.5e-8*66.667
当然如果扇出值表中没有就会用到slope例如扇出为3此时估算的互连线长度为1*66.667+3-1*slope再计算出RC然后DC由此计算net的延时

 

@@8There are source clock clka (create_clock), and generated clock clkb by clka.
In pre-CTS netlist, there is network latency in clka, how this latency propagates to clkb?
In post-CTS netlist, What you need to do for this network latency?

假设有两个时钟,原始为clka,生成的时钟为clkb
在没有时钟树的网表中,clkanetwork latency会自动传递到clkb上吗?clkblatency如何描述?
在生成时钟树的网表中,如何处理network latency? clkblatency又如何描述?难度3

答案

pre-CTSclkanetwork latency会自动传到clkb上在post-CTS可以把network

latency去掉通过set_propagated_clock命令让工具根据clock tree去计算实际的clock

network latency

@@9There are source clock clka (create_clock), and generated clock clkb by clka. how do you

specify them in CTS spec file? Assume there is real timing path between clka and clkb.

clkbclka的生成时钟,在CTSspec文件中如何定义这两个时钟?假设clkaclkb

间的FF有时序收敛的要求。难度:3

答案:

CTSspec文件中定义 clka rootclkb through pin,再加上那些应该有的skew

transitioninsertion delay等就好了,其它的事CTS会给你做

@@10、假设在pre-CTS的时序约束中,setupclock uncertainty是由PLL jitterclock tree

skew两部分组成,那么

1pre-CTS的时序约束中,holdclock uncertainty是什么?

2post-CTS的时序约束中,setupholdclock uncertainty要做什么样的修改?难度:2

答案:1 pre-CTS
    setupclock uncertainty = PLL jitter + clock tree skew
    hold
clock uncertainty = clock tree skew
2
post-CTS
    setupclock uncertainty = PLL jitter
    hold
clock uncertainty = 0

@@11What are various techniques to resolve routing congestion?

请详细解释解决走线阻塞的问题难度:4

提示:1 routing congestion发生在后端,前端一般不太考虑这个问题,需要后端自己去

办法解决,但是解决的办法不只在后端,也有一些方法需要前端的配合

2 阻塞有多种情形,要分别讨论,没有一个统一的解决办法。能够把大部分的阻塞情况列举出来,就已经够4级的水平啦

答案:
1)阻塞在RAMmacro)之间:可能RAM之间的距离没有计算正确,可以加大RAM之间的间距;扭转RAM的方向,使得RAMIO pin朝向更容易走线的那边;如果是多个RAM共用地址或者数据线,尽量把RAM的地址数据pin对齐
2)阻塞出现在RAM和帮助单元交界的地方:在RAM周围加一条halokeepout);把RAM放在四周,尽量把中间留下的空间变成方形;在有阻塞的地方加一些由小的placement blockage组成的矩阵
3)阻塞出现在标准单元的某一块:也可以加一些由小的placement blockage组成的矩阵;module/instance padding;利用placement guide减少那块地方的标准单元个数;scan chain reordering也会改善一些阻塞;定义density上限;使用congestion drivenplacement,并且要求place之后做congestion优化;在综合是禁止使用那些pin太多太密集的标准单元(多半是那些复杂的组合逻辑单元);请前端使用RAM代替触发器矩阵;请前端修改算法
4)应该尽量减少power route占有的资源,谨慎选择power mesh使用的金属层,VIA的大小等。在detail route完成之后,你如果已经试了各种解决signal congestion的方法,还有少量DRC无法解决时,可以考虑切掉部分power mesh

@@12How do you get better skew/insertion delays in CTS (Clock Tree Synthesis)?
如何得到更好的时钟树skewinsertion delay  难度:4

如果是用普通的CTS的方法,可以从下面几个方面着手。不太可能一次就把CTS做得很好,要反复调试各种参数,达到最佳效果。
1)合理的clock rootthrough pin。这个看似CTS会从SDC自动抓出来,但是并不一定是最好的,特别是多个clock相互有重叠的leaf pin时,要特别注意
2)不要用太大或者太小的clock buf/inv
3
)选用RC最小的金属层。如果上面RC最小的金属层已经被占用,比如RC最小的toptop-1已经不够clock net时,而top-2layer2都是一样的RC时,可以选用layer3/4。为什么不用更高层哪?因为这样既照顾了layer2/1pin,有不用太多的via到更高层
4)如果用double width clock wire,可以适当增大clock buf/invsize
5
)合理的max fanout。有时clock buf/invfanout可以超过max_fanout的限制
6)不要把skew设得太小
7min_insertion_delay = 0ns
8
)合理的transition time,不要太小
9)使用postCTSCTS opt
10
)做clock tree时,就直接把clock net走线完成

@@13If giving total standard cell gate count, all memory macro list including memory type, bit

width and depth, all other macro with real size, and IO type and total number. How do you

estimate the die size?

如果告诉你标准单元的门数,所有内存的类型和逻辑大小,其他IP的实际大小,以及IO cell

的种类和数量,你如何估算整个芯片的面积?

答案:

IO neck core neck 一般称作 IO limited core limited
IO limited :这个芯片的面积是因为IO个数限制(太多),而不得不做得那么大。core部分其实用不了那么大。这时面积计算就简化为每边IO个数的计算了。
Core limited:芯片面积是有core部分的决定的,IO没有那么多
Core limited情况下,die size的估算如下:
芯片面积 = core面积+ power ring面积 +PAD ring面积 
core
面积 = RAM面积 + 其他macro面积 + 标准单元面积

RAM面积 = RAM 自身的面积 + RAM power ring面积 + keepout面积  + mbist面积
RAM自身的面积可以通过memory compiler或者查datasheet得到,
有些RAM 可以不要power ring。如果要的话,按照power mesh的宽度 x RAM的长宽 x 2 = 面积
keepout + mbist 的面积一般是RAM自身面积的10%

其他macro的面积,比如PLLADCDAC等,直接把面积加起来,再留35%keepout面积就好了

标准单元的面积=(预估的gate count x 每个gate的面积)/ utilization
utilization
与使用的金属层数和设计的用途有关,简单地计算方法是
5metal50%
6
metal60%
7
metal70%
8
metal80%
以上不包括power专用的金属层

如果设计是多媒体芯片,一般可以增加35% utilizaion,如果是网络芯片,则要减少35%

@@14what is pros and cons of using buffer and invters in CTS?
CTS
中使用bufferinverter的优缺点是什么?
难度:3

答案:
使用BUF
优点:逻辑简单,便于post-CTS对时钟树的修改
缺点:面积大,功耗大,insertion delay
使用INV
优点:面积小,功耗小,insertion delay小,对时钟duty cycle有利
缺点:不易做时钟树的修改

@@15If giving two physical dies as below, and ask you select one of them. How do you pick it up? explain the reason please.
1 width = 2 x height
(2) height = 2 x width

如果从下面的两个芯片中选一个给你做后端设计,你选哪个?请说明选择的理由?
1 = 2倍的长
2 = 2倍的宽

答案:
去除不太好用的layer(比如metal1)和power专用layer(比如RDL)后,比较剩下的layer可以提供的HVrouting resource,如果H的多,就选宽的,反之,就选高的。

@@16if the design is IO limited, how to reduce the die size?
因为IO太多而导致芯片面积过大,有什么方法减小面积?难度:2
答案:
1stagger IO2io 可以算一个方法
2IO可以不全放到四边,只要封装没问题就行啦 -- flip chip 算第二个方法
3)如果有多套IOcell可以选择,尽量选瘦的
4)调整芯片的长宽比

@@17giving the schematic and delay in attached picture, calculate the WC setup slack at D pin of F2, and BC hold slack at D pin of F4
如图所示,时钟和延迟,计算到F2输入端Dsetup slack,到F4输入端Dhold slack难度:3

答案:
F2输入端Dsetup slack(8+0.5-0.3)-(0.7+7.0)=0.5
F4
输入端Dhold slack(0.2+0.2)-(0.2+0.2+0.1)=-0.1

@@18using the same logic as question #17, considering OCV on clock path only, which clock buffer will be used for OCV derating calculation and which clock buffer will not (a.k.a. CPPR)?
如果考虑clock pathOCV,在第17题的电路里面,哪几个时钟BUF要被用来计算OCVderating,哪几个不用(又叫CPPR)?暂不考虑X-talk产生的incremental delay

答案:
C1 C2不用算入derating(应该是也计算过,但是会通过CRPR弥补),C3,C4,C5 要计算derating
附录:以下是几个概念的通俗解释。
OCV:因为制造工艺的限制,同一芯片上不同位置的单元会有一点差异,这就是OCV。现在还有LOCVAOCV,暂且不提。
derating:是计算OCV的一种简单方法,在某个单一条件下,比如WC或者BC,把指定path的延迟放大或者缩小一点,这个比率就是derating。注意,这里要强调的是某个单一条件,要么是WC,要么是BC,不能把WCBC混在一起,再OCV,因为那样太悲观,实际上是很难发生的。
除了derating以外,在使用incremental SDF的时候,也会对OCV发生作用。这是明天的问题,比较有难度。
CPPR:一条pathstart flopend flop的时钟路径,有时会有一部分是重合的,重合的部分不应该算OCV(注意,这里假设没有使用incremental SDF),这就叫CPPR

@@19continue from question #18. Because there is CPPR, the OCV derating on clock path C1 and C2 are canceled. Now giving incremental delay caused by x-talk at net between C1 and C2. Please use the derating to calculate the difference of clock path delay from C1 to C2 (including the net between them) for WC setup and BC hold.
接上面#18的问题继续讨论,因为有CPPR,在C1C2那段clock path上面的OCV被抵消掉了。现在我们增加一个由x-talk引起的incremental延迟在C1C2的那段net上,具体数字见图。
问题:
对于C1C2那段clock path
在计算WC setup时,因为OCV引起的路径延迟的差是多少?
在计算BC hold时,因为OCV引起的路径延迟的差是多少?
注意:
问题是那段clock path因为OCV引起的path delay的差,不是问path delay的绝对值
难度:5
难度5的问题不是盖的吧,
好,改为选择题,
C1C2一段的OCV延迟的差,
1)在计算WC setup时,是           
a)  0
b)  0.0005
c)  0.00075
d)  0.0245
2
)在计算BC hold时,是
a)  0
b)  0.001
c)  0.0015
d)  0.0265

答案:
现在从incremental SDF的格式说起,
-0.01::0.015)(-0.015::0.01
左边括弧里的是rising timing延迟,右边的是falling timing
括弧里面的一对数字表示在这个条件下(WC或者BC)延迟的最大和最小值
因为是incremental延迟,要和基本延迟结合使用,所以,会有负数出现。
再讲OCV的使用incremental SDF的方法,
OCV计算path delay时挑选最困难的情况,
WC setup时,比如从F1F2
计算F1clock path,就选incremental SDF里面的最大值0.015
计算F2clock path,就选最小值-0.01
因为有0.95 derating-clock-early上,所以F2clock path要按比例缩小-0.01x0.95=-0.0095
所以C1C2那段的OCV的差是0.015+0.0095=0.0245 (选项d)
BC hold时,比如congF3F4,因为2FF在同一个时钟沿检测hold timing
CPPR可以把incremental SDF的延迟也抵消掉,
所以C1C2那段的OCV的差是0 (选项a
结论:
计算setup时,CPPR不抵消incremental SDF
计算hold时,CPPRincremental SDF都可以抵消掉

@@20Explain ECO (Engineering Change Order) methodology.
说一下ECO的流程   难度:2
答案:
ECO有两种,pre-mask ECOpost-mask ECO,它的分界线就是base layer tape out之前和之后。
pre-mask ECO的流程是
1)后端写出网表,给前端
2)前端修改这个网表 (一般不再做综合),可以使用任何标准单元(只要不是dont_use),交给后端
3)后端读入ECO网表,和ECO之前的placeroute
4
ECO place&routeSTA DRC/LVS
post-mask ECO
流程,假设你不想动base layer
1
)后端写出网表,给前端
2)前端修改这个网表 (一般不再做综合),只能使用spare cell或者象gate array一样的ECO cell
3
)后端读入ECO网表,和ECO之前的placeroute
4
)如果使用spare cell,不用ECO place;如果用ECO cell,要将ECO cell放在以前带gate array功能的fill cell的位置上,再按照指定的layerECO route

@@21What do you write in CTS spec file?
CTS spec
文件中一般包含哪些内容?  难度:3
答案:
(以Cadence CTS spec file 格式为例)
AutoCTSRootPin pad
Period
MaxDelay
MinDelay
MaxSkew
SinkMaxTran
BufMaxTran
Buffer
NoGating NO/YES
DetailReport YES/NO
#SetDPinAsSync NO/YES
SetIoPinAsSync YES/NO
RouteClkNet YES/NO
PostOpt YES/NO
OptAddBuffer YES/NO
#RouteType specialRoute
#LeafRouteType regularRoute
ExcludedPin
leafpin leafport
hroughpin throughport
clkgroup

macromodel pin

@@22If there are too many pins of the logic cells in one place within core, what kind of issues would you face and how will you resolve?
如果在core里面某一块有太多的标准单元的pin,有可能出现什么place&route的问题,如何解决?
难度:3
答案:
1)禁止使用pin太多的cell
2
)减小utilization,方法很多
3)看v h 可用资源,适当调整moudle 形状

@@23If there are DRC spacingshort, hold and setup violations in the design, you don't have enough time to fix all of them before tape out, which one you will fix first, which one you can leave it as is? Why?
如果设计中有DRC (特指spacingshort),holdsetup违反,tape out之前,你已经没有时间去修改所有这些违反,那么你首先修改哪个?哪个可以不管?请说明理由。难度:2
答案:
1) short, spacing
2) hold
3)
如果没有时间,setup可以忽略

@@24how to set multicycle path constraint?
如何设定multicycle path?难度:1
提示:在一般情况下,multicycle -setup -hold 要成对使用
答案:
clock domain
fast-slow:set_multicycle_path num -setup -from clk1 -to clk2 -start
                set_multicycle_path num-1 -hold -from clk1 -to clk2 -start
slow-fast:set_multicycle_paht num -setup -from clk2 -to clk1 -end
                set_multicycle_path num-1 -hole -from clk2 -to clk1 -end
data path:
set_multicycle_path num -setup -from data1 -to data2
set_multicycle_path num-1 -hold -from data1 -to data2

延伸问题:
为什么-hold一般是-setupn-1?如果只有-setup木有-hold会怎样?
答案:
hold 是对前后两个flip flop在相同时钟沿的检查.设了n-1就是返回n-1个周期做hold的检查,满足了两个flip flop在同一个时钟沿。如果没有-hold 默认是检查n前一个有效时钟沿,如果n>=2hold的检查就不是在同一个时钟效沿,对hold的要求就要多n-1个周期,那样太苛刻了,一般时序无法收敛

@@25how are timing constraints developed, such as clock, generated clock, IO timing, exception? What backend team contribute to it?
一个设计的时序约束是怎么写出来的?请大略说明时钟,IO delayfalse path multicycle path是如何得到的?在完成时序约束的过程中,后端可以给予什么样的帮助?难度:2
答案:
clockgenerated clock一般由设计spec决定。除非有些个别的local generated clock可以有前端工程师自己添加
IO timing与系统设计有关,应该参考/兼顾其他芯片的IO时序,由前端工程师作出
exceptionfalse path multicycle path)一般是由前端工程师在做设计时决定的
后端可以提供clock network delay/skewDRV,以及帮助检查SDC是否合格

@@26In regular backend flow with only one functional mode SDC, please explain timing closure methodology/issue/fixes in pre-CTS, post-CTS and post-Route stages.
在只有一个function SDC的普通后端流程中,对于pre-CTS, post-CTS post-Route这三步,请分别讲述它们在时序收敛上的方法,一般会遇到的问题和解决方法。
难度:3暂时不考虑DFT。后续的每日一题中,会加入DFT mode SDC
答案:
pre-CTS时,使用ideal clock,只fix setup
post-CTS
后,使用propagate clock,可以只fix setup,检查hold,但可以不fix hold
post-Route
后,依然使用propagate clockfix setuphold
具体遇到的问题和解决方法:
pre-CTS: 如果有setup,重在调整floorplanbuffer tree结构
Post-CTS: 如果有setup,重在调整clock treebuffer tree结构或者size
Post-Route:
如果有setup/hold,微调clock tree/buffer treesizerouting channel和图层,实在不行,回到CTS

@@27Continue from previous question, if adding one more DFT timing constraint, how do you handle the multiple SDC? Using Encounter or ICC commands, please explain the detail what you do.
继续#26的问题,如果再给一个DFT时序约束,在后端流程中,你如何处理多个SDC?假设使用Encounter或者ICC,请详细介绍如何设置   难度:3
答案:
简单地说就是使用MMMC
Encounter里面,要逐步定义,
create_library_set
create_op_cond
create_rc_corner
create_delay_corner
createPowerDomain
create_constraint_mode
create_analysis_view
set_default_view
set_timing_derate

对设计和SDC仔细分析后,也可以合并function SDC和几个DFT SDC,这个属于难度5的做法

@@28There are function SDC with multiple clock domain and scan SDC with an individual scan clock. Assume those functional clock are un-balanced, how do you balance the scan clock?
假设一个设计的function SDC中有多个时钟,在scan mode下,另有一个单独的scan clock,如果functional的各个时钟树之间是不平衡的,请问如何平衡那个scan时钟?
难度:4
答案:
如果CTS支持multi-mode,直接使用即可。
如果不支持,或者MMCTS效果不理想,就是在CTS spec中,同时定义function DFT 的时钟,然后在scan clock里面,把MUX设为leave pin,再让它们与function clokMUX的延迟做动态平衡

@@29There are function SDC, scan shift, scan capture, scan at-speed, mbist at-speed, and jtag SDC. Considering CPU run time, you can't add all of them into MMMC. Then which SDC you will add in to MMMC setup, and hold?
在一个设计中有多个时序约束,象functionscan shift, scan capture, scan at-speed, mbist at-speed, jtag SDC,为了减少运行时间,不能把它们都放入MMMC中,你选择哪些放入MMMCsetup中,哪些放入MMMChold中?
提示:选择的SDC要尽量的少,并且尽可能多地覆盖其他没有入选的SDC下的时序
难度:4
答案:
这个要从每个SDC的特点着手,个人经验,与设计有关,不敢保证使用与所有设计。
1) scan shift:速度很慢,不用太担心setup,但是hold很重要,一旦hold有问题,所有与scan有关的测试全泡汤
2) scan capture:也是慢速,但是会有很多hold出来,特别是在不同的function时钟之间
3) scan at-speed:高速,解决了它的setup,其他DFTsetup基本上就连带着解决了
4) mbist at-speed:高速,但是涉及的逻辑不多
5) jtag:慢速,很容易与function SDC合并
所有结论是
MMMC setupfunction + scan at-speed
MMMC Hold: function
+jtag + scan shift + scan capture

@@30Explain SDF and SPEF back annotation timing correlation issue especially in different STA tools
请解释反标SDFSPEF在时序分析时的差异,特别是用不同的STA工具检查timing  难度:3
答案:
使用SDF做时序分析,无论使用什么tools,其结果应该是一样的,没有差异
使用SPEF时,因为工具需要把SPEF换算成SDF,这时会产生差异。
所以建议使用一个你信得过的工具生成SDF,然后大家都使用这个SDFSTA和仿真

@@31

There are 4 power supplies in the design. VDD1/2/3 are different voltage. VDD1 is always on, but VDD2 and VDD3 can be turn off and on. VDD2 to block B and block C don't switch at same time. Please fill in the blank which net needs to be added level shifter and/or isolation cell. If you think Level shifter/isolation cell should be added in netAB at B side, then write B; if you think it's not necessary, write X.
如图,一个设计中有4个电源,VDD1/2/3的电压各不相同,VDD1总是开着,其他会有开和关,并且到模块BVDD2和到模块CVDD2有各自分别的开关。请判断在连接这4个模块的8net上,哪些需要level shifter,哪些需要ioslation cell,把结果填入右边的表中。
填法如下:假如你认为需要在netAB上加个level shifter,加的位置在模块B里面,就在netAB的右边的第一列空格里写B。如果什么都不加,就写。难度:3

没做过low power设计,但是研读过low power methodology manual for soc这本书。我来说说我的理解,有不对之处请高手指教。
一、电平不同的模块之间即需要level shifter,故netAB/BA/AD/DA/CD/DC都需要level shifter。至于level shifter的位置是放在src端还是des端。一般来说H2L的由于只包含有des的power rail,所以肯定要放在des端。而L2H则包含有两种power rail。肯定需要跨电压域的电源线连接。考虑到output driver需要的电流一般要大于input driver需要的电流。所以也推荐放在des端。在本题中也未提到电平之间的相对大小。所以我都放在des端。
二、有power gated控制的模块,其输出都要加上isolation cell,故netBA/BC/CB/CD/DC/DA都需要isolation cell。其位置的摆放也有两种,一是摆放在ouput端,一是摆放在input端。前者一是可以节省所需要的isolation cell数量(考虑一个模块引脚的输出连到多个模块引脚的输入的情况),二是便于check。后者优点是isolation cell需要always-on的power。若放在output端,还需要引always-on的power rail过来。故此例中BA和DA的isolation cell都放在了A模块中,其它的则放在ouput端。
我的答案是:
netAB B X;netBA A A;netBC X B;netCB X C;net CD D C;net DC C D;net DA A A;net AD D X;

应该是后者优点是isolation cell需要always-onpower”吧?
isolation cell理论上可以放在output端,但是考虑power-on rail的走线,isolation cell自身的功耗,一般还是放在input端比较好。
你的答案也是正确的!

@@32Continue from #31 question, there is isolation cell on netBA with isolate enable pin. When shutdown the block B, will you enable isolate pin first, or shutdown B first? What order it is during block B power-on?

接着上一题提问,在netBA上有一个isolation cellisolation cell都会有一个isolate enable端,在模块B关断电源时,是先让isolate enableon哪,还是先关模块B?反之,在开模块B的电源时,谁先谁后?难度:2
答案:
isolate on,power off,反之先power on,isolate off

@@33There are 1000 clocks in a design. You guess the constraint cross the clocks is incomplete, and want to have a list of clocks which has cross clock domain path. How do you find whether there is path between 2 clocks?
设计中有1000clock,你怀疑跨时钟的时序约束有问题,想找出哪些clock之间有real path,请问如何找?难度:2
答案:
check_timing
report_timing -clock_from -clock_to
循环

@@34What are various statistics available in IR-drop analysis reports?
IR-drop
的分析报告里面都包含哪些内容?难度:2
答案:
至少包括
各种mode下的staticdynamic IR-srop report,其中drop的容许范围可以参考厂家的意见
function mode下的EM reportRJ report

@@35With respect to clock gate, what are various issues you faced at various stages in the physical design flow?
在后端流程的每步中,如何处理门控时钟?难度:3
答案:
如果是用latch+and/or在组合成的clock gating cell,比较麻烦,以后估计不多见了,暫不讨论。TomPaul提到的问题都很让人头痛,特别是做CTS时,如何处理那些个latchclk pinPlace时,latchand/or cell一定要靠得很近。
一般使用ICG cell时,
place:使用clock gating aware placement选项
CTS:主要看工具的本领了,一般是希望在满足setup的前提下,ICG cell要尽量靠近clock root
route
:除了clock net优先以外,不记得还有什么可做的了

@@36What is SSO? How to calculate the SSO in pad ring design?
什么是SSO,设计PAD ring时,如何计算SSO?难度:3
答案:
sso ,即simultaneous switching ouputs,即允许同时切换的信号IO的数量。多个信号IO同时切换时,因更多电流流过pad ring,在pad电源IObonding wire及片外引线上的电感上,产生Ldi/dt的压降。也即ssn,同时切换噪声。主要是会引起地弹,即ground bounce
避免sso有很多方法。如增加供给pad用的电源IO数量,采用double bondingtriple bonding,采用slew rate controlIO,避免把pad电源IO放在corner上(cornerbonding wire引线最长,L最大),等。
主要还是采用增加pad用电源IO数量的办法,计算方法一般foundry会提供,一般是给每个信号PAD一个DF值(还要根据bonding wire电感值做出选择),把自己用的所有信号IODF值加在一起,能得出所需要的POWER PAD的数量。

@@37In building the timing constraints, do you need to constrain all IO ports? Can a single port have multi-clocked? How do you set delays for such ports? Can a clock port have multi-clock definition? How do you create clock for this port?
写时序约束时,是否需要对所有的IO端口加约束?一个信号端口是否可以被多个时钟约束?应该如何对这种端口设置delay?一个时钟端口是否可以定义多个时钟?应该如何定义这些时钟?难度:2
答案:
CLOCK ports 不需要加,其他都要
可以,set_input_delay -add_delay
可以,create_clock –add

@@38What is purpose of lockup latch in scan chain? Does lockup latch always fix the problem of first question? Does lockup latch clk pin connect to the clock of predecessor flop or successor?
scan chain
中插入lockup latch的目的是什么?是不是lockup latch总能达到那个目的?lockup latchclk端与前一个flopclock相连,还是后一个flopclock相连?
难度:3
答案:
一般scan 用的时钟树大部分是与function的共享,所以scan chain的前一段和后一段的clock insertion delay会不一样,因为scan shift速度很慢,不太用顾及setup,但是要确保hold
所以在前一个FFclock insertion delay小,后一个大时,插入一个lockup latch,使信号多保持半个周期,以满足后一个FFhold要求。
它们的时序关系是
FF时钟延迟+1/2 scan时钟周期 >= FF时钟延迟 + FF hold要求
当后FF时钟延迟太大时,lockup latch也解决不了hold违反的问题
按此分析,lockup latchclk端是和前一个FF的时钟相连的。

@@39How is scan DEF generated?
scan DEF
是怎么生成的?难度:2

在第一次做完scan chain stitch后,让DFT tool输出一个scan def

@@40What are pros/cons of using low Vt, high Vt cells?
使用low Vt high Vt cell的优缺点?
难度:1
答案:
lvt cell速度快,耗电高,静态电流大
hvt cell速度慢,静态电流小
这是timingpowertrade off

@@41How do you reduce standby (leakage) power? How do you reduce dynamic power?
如何减少静态功耗?如何减少动态功耗?
难度:3
答案:
老陈认为,这是最邪恶的一种提问方法!貌似简单,其实覆盖范围很广。
leakage power + dynamic power 不就是 total power 吗?
那么这个问题可以换一个说法:如何减少功耗?
这样可以从系统结构,算法,前端,一直说到后端,即可以罗列几个大的方向,也可以具体到每个细节,你也搞不清楚他想问的是那个方面。
反过来说,如果他有意刁难你,就可以用这种问法,反正你答不全,到时就说你水平不够!

我们就集中在后端的部分(加一小部分前端),而且是细节讨论
楼上几位说得都对,总结一下
静态功耗:
非关键路径HVT cell 替换
coarse grain fine grain power shutdown
减少decap_cell
散热降温
动态功耗:
降压
power island
DVSF

非关键路径HVT cell 替换
clock gating
memory split
signal gating
transition time
约束
减小高速信号的走线长度

@@42How do you design PAD ring?
如何设计PAD ring
难度:3
(又是一道比较邪恶的题目)

大的流程是:
1)根据系统(其他芯片的)要求,芯片内部的floorplan,决定信号PAD的位置
2)计算出power PAD的个数,插入到信号PAD里面
3)加其他的PAD,比如IO fillerpower cutpower on controlcorner PADESD
细节可以包括:
1)如何计算core power PAD:估算core power,再加50%,算出电流,除以每个core power IO的最大电流,就是大致的PAD个数。插入到信号PAD ring后,还要再计算power EM,防止一根电源线上的电流过大。
2)如何计算IO power PAD:从信号IO的功耗算起,同时计算SSO,取2个结果里面较大的
3)在什么地方插入power cut:不同的电压core电压和不同的IO电压之间,power island之间,数字和模拟电源之间。
4power on control PAD,一段每个IO ring需要一个
5ESD一般要加在每个不同的电源之间

@@43In hierarchical design flow, explain block level pin placement flow? What are parameters to decide?
hierarchical流程中,如何确定blockpin(位置,金属层)?难度:3
答案:
top-down流程中
位置 :主要是看与该block相关的其它block(ANALOG )interface,一般相关的PIN/PORT 要比较近,同时也尽量不要使PINblock内部的 memory(一般放在block boundary)等挡到金属层 :也要看相关的其它blockPIN/PORT 所出的金属层,尽量用一致的,同时不用M7.M8等一般用来走power 的金属层,当然M1 也不用encounterICC也应该是同样的道理)用flattentrial route来决定block pin的位置和金属层。
当然,你可以事先指定,也可以事后修改在bottom-up流程中,主要是人为的规定了

@@44What does x-talk reports contain? How do you use those reports to improve the design?
分析X-talk后都输出哪些报告和结果?如何利用这些结果改善设计?
难度:3
答案:
X-talk的分析结果中,至少要包含X-talk glitch X-talk delay 的报告和数据,
可以把glitch报告读回到P&R tool里面,让tool自动解决这些问题,也可以手动,详细请参考每日一题(003
X-talk delay就是incremental delay,反标回网表中以后,再做一次时序优化

@@45Explain function and difference of Muxed FF (Multiplexed Flip Flop) /scan FF (with scan_in and scan_en input pins).
解释Muxed FFscan FF的异同
难度:2
答案:
Scan FF Mux FF的子集。Scan DFF 从功能上讲,就是Mux+FF
但是一般2者不混用,因为在输入端的时序要求大不一样
想问的是 scan FF的内部结构以及时序特点

@@46In logic equivalence checking, how do you handle scan_en signal?
LEC
中如何处理scan_en端?
难度:3
答案:
如果有scan chain reorderdisable scan_en
如果没有,enable scan_en

@@47why optimize leakage power after timing closure? What's happen if doing it with setup violation?(在P&R中)为什么优化静态功耗要在时序收敛之后做?在有setup违反时做的话,会怎么样?难度:3

答案:
优化静态功耗主要是通过换HVTCELL的方法来做吧。在有setup违反时做自然会使已经违反setup的路径变得更差更难收敛。这里应该先考虑满足timing,再尽可能降低power

@@48Does a standard cell leakage power depend on its input patten?
标准单元的leakage功耗与其输入端的状态有关吗?不考虑input pin open的情况
难度:2
答案:
有影响的。根据衬底偏置效应,阈值电压与Vbs有关。对于nmos来说,一般B级电平固定接地。s级电平越高,阈值电压越小。相应漏电流越大。

@@49If you have both IR drop and congestion how will you fix it?
如果设计中既有IR-drop的问题,又有congestion的问题,你如何解决?
难度:3
答案:
如果说的是同一块区域即有IR 又有congestion的话,把这块区域的cell密度降低一点就可以了吧

@@50纪念每日一题累计到50,发一组选择题,从其中选一个最适合的答案,问题太多,不附带中文了

大致的难度在1和2之间

  • 1) Chip utilization depends on ___.

a. Only on standard cells
b. Standard cells and macros
c. Only on macros
d. Standard cells macros and IO pads

  • 2) In Soft blockages ____ cells are placed.

a. Only sequential cells
b. No cells
c. Only Buffers and Inverters
d. Any cells

  • 3) Why we have to remove scan chains before placement?

a. Because scan chains are group of flip flop
b. It does not have timing critical path
c. It is series of flip flop connected in FIFO
d. None

  • 4) Delay between shortest path and longest path in the clock is called ____.

a. Useful skew
b. Local skew
c. Global skew
d. Slack

  • 5) Cross talk can be avoided by ___.

a. Decreasing the spacing between the metal layers
b. Shielding the nets
c.  Using lower metal layers
d. Using long nets

  • 6) Prerouting means routing of _____.

a. Clock nets
b. Signal nets
c. IO nets
d. the net with special requirement

  • 7) Which of the following metal layer has Maximum resistance?

a. Metal1
b. Metal2
c. Metal3
d. Metal4

  • 8) What is the major goal of CTS?

a. Minimum IR Drop
b. Minimum EM
c. Minimum Skew
d. Minimum Slack

  • 9) Usually Hold is fixed ___.

a. Before Placement
b. After Placement
c. Before CTS
d. After CTS

  • 10) To achieve better timing ____ cells are placed in the critical path.

a. HVT
b. LVT
c. RVT
d. SVT

  • 11) Leakage power is inversely proportional to ___.

a. Frequency
b. Load Capacitance
c. Supply voltage
d. Threshold Voltage

  • 12) Regular filler cells are added ___.

a. Before Placement of std cells
b. After Placement of Std Cells
c. Before Floor planning
d. Before Detail Routing

  • 13) Search and Repair is used for ___.

a. Reducing IR Drop
b. Reducing DRC
c. Reducing EM violations
d. None

  • 14) Maximum current density of a metal is available in ___.

a. .lib
b. .v
c. .tf
d. .sdc

  • 15) More IR drop is due to ___.

a. Increase in metal width
b. Increase in metal length
c. Decrease in metal length
d. Lot of metal layers

  • 16) The minimum height and width a cell can occupy in the design is called as ___.

a. Unit Tile cell
b. Multi heighten cell
c. LVT cell
d. HVT cell

  • 17) CRPR stands for ___.

a. Cell Convergence Pessimism Removal
b. Cell Convergence Preset Removal
c. Clock Convergence Pessimism Removal
d. Clock Convergence Preset Removal

  • 18) In OCV timing check, for setup time, ___.  

a. Max delay is used for launch path and Min delay for capture path
b. Min delay is used for launch path and Max delay for capture path
c. Both  Max delay is used for launch and Capture path
d. Both Min delay is used for both Capture and Launch paths

  • 19) "Total metal area and(or) perimeter of conducting layer / gate to gate area"  is called ___.  

a. Utilization
b. Aspect Ratio
c. OCV
d. Antenna Ratio

  • 20) The Solution for Antenna effect is ___.

a. Diode insertion
b. Shielding
c. Buffer insertion
d. Double spacing

  • 21) To avoid cross talk, the shielded net is usually connected to ___.

a. floating
b. VSS
c. Both VDD and VSS
d. Clock

  • 22) If the data is faster than the clock in Reg to Reg path ___ violation may come.

a. Setup
b. Hold
c. Both
d. None

  • 23) (重复,删除)
  • 24) Which  of the following is not present in SDC ___?

a. Max tran
b. Max cap
c. Max fanout
d. Max current density

  • 25) Timing sanity check means (with respect to PD)___.

a. Checking timing of routed design with out net delays
b. Checking  Timing  of placed design with net delays
c. Checking Timing of unplaced design without net delays
d. Checking Timing of routed design with net delays

  • 26) Which of the following is having highest priority at final stage (post routed) of the design ___?

a. Setup violation
b. Hold violation
c. Skew
d. None

  • 27) Which of the following is best suited for CTS?

a. CLKBUF and CLKINV
b. BUF
c. INV
d. all of them

  • 28) In Wire bond chip, Max voltage drop  will be there at(with out macros) ___.

a. Left and Right sides
b. Bottom and Top sides
c. Middle
d. None

  • 29) Which of the following is preferred while placing macros ___?

a. Macros placed center of the die
b. Macros placed left and right side of die
c. Macros placed bottom and top sides of die
d. Macros placed based on connectivity of the I/O

  • 30) Routing congestion can be avoided by ___.

a. placing cells closer
b. Placing cells at corners
c. Distributing cells
d. None

  • 31) Pitch of the wire  is ___.

a. Min width
b. Min spacing
c. Min width - min spacing
d. Min width + min spacing

  • 32) In Physical Design following step is  not there ___.

a. Floorplaning
b. Placement
c. Design Synthesis
d. CTS

  • 33) In technology file if 7 metals are there then which metals you will use for power?

a. Metal1 and metal2
b. Metal3 and metal4
c. Metal5 and metal6
d. Metal6 and metal7

  • 34) If metal6 and metal7 are used for the power in 7 metal layer process design then which metals you will use for clock ?

a. Metal1 and metal2
b. Metal3 and metal4
c. Metal4 and metal5
d. Metal6 and metal7

  • 35) In a reg to reg timing path Tclocktoq delay is 0.5ns and TCombo delay is 5ns and Tsetup is 0.5ns then the clock period should be ___.

a. 1ns
b. 3ns
c. 5ns
d. 6ns

  • 36) Difference between Clock buff/inverters and normal buff/inverters is __.

a. Clock buff/inverters are faster than normal buff/inverters
b. Clock buff/inverters are slower than normal buff/inverters
c. Clock buff/inverters are having equal rise and fall times with high drive strengths compare to normal buff/inverters
d. Normal buff/inverters are having equal rise and fall times with high drive strengths compare to Clock buff/inverters.

  • 37) Which configuration is more preferred during floorplaning ?

a. Double back with flipped rows
b. Double back with non flipped rows
c. With channel spacing between rows and no double back
d. With channel spacing between rows and double back

  • 38) What is the effect of high drive strength buffer when added in long net ?

a. Delay on the net increases
b. Capacitance on the net increases
c. Delay on the net decreases
d. Resistance on the net increases.

  • 39) Delay of a cell depends on which factors ?

a. Output transition and input load
b. Input transition and Output load
c. Input transition and Output transition
d. Input load and Output Load.

  • 40) After the final routing the violations in the design ___.

a. There can be no setup, no hold violations
b. There can be only setup violation but no hold
c. There can be only hold violation not Setup violation
d. There can be both violations.

  • 41) Utilization of the chip after placement optimization will be ___.

a. Constant
b. Decrease
c. Increase
d. None of the above

  • 42) What is routing congestion in the design?
  1. Ratio of required routing tracks to available routing tracks
    b. Ratio of available routing tracks to required routing tracks
    c. Depends on the routing layers available
    d. None of the above

答案:
01-05: d c b c b
06-10: d a c d b
11-15: d d b c b
16-20: a c a d a
21-25: b b x d c
26-30: b a c d c
31-35: d c d c d
36-40: c a c b d
41-42: c a

因为有些问题不十分准确,而且涵盖的范围也不全面,并且没有明显的难易层次,不要太在意结果。
一般讲,应该在34分钟内完成,
12题,可以算粗心
3~4题,可能某个基本概念不清
5~6题,新白领工人
错再多,好好努力吧

@@51Why double width (multiple vias) and double spacing are used related to clock?
为什么时钟走线使用double widthdouble space?难度:3
答案:
CLock Net是主要的干扰源,增加他与其他Signal NetSpace可以减少因为耦合引起的Cross talk
Double Width(multiple vias)减小了电阻---》减小Delay。提高EM能力,提高可靠性。
double width之后,EM能力提高,可以使用更大驱动的clkbuf和更大的fanout,从而减小时钟树的level

@@52How do you palce macros in a full chip design?
如何摆放macro memoryPLLADCDAC,特殊IO等)?
难度:3
这题也有一个坑,place macro可以有2类不同级别的问题,一个是总的摆放方法,另一个是具体每个macro摆放时应该注意的问题,你应该问清楚他感兴趣的是哪个方面?我们这里就同时问这2个方面。
答案:
整体摆放时,应该考虑:
1PLLADCDAC要按照IO的要求放在边上
2macroIO的关系,相同功能的要靠近
3)要根据芯片内部的数据流,按顺序摆放
4)如果是IO limit设计,除PLL/ADC/DAC等与IO相连的macro以外,macro要靠里放。也就是说,把不用的空间留在IO的四周
5)尽量留出比较规整的区域给Std cell
细节部分:
1)共享data/address bus总线的macro,要把data/address pin对其
2)几个很小的macro,可以尽可能地靠近,共用power ring
3
)大的macro之间,为走线和buffer要留一定的空间
4macro pin的一侧,要尽量对其,以减少走线拐弯

@@53How do you fix the processing antenna problem?
如何修复processing antenna
难度:1
答案:
1跳线
2 diode
3.
buffer

@@54Which PVT condition will give the most leakage power?
那个PVT cornerleakage power最大?
难度:2
答案:
P: FF corner
V: High voltage
T: High temp.

@@55In hierarchical design, after finishing block P&R, you will generate ILM (Interface Logic Model). What ILM contains?
hierarchy P&R流程中,当完成了blockP&R后,会生成ILMILM里面都包含什么信息?
难度:3
答案:
ILM里面包含有一下路径
1inputreg
2regoutput
3inputoutput
4clock到以上reg
的下列信息,
1data path
2
clock path
3
SI data
并且支持MMMC方式

@@56How to fix the EM problem in signal net? how to fix it on power net?
如何修复信号线上的EM违反,如何修复电源线上的?
难度:3
答案:
Signal EM
1. EM问题的net设置non default rule,增加绕线宽度
2. 减小这些netload/fanout 比如插入buffer tree
power
线上的EM
1.power/ground IO尽量均匀摆放
2.增加power mesh的密度
3.增加power layer的层数
4.局部EM有问题的话,可以降低std cell的密度,尤其是clk buf/inv不要太集中

@@57What are DFM issues? What is OPC, RET, CMP and Litho physical/electrical analysis?
DFM
包含什么?什么是OPC, RET, CMP Litho 物理/电子分析?
难度:3
答案:
后端主要是double via spead wire width/space, 还有add dummy metal,使metal desity更均匀,
OPC optical proximity correction
CMP: chemical mechanical planarization
RET: resolution enhancement techniques

@@58what is ESD? Where you need to insert ESD circuit?
什么是ESD? 在什么地方需要插入ESD 电路?
难度:2
答案:
ESD是指静电放电。带有足够高电荷的电气绝缘的导体在靠近时,会形成有相反电势的集成电路,电荷跨接,从而引起静电放电(ESD)
ESD是指静电泄放。一般在IO InPut ESD电路,在IC 的测试。封装。运输。使用等过程中可以把静电有效泄放避免对CMOS 栅极的损伤,从而有效地保护IC
如果不考虑模拟电路的干扰问题,基本上在各个VDDVSS之间都要加入back-to-back diodeESD电路

@@59there are 2 same clock gating cell. The input of clk, output load-A and load-B are 100% same in electronic and physical. There is same X-talk to the instance and nets. Only difference is cntl-A and cntl-B.
Question: is the same path delay from clk to load-A and from clk to load-B? Why


图示2个相同的clock gating,输入端clk2个单元完全相同(电气特性和物理特性),输出端load-Aload-B也完全相同,唯一的不同就是cntl-A cntl-B。请问,clk到输出端load-A的延迟,与clkload-B的延迟是否相同?为什么?


难度:4
答案:
不一样
PrimeTime里面把这个叫做Path Base Analysis (PBA)
OCV关系不大

@@60There is a PLL clock with 50ps jitter and 5ps duty cycle variation. In the design, there are both of posedge Flips and negdege flips. How to transfer the jitter and duty cycle variation into timing constraint?
有一个PLL的时钟,jitter50psduty cycle5ps的漂移。设计中需要同时用到时钟的上升沿和下降沿,如何把那个50ps5ps写到约束文件里?
难度:4
答案:
做法有2
1
对所有关连的时钟,逐一设定如下
set_clock_uncertainty -rise_to 0.05
set_clock_uncertainty -rise_from 0.05
set_clock_uncertainty -fall_to 0.055
set_clock_uncertainty -fall_from 0.055
2)

只对PLL的输出时钟
set_clock_latency -source -fall -early -0.005
set_clock_latency -source -fall -late 0.005
set_clock_uncertainty 0.05

@@611) how many timing path?
2
after placement, the worst setup and hold slacks are all 0ns. next building clock tree. Assume the tree is balanced and the insertion delay is 0.2ns in WC, 0.1ns in BC. Then checking timing again. Is there any timing violation? how many and how much violations there is? is it real? how to fix it?
上图是一个block (不是chip),问
1)有多少timing path
2
place之后,假设setuphold都正好为0ns,然后插入时钟树,树的完全平衡的,WC的时钟树insertion delay0.2nsBCinsertion delay0.1ns,这时做STA,会看到timing violation吗?有多少条violation,各违反了多少ns?他们是真的吗?如何解决?
难度:4
1)这是一道由浅入深的问题,第一问很简单,答错的话,后面就不用问了
答案:4 timing path
2

CTS后,是否有违法,违法多少,是中等难度的问题,答对的话,说明有block level P&R的经验
答案:input hold -0.1 output setup 0.2
如何修复违法是有些难度的问题,
简单的回答是
input delay上加clock insertion delay的值(BC 0.1 WC 0.2),
output delay上减去clock insertion delay的值(BC 0.1 WC 0.2
但是当有上千个inputoutput port时,做起来比较麻烦,
有个非常简单的方法,想到了,就是满分!
设一个虚拟时钟,与clk同频同相,
把所有inputoutput delay都指定到那个虚拟时钟上,CTS后,只要在虚拟时钟上加上(BC 0.1 WC 0.2)的latency就好了

@@62The timing report is created in PT format. The design is 0.5um old technology.
Question:
1) Is there clock tree built in the design?
2) what reasons cause the setup violation?

这是一个PT格式的时序报告,使用的是很老旧的工艺,(所以延迟都比较大,不过不影响下面的问题分析)
问题:
1)这个设计里面有时钟树吗?
2)什么原因造成的setup违反?提示:有多个不同的原因
此帖在EDACN上面发表过,感觉是一个比较经典的后端时序分析的问题,留次存照
   

1) Yes. It finishes CTS.
2) first is clock skew, second is high fanout of U7 , then is long wirelength of net n12.

 

最后

以上就是辛勤咖啡豆为你收集整理的后端题目--陈涛的全部内容,希望文章能够帮你解决后端题目--陈涛所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部