数字后端面试问题

1.1 EETOP版主面试问题

001)

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

因为顶层金属通常比较厚,可以通过较大的电流

1.高层更适合globalrouting.低层使用率比较高,用来做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 butter in victim net

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

4)把与victim net相连的输入端改成Hi-Vth的单元
5)改变信号的timing window。这个不易做到,但是也是解决方法

 

004)

What are several factors to improvepropagation delay of standard cell?
哪些因素可以影响标准单元的延迟?

答案:
1) PVT
2)input transition, output load
3)Vth

 

005)

What would you do in order to not usecertain cells from the library?
如何禁止使用库里面的某些单元?

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

 

006)

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

答案:
1)zero wire load model
2)基于fanout的传统 WLM
3)基于物理位置(距离)的wire load model,在Cadence的RC中叫PLE,Synopsys叫DC Ultra Topographical


附加问题:
What types of delay model are used in digital design? (数字IC设计中有多少种类型的delaymodel)

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

 

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("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)

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 latencypropagates 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命令,让工具根据clocktree去计算实际的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 为 throughpin,再加上那些应该有的skew,transition,insertion delay等就好了,其它的事CTS会给你做

 

 

010)

assume in pre-CTS SDC, clock uncertaintyfor setup contains pll jitter + clock tree skew. How do you set clockuncertainty 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 resolverouting congestion?
请详细解释解决走线阻塞的问题
难度:4


提示:
1) routing congestion发生在后端,前端一般不太考虑这个问题,需要后端自己去想办法解决,但是解决的办法不只在后端,也有一些方法需要前端的配合
2) 阻塞有多种情形,要分别讨论,没有一个统一的解决办法。能够把大部分的阻塞情况列举出来,就已经够4级的水平啦

答案:
1)阻塞在RAM(macro)之间:可能RAM之间的距离没有计算正确,可以加大RAM之间的间距;扭转RAM的方向,使得RAM的IOpin朝向更容易走线的那边;如果是多个RAM共用地址或者数据线,尽量把RAM的地址数据pin对齐

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

3)阻塞出现在标准单元的某一块:也可以加一些由小的placement blockage组成的矩阵;module/instancepadding;利用placement guide减少那块地方的标准单元个数;scan chainreordering也会改善一些阻塞;定义density上限;使用congestion driven的placement,并且要求place之后做congestion优化;在综合是禁止使用那些pin太多太密集的标准单元(多半是那些复杂的组合逻辑单元);请前端使用RAM代替触发器矩阵;请前端修改算法

4)应该尽量减少power route占有的资源,谨慎选择power mesh使用的金属层,VIA的大小等。在detailroute完成之后,你如果已经试了各种解决signal congestion的方法,还有少量DRC无法解决时,可以考虑切掉部分power mesh

 

012)

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

答案:
clock mesh 是一种方法。

如果是用普通的CTS的方法,可以从下面几个方面着手。不太可能一次就把CTS做得很好,要反复调试各种参数,达到最佳效果。
1)合理的clock root和through pin。这个看似CTS会从SDC自动抓出来,但是并不一定是最好的,特别是多个clock相互有重叠的leafpin时,要特别注意
2)不要用太大或者太小的clock buf/inv
3)选用RC最小的金属层。如果上面RC最小的金属层已经被占用,比如RC最小的top,top-1已经不够clocknet时,而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 othermacro with real size, and IO type and total number. How do you estimate the diesize?

如果告诉你标准单元的门数,所有内存的类型和逻辑大小,其他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 andinvters in CTS?
CTS中使用buffer和inverter的优缺点是什么?

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

 

015)

If giving two physical dies as below, andask 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的routingresource,如果H的多,就选宽的,反之,就选高的。

 

016)

if the design is IO limited, how to reducethe die size?
因为IO太多而导致芯片面积过大,有什么方法减小面积?

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

 

017)

giving the schematic and delay inattached picture, calculate the WC setup slack at D pin of F2, and BC holdslack 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 OCVderating calculation and which clock buffer will not (a.k.a. CPPR)?

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

难度: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和endflop的时钟路径,有时会有一部分是重合的,重合的部分不应该算OCV(注意,这里假设没有使用incremental SDF),这就叫CPPR。

 

 

019)

continue from question #18. Because thereis CPPR, the OCV derating on clock path C1 and C2 are canceled. Now givingincremental delay caused by x-talk at net between C1 and C2. Please use thederating 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那段clockpath上面的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连incrementa

  • 64
    点赞
  • 667
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 数字 IC 后端面试宝典是一本专为从事数字集成电路(IC)后端设计的工程师编写的面试指南。本书主要内容涵盖了数字 IC 后端设计的各个方面,包括电路系统设计、物理设计、时序设计和验证等。 首先,在电路系统设计方面,本书涵盖了数字 IC 的整体设计流程、电路分区与布局、时钟树设计、电源与地规划等内容。读者可以通过学习本书,了解到数字 IC 后端设计中需要考虑的各个方面,并学习如何进行整体的电路系统设计。 其次,在物理设计方面,本书介绍了数字 IC 的物理布局、布线、电池布线、信号完整性和功耗分析等内容。通过学习这些知识,读者可以掌握数字 IC 后端设计中的物理设计原理和实践技巧,并学习如何进行合理的物理布局和布线。 此外,本书还涵盖了时序设计和验证方面的内容。时序设计是数字 IC 后端设计中非常重要的一部分,它涉及到时钟树设计、时序分析和时序优化等问题。通过学习本书,读者可以了解到时序设计的原理和方法,并学习如何进行时序验证和时序优化。 总之,数字 IC 后端面试宝典是一本涵盖了数字 IC 后端设计各个方面的面试指南。通过学习本书,读者可以全面了解数字 IC 后端设计的相关知识和技术,提高自己的面试能力和竞争力。无论是准备面试还是提升工作能力,本书都是一本不可多得的参考书籍。 ### 回答2: 《数字 IC 后端面试宝典》是一本面向数字集成电路(IC)后端工程师的面试参考书籍。在数字 IC 后端设计领域,后端工程师负责将芯片设计的前端部分转化为最终可生产的芯片。这本宝典通过提供丰富的面试题目和解析,帮助读者全面了解数字 IC 后端设计的知识和技巧。 本书首先对数字 IC 后端设计的基础知识进行介绍,包括常用设计工具和软件、设计规约和标准等。接着,宝典提供了大量的实际面试题目,涵盖了数字电路设计、低功耗设计、时钟树设计、互连设计等多个方面,每个题目均附有详细的解析和答案。这些题目既能帮助读者巩固自己的基础知识,又能让他们在面试中更好地应对各种挑战。 与此同时,宝典还针对数字 IC 后端工程师面试中常见的技术问题和技巧进行了讲解。例如,它提供了关于时序约束、布局布线优化、信号完整性等方面的技术解析,帮助读者掌握面试中需要的技术要点。此外,它还介绍了一些常见的笔试题类型,如编程题和数学题,以便读者有针对性地进行准备。 综上所述,《数字 IC 后端面试宝典》是一本对数字 IC 后端工程师面试非常有价值的参考书籍。通过阅读本书,读者可以系统地学习和掌握数字 IC 后端设计的知识和技巧,并在面试中更好地展现自己的实力。无论是对于准备面试还是提升自己的专业素养,本宝典都是一本不可或缺的书籍。 ### 回答3: 《数字 IC 后端面试宝典》是一本具有指导性和实用性的书籍,主要目的是帮助读者准备和应对数字 IC 设计后端面试。 首先,本书对数字 IC 后端面试的常见问题进行了整理和总结,包括时序、布局、布线等方面的问题。这些问题既可以帮助读者了解数字 IC 后端设计的基本知识和技能要求,也可以让读者熟悉面试过程中可能遇到的具体问题,从而做好充分准备。 其次,本书通过实例分析和详细讲解,引导读者掌握数字 IC 后端设计的核心内容和技巧。例如,书中介绍了布局规则的制定和优化方法,布线技术的应用和调优技巧等。这些内容能够帮助读者理解数字 IC 后端设计的一般思路和步骤,提高解决问题的能力和水平。 此外,本书还提供了一些有效的学习和备考方法,包括总结各个知识点的要点、解答常见问题的技巧等。这些方法可以帮助读者系统地学习和掌握数字 IC 后端设计的知识和技能,提高应对面试的能力和自信心。 总的来说,《数字 IC 后端面试宝典》是一本很好的学习和备考资料,适合有一定数字 IC 后端设计基础的读者阅读。通过学习本书的内容,读者可以加深对数字 IC 后端设计的理解和认识,提高应对面试的能力,并在实际工作中运用所学知识取得更好的成绩。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值