
众所周知,Floorplan的目的是确定模块的大小、位置和形状,放置宏,也就是RAM、ROM、其他IP模块等等。它与Place(布局)有一些相似之处。布图规划的复杂性在于模块的形状和大小可能是一个不确定的变量,需要权衡结果才能推导出这个变量。简单的是,与超大规模的标准单元相比,平面布置图的整体数据量不是很大。
对于Floorplan,人们更倾向于凭自己的经验放置宏。在进行布局时,不仅要考虑面积、互连线长度等传统问题,还要在布局阶段考虑宏观布局对布局的影响。因为宏本质上是一个巨型的标准单元,每个模块中也存在很多宏,不能和平面布置阶段的模块同等考虑。为了解决这个问题,人们根据自己在现实生活中的经验提出了边缘定位的方法。
长期以来,人们在使用矩形或多边形结构的平面石砖建造墙壁或地板时已经发现了一个规律。为了更好地利用手中的材料,减少材料的冗余,需要从平铺区域的角落开始工作,先铺上该区域最大的一块材料,然后向中心扩展,用一些小材料填充该区域的缝隙。
边缘放置的优势主要来自以下两点:
A.从目前芯片设计的趋势来看,除了计算单元、RAM、rom等,芯片还有随机存取存储单元。在一些设计中,这些存储单元占据了超过50%的芯片面积。对于存储单元,有数据端口和存储端口,周围需要有一些可测性电路。这就使得这些单元引线多,功耗巨大。把它们放在边缘不仅有利于这些单元的供电,还可以防止这些单元过多的管脚影响其他单元的布线。
B.标准单元在布局时,按照行定义的高度,一排排摆放,无论是算法设计还是工业制造都是有利的。另外,在给各个设备供电时,同一高度的设备可以通过水平电源线连接在一起,统一供电。如果所有的标准单元都放在芯片区域的中央,大的宏放在周围,那么标准单元只需要一根电源线就可以方便地连接在一起,不会被不同高度的宏打断。这为电网的设计提供了极大的方便。
宏的布局原理基本如下,可以参考下图。
A.将模块尽可能靠近相应的I/o端口。一般来说,对于大型宏,它们不仅需要与芯片内部的其他宏或标准单元交换数据,还需要与芯片外部的设备进行通信。例如,PLL单元需要接收外部晶体振荡器信号,存储器单元需要接收外部地址。这种数据交换是通过I/O口进行的,所以放在相应的数据口附近,有利于减少互连线的长度,减少在线延迟,节省布线资源。
B.大型宏应尽可能靠近布局的边缘和角落,以便利用空间。如下图所示:
C.宏观和宏观要有一定的差距,布线资源要给。特别是当宏的间隙中存在端口时,设计者可以通过相邻宏边界上的端口数量来决定多大的间隙是合适的。在使用EDA软件的Floorplan设计时,还可以给宏加上光环,控制宏和宏之间的距离。光环分为放置光环和路由光环,可以分别阻止其他单位在有光环的区域放置或路由,类似于封锁。但光晕并不是独立存在的,而是依附于宏观,可以随宏观而动。所以是专门用来控制宏和其他单位距离的函数。








