后端精华

更新时间:2024-01-18 22:13:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1 PR

Q1:IR Drop

IR压降是指出现在集成电路中电源和地网络上电压下降的一种现象。随着半导体工艺的演进金属互连线的宽度越来越窄,

导致它的电阻值上升,所以在整个芯片范围内将存在一定的IR压降。IR压降的大小决定于从电源PAD到所计算的逻辑门单元之间的等效电阻的大小。SoC设计中的每一个逻辑门单元的电流都会对设计中的其它逻辑门单元造成不同程度的IR压降。如果连接到金属连线上的逻辑门单元同时有翻转动作,那么因此而导致的

IR压降将会很大。然而,设计中的某些部分的同时翻转又是非常重要的,例如时钟网络和它所驱动的寄存器,在一个同步设计中它们必须同时翻转。因此,一定程 度的IR压降是不可避免的。

IR压降可能是局部或全局性的。当相邻位置一定数量的逻辑门单元同时有逻辑翻转动作时,就引起局部IR压降现象,而电

源网格某一特定部分的电阻值特别高时,例如R14远远超出预计时,也会导致局部IR压降;当芯片某一区域内的逻辑动作导致其它区域的IR压降时,称之为全 局现象。

IR压降问题的表现常常类似一些时序甚至可能是信号的完整性问题。如果芯片的全局IR压降过高,则逻辑门就有功能故障,使芯片彻底失效,

尽管逻辑仿真显示设计是正确的。而局部IR压降比较敏感,它只在一些特定的条件下才可能发生,例如所有的总线数据同步进行翻转,因此芯片会间歇性的表现出

一些功能故障。而IR压降比较普遍的影响就是降低了芯片的速度。试验表明,逻辑门单元上5%的IR压降将使正常的门速度降低15%。 危害:

1.性能(performance)

由管子的Tdelay=c/u可知,电压降低,门的开关速度越慢,性能越差。

2.功能(function) 实

际上在极端的情况下甚至功能也会受影响的。在深亚微米下,如果Power/Ground network做的也很差,然后碰上了很不好的case,IR drop会很大,如果用的是high Vt的process,则DC noise

margin就比较小了。这样就有可能功能错误。

3.功耗(power)

如果没有做详细的IR

drop分析,又想功能正确,那就只有留很大的margin了,本来1.2v可以跑的,也只能用1.5v了。但是这样功耗也就上去了。

4/面积(area)

如果要在一定程度上限制IR drop,就要在chip里面加上很多的decoupling capacitance.占用了很多面积。

5.成本(cost)

功耗上去了,响应的散热,封装都成了问题,需要额外花费啦。而且面积变大,也是钱啊~

天线效应

2009-03-12 15:49 (转载)

0.4um以上的工艺,我们一般不大会考虑天线效应。而采用0.4um以下的工艺就不得不考虑这个问题了。

Normally the first way to fix antenna effect is changing metal layers. Insering diode is the last way. P&R tools can handle this automatically.

其实foundry提供的PAE ratio,只是一个经验值,是留了很大的margin的。即便你的设计有antenna violation,也可以tapeout的 可通过插入二极管的方法来解决天线效应,这样当金属收集到电荷以后就通过二极管来放电,避免了对栅极的击穿。

天线效应主要涉及工艺过程中直接连在栅上的金属长度过长,容易积聚游离电荷,而对栅造成损害,因此在连接栅的metal1上变换metal2,我的看法是1 直接连接栅的金属长度减小,电荷积累减少 2 给电荷提供另一可能通路

打个简单的比方,在宏观世界里,广播、电视的信号,都是靠天线收集的, 在我们芯片里,一条条长的金属线或者多晶硅(polysilicon)等导体,就象是 一根根天线,当有游离的电荷时,这些―天线‖便会将它们收集起来,天线 越长,收集的电荷也就越多,当电荷足够多时,就会放电。

那么,哪里来的这么多的游离电荷呢?IC现代制程中经常使用的一种方法 是离子刻蚀(plasma etching),这种方法就是将物质高度电离并保持一定的 能量,然后将这种物质刻蚀在wafer上,从而形成某一层。理论上,打入 wafer的离子总的对外电性应该是呈现中性的,也就是说正离子和负离子是 成对出现,但在实际中,打入wafer的离子并不成对,这样,就产生了游离 电荷。另外,离子注入(ion implanting)也可能导致电荷的聚集。可见,这 种由工艺带来的影响我们是无法彻底消除的,但是,这种影响却是可以尽量 减小的。

这些电要放到哪里去呢?我们知道,在CMOS工艺中,P型衬底是要接地 的,如果这些收集了电荷的导体和衬底间有电气通路的话,那么这些电荷就 会跑到衬底上去,将不会造成什么影响;如果这条通路不存在,这些电荷还 是要放掉的,那么,在哪放电就会对哪里造成不可挽回的后果,一般来讲, 最容易遭到伤害的地方就是gate oxide。

通常,我们用―antenna ratio‖来衡量一颗芯片能发生―antenna effect‖的几 率。“antenna ratio”的定义是:构成所谓“天线”的导体(一般是metal) 的面积与所相连的gate oxide的面积的比率。这个比率越大,就越容易发生 antenna effect。这个值的界定与工艺和生产线有关,经验值是300:1。我们 可以通过DRC来保证这个值。随着工艺技术的发展,gate的尺寸越来越 小,metal的层数越来越多,发生antenna effect的可能性就越大,所以,在 0.4um/DMSP/TMSP以上工艺,我们一般不大会考虑antenna effect,而在 0.25um以下工艺,我们就不得不考虑这个问题了。

EM电迁移

2009-03-12 15:54 (转载)

金属电迁移问题用来表示导致芯片上金属互连线断裂、熔化等的一些失效原因。当电子流过金属线时,将同金属线的原子发生碰撞,碰撞导致金属的电阻增大,并且会发热。在一定时间内如果有大量的电子同金属原子发生碰撞,金属原子就会沿着电子的方向进行流动。这将会导致两个问题:第一,移动后的原子将在金属上留下一个空位,如果大量的原子被移动,则连线断开;第二,被移动的原子

必须停在某一个地方,如果这些原子停在某个地方使别的金属连线短路,则芯片的逻辑功能就被改变,从而发生错误。 电迁移是一个长时间的损耗现象,常常表现出经过一段时间后芯片有时序或功能性错误。如果芯片中某一根连线是唯一的,那么当发生电迁移问题以后,会导致整个芯片的功能失效。如果一些连线本来就有冗余设计,例如电源网络,当发生电迁移问题后,其中的一部分连线会断开,而其它部分的连线就会承受较大的IR压降问题。如果因为电迁移而导致了线路间的短路,那整个芯片就失效

1.1 EETOP版主面试问题 001)

Why power stripes routed in the top metal layers? 为什么电源走线选用最上面的金属层?

因为顶层金属通常比较厚,可以通过较大的电流 1.高层更适合global

routing.低层使用率比较高,用来做power的话会占用一些有用的资源, 比如std cell 通常是m1 Pin 。

2. EM能力不一样,一般顶层是低层的2~3倍。更适合电源布线。

3.一般ip占用的层次都靠近下几层,如果上层没有被禁止routing的话,top layer

可以穿越,低层是不可能的,并且高层对下层的noise影响也小很多。

002)

Why do you use alternate routing approach HVH/VHV (Horizontal-Vertical-Horizontal/ Vertical-Horizontal-Vertical)? 为什么要使用横竖交替的走线方式?

(感觉这个问题比较弱智,但是号称是intel的面试问题,晕!我憧憬和向往的圣地啊!!!)

为了节省布线资源---主要原因

横竖的两根线之间的耦合系数最小,信号干扰小

003)

How to fix x-talk violation? 如何解决线间干扰? 答案:

1)upsize victim net driver, downsize aggressor net driver

2)increase wire space, shielding, change layer,change wire width 3)insert buffer in victim net

能答出以上3条的,在工作中已经基本够用,但是还有两个不常用到的,是AMD的一个大牛告诉我的。

4)把与victim net相连的输入端改成Hi-Vth的单元

5)改变信号的timing window。这个不易做到,但是也是解决方法

004)

What are several factors to improve propagation delay of standard cell? 哪些因素可以影响标准单元的延迟? 答案: 1) PVT

2)input transition, output load 3)Vth

005)

What would you do in order to not use certain cells from the library?

如何禁止使用库里面的某些单元?

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

006)

During the synthesis, what type of wire load model are often used? 做RTL综合时,经常使用的wire load model有哪几种? 答案:

1)zero wire load model 2)基于fanout的传统 WLM

3)基于物理位置(距离)的wire

model,在Cadence的RC中叫PLE,Synopsys叫DC Ultra Topographical

附加问题:

What types of delay model are used in digital (数字IC设计中有多少种类型的delay model)

答案: NLDM CCS ECSM

还有一个现在基本不用了的—LDM

load

design?

007)

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

DC在计算延时的时候,net的rc就要根据所选取的wrie load model来计算, 计算时和输出的fanout决定 以smic13的smic13_wl10为例 wire_load(\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)

There 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, 在没有时钟树的网表中,clka的network

latency会自动传递到clkb上吗?clkb的latency如何描述?

在生成时钟树的网表中,如何处理network latency? clkb的latency又如何描述? 答案:

在pre-CTS时,clka的network latency会自动传到clkb上 在post-CTS时,可以把network

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

009)

There 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.

clkb是clka的生成时钟,在CTS的spec文件中如何定义这两个时钟?假设clka和clkb之间的FF有时序收敛的要求。

难度:3

答案:

在CTS的spec文件中定义 clka 是 root,clkb pin,再加上那些应该有的skew,transition,insertion delay等就好了,其它的事CTS会给你做

为 through

010)

assume in pre-CTS SDC, clock uncertainty for setup contains pll jitter + clock tree skew. How do you set clock uncertainty for hold, and how to modify it to post-CTS sdc? 假设在pre-CTS的时序约束中,setup的clock uncertainty是由PLL jitter和clock tree skew两部分组成,那么

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

2)post-CTS的时序约束中,setup和hold的clock uncertainty要做什么样的修改? 难度:2

答案:

1) pre-CTS,

setup的clock uncertainty = PLL jitter + clock tree skew hold的clock uncertainty = clock tree skew 2) post-CTS,

setup的clock uncertainty = PLL jitter hold的clock uncertainty = 0

011)

What are various techniques to resolve routing congestion? 请详细解释解决走线阻塞的问题 难度:4

提示: 1) routing congestion发生在后端,前端一般不太考虑这个问题,需要后端自己去想办法解决,但是解决的办法不只在后端,也有一些方法需要前端的配合 2)

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

答案:

1)阻塞在RAM(macro)之间:可能RAM之间的距离没有计算正确,可以加大RAM之间的间距;扭转RAM的方向,使得RAM的IO

pin朝向更容易走线的那边;如果是多个RAM共用地址或者数据线,尽量把RAM的地址数据pin对齐

2)阻塞出现在RAM和帮助单元交界的地方:在RAM周围加一条halo(keepout);把RAM放在四周,尽量把中间留下的空间变成方形;在有阻塞的地方加一些由小的placement blockage组成的矩阵

3)阻塞出现在标准单元的某一块:也可以加一些由小的placement blockage组成的矩阵;module/instance padding;利用placement guide减少那块地方的标准单元个数;scan chain reordering也会改善一些阻塞;定义density上限;使用congestion

driven的placement,并且要求place之后做congestion优化;在综合是禁止使用那些pin太多太密集的标准单元(多半是那些复杂的组合逻辑单元);请前端使用RAM代替触发器矩阵;请前端修改算法

4)应该尽量减少power route占有的资源,谨慎选择power mesh使用的金属层,VIA的大小等。在detail route完成之后,你如果已经试了各种解决signal

congestion的方法,还有少量DRC无法解决时,可以考虑切掉部分power mesh

012)

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

clock mesh 是一种方法。

如果是用普通的CTS的方法,可以从下面几个方面着手。不太可能一次就把CTS做得很好,要反复调试各种参数,达到最佳效果。 1)合理的clock root和through pin。这个看似CTS会从SDC自动抓出来,但是并不一定是最好的,特别是多个clock相互有重叠的leaf pin时,要特别注意 2)不要用太大或者太小的clock buf/inv

3)选用RC最小的金属层。如果上面RC最小的金属层已经被占用,比如RC最小的top,top-1已经不够clock

net时,而top-2到layer2都是一样的RC时,可以选用layer3/4。为什么不用更高层哪?因为这样既照顾了layer2/1的pin,有不用太多的via到更高层 4)如果用double width clock wire,可以适当增大clock buf/inv的size

5)合理的max fanout。有时clock buf/inv的fanout可以超过max_fanout的限制 6)不要把skew设得太小

7)min_insertion_delay = 0ns

8)合理的transition time,不要太小 9)使用postCTS的CTS opt

10)做clock tree时,就直接把clock net走线完成

013)

If 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的种类和数量,你如何估算整个芯片的面积?

难度:3

答案:

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的面积,比如PLL,ADC,DAC等,直接把面积加起来,再留3~5%的keepout面积就好了

标准单元的面积=(预估的gate count x 每个gate的面积)/ utilization utilization与使用的金属层数和设计的用途有关,简单地计算方法是 5层metal:50% 6层metal:60% 7层metal:70% 8层metal:80%

以上不包括power专用的金属层

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

014)

what is pros and cons of using buffer and invters in CTS? CTS中使用buffer和inverter的优缺点是什么? 答案: 使用BUF:

优点:逻辑简单,便于post-CTS对时钟树的修改 缺点:面积大,功耗大,insertion delay大 使用INV:

优点:面积小,功耗小,insertion delay小,对时钟duty cycle有利 缺点:不易做时钟树的修改

015)

If 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可以提供的H和V的routing

resource,如果H的多,就选宽的,反之,就选高的。

016)

if the design is IO limited, how to reduce the die size?

因为IO太多而导致芯片面积过大,有什么方法减小面积? 答案:

1)stagger IO,2重io 可以算一个方法

2)IO可以不全放到四边,只要封装没问题就行啦 -- flip chip 算第二个方法 3)如果有多套IOcell可以选择,尽量选瘦的 4)调整芯片的长宽比

017)

giving 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输入端D的setup slack,到F4输入端D的hold slack

答案:

F2输入端D的setup slack是(8+0.5-0.3)-(0.7+7.0)=0.5 F4输入端D的hold slack是(0.2+0.2)-(0.2+0.2+0.1)=-0.1

018)

using 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

path的OCV,在第17题的电路里面,哪几个时钟BUF要被用来计算OCV的derating,哪几个不用(又叫CPPR)?暂不考虑X-talk产生的incremental delay

难度:2

答案: C1 C2不用算入derating(应该是也计算过,但是会通过CRPR弥补),C3,C4,C5

要计算derating

附录:

以下是几个概念的通俗解释。

OCV:因为制造工艺的限制,同一芯片上不同位置的单元会有一点差异,这就是OCV。现在还有LOCV和AOCV,暂且不提。

derating:是计算OCV的一种简单方法,在某个单一条件下,比如WC或者BC,把指定path的延迟放大或者缩小一点,这个比率就是derating。注意,这里要强调的是某个单一条件,要么是WC,要么是BC,不能把WC和BC混在一起,再OCV,因为那样太悲观,实际上是很难发生的。 除了derating以外,在使用incremental

SDF的时候,也会对OCV发生作用。这是明天的问题,比较有难度。

CPPR:一条path的start flop和end flop的时钟路径,有时会有一部分是重合的,重合的部分不应该算OCV(注意,这里假设没有使用incremental SDF),这就叫CPPR。

019)

continue 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,在C1到C2那段clock

path上面的OCV被抵消掉了。现在我们增加一个由x-talk引起的incremental延迟在C1到C2的那段net上,具体数字见图。

问题:

对于C1到C2那段clock path,

在计算WC setup时,因为OCV引起的路径延迟的差是多少? 在计算BC hold时,因为OCV引起的路径延迟的差是多少?

注意:

问题是那段clock path因为OCV引起的path delay的差,不是问path delay的绝对值

难度:5

难度5的问题不是盖的吧, 好,改为选择题,

C1到C2一段的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时,比如从F1到F2,

计算F1的clock path,就选incremental SDF里面的最大值0.015, 计算F2的clock path,就选最小值-0.01 因为有0.95 derating在-clock,-early上,所以F2的clock path要按比例缩小-0.01x0.95=-0.0095

所以C1到C2那段的OCV的差是0.015+0.0095=0.0245 (选项d)

在BC hold时,比如congF3到F4,因为2个FF在同一个时钟沿检测hold timing, CPPR可以把incremental SDF的延迟也抵消掉, 所以C1到C2那段的OCV的差是0 (选项a)

结论:

计算setup时,CPPR不抵消incremental SDF

计算hold时,CPPR连incremental SDF都可以抵消掉

020)

Explain ECO (Engineering Change Order) methodology. 说一下ECO的流程

难度:2

答案:

ECO有两种,pre-mask ECO和post-mask ECO,它的分界线就是base layer tape out之前和之后。

pre-mask ECO的流程是 1)后端写出网表,给前端 2)前端修改这个网表

(一般不再做综合),可以使用任何标准单元(只要不是dont_use),交给后端 3)后端读入ECO网表,和ECO之前的place和route

4)ECO place&route,STA, DRC/LVS

post-mask ECO流程,假设你不想动base layer 1)后端写出网表,给前端 2)前端修改这个网表 (一般不再做综合),只能使用spare cell或者象gate array一样的ECO cell

3)后端读入ECO网表,和ECO之前的place和route 4)如果使用spare cell,不用ECO place;如果用ECO cell,要将ECO cell放在以前带gate array功能的fill cell的位置上,再按照指定的layer做ECO route

021)cts

What do you write in CTS spec file? CTS spec 文件中一般包含哪些内容?

答案:

(以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

22) congestion

If 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的问题,如何解决? 答案:

1)禁止使用pin太多的cell 2)减小utilization,方法很多

3)看v h 可用资源,适当调整moudle 形状

23)

If there are DRC (spacing,short), 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 (特指spacing和short),hold和setup违反,tape out之前,你已经没有时间去修改所有这些违反,那么你首先修改哪个?哪个可以不管?请说明理由。

答案:

1) short, spacing 2) hold

3) 如果没有时间,setup可以忽略

24)SDC-multicycle

how to set multicycle path constraint? 如何设定multicycle path?

提示:在一般情况下,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一般是-setup的n-1?如果只有-setup木有-hold会怎样?

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

25)SDC

how are timing constraints developed, such as clock, generated clock, IO timing, exception? What backend team contribute to it?

一个设计的时序约束是怎么写出来的?请大略说明时钟,IO delay,false path, multicycle

path是如何得到的?在完成时序约束的过程中,后端可以给予什么样的帮助? 答案:

clock和generated clock一般由设计spec决定。除非有些个别的local generated clock可以有前端工程师自己添加 IO

timing与系统设计有关,应该参考/兼顾其他芯片的IO时序,由前端工程师作出 exception(false path, multicycle path)一般是由前端工程师在做设计时决定的 后端可以提供clock network delay/skew,DRV,以及帮助检查SDC是否合格

26)FLOW

In 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这三步,请分别讲述它们在时序收敛上的方法,一般会遇到的问题和解决方法。

答案:

pre-CTS时,使用ideal clock,只fix setup

post-CTS后,使用propagate clock,可以只fix setup,检查hold,但可以不fix hold post-Route后,依然使用propagate clock,fix setup和hold

具体遇到的问题和解决方法:

pre-CTS: 如果有setup,重在调整floorplan,buffer tree结构

Post-CTS: 如果有setup,重在调整clock tree,buffer tree结构或者size Post-Route: 如果有setup/hold,微调clock tree/buffer tree的size,routing channel和图层,实在不行,回到CTS

preCTS和postCTs主要就是差个clock skew的问题 还有build clock的方法,这个很重要,

很多inter-clock path violation都是由于没有balance好造成的 所以你在postCTS后的timing有时候有很奇怪的结果,

postRoute主要是SI 影响,timing 会变差些,

可以做postroute opt来修复回来,减少下crosstalk的影响,

27)FLOW

Continue 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,请详细介绍如何设置

答案:

简单地说就是使用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,这个属于难度5的做法

SDC和几个DFT

28)CTS

There 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时钟?

答案:

如果CTS支持multi-mode,直接使用即可。

如果不支持,或者MMCTS效果不理想,就是在CTS spec中,同时定义function 和 DFT 的时钟,然后在scan clock里面,把MUX设为leave pin,再让它们与function clok到MUX的延迟做动态平衡

29)SDC

There 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?

在一个设计中有多个时序约束,象function,scan shift, scan capture, scan at-speed, mbist at-speed, 和 jtag SDC,为了减少运行时间,不能把它们都放入MMMC中,你选择哪些放入MMMC的setup中,哪些放入MMMC的hold中?

提示:选择的SDC要尽量的少,并且尽可能多地覆盖其他没有入选的SDC下的时序

答案:

这个要从每个SDC的特点着手,个人经验,与设计有关,不敢保证使用与所有设计。 1) scan shift:速度很慢,不用太担心setup,但是hold很重要,一旦hold有问题,所有与scan有关的测试全泡汤 2) scan capture:也是慢速,但是会有很多hold出来,特别是在不同的function时钟之间 3) scan at-speed:高速,解决了它的setup,其他DFT的setup基本上就连带着解决了 4) mbist at-speed:高速,但是涉及的逻辑不多 5) jtag:慢速,很容易与function SDC合并

所有结论是

MMMC setup:function + scan at-speed

MMMC Hold: function(+jtag) + scan shift + scan capture

30)STA

Explain SDF and SPEF back annotation timing correlation issue, especially in different STA tools

请解释反标SDF和SPEF在时序分析时的差异,特别是用不同的STA工具检查timing时 答案:

使用SDF做时序分析,无论使用什么tools,其结果应该是一样的,没有差异 使用SPEF时,因为工具需要把SPEF换算成SDF,这时会产生差异。

所以建议使用一个你信得过的工具生成SDF,然后大家都使用这个SDF做STA和仿真

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总是开着,其他会有开和关,并且到模块B的VDD2和到模块C的VDD2有各自分别的开关。请判断在连接这4个模块的8条net上,哪些需要level shifter,哪些需要ioslation cell,把结果填入右边的表中。

填法如下:假如你认为需要在netAB上加个level

shifter,加的位置在模块B里面,就在netAB的右边的第一列空格里写B。如果什么都不加,就写X

http://bbs.eetop.cn/viewthread.php?tid=298990&highlight=oó????ê?+31

32)

Continue 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 cell,isolation cell都会有一个isolate enable端,在模块B关断电源时,是先让isolate

enable端on哪,还是先关模块B?反之,在开模块B的电源时,谁先谁后?

难度:2

答案:

先isolate on,再power off,反之先power on,再isolate off

33)

There 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?

设计中有1000个clock,你怀疑跨时钟的时序约束有问题,想找出哪些clock之间有real path,请问如何找?

难度:2

答案:

check_timing

或者写一个循环,report_timing -clock_from -clock_to

34)

What are various statistics available in IR-drop analysis reports? IR-drop的分析报告里面都包含哪些内容?

难度:2

答案: 至少包括

各种mode下的static和dynamic

report,其中drop的容许范围可以参考厂家的意见 function mode下的EM report和RJ report

IR-srop

35)

With respect to clock gate, what are various issues you faced at various stages in the physical design flow?

在后端流程的每步中,如何处理门控时钟?

难度:3

答案:

如果是用latch+and/or在组合成的clockgating

cell,比较麻烦,以后估计不多见了,暫不讨论。TomPaul提到的问题都很让人头痛,特别是做CTS时,如何处理那些个latch的clk pin。Place时,latch和and/or cell一定要靠得很近。

一般使用ICG cell时,

place:使用clock gating aware placement选项

CTS:主要看工具的本领了,一般是希望在满足setup的前提下,ICG cell要尽量靠近clock root

route:除了clock net优先以外,不记得还有什么可做的了

36)

What 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电源IO的bonding wire及片外引线上的电感上,产生Ldi/dt的压降。也即ssn,同时切换噪声。主要是会引起地弹,即ground bounce。

避免sso有很多方法。如增加供给pad用的电源IO数量,采用double bonding或triple bonding,采用slew rate control的IO,避免把pad电源IO放在corner上(corner处bonding wire引线最长,L最大),等。

主要还是采用增加pad用电源IO数量的办法,计算方法一般foundry会提供,一般是给每个信号PAD一个DF值(还要根据bonding

wire电感值做出选择),把自己用的所有信号IO的DF值加在一起,能得出所需要的POWER PAD的数量。

37)

In 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

38)

What 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

latch的clk端与前一个flop的clock相连,还是后一个flop的clock相连?

难度:3

答案:

一般scan 用的时钟树大部分是与function的共享,所以scan chain的前一段和后一段的clock insertion delay会不一样,因为scan shift速度很慢,不太用顾及setup,但是要确保hold。

所以在前一个FF的clock insertion delay小,后一个大时,插入一个lockup latch,使信号多保持半个周期,以满足后一个FF的hold要求。

它们的时序关系是

前FF时钟延迟+1/2 scan时钟周期 >= 后FF时钟延迟 + 后FF hold要求

当后FF时钟延迟太大时,lockup latch也解决不了hold违反的问题

按此分析,lockup latch的clk端是和前一个FF的时钟相连的。

39)

How is scan DEF generated?

scan DEF是怎么生成的?

难度:2

答案:

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

40)

What are pros/cons of using low Vt, high Vt cells? 使用low Vt 和 high Vt cell的优缺点?

难度:1

答案:

lvt cell速度快,耗电高,静态电流大 hvt cell速度慢,静态电流小 这是timing与power的trade off

41)

How 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 约束

减小高速信号的走线长度

42)

How do you design PAD ring? 如何设计PAD ring?

难度:3

(又是一道比较邪恶的题目)

答案:

大的流程是:

1)根据系统(其他芯片的)要求,芯片内部的floorplan,决定信号PAD的位置 2)计算出power PAD的个数,插入到信号PAD里面

3)加其他的PAD,比如IO filler,power cut,power on control,corner PAD,ESD等

细节可以包括: 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之间,数字和模拟电源之间。

4)power on control PAD,一段每个IO ring需要一个 5)ESD一般要加在每个不同的电源之间

43)

In hierarchical design flow, explain block level pin placement flow? What are parameters to decide?

在hierarchical流程中,如何确定block的pin(位置,金属层)?

难度:3

答案:

在top-down流程中 位置 :主要是看与该block相关的其它block(如ANALOG 等)的interface,一般相关的PIN/PORT 要比较近, 同时也尽量不要使PIN被block内部的 memory(一般放在block 的boundary处)等挡到 金属层 :也要看相关的其它block的PIN/PORT 所出的金属层,尽量用一致的,同时不用M7.M8等一般用来走power 的金属层,当然M1 也不用

encounter(ICC也应该是同样的道理)用flatten的trial route来决定block pin的位置和金属层。

当然,你可以事先指定,也可以事后修改

在bottom-up流程中,主要是人为的规定了

44)

What 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,反标回网表中以后,再做一次时序优化

78)

Can input pin floating (openning)? Can output floating? why?

在设计中,单元的输入端可以悬空吗?输出端哪?

难度:2

答案:

输入端不行,输出端可以

输入悬空会因为周围电场的变化而引起cell内部的翻转,继而影响到其他的逻辑的正确性

77)

What are RTL, Gate, Metal and FIB fixes?

难度: 3

答案:

就是tapeout 后的修改, rtl 级别的修改,很大了

gate level:要动base layer, metal fix:只动metal,不动base FIB fix: focus

常用于修改金属连接 ,就像动手术一样

ion beam,聚焦离子束,

76)

What is Scan, memBIST, and logicBIST? usually what percentage of test coverage of suck-at requested? what % of at-speed transition test?

什么是Scan, memBIST 和logicBIST?通常suck-at和at-speed transition测试的coverage要求多高?

难度:1

答案:

跳过名词解释

suck-at coverage 一般要98%以上 at-speed transition 可能会要求到75%

75)

What is a SoC (System On Chip), ASIC, ―full custom chip‖, and an FPGA? giving examples?

举例说明什么是SoC, ASIC ―full custom chip‖ 和 FPGA?

难度: 1

74)

in which area it will be easy to have dynamic IR-drop problem?

设计的哪些地方容易出现IR-drop的问题?

难度:4 (不容易答全了)

答案:

从电源布线的角度讲,那些远离电源端的地方,电源布线少的地方,容易出现ir-drop的问题。 比如wire bond芯片的中间,flip chip的四角,analog macro的边上(因为有些analog的上面不容许数字电源布线)

从swtiching activity的角度讲,toggle rate高并且cell densiy高的地方IRdrop大,所以切记不要为了balance clock tree,把一堆clock buffer摆在一起。

如果是静态IRdrop,频率高的地方IRdrop大。那么对于动态IRdrop,一定是频率高的地方IRdrop大吗?

73)

How slow and fast transition at inputs effect timing, gate count, and power?

输入端信号的transition的快慢是如何影响APR之后的时序,门数,和功耗的?

难度:3

答案:

对timing的影响:slow transition使得速度变慢,fast transition使得速度变快 对power的影响:slow transition时功耗增大,fast时功耗减小 对gate

count的影响:要分以下2种情况,(1)如果整体的transition要求较高,slow transition会增加gate count;(2)如果整体的transition要求不高,input transition对gate count没有大的影响

注意:input transition会逐级传送到chip里面的,虽然效力在逐级减小

72)

If the routing congestion exists between two macros, then what will you do?

如果2个macro之间有走线拥堵的话,该如何解决?

难度:2

答案:

1)增大macro之间的间距 2)在macro之间加non-buffer placement blockage 或 加partial blockage控制channel里面的cell density

3)调查那些congestion是如何造成的,改变floorplan,引导工具不要从macro中间走线

71)

What is cloning and buffering? where we will use it?

什么叫克隆和缓冲,什么情况下用到这2种技术?

难度:3

答案:

cloning是在有多个sink的情况下,不改变逻辑功能把当前cell复制一份,分别驱动下一级的cell,这样可以减少当前单元的负载,从而获得更好的时序,有时是为了placement的考虑,譬如几个sink的方向不同,缺点是会增加上一级的负载 buffering是在不改变信号的情况下对信号再生,提高它的驱动能力,通常是两级反相器构成,可以提高电路的运行速度,有时也用来当延时单元,特点是不会增加上一级的负载

在多个sink的时序都比较紧的情况下适合用cloning,如果sink对timing的要求区别挺大的,可以用buffering,一部分时序较紧的由上一级直接驱动,剩下的可以加一级buffer后驱动

70)

What is difference between HFN buffer tree and CTS?

大扇出net的buffer tree和CTS在时序和做法上的区别

难度:3

答案:

buffer tree和clock tree的共同点是它们都是解决high fanout net的问题,只不过要求不同而已。

buffer tree要求满足max trans/fanout/cap,有时还要满足setup/hold timing clock tree不但要满足上面的所有要求,还有skew,max/min latency的要求

做法上大不相同,

一般,buffer tree在时序优化时自动就做了 (以后别再问怎么用CTS来做reset tree了)

clock tree有专门的命令,因为它的做法与data path的做法太不一样了

69)

What is LEF? what it's difference with GDS?

LEF是做什么用的?与GDS的区别是什么?

难度:2

答案:

LEF是一种简化版的GDS,它只包括size和metal层有关的信息,比如pin,blockage等,其他base layer的东西只在GDS里面可以看到。

同时LEF还有一些GDS里面没有的信息,比如,metal的R,C,routing and placement rule等

LEF是一个文本文件,可以修改编辑。GDS是二进制文件,比较难修改

68)

What corner-IO contains?

corner-IO 里面有什么?

难度:2

答案:

corner io pad除了 能保证 两边的 连线连接, 还有

1) dummy bond pad 为了减小封装的难度和 减小一些应力的效益 (不是必须的) 因此corner pad两端最好空一些距离 来bond wire,封装,否则封装有一定的难度, 容易出问题, 2) dummy poly , 也是减小机械等效益, 有一些ACtive, SP区域,不知道干啥的

67)

What is meant of 9 track, 12 track standard cells?

对标准单元所说的9 track和12 track是什么意思?(同一种工艺下)这两种单元有什么区别?

难度:3

答案:

一般site width就是metal 2 pitch ,比如SMIC18 的 0.56 x 5.04 , 0.56 就是metal 2 pitch,

因为std cell pin基本上都是由metal 2 连接出来的,

高度 一般都是 site width的整数倍,比如7, 8, 9 , 10 ,12 倍,也就叫做7/8/9/10/12 track单元,

比如 0.56 x 5.04 的就是9 track, 0.56 x 3.92 的就是 7 track, 0.2 x 2.4 ( SMIC 65 ) 是12 track, 0.2 x 1.8 ( TSMC65) 是9 track,

区别主要是:

1)带不带tap (n/p well pickup) ,但是也不是绝对的, 比如SMIC18 sc-x 9 track带tap, sc-m 7track不带tap,不带tap的要用tapcell来偏置电位,

但是比如 TSMC40 nm的 12 track TCBNBWP12T ,也不带tap, TSMC65 tcbn65bwp 9 track 带 tap,

2)一般来说9 track是 属于标准size, 7 track属于小size,也就是低功耗一些,速度慢些,

10、12 track 是高速, 一般 metal1的rail做的更宽,管子好像没啥区别, rail做的宽

自然能走更多的电流,自然速度就快了, 功耗大了,

有的还添加metal2 rail比如65nm以下的库, 这样速度更快了,

选几个track 是由设计目标决定的,如果简单些 ,就选9 track标准带tap的, 比较方便

低功耗选7 track,timing不够就选12 track的,

ARM的9 track叫sage-x , 7 track叫metro, 12 track叫POP (performance optimization packets),

66)

detail explain what is the difference between LEC and simulation?

详细解释形式验证和仿真的异同

难度:2

答案:

形式验证是为了验证综合前后或者layout前后,电路是否在数学模型上有改变吧。那综合前后的形式验证为例,用formality进行形式验证时需要

DC提供验证节点,然后FM根据这些节点去验证综合前后的电路在数学逻辑功能上是否等价。形式验证不需要任何激励测试向量,他能保证逻辑上电路没有发生变化。

仿真的话有分为layout前后的仿真,前仿真主要用于测试功能是否正确,需要测试激励,后仿真主要用于测试是否满足时序(当然也就测试了功能是否正确),同样也需要激励信号。仿真的目的是模拟电路实际工作状态,看输入和输出是否满足设计要求。

如果要说区别的话,我个人感觉形式验证就像数字电路中的analyse,分析电路功能,看是否满足设计要求,而仿真的话更多的是在模拟实际电路工作情况。

65)时钟走线一般用那层金属

问题由szp9912收集提供,特此感谢!

Which layer is used for clock routing and why?

时钟走线一般用那层金属,为什么?

难度:3

答案:

这是一个可以挖得比较深的问题,让我们先从各层metal的特性说起,假设共有8层金属层

最底层M1/2一般很薄,走线宽度最小,RC一般最大,而且会被cell的pin占去很多资源,肯定不适合做clock wire。

最高1/2层M7/8一般很厚,走线宽度大,RC很小,适合大驱动的clock

buffer走线。如果是用铜做金属层的话,最上面还会有一层极厚的铝金属层,一般不用做信号线的走线。

中间几层M3/4/5/6的厚度,宽度都适中,如果使用double width,double space的走线的话,RC也比较小,也可以做clock wire。

如果考虑到VIA增加的电阻,一味地使用最高层不一定会得到最快的clock tree。

但是一般信号走线大多是先用下层的金属,所以建议根据各层的RC和整个设计的congestion来选择clock wire的层数。

如果最高1/2层M7/8的RC远小于中间几层M3/4/5/6的RC,就选最高1/2层

如果最高1/2层M7/8的RC与中间几层M3/4/5/6的RC相差不大,在很拥堵时,还是选最高1/2层;不太拥堵时,选中间几层里面的高层M5/6;根本没有拥堵时,用中间层里面的底层M3/4

64)

本帖资料由 szp9912 收集提供,特此感谢,

Why clock is not synthesized in DC? why high fanout net, such as reset, is not synthesized in DC?

为什么综合时,不动clock?为什么不动某些大扇出的net,比如reset?

难度:2

答案:

因为clock tree与leaf pin的物理位置密切相关,DC没有这些个信息,做了也不准,所以就不做了。也是因为后端知道DC给的clcok tree根本不准,所以一旦遇到,就直接删除

至于reset

tree,是可做可不做,如果reset的时序很难的话,还是建议做一下,看看DC时是否可以满足时序,如果DC都满足不了,估计后端也很难做到,趁早想别的方案

63)

How to calculate gate count? 如何计算gate count?

难度:1

答案:

以前比较确切地定义是4个transistor为一个gate, 计算整个设计的gate count时,应该先算出(所有standard cell的总面积),再除以(4个transistor的面积)。注意,各种RAM,PLL,ADC,DAC等macro不能算在总面积里

现在人们为了简单,就把一倍驱动能力的,2输入的nand cell的面积认为一个gate的面积,一个nand

cell与4个transistor的面积是有一点差别的,但是你一般不容易搞到准确的4个transistor的面积

所以现在的standard cell的gate count就变成(所有standard cell的总面积),再除以(一倍驱动能力的,2输入的nand cell的面积)

62)

The 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上面发表过,感觉是一个比较经典的后端时序分析的问题,留次存照

Startpoint: ffa (rising edge-triggered flip-flop clocked by CLK) Endpoint: ffd (rising edge-triggered flip-flop clocked by CLK) Path Group: CLK Path Type: max

Point Fanout Cap Trans Incr Path -----------------------------------------------------------------------------

clock CLK (rise edge) 0.00 0.00 clock network delay (propagated) 4.90 4.90 ffa/CLK (DTC10) 0.30 0.10 5.00 r ffa/Q (DTC10) 0.57 1.70 6.70 f b (net) 2 3.85

U7/A (IV110) 0.57 0.00 6.70 f U7/Y (IV110) 1.32 0.84 7.55 r QA (net) 50 32.59

U12/A (NA310) 3.02 4.00 11.55 r U12/Y (NA310) 2.47 4.04 15.58 f n9 (net) 3 8.87

U17/A (NA211) 2.47 0.00 15.58 f U17/Y (NA211) 1.01 1.35 16.94 f n14 (net) 2 4.87

U23/A (IV120) 1.01 0.00 16.94 f U23/Y (IV120) 0.51 0.37 17.30 r n13 (net) 1 2.59

U15/A2 (BF003) 0.51 0.00 17.31 r U15/Y (BF003) 0.88 0.81 18.12 f n12 (net) 1 15.61

U16/B2 (BF003) 3.88 3.00 21.12 f U16/Y (BF003) 2.46 0.99 22.11 r n7 (net) 1 2.61

U10/A (AN220) 2.46 0.00 22.11 r U10/Y (AN220) 0.46 1.04 23.15 r

n15 (net) 1 2.63

ffd/D (DTN10) 0.46 0.00 23.15 r data arrival time 23.15

clock CLK (rise edge) 10.00 10.00 clock network delay (propagated) 3.50 13.50 ffd/CLK (DTN10) 13.50 r library setup time -1.33 12.17 data required time 12.17 -----------------------------------------------------------------------------

data required time 12.17 data arrival time -23.15 -----------------------------------------------------------------------------

slack (VIOLATED) -10.98

1) Yes. It finishes CTS.

2) first is clock skew, second is high fanout of U7 , then is long wirelength of net n12.

61)

picture is a block design.

1) 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之后,假设setup和hold都正好为0ns,然后插入时钟树,树的完全平衡的,WC的时钟树insertion delay是0.2ns,BC的insertion delay是0.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)

但是当有上千个input和output port时,做起来比较麻烦, 有个非常简单的方法,想到了,就是满分!

设一个虚拟时钟,与clk同频同相, 把所有input,output

delay都指定到那个虚拟时钟上,CTS后,只要在虚拟时钟上加上(BC 0.1 WC 0.2)的latency就好了

60)set_clock_uncertainty

There 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的时钟,jitter是50ps,duty

cycle有5ps的漂移。设计中需要同时用到时钟的上升沿和下降沿,如何把那个50ps和5ps写到约束文件里?

难度: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 59)

there 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,输入端clk到2个单元完全相同(电气特性和物理特性),输出端load-A和load-B也完全相同,唯一的不同就是cntl-A和

cntl-B。请问,从clk到输出端load-A的延迟,与clk到load-B的延迟是否相同?为什么?

难度:4

答案:

不一样

PrimeTime里面把这个叫做Path Base Analysis (PBA) 与OCV关系不大

58)ESD

what is ESD? Where you need to insert ESD circuit?

什么是ESD? 在什么地方需要插入ESD 电路?

难度:2

答案:

ESD是指静电放电。带有足够高电荷的电气绝缘的导体在靠近时,会形成有相反电势的集成电路,电荷―跨接‖,从而引起静电放电(ESD)。

ESD是指静电泄放。一般在IO 的InPut 加ESD电路,在IC 的测试。封装。运输。使用等过程中可以把静电有效泄放避免对CMOS 栅极的损伤,从而有效地保护IC。

如果不考虑模拟电路的干扰问题,基本上在各个VDD,VSS之间都要加入back-to-back diode的ESD电路

57)DFM

What 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

Use the Edit Block Halo form to add a routing halo or a placement halo to prevent the routing and/or placement of blocks and standard cells in order to reduce congestion around a block. These halos can be specified for hard macros, blackboxes, or committed partitions. When you add a halo to a block, it becomes part of the block's properties. If you move the block, the halo moves with it.

antennae violation

I got a clear answer for this question.. Here it is.

During the process of plasma etching, charges accumulate along the metal strips. The longer the strips are, the more charges are accumulated. IF a small transistor gate connected to these long metal strips, the gate oxide can be destroyed (large electric field over a very thin electric) , This is called as Antenna violation.

The ways to prevent is , by making jogging the metal line, which is atleast one metal above the layer to be protected. If we want to remove antenna violation in metal2 then need to jog it in metal3 not in metal1. The reason being while we are etching metal2, metal3 layer is not laid out. So the two pieces of metal2 got disconnected. Only the piece of metal connected to gate have charge to gate. When we laydown metal3, the remaining portion of metal got charge added to metal3. This is called accumulative antenna effect.

Another way of preventing is adding reverse Diodes at the gates.

对于版图上出现的白色的叉叉,可以通过优化排除,方法如下: route--nanoroute --route,选中弹出菜单中的area route选项,然后用鼠标单击select area and route,然后带着鼠标回到版图,按着鼠标左键选中有白色叉叉的周围的一小块,放开鼠标,此时encounter就回对这一小块电路重新进行布线优化,大多数情况下会将错误排除

LEF - Library Extraction format....

These are the file which contains physical information abt libraries. These are the inputs to encounter tool to know abt libraries.

DEF - After routed netlist, we can also save the option, File - Save - DEF.....

This DEF is going to input for generation of SPEF in Celtic tool. May be some other reason also ther for DEF.

LEF is the physical equivalent of library db (or adb if you use buildgates). DEF is the physical equivalent of design db (or adb if you use buildgates).

1 STA

Delay Calculation

A typical design comprises of various combinational and sequential cells.

We use an example logic fragment shown in Figure 5-1 to describe the concept of delay calculation.

The library description of each cell specifies the pin capacitance values foreach of the input pins. Thus, every net in the design has a capacitive loadwhich is the sum of the pin capacitance loads of every fanout of the netplus any contribution fromthe interconnect.

For the purposes of simplicity,the contributions from the interconnect are not considered in this section -those are described in the later sections. Without considering the interconnect

parasitics, the internal net NET0 in Figure 5-1 has a net capacitancewhich is comprised of the input pin capacitances from the UAND1 andUNOR2 cells.The output O1 has the pin capacitance of the UNOR2 cellplus any capacitive loading for the output of the logic block. Inputs I1 and

I2 have pin capacitances corresponding to the UAND1 and UINV0 cells.With such an abstraction, the logic design in Figure 5-1 can be described byan equivalent representation shown in Figure 5-2.

the cell library contains NLDM timing models

for various timing arcs. The non-linear models are represented as two-dimensional tables in terms of input transition time and output capacitance.

The output transition time of a logic cell is also described as a two-dimensional table in terms of input transition and total output capacitance at the

net. Thus, if the input transition time (or slew) is specified at the inputs of the logic block, the output transition time and delays through the timing arcs of the UINV0 cell and UAND1 cell (for the input I1) can be obtained from the library cell descriptions. Extending the same approach through the fanout cells, the transition times and delays through the other timing arc of the UAND1 cell (from NET0 to O1) and through the UNOR2 cell can be obtained. For a multi-input cell (such as UAND1), different input pins

can provide different values of output transition times. The choice of transition time used for the fanout net depends upon the slew merge option

and is described in Section 5.4. Using the approach described above, the delays through any logic cell can be obtained based upon the transition time at the input pins and the capacitance present at the output pins.

Pre-layout Timing

the interconnect parasitics are estimated usingwireload models during the pre-layout timing verification. In many cases,the resistance contribution in the wireload models is set to 0. In such scenarios,the wireload contribution is purely capacitive and the delay calculationmethodology described in the previous section is applicable toobtain the delays for all the timing arcs in the design.

In cases where the wireload models include the effect of the resistance ofthe interconnect, the NLDM models are used with the total net capacitancefor the delay through the cell. Since the interconnect is resistive, there is additionaldelay from the output of the driving cell to the input pin of thefanout cell. Post-layout Timing

The parasitics of the metal traces map into an RC network between driverand

destination cells. Using the example of Figure 5-1, the interconnect resistanceof the nets is illustrated in Figure 5-3. An internal net such as NET0in Figure 5-1 maps into multiple subnodes as shown in Figure 5-3. Thus,the output load of the inverter cell UINV0 is comprised of an RC structure.Since the NLDM tables are in terms of input transition and output capacitance,the resistive load at the output pin implies that the NLDM tables arenot directly applicable. Using the NLDM with resistive interconnect is describedin the next section.

Cell Delay using Effective Capacitance

the NLDM models are not directly usable when theload at the output of the cell includes the interconnect resistance. Instead,an ―effective‖ capacitance approach is employed to handle the effect of resistance.

The effective capacitance approach attempts to find a single capacitancethat can be utilized as the equivalent load so that the original design aswell the design with equivalent capacitance load behave similarly in termsof timing at the output of the cell. This equivalent single capacitance istermed as effective capacitance.

Figure 5-4(a) shows a cell with an RC interconnect at its fanout. The RC interconnectis represented by an equivalent RC PI-network shown in Figure5-4(b). The concept of effective capacitance is to obtain an equivalent outputcapacitance Ceff (shown in Figure 5-4(c)) which has the same delaythrough the cell as the original design with the RC load. In general, the celloutput waveform with the RC load is very different from the waveformwith a single capacitive load.

Figure 5-5 shows representative waveforms at the output of the cell withtotal capacitance, effective capacitance and the waveform with the actualRC interconnect. The effective capacitance Ceff is selected so that the delay(as measured at the midpoint of the transition) at the output of the cell inFigure 5-4(c) is the same as the delay in Figure 5-4(a). This is illustrated in Figure 5-5.

Configuring the STAEnvironment

The design environment should be specified accuratelyso that STA analysis can identify all the timing issues in the design. Preparingfor STA involves amongst others, setting up clocks, specifying IO timingcharacteristics, and specifying false paths and multicycle paths.

Specifying Clocks

To define a clock, we need to provide the following information:

i. Clock source: it can be a port of the design, or be a pin of a cell inside the design (typically that is part of a clock generation logic). ii. Period: the time period of the clock.

iii. Duty cycle: the high duration (positive phase) and the low duration (negative phase).

iv. Edge times: the times for the rising edge and the falling edge.

Here is a basic clock specification1. create_clock \\ -name SYSCLK \\ -period 20 \\

-waveform {0 5} \\ [get_ports2 SCLK]

The name of the clock is SYSCLK and is defined at the port SCLK. The periodof SYSCLK is specified as 20 units - the default time unit is nanosecondsif none has been specified. (In general, the time unit is specified as part ofthe technology library.) The first argument in thewaveform specifies thetime at which rising edge occurs and the second argument specifies thetime at which the falling edge occurs.

Here is an example of a clock specification with no waveform specification(see Figure 7-3).

create_clock -period 5 [get_ports SCAN_CLK]

In this specification, since no -name option is specified, the name of theclock is the same as the name of the port, which is SCAN_CLK.

Clock Uncertainty

The uncertainty can be used to modelvarious factors that can reduce the effective clock period. These factors canbe the clock jitter and any other pessimism that one may want

to include

for timing analysis.

set_clock_uncertainty -setup 0.2 [get_clocks CLK_CONFIG] set_clock_uncertainty -hold 0.05 [get_clocks CLK_CONFIG] set_clock_uncertainty 加紧对setup和hold的约束。

Note that the clock uncertainty for setup effectively reduces the availableclock period by the specified amount as illustrated in Figure 7-7. For holdchecks, the clock uncertainty for hold is used as an additional timing marginthat needs to be satisfied.

The following commands specify the uncertainty to be used on paths crossingthe specified clock boundaries, called inter-clock uncertainty.

set_clock_uncertainty -from SYS_CLK -to CFG_CLK -hold 0.05 set_clock_uncertainty -from SYS_CLK -to CFG_CLK -setup 0.1

Figure 7-8 shows a path between two different clock domains, SYS_CLKand CFG_CLK. Based on the above inter-clock uncertainty specifications,100ps is used as an uncertainty for setup checks and 50ps is used as an uncertaintyfor hold checks.

本文来源:https://www.bwwdw.com/article/q0xo.html

Top