ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
Floorplan的目的是为了确定模块大小,位置,形状,以及摆放Macro,也就是我们通常见到的随机存储单元RAM、只读存储单元ROM,还有其他IP模块等等。它与Place(布局)有着一些相似的地方。Floorplan的复杂之处在于模块的形状与大小可能是一个不确定的变量,需要权衡结果来反推这个变量。而其简单之处在于,Floorplan相比于Place的超大规模标准单元而言,整体数据量并不是十分庞大。 对于Floorplan而言,人们更倾向于靠自己的经验去摆放Macro,摆放它们时不仅要考虑面积、互联线长等传统问题,还需要考虑Place阶段,Macro的摆放对于Place的影响。因为Macro从本质上讲就是一个巨型的标准单元,很多Macro也存在于各个模块内,在Floorplan阶段并不能和模块对等的考虑。对于这个问题,人们根据实际生活中的经验,提出一种边缘摆放(edgeplace)的方法 因为长久以来,人们在使用具有矩形或者多边形结构的平面石砖砌墙或者铺地面的时候发现一个规律,要想更好的利用手头的材料,更少的产生材料的冗余,需要先从平铺区域的边边角角开始工作,并且首先将最大块的材料铺于区域中,再向中心扩展,并用一些小材料填补区域上的空隙。 边缘摆放的好处主要来源于下面两点: a.从目前芯片设计的趋势来看,芯片中除了计算单元,随机存储单元RAM、只读存储单元ROM等。这些存储单元占据的芯片面积在有些设计中甚至超过百分之五十。对于存储单元来说,存在数据端口和存储端口,并且周围需要有一些可测性[电路]。这使得这些单元引线众多且功耗巨大。将它们贴边放置,不仅有利于这些单元的供电,而且防止这些单元过多的引脚对其他单元的布线造成影响。 b.标准单元在布局时,按照Row所划定的高度一排一排的摆放,这样既有利于算法的设计,又有利于工业制造。并且在给各个器件供电时,可以使用横向的电源线将处于同一高度的器件连接在一起统一供电。若是将标准单元都摆放在芯片区域的中心,而大的Macro摆放在四周,就可以使标准单元方便的只用一条电源线连接在一起,而不会被高度不统一的Macro打断。对电源网格的设计提供了巨大便利。 ![](https://img.kancloud.cn/a1/e8/a1e86756a0c86a0aa8178f173850bb52_640x375.png) b.大的Macro摆放尽量贴近版图的边缘和角落,这样有利用空间的利用。如下图所示 ![](https://img.kancloud.cn/24/f7/24f7c132aa4c6f140cf9f758b4bc535a_545x431.png) c.Macro与Macro之间要留有一定空隙,给予布线资源。特别是在Macro的间隙有端口的时候更是如此,设计者可以通过相邻Marco边界上端口的多少来决定留有多大的间隙比较合适。在使用[EDA](http://www.hqpcb.com/zhuoluye11/?tid=26&plan=fashaoyou)软件的Floorplan设计时,同样可以给Macro加上halo来控制Macro与Macro之间的距离。Halo分为placementhalo和rou[ti](http://www.elecfans.com/tags/ti/)nghalo,可以分别阻止在有Halo区域放置其他单元或者绕线,类似于blockage。但是Halo并不是独立存在,而是依附于Macro周围,可随Macro移动的。所以它是专门用来控制Macro和其他单元之间距离的一种功能。 ![](https://img.kancloud.cn/df/0b/df0b1208daac2cbe8972e061dfcbf951_592x555.png) ![](https://img.kancloud.cn/7c/fc/7cfc797f4e9c46b88c15f746f49672b4_508x499.png)