IR-drop问题的分析与修复(三):add checkerboard placement blockage in narrow channel

摘要:
上篇推文我们讲了NarrowChannel出现IR-drop的几种解决方法:1、调整Floorplan让Channel形成偶数个PG;2、在NarrowChannel区域加Checkerboard的PlacementBlockage;3、给NarrowChannel里面的标准单元加Cellpadding;4、在NarrowChannel区域加Extrapg;5、给Macro加keepoutmargin。这里讲其中的第二种:加Checkerboard的PlacementBlockage。下面是加了Checkerboard之后Cell的摆放效果,可以看到Cell的密度大大降低了,且分布相对较为分散:用这种方式可以降低NarrowChannel及Macro周围发生IR-drop的几率。

本文转自:自己的微信公众号《集成电路设计及EDA教程》

IR-drop问题的分析与修复(三):add checkerboard placement blockage in narrow channel第1张

前面讲解了调整Floorplan使得Narrow Channel里面形成偶数个PG来修复IR-drop的方法。可是我们可能还会看到下面的情形:Narrow Channel里面已经是Even PG了,但是还是有一些标准单元有IR-drop(已经用红色标出):

IR-drop问题的分析与修复(三):add checkerboard placement blockage in narrow channel第2张

注:图中Narrow Channel里面的Endcap、Decap和Filler为了简化起见都没有画出来。

基本上它们都有这样的特点:

· 有IR-drop的那些Cell基本都靠近Macro的Boundary;

· IR-drop比较严重的是那些Cell都是聚集在一起的,局部的Density比较严重的区域。

上篇推文我们讲了Narrow Channel出现IR-drop的几种解决方法:

1、调整Floorplan让Channel形成偶数个PG(Even PG);

2、在Narrow Channel区域加Checkerboard的Placement Blockage;

3、给Narrow Channel里面的标准单元加Cell padding(keepout margin);

4、在Narrow Channel区域加Extra pg;

5、给Macro(本图中是RAM)加keepout margin。

这里讲其中的第二种:加Checkerboard的Placement Blockage。

分析:首先看些这些Cell的类型,一般我们不希望在Narrow Channel里面有Function的Cell,只希望是一些简单的Buffer。如果是比较宽的Channel,那倒是可以放Function Cell的,不过我们也要保证它们的密度不能太高,否则也会导致IR-drop,限制密度的方法是打Partial Blockage。

因此对于Narrow Channel,我们一般设置成Buffer only的Blockage,如果里面出现了上面所示的IR-drop问题,这些Cell根据连接关系可能有几种:

一种可能是下面的情况,Macro的Pin朝向这里,要从这里出Pin,在Macro比较长的情况下,为了满足Setup和Transition的要求,需要就近放一些Buffer:

IR-drop问题的分析与修复(三):add checkerboard placement blockage in narrow channel第3张

这种情况我们可以看下这个Macro的Connection关系,如果是连到左边的Logic,那么我们可以将它左右Flip一下,这样右边Channel里面的Cell就会少了。

还有可能是一些信号从上往下/从下往上传,或者从左往右/从右往左传,由于Macro尺寸比较大,为了满足Transition的要求,要在这个Channel里面插入一些Buffer:

IR-drop问题的分析与修复(三):add checkerboard placement blockage in narrow channel第4张

其实可以观察,这个Channel里面的Cell数目不是很多,如果将所有的Cell分散开也是放得下的,可是Cell却堆在了一起,且堆在了离RAM比较近的地方。同样,我们多半也会在RAM四周看到这种很多Cell贴者RAM摆放的情况,如下图所示:

IR-drop问题的分析与修复(三):add checkerboard placement blockage in narrow channel第5张

对于这些情形,我们可以通过在Narrow Channel里面以及Macro周围打一些分散的成棋盘(Checkerboard)分布的Hard Placement Blockage。一方面可以防止太多的Cell被摆到这个Channel里面,来限制Cell的Density,另一方面也可以强制Channel里面的Cell分散摆放。加入Checkerboard的Hard Placement Blockage效果如下图所示:

IR-drop问题的分析与修复(三):add checkerboard placement blockage in narrow channel第6张

友情提示:在每个阶段的优化期间(Place、CTS、Route)可能工具都会加入一些优化的Cell,为了防止这些区域又加一堆的Cell,我们可以保持这些Blockage,直到最后加Filler之前将它们Remove掉。

下面是加了Checkerboard之后Cell的摆放效果,可以看到Cell的密度大大降低了,且分布相对较为分散:

IR-drop问题的分析与修复(三):add checkerboard placement blockage in narrow channel第7张

用这种方式可以降低Narrow Channel及Macro周围发生IR-drop的几率。

本推文就讲到这里,以后的推文陆续讲解其他的解决方案。

相关推文

IR-drop问题的分析与修复(含脚本分享)(一):Partition boundary cells clustering
IR-drop问题的分析与修复(二):odd pg in Narrow Channel

免责声明:文章转载自《IR-drop问题的分析与修复(三):add checkerboard placement blockage in narrow channel》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SELinux 宽容模式(permissive) 强制模式(enforcing) 关闭(disabled)深入 CommonJs 与 ES6 Module下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

iPhone用nib/xib文件载入窗口,和用代码写窗口,到底哪个快?(转)

本篇译自:Matt Gallagher的blog-http://cocoawithlove.com原文:http://cocoawithlove.com/2010/03/load-from-nib-or-construct-views-in.html 有人认为iPhone上用代码来构建加载窗口要比用nib文件来得更快。真的假的?下面文章做了一个实验,说明了...

对CCLE数据库可以做的分析--转载

转载:http://www.bio-info-trainee.com/1327.html 收集了那么多的癌症细胞系的表达数据,拷贝数变异数据,突变数据,总不能放着让它发霉吧! 这些数据可以利用的地方非常多,但是在谷歌里面搜索引用了它的文章却不多,我挑了其中几个,解读了一下别人是如何利用这个数据的,当然,主要是用那个mRNA的表达数据咯! 第一篇:http:...

ios 视频列表处理---分解ZFPlayer

1.视频播放器添加到containerView的机制与一个普通播放器页面的不同 普通视频播放页面可以直接添加一个播放器,按照正常逻辑播放、暂停、切换等操作,而视频列表的做法是 用户触发播放动作 当点击一个cell上的播放按钮时,首先判断当前是否有其他cell在播放视频,有则停止播放并移除播放器, 反之,会判断是否存在有效的承载控件,即container...

iOS-截取TableView生成图片

先看一下实例效果: 如果所示,这是一个在APP中截图,并调起微信客户端,发送给好友的例子,图片就是一个tableView的截图。 先实现一个小例子,如果tableVIew里面的内容,没有超过当前屏幕显示的区域,我们可以直接根据tableView的frame,生成一张图片 // 根据view生成图片 UIGraphicsBeginImageCo...

ExcelTools使用

using NPOI.SS.Formula.Functions; using NPOI.SS.UserModel; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; nam...

Vue子组件和父组件、子组件调用父组件的方法、父组件调用子组件方法、子组件与父组件间的传值

 Vue子组件和父组件、子组件调用父组件的方法、子组件与父组件间的传值: 第一: 子组件和父组件定义:     父组件:DeptMgrTop.vue     子组件:DeptMgrBody.vue(<top-body></top-body>)和DeptMgrBodyUser.vue(<top-bodyUser><...