数字后端面试必备
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
答案: 1)高金属层的 IR 比较小,EM 能力大 2)底层被 IP,标准单元用的机会更大
2、Why do you use alternate routing approach HVH/VHV (Horizontal-Vertical-Horizontal/ Vertical-Horizontal-Vertical)? 为什么要使用横竖交替的走线方式? (感觉这个问题比较弱智,但是号称是 intel 的面试问 题,晕!我憧憬和向往的圣地啊!!!) 难度:1
9、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
11、What are various techniques to resolve routing congestion? 请详细解释解决走线阻塞的问题 难度:4
提示: 1) routing congestion 发生在后端,前端一般不太考虑这个问题,需要后端自己去想办法解 决,但是解决的办法不只在后端,也有一些方法需要前端的配合 2) 阻塞有多种情形,要分别讨论,没有一个统一的解决办法。能够把大部分的阻塞情况列 举出来,就已经够 4 级的水平啦
答案: 在 CTS 的 spec 文件中定义 clka 是 root,clkb 为 through pin,再加上那些应该有的 skew, transition,insertion delay 等就好了,其它的事 CTS 会给你做
10、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?
答案: 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 的延时。
下面是第一个真正的问题: 1、 Why power stripes routed in the top metal layers? 为什么电源走线选用最上面的金属层? 难度:1
难度指数: 1:常识--无论是否有工作经验,都应该准确回答 2:简单--只要做过一点后端的设计,就应该明白 3:一般--有实际工作经验一年左右,做过 2 个以上真正的设计,应该可以答上来 4:较难--在这个特定的领域有较多的研究,并积累了一定的经验 5:很难--基本上是专家级的牛人了!
假设有两个时钟,原始为 clka,生成的时钟为 clkb, 在没有时钟树的网表中,clka 的 network latency 会自动传递到 clkb 上吗?clkb 的 latency 如 何描述? 在生成时钟树的网表中,如何处理 network latency? clkb 的 latency 又如何描述?
答案: 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 设计中有多少种类型的 delay
model)
答案: NLDM CCS ECSM 还有一个现在基本不用了的—LDM
7、How delays are characterized using WLM (Wire Load Model)? 使用一般的 WLM (不是 zero WLM,也不是按照物理位置算的 DCT),DC 是如何计算 delay 的? 难度:2
8、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?
答案: 最有效地利用走线资源
3、How to fix x-talk violation? 如何解决线间干扰? 难度:4 (关于难度的定义,在第一题里面) (应该至少有 5 大类解决办法,wire spacing, shielding, change layer 之类的只算其中 1 driver, downsize aggressor net driver 2)increase wire space, shielding, change layer,change wire width 3)insert butter in victim net
难度:3
答案: 在 pre-CTS 时,clka 的 network latency 会自动传到 clkb 上 在 post-CTS 时,可以把 network latency 去掉,通过 set_propagated_clock 命令,让工具根据
clock tree 去计算实际的 clock network latency
答案: 1)阻塞在 RAM(macro)之间:可能 RAM 之间的距离没有计算正确,可以加大 RAM 之
间的间距;扭转 RAM 的方向,使得 RAM 的 IO pin 朝向更容易走线的那边;如果是多个 RAM 共用地址或者数据线,尽量把 RAM 的地址数据 pin 对齐
2)阻塞出现在 RAM 和帮助单元交界的地方:在 RAM 周围加一条 halo(keepout);把 RAM 放在四周,尽量把中间留下的空间变成方形;在有阻塞的地方加一些由小的 placement blockage 组成的矩阵
以下三个是最经常被问到的,基本上属于介绍性的题目,无所谓正确答案,在我看来,这些 不算真正的问题。
Discuss about the projects worked in the previous company. 介绍一下你在公司里做过的项目 What are physical design flows, various activities you are involved? 介绍一下你们的后端流程(假设是从 gate level netlist 开始的),你负责哪一部分? Design complexity, capacity, frequency, process technologies, block size you handled. 芯片的工艺,面积,standard cell 的 gate count,FF 的个数,memory macro 的个数,时钟频 率,时钟个数,是 hierarchy 还是 flatten flow, 如果是 flatten flow,分成几个 block
假设在 pre-CTS 的时序约束中,setup 的 clock uncertainty 是由 PLL jitter 和 clock tree skew 两 部分组成,那么 1)pre-CTS 的时序约束中,hold 的 clock uncertainty 是什么? 2)post-CTS 的时序约束中,setup 和 hold 的 clock uncertainty 要做什么样的修改? 难度:2
能答出以上 3 条的,在工作中已经基本够用,但是还有两个不常用到的,是 AMD 的一个大 牛告诉我的。
4)把与 victim net 相连的输入端改成 Hi-Vth 的单元 5)改变信号的 timing window。这个不易做到,但是也是解决方法
4、What are several factors to improve propagation delay of standard cell? 哪些因素可以影响标准单元的延迟? 难度:3
6、During the synthesis, what type of wire load model are often used? 做 RTL 综合时,经常使用的 wire load model 有哪几种? 难度:2
注意:问题是 wire load model,不是 wire load mode,也不是 delay model
3)阻塞出现在标准单元的某一块:也可以加一些由小的 placement blockage 组成的矩阵; module/instance padding;利用 placement guide 减少那块地方的标准单元个数;scan chain reordering 也会改善一些阻塞;定义 density 上限;使用 congestion driven 的 placement,并且 要求 place 之后做 congestion 优化;在综合是禁止使用那些 pin 太多太密集的标准单元(多半 是那些复 杂的组合逻辑单元);请前端使用 RAM 代替触发器矩阵;请前端修改算法
答案: 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
答案: 1) PVT 2)input transition, output load 3)Vth
5、What would you do in order to not use certain cells from the library? 如何禁止使用库里面的某些单元? 难度:1
答案: set_dont_use set_dont_touch
4)应该尽量减少 power route 占有的资源,谨慎选择 power mesh 使用的金属层,VIA 的大 小等。在 detail route 完成之后,你如果已经试了各种解决 signal congestion 的方法,还有少 量 DRC 无法解决时,可以考虑切掉部分 power mesh
12、How do you get better skew/insertion delays in CTS (Clock Tree Synthesis)? 如何得到更好的时钟树 skew 和 insertion delay 难度:4
2、Why do you use alternate routing approach HVH/VHV (Horizontal-Vertical-Horizontal/ Vertical-Horizontal-Vertical)? 为什么要使用横竖交替的走线方式? (感觉这个问题比较弱智,但是号称是 intel 的面试问 题,晕!我憧憬和向往的圣地啊!!!) 难度:1
9、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
11、What are various techniques to resolve routing congestion? 请详细解释解决走线阻塞的问题 难度:4
提示: 1) routing congestion 发生在后端,前端一般不太考虑这个问题,需要后端自己去想办法解 决,但是解决的办法不只在后端,也有一些方法需要前端的配合 2) 阻塞有多种情形,要分别讨论,没有一个统一的解决办法。能够把大部分的阻塞情况列 举出来,就已经够 4 级的水平啦
答案: 在 CTS 的 spec 文件中定义 clka 是 root,clkb 为 through pin,再加上那些应该有的 skew, transition,insertion delay 等就好了,其它的事 CTS 会给你做
10、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?
答案: 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 的延时。
下面是第一个真正的问题: 1、 Why power stripes routed in the top metal layers? 为什么电源走线选用最上面的金属层? 难度:1
难度指数: 1:常识--无论是否有工作经验,都应该准确回答 2:简单--只要做过一点后端的设计,就应该明白 3:一般--有实际工作经验一年左右,做过 2 个以上真正的设计,应该可以答上来 4:较难--在这个特定的领域有较多的研究,并积累了一定的经验 5:很难--基本上是专家级的牛人了!
假设有两个时钟,原始为 clka,生成的时钟为 clkb, 在没有时钟树的网表中,clka 的 network latency 会自动传递到 clkb 上吗?clkb 的 latency 如 何描述? 在生成时钟树的网表中,如何处理 network latency? clkb 的 latency 又如何描述?
答案: 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 设计中有多少种类型的 delay
model)
答案: NLDM CCS ECSM 还有一个现在基本不用了的—LDM
7、How delays are characterized using WLM (Wire Load Model)? 使用一般的 WLM (不是 zero WLM,也不是按照物理位置算的 DCT),DC 是如何计算 delay 的? 难度:2
8、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?
答案: 最有效地利用走线资源
3、How to fix x-talk violation? 如何解决线间干扰? 难度:4 (关于难度的定义,在第一题里面) (应该至少有 5 大类解决办法,wire spacing, shielding, change layer 之类的只算其中 1 driver, downsize aggressor net driver 2)increase wire space, shielding, change layer,change wire width 3)insert butter in victim net
难度:3
答案: 在 pre-CTS 时,clka 的 network latency 会自动传到 clkb 上 在 post-CTS 时,可以把 network latency 去掉,通过 set_propagated_clock 命令,让工具根据
clock tree 去计算实际的 clock network latency
答案: 1)阻塞在 RAM(macro)之间:可能 RAM 之间的距离没有计算正确,可以加大 RAM 之
间的间距;扭转 RAM 的方向,使得 RAM 的 IO pin 朝向更容易走线的那边;如果是多个 RAM 共用地址或者数据线,尽量把 RAM 的地址数据 pin 对齐
2)阻塞出现在 RAM 和帮助单元交界的地方:在 RAM 周围加一条 halo(keepout);把 RAM 放在四周,尽量把中间留下的空间变成方形;在有阻塞的地方加一些由小的 placement blockage 组成的矩阵
以下三个是最经常被问到的,基本上属于介绍性的题目,无所谓正确答案,在我看来,这些 不算真正的问题。
Discuss about the projects worked in the previous company. 介绍一下你在公司里做过的项目 What are physical design flows, various activities you are involved? 介绍一下你们的后端流程(假设是从 gate level netlist 开始的),你负责哪一部分? Design complexity, capacity, frequency, process technologies, block size you handled. 芯片的工艺,面积,standard cell 的 gate count,FF 的个数,memory macro 的个数,时钟频 率,时钟个数,是 hierarchy 还是 flatten flow, 如果是 flatten flow,分成几个 block
假设在 pre-CTS 的时序约束中,setup 的 clock uncertainty 是由 PLL jitter 和 clock tree skew 两 部分组成,那么 1)pre-CTS 的时序约束中,hold 的 clock uncertainty 是什么? 2)post-CTS 的时序约束中,setup 和 hold 的 clock uncertainty 要做什么样的修改? 难度:2
能答出以上 3 条的,在工作中已经基本够用,但是还有两个不常用到的,是 AMD 的一个大 牛告诉我的。
4)把与 victim net 相连的输入端改成 Hi-Vth 的单元 5)改变信号的 timing window。这个不易做到,但是也是解决方法
4、What are several factors to improve propagation delay of standard cell? 哪些因素可以影响标准单元的延迟? 难度:3
6、During the synthesis, what type of wire load model are often used? 做 RTL 综合时,经常使用的 wire load model 有哪几种? 难度:2
注意:问题是 wire load model,不是 wire load mode,也不是 delay model
3)阻塞出现在标准单元的某一块:也可以加一些由小的 placement blockage 组成的矩阵; module/instance padding;利用 placement guide 减少那块地方的标准单元个数;scan chain reordering 也会改善一些阻塞;定义 density 上限;使用 congestion driven 的 placement,并且 要求 place 之后做 congestion 优化;在综合是禁止使用那些 pin 太多太密集的标准单元(多半 是那些复 杂的组合逻辑单元);请前端使用 RAM 代替触发器矩阵;请前端修改算法
答案: 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
答案: 1) PVT 2)input transition, output load 3)Vth
5、What would you do in order to not use certain cells from the library? 如何禁止使用库里面的某些单元? 难度:1
答案: set_dont_use set_dont_touch
4)应该尽量减少 power route 占有的资源,谨慎选择 power mesh 使用的金属层,VIA 的大 小等。在 detail route 完成之后,你如果已经试了各种解决 signal congestion 的方法,还有少 量 DRC 无法解决时,可以考虑切掉部分 power mesh
12、How do you get better skew/insertion delays in CTS (Clock Tree Synthesis)? 如何得到更好的时钟树 skew 和 insertion delay 难度:4