临界区设计太大或太小有何缺点_数字IC设计职位经典笔试面试100题(91~100)

来源:陈涛百题

91、假设在pre-CTS的时序约束中,setup的clock uncertainty是由PLL jitter和clock tree skew两部分组成,那么
1)pre-CTS的时序约束中,hold的clock uncertainty是什么?
2)post-CTS的时序约束中,setup和hold的clock uncertainty要做什么样的修改

答案:
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

92、请详细解释解决走线阻塞的问题
提示:
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

d996cb8af9e4debb5f28c3cd77f8887b.png

93、如何得到更好的时钟树skew和insertion delay

答案:
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走线完成

94、如果告诉你标准单元的门数,所有内存的类型和逻辑大小,其他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的面积,比如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%

7c9f82c6321187e87bd6d6a6d6806718.png

95、CTS中使用buffer和inverter的优缺点是什么?

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

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

答案:
去除不太好用的layer(比如metal1)和power专用layer(比如RDL)后,比较剩下的layer可以提供的H和V的routingresource,如果H的多,就选宽的,反之,就选高的。
97、因为IO太多而导致芯片面积过大,有什么方法减小面积?

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

98、如图所示电路,时钟和延迟,计算到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

cd4bb4262289990b82826d33696db1df.png


99、说一下ECO的流程

答案:
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做ECOroute

100、一个设计的时序约束是怎么写出来的?请大略说明时钟,IO delay,false path, multicyclepath是如何得到的?在完成时序约束的过程中,后端可以给予什么样的帮助?

答案:
clock和generated clock一般由设计spec决定。除非有些个别的local generated clock可以有前端工程师自己添加
IO timing与系统设计有关,应该参考/兼顾其他芯片的IO时序,由前端工程师作出
exception(false path, multicycle path)一般是由前端工程师在做设计时决定的

后端可以提供clock network delay/skew,DRV,以及帮助检查SDC是否合格

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值