[发明专利]考虑重叠度和线长的布局模块分布密度平滑方法无效
申请号: | 201110098340.9 | 申请日: | 2011-04-19 |
公开(公告)号: | CN102323960A | 公开(公告)日: | 2012-01-18 |
发明(设计)人: | 周强;刘大为;蔡懿慈;闫海霞 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F17/50 | 分类号: | G06F17/50 |
代理公司: | 北京中伟智信专利商标代理事务所 11325 | 代理人: | 张岱 |
地址: | 100084*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 考虑 重叠 布局 模块 分布 密度 平滑 方法 | ||
技术领域
本发明涉及超大规模集成电路物理设计技术领域,尤其涉及一种考虑重叠度和线长的布局模块分布密度平滑方法。
背景技术
布局过程一般开始于模块重叠度较高的初始布局,在优化线长、拥挤度等目标的同时,将模块均匀地分布到布局区。近年来,力指向的解析式布局算法以其模型简单,运行速度快,布局结果质量高等特点成为研究的热点。力指向布局算法一般先通过模块分布密度平滑方法得到相对平坦的模块分布,接着在此分布之上运行解析优化算法得到一个新的布局,以上过程迭代执行直到模块重叠度满足预定的目标。不同的密度平滑方法会造成不同的模块分布,从而导致不同的优化结果。因此密度平滑方法对布局优化质量有很大的影响。
力指向布局算法典型的代表主要有FastPlace、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内的模块密度;
步骤(2)、基于上述步骤(1)中得出的各bin内的模块密度,分别计算出各bin左右和上下两侧所有模块的密度,并依据各侧的密度值确定出各bin内模块的移动方向;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110098340.9/2.html,转载请声明来源钻瓜专利网。