大家都知道,Floorplan的目的是为了确定模块大小,位置,形状,以及摆放Macro,也就是我们通常见到的随机存储单元RAM、只读存储单元ROM,还有其他IP模块等等。它与Place(布局)有着一些相似的地方。Floorplan的复杂之处在于模块的形状与大小可能是一个不确定的变量,需要权衡结果来反推这个变量。而其简单之处在于,Floorplan相比于Place的超大规模标准单元而言,整体数据量并不是十分庞大。
对于Floorplan而言,人们更倾向于靠自己的经验去摆放Macro,摆放它们时不仅要考虑面积、互联线长等传统问题,还需要考虑Place阶段,Macro的摆放对于Place的影响。因为Macro从本质上讲就是一个巨型的标准单元,很多Macro也存在于各个模块内,在Floorplan阶段并不能和模块对等的考虑。对于这个问题,人们根据实际生活中的经验,提出一种边缘摆放(edge place)的方法。
因为长久以来,人们在使用具有矩形或者多边形结构的平面石砖砌墙或者铺地面的时候发现一个规律,要想更好的利用手头的材料,更少的产生材料的冗余,需要先从平铺区域的边边角角开始工作,并且首先将最大块的材料铺于区域中,再向中心扩展,并用一些小材料填补区域上的空隙。
边缘摆放的好处主要来源于下面两点:
a.从目前芯片设计的趋势来看,芯片中除了计算单元,随机存储单元RAM、只读存储单元ROM等。这些存储单元占据的芯片面积在有些设计中甚至超过百分之五十。对于存储单元来说,存在数据端口和存储端口,并且周围需要有一些可测性电路。这使得这些单元引线众多且功耗巨大。将它们贴边放置,不仅有利于这些单元的供电,而且防止这些单元过多的引脚对其他单元的布线造成影响。
b.标准单元在布局时,按照Row所划定的高度一排一排的摆放,这样既有利于算法的设计,又有利于工业制造。并且在给各个器件供电时,可以使用横向的电源线将处于同一高度的器件连接在一起统一供电。若是将标准单元都摆放在芯片区域的中心,而大的Macro摆放在四周,就可以使标准单元方便的只用一条电源线连接在一起,而不会被高度不统一的Macro打断。对电源网格的设计提供了巨大便利。
而Macro的摆放原则基本如下,可以参照下面这张图
a.模块尽量摆放在靠近相应输入输出口(I/O port)的位置。一般来说对于大型的Macro,他们不仅仅需要与芯片内部的其他Macro或者标准单元进行数据交换,还需要与芯片外部的器件进行通信。比如,锁相环单元需要接收外部晶振信号,存储单元需要接收外部地址等。这种数据交换就是靠I/O port进行的,因此摆放在离相应的数据端口附近,有利于减少互联线长度,减少线上延迟,并节约布线资源。
b.大的Macro摆放尽量贴近版图的边缘和角落,这样有利用空间的利用。如下图所示:
c.Macro与Macro之间要留有一定空隙,给予布线资源。特别是在Macro的间隙有端口的时候更是如此,设计者可以通过相邻Marco边界上端口的多少来决定留有多大的间隙比较合适。在使用EDA软件的Floorplan设计时,同样可以给Macro加上halo来控制Macro与Macro之间的距离。Halo分为placement halo和routing halo,可以分别阻止在有Halo区域放置其他单元或者绕线,类似于blockage。但是Halo并不是独立存在,而是依附于Macro周围,可随Macro移动的。所以它是专门用来控制Macro和其他单元之间距离的一种功能。
-
芯片
+关注
关注
455文章
50714浏览量
423138 -
ROM
+关注
关注
4文章
563浏览量
85731 -
存储单元
+关注
关注
1文章
63浏览量
16148
原文标题:Build A City——Floorplan
文章出处:【微信号:IC_Physical_Design,微信公众号:数字后端IC芯片设计】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论