考虑重叠度和线长的布局模块分布密度平滑方法

文档序号:6552778阅读:317来源:国知局
专利名称:考虑重叠度和线长的布局模块分布密度平滑方法
技术领域
本发明涉及超大规模集成电路物理设计技术领域,尤其涉及一种考虑重叠度和线长的布局模块分布密度平滑方法。
背景技术
布局过程一般开始于模块重叠度较高的初始布局,在优化线长、拥挤度等目标的同时,将模块均勻地分布到布局区。近年来,力指向的解析式布局算法以其模型简单,运行速度快,布局结果质量高等特点成为研究的热点。力指向布局算法一般先通过模块分布密度平滑方法得到相对平坦的模块分布,接着在此分布之上运行解析优化算法得到一个新的布局,以上过程迭代执行直到模块重叠度满足预定的目标。不同的密度平滑方法会造成不同的模块分布,从而导致不同的优化结果。因此密度平滑方法对布局优化质量有很大的影响。力指向布局算法典型的代表主要有i^astPlace、mFAR和Kraftwerk等,按照使用的密度平滑方法不同,可以将它们划分为主动移动方法和力场推动方法两类。主动移动密度平滑方法在FastPlace和mFAR中采用,它们根据当前bin结构的密度差异计算虚拟的bin 结构,用来映射模块的移动方向和位置,使模块从高密度区向低密度区移动。这种主动移动密度平滑方法的缺陷在于当平滑分布密度时只考虑相邻的bin,未考虑局部分布与全局分布的关系。在很多情况下,模块的局部移动方向与全局的优化方向是不一致的。如图 1所示,按照扩散的方法如果只根据斜纹区域的密度分布计算,bin(4,4)和bin(3,4)内的模块应该向bin(5,;3)方向移动。但是,从全局的密度分布考虑,却应该朝着bin(3,3)移动。假如bin(4,4)和bin(3,4)内的模块移到了 bin(5,3),从全局的密度分布观察,bin(5, 3)已经是一个高密度区,在接下来的布局迭代中会重新把bin(5,;3)内的模块向低密度区 bin(3,3)移动。因此,这种移动方法不利于布局过程的收敛。mFAR中的密度平滑方法较之FastPlace做了改进,通过计算某一 bin边界两侧同一行(列)的模块平均分布密度之差来确定跨边界的模块移动“流量”,然后进一步得到对应于这个bin边界的虚拟边界的位置,再通过与FastPlace类似的映射方法求得模块新的位置。这种方法更多的考虑了模块的全局分布,但局部分布对模块移动的影响未加考虑。由于模块密度分布在布局初期非常不均勻,这样会造成模块移动速度不平滑,相邻bin的模块移动速度容易发生较大的突变,进而破坏模块的相对位置。力场推动密度平滑方法Eisenmann等提出了经典地使用“力”推动布局模块从高密度区向低密度区移动, 力矢量是由模块的密度分布确定的。类似于电磁力场,模块所受到的引力或斥力可以防止模块重新退缩回前一迭代位置,促使布局过程收敛。在H. Eisenmann, F. M. Johannes于1998 年发表的 Generic global placement and floorplanning[C]的理论基石出上,Kraftwerk布局算法在每次布局迭代中用泊松电势方程计算力矢量,把力分成保持力和移动力,完全用解析的方法完成整体布局过程。基于力场推动的方法是从模块的整体分布来确定力矢量,从理论角度看比较合理,但是实际的应用中很难对力进行控制,需要大量的参数进行校正,较之前面的主动移动方法需要更多的技巧。此外,上述密度平滑方法中标准模块一般被假定为具有面积属性的点来处理。由于很多面积大的标准模块会跨越两个以上的bin,不论采用主动移动还是力场推动方法,用模块几何中心代表模块来计算移动距离显然存在较大的误差。由于现代大规模集成电路布局中通常会涉及很多可移动宏模块,如何移动这些大的模块对布局结果有很大的影响。

发明内容
针对上述问题,本发明提供一种由全局密度分布差异确定模块的移动方向,由局部密度分布梯度来确定模块移动距离的大小的考虑重叠度和线长的布局模块分布密度平滑方法。为达到上述目的,本发明所述考虑重叠度和线长的布局模块分布密度平滑方法, 包括步骤(1)、读取待布局区域信息,将待布局区域划分为至少两个具有相同尺寸的 bin结构,若待布局区域内存在跨越至少两个bin的模块,则将该模块进行离散处理离散为多个子模块,并分别计算出各bin内的模块密度;步骤O)、基于上述步骤⑴中得出的各bin内的模块密度,分别计算出各bin左右和上下两侧所有模块的密度,并依据各侧的密度值确定出各bin内模块的移动方向;步骤(3)、基于步骤( 得出的移动方向,计算各bin内模块面积溢出量,依据面积溢出量确定各bin内模块的总体平均移动距离;步骤(4)、计算出各模块及其所属bin的连线网加权和,依据连线网加权和及步骤 (3)中得出的各bin内模块的总体平均移动距离确定各模块的实际移动距离;步骤(5)、依据步骤(2)和⑷得出的各bin内模块的移动方向以及各模块的实际移动距离,移动各模块并输出移动后的新的模块位置文件。进一步地,步骤(1)具体实现如下1. 1、读取待布局区域信息,建立布局网链表;1.2、将待布局区域划分为mXn维相同尺寸的bin结构,若待布局区域内存在跨越至少两个bin的模块,则将该模块以跨越的bin边界为分割线离散为多个子模块,其中,m和 η均为大于等于1的自然数;1. 3、创建用于存储各bin内模块的密度的二维数组grid[m] [η];1.4、遍历布局网链表中所有模块节点,依据各模块的位置和宽高信息查找出二维数组grid[m] [η]中该模块所属的bin数组元素并更新其内的模块信息,若该模块被离散为多个子模块则需依据各子模块的位置和宽高信息查找出二维数组grid[m] [η]中各模块所属的bin数组元素并更新其内的子模块信息;1. 5、基于各bin数组元素中的模块信息或还包括子模块信息,计算出各bin内的模块密度。其中,各bin内的模块密度计算过程如下
首先,求解出biriy内的所有模块面积和,计算公式如下
权利要求
1.一种考虑重叠度和线长的布局模块分布密度平滑方法,其特征在于,包括步骤(1)、读取待布局区域信息,将待布局区域划分为至少两个具有相同尺寸的bin结构,若待布局区域内存在跨越至少两个bin的模块,则将该模块进行离散处理离散为多个子模块,并分别计算出各bin内的模块密度;步骤O)、基于上述步骤(1)中得出的各bin内的模块密度,分别计算出各bin左右和上下两侧所有模块的密度,并依据各侧的密度值确定出各bin内模块的移动方向;步骤C3)、基于步骤( 得出的移动方向,计算各bin内模块面积溢出量,依据面积溢出量确定各bin内模块的总体平均移动距离;步骤G)、计算出各模块及其所属bin的连线网加权和,依据连线网加权和及步骤(3) 中得出的各bin内模块的总体平均移动距离确定各模块的实际移动距离;步骤( 、依据步骤( 和(4)得出的各bin内模块的移动方向以及各模块的实际移动距离,移动各模块并输出移动后的新的模块位置文件。
2.根据权利要求1所述考虑重叠度和线长的布局模块分布密度平滑方法,其特征在于,步骤(1)具体实现如下1. 1、读取待布局区域信息,建立布局网链表;1. 2、将待布局区域划分为mXn维相同尺寸的bin结构,若待布局区域内存在跨越至少两个bin的模块,则将该模块以跨越的bin边界为分割线离散为多个子模块,其中,m和η均为大于等于1的自然数;1. 3、创建用于存储各bin内模块的密度的二维数组grid[m] [η]; 1.4、遍历布局网链表中所有模块节点,依据各模块的位置和宽高信息查找出二维数组 grid[m] [η]中该模块所属的bin数组元素并更新其内的模块信息,若该模块被离散为多个子模块则需依据各子模块的位置和宽高信息查找出二维数组grid[m] [η]中各模块所属的 bin数组元素并更新其内的子模块信息;1. 5、基于各bin数组元素中的模块信息或还包括子模块信息,计算出各bin内的模块也/又。
3.根据权利要求1或2所述考虑重叠度和线长的布局模块分布密度平滑方法,其特征在于,其中,各bin内的模块密度计算过程如下首先,求解出biriy内的所有模块面积和,计算公式如下其中,i = 1、2、...、m,j = 1、2、...,!!,Aiij表示biny的面积,Ak表示模块k的面积或子模块的面积,Ψ表示各bin内所有布局模块集合; 然后,求解出biriy内的模块密度,计算公式如下
4.根据权利要求1或2所述考虑重叠度和线长的布局模块分布密度平滑方法,其特征在于,所述待布局区域信息包括待布局区域内各模块的位置信息、属性、各模块的引线端信息、网表、及布局区域信息。
5.根据权利要求1或2所述考虑重叠度和线长的布局模块分布密度平滑方法,其特征在于,所述步骤(2)具体实现如下·2. 1、遍历数组grid[m] [η]中的每一 bin数组元素,分别计算各bin所在列两侧的所有模块的平均分布密度,以及各bin所在行两侧的所有模块的平均分布密度;·2. 2、分别将步骤2. 1中得出的左右两侧和上下两侧的所有模块的平均分布密度进行加权求和,并将其存储到对应的bin数组元素中;·2.3、依据bin左右两侧和上下两侧的密度信息及移动规则,确定bin内模块的移动方向。
6.根据权利要求5所述考虑重叠度和线长的布局模块分布密度平滑方法,其特征在于,所述的移动规则为bin内模块向密度低的一侧移动。
7.根据权利要求1所述考虑重叠度和线长的布局模块分布密度平滑方法,其特征在于,所述步骤(3)具体实现如下·3.1、判断在移动方向一侧的bin密度是否大于或等于欲移动bin的密度,是,则欲移动 bin内的模块不移动;否则,欲移动bin内的模块移动至移动方向一侧的bin,并继续下一步骤;·3.2、令移动方向一侧的bin和欲移动bin内的模块密度相等,确定出欲移动bin内的模块面积溢出量,再除以bin的宽度或高度即得出bin内模块的总体平均移动距离。
8.根据权利要求1或2所述考虑重叠度和线长的布局模块分布密度平滑方法,其特征在于,所述步骤(4)具体实现如下·4.1、遍历所述布局网链表中的所有边,依据边在X和Y轴的投影计算出模块节点的连线网加权和;·4. 2、遍历布局网链表中的所有模块节点,分别查找出二维数组grid[m] [η]中该模块所属的bin数组元素并更新其内模块的连线网加权和;·4. 3、依据模块的移动方向和其所属bin的连线网加权和计算出该模块的实际移动距离,若存在跨越至少两个bin的模块,则根据面积的比率计算其实际移动距离。
全文摘要
本发明公开一种考虑重叠度和线长的布局模块分布密度平滑方法,主要是为了解决现有密度平滑方法存在的问题而设计。本发明所述方法包括(1)读取待布局区域信息,将待布局区域划分为至少两个具有相同尺寸的bin结构,离散大模块并分别计算出各bin内的模块密度;(2)基于各bin内的模块密度,分别计算出各bin左右和上下两侧所有模块的密度,依各侧的密度值确定各bin内模块的移动方向;(3)基于移动方向,计算各bin内模块面积溢出量,依面积溢出量确定各bin内模块的总体平均移动距离;(4)计算出各模块及其所属bin的连线网加权和,依据连线网加权和及各bin内模块的总体平均移动距离确定各模块的实际移动距离;(5)移动各模块并输出移动后的新的模块位置文件。
文档编号G06F17/50GK102323960SQ201110098340
公开日2012年1月18日 申请日期2011年4月19日 优先权日2011年4月19日
发明者刘大为, 周强, 蔡懿慈, 闫海霞 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1