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

上传人:Y0****01 文档编号:1036691 上传时间:2018-03-27 格式:PDF 页数:15 大小:675.90KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110098340.9

申请日:

2011.04.19

公开号:

CN102323960A

公开日:

2012.01.18

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 17/50申请公布日:20120118|||实质审查的生效IPC(主分类):G06F 17/50申请日:20110419|||公开

IPC分类号:

G06F17/50

主分类号:

G06F17/50

申请人:

清华大学

发明人:

周强; 刘大为; 蔡懿慈; 闫海霞

地址:

100084 北京市海淀区清华园1号

优先权:

专利代理机构:

北京中伟智信专利商标代理事务所 11325

代理人:

张岱

PDF下载: PDF下载
内容摘要

本发明公开一种考虑重叠度和线长的布局模块分布密度平滑方法,主要是为了解决现有密度平滑方法存在的问题而设计。本发明所述方法包括:(1)读取待布局区域信息,将待布局区域划分为至少两个具有相同尺寸的bin结构,离散大模块并分别计算出各bin内的模块密度;(2)基于各bin内的模块密度,分别计算出各bin左右和上下两侧所有模块的密度,依各侧的密度值确定各bin内模块的移动方向;(3)基于移动方向,计算各bin内模块面积溢出量,依面积溢出量确定各bin内模块的总体平均移动距离;(4)计算出各模块及其所属bin的连线网加权和,依据连线网加权和及各bin内模块的总体平均移动距离确定各模块的实际移动距离;(5)移动各模块并输出移动后的新的模块位置文件。

权利要求书

1: 一种考虑重叠度和线长的布局模块分布密度平滑方法, 其特征在于, 包括 : 步骤 (1)、 读取待布局区域信息, 将待布局区域划分为至少两个具有相同尺寸的 bin 结 构, 若待布局区域内存在跨越至少两个 bin 的模块, 则将该模块进行离散处理离散为多个 子模块, 并分别计算出各 bin 内的模块密度 ; 步骤 (2)、 基于上述步骤 (1) 中得出的各 bin 内的模块密度, 分别计算出各 bin 左右和 上下两侧所有模块的密度, 并依据各侧的密度值确定出各 bin 内模块的移动方向 ; 步骤 (3)、 基于步骤 (2) 得出的移动方向, 计算各 bin 内模块面积溢出量, 依据面积溢出 量确定各 bin 内模块的总体平均移动距离 ; 步骤 (4)、 计算出各模块及其所属 bin 的连线网加权和, 依据连线网加权和及步骤 (3) 中得出的各 bin 内模块的总体平均移动距离确定各模块的实际移动距离 ; 步骤 (5)、 依据步骤 (2) 和 (4) 得出的各 bin 内模块的移动方向以及各模块的实际移动 距离, 移动各模块并输出移动后的新的模块位置文件。
2: 根据权利要求 1 所述考虑重叠度和线长的布局模块分布密度平滑方法, 其特征在 于, 步骤 (1) 具体实现如下 : 1.1、 读取待布局区域信息, 建立布局网链表 ; 1.2、 将待布局区域划分为 m×n 维相同尺寸的 bin 结构, 若待布局区域内存在跨越至少 两个 bin 的模块, 则将该模块以跨越的 bin 边界为分割线离散为多个子模块, 其中, m和n均 为大于等于 1 的自然数 ; 1.3、 创建用于存储各 bin 内模块的密度的二维数组 grid[m][n] ; 1.4、 遍历布局网链表中所有模块节点, 依据各模块的位置和宽高信息查找出二维数组 grid[m][n] 中该模块所属的 bin 数组元素并更新其内的模块信息, 若该模块被离散为多个 子模块则需依据各子模块的位置和宽高信息查找出二维数组 grid[m][n] 中各模块所属的 bin 数组元素并更新其内的子模块信息 ; 1.5、 基于各 bin 数组元素中的模块信息或还包括子模块信息, 计算出各 bin 内的模块 密度。
3: 根据权利要求 1 或 2 所述考虑重叠度和线长的布局模块分布密度平滑方法, 其特征 在于, 其中, 各 bin 内的模块密度计算过程如下 : 首先, 求解出 bini, 计算公式如下 : j 内的所有模块面积和, 其中, i = 1、 2、 ...、 m, j = 1、 2、 ...、 n, Ai, Ak 表示模块 k 的面积 j 表示 bini, j 的面积, 或子模块的面积, Ψ 表示各 bin 内所有布局模块集合 ; 然后, 求解出 bini, 计算公式如下 : j 内的模块密度, Di = Ui/Ai, j。
4: 根据权利要求 1 或 2 所述考虑重叠度和线长的布局模块分布密度平滑方法, 其特征 在于, 所述待布局区域信息包括 : 待布局区域内各模块的位置信息、 属性、 各模块的引线端 信息、 网表、 及布局区域信息。
5: 根据权利要求 1 或 2 所述考虑重叠度和线长的布局模块分布密度平滑方法, 其特征 在于, 所述步骤 (2) 具体实现如下 : 2 2.1、 遍历数组 grid[m][n] 中的每一 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][n] 中该模块 所属的 bin 数组元素并更新其内模块的连线网加权和 ; 4.3、 依据模块的移动方向和其所属 bin 的连线网加权和计算出该模块的实际移动距 离, 若存在跨越至少两个 bin 的模块, 则根据面积的比率计算其实际移动距离。

说明书


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

    技术领域 本发明涉及超大规模集成电路物理设计技术领域, 尤其涉及一种考虑重叠度和线 长的布局模块分布密度平滑方法。
     背景技术 布局过程一般开始于模块重叠度较高的初始布局, 在优化线长、 拥挤度等目标的 同时, 将模块均匀地分布到布局区。近年来, 力指向的解析式布局算法以其模型简单, 运行 速度快, 布局结果质量高等特点成为研究的热点。力指向布局算法一般先通过模块分布密 度平滑方法得到相对平坦的模块分布, 接着在此分布之上运行解析优化算法得到一个新的 布局, 以上过程迭代执行直到模块重叠度满足预定的目标。不同的密度平滑方法会造成不 同的模块分布, 从而导致不同的优化结果。因此密度平滑方法对布局优化质量有很大的影 响。
     力指向布局算法典型的代表主要有 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 内模块的移动方向 ;
     步骤 (3)、 基于步骤 (2) 得出的移动方向, 计算各 bin 内模块面积溢出量, 依据面积 溢出量确定各 bin 内模块的总体平均移动距离 ;
     步骤 (4)、 计算出各模块及其所属 bin 的连线网加权和, 依据连线网加权和及步骤 (3) 中得出的各 bin 内模块的总体平均移动距离确定各模块的实际移动距离 ;
     步骤 (5)、 依据步骤 (2) 和 (4) 得出的各 bin 内模块的移动方向以及各模块的实际 移动距离, 移动各模块并输出移动后的新的模块位置文件。
     进一步地, 步骤 (1) 具体实现如下 :
     1.1、 读取待布局区域信息, 建立布局网链表 ;
     1.2、 将待布局区域划分为 m×n 维相同尺寸的 bin 结构, 若待布局区域内存在跨越 至少两个 bin 的模块, 则将该模块以跨越的 bin 边界为分割线离散为多个子模块, 其中, m和 n 均为大于等于 1 的自然数 ;
     1.3、 创建用于存储各 bin 内模块的密度的二维数组 grid[m][n] ;
     1.4、 遍历布局网链表中所有模块节点, 依据各模块的位置和宽高信息查找出二维 数组 grid[m][n] 中该模块所属的 bin 数组元素并更新其内的模块信息, 若该模块被离散为 多个子模块则需依据各子模块的位置和宽高信息查找出二维数组 grid[m][n] 中各模块所 属的 bin 数组元素并更新其内的子模块信息 ;
     1.5、 基于各 bin 数组元素中的模块信息或还包括子模块信息, 计算出各 bin 内的 模块密度。
     其中, 各 bin 内的模块密度计算过程如下 :首先, 求解出 bini, 计算公式如下 : j 内的所有模块面积和,其中, i = 1、 2、 ...、 m, j = 1、 2、 ...、 n, Ai, Ak 表示模块 k 的 j 表示 bini, j 的面积, 面积或子模块的面积, Ψ 表示各 bin 内所有布局模块集合 ;
     然后, 求解出 bini, 计算公式如下 : j 内的模块密度,
     Di = Ui/Ai, j。
     所述待布局区域信息包括 : 待布局区域内各模块的位置信息、 属性、 各模块的引线 端信息、 网表、 及布局区域信息。
     进一步地, 所述步骤 (2) 具体实现如下 :
     2.1、 遍历数组 grid[m][n] 中的每一 bin 数组元素, 分别计算各 bin 所在列两侧的 所有模块的平均分布密度, 以及各 bin 所在行两侧的所有模块的平均分布密度 ;
     2.2、 分别将步骤 2.1 中得出的左右两侧和上下两侧的所有模块的平均分布密度 进行加权求和, 并将其存储到对应的 bin 数组元素中 ;
     2.3、 依据 bin 左右两侧和上下两侧的密度信息及移动规则, 确定 bin 内模块的移 动方向。
     其中, 所述的移动规则为 : bin 内模块向密度低的一侧移动。
     进一步地, 所述步骤 (3) 具体实现如下 :
     3.1、 判断在移动方向一侧的 bin 密度是否大于或等于欲移动 bin 的密度, 是, 则欲 移动 bin 内的模块不移动 ; 否则, 欲移动 bin 内的模块移动至移动方向一侧的 bin, 并继续 下一步骤 ;
     3.2、 令移动方向一侧的 bin 和欲移动 bin 内的模块密度相等, 确定出欲移动 bin 内的模块面积溢出量, 再除以 bin 的宽度或高度即得出 bin 内模块的总体平均移动距离。
     进一步地, 所述步骤 (4) 具体实现如下 :
     4.1、 遍历所述布局网链表中的所有边, 依据边在 X 和 Y 轴的投影计算出模块节点 的连线网加权和 ;
     4.2、 遍历布局网链表中的所有模块节点, 分别查找出二维数组 grid[m][n] 中该 模块所属的 bin 数组元素并更新其内模块的连线网加权和 ;
     4.3、 依据模块的移动方向和其所属 bin 的连线网加权和计算出该模块的实际移 动距离, 若存在跨越至少两个 bin 的模块, 则根据面积的比率计算其实际移动距离。
     较之已有的方法, 本发明具有以下几点有益地效果 :
     (1) 本发明所述方法既克服了模块主动移动算法中局部与全局移动之间矛盾, 又 克服了力场推动算法中模块移动力难以控制的缺点, 降低了算法的难度, 提高了布局效率。
     (2) 本发明提出了重叠度和线长同时考虑的模块移动方法, 使模块向着优化目标 方向移动。
     (3) 本发明通过 bin 的边界对宏模块或大的标准模块进行离散处理, 然后由各离 散模块移动的矢量和求得实际的移动距离, 有效的解决了现有用模块几何中心来代表宏模 块或大的标准模块来计算移动距离存在的较大误差。
     附图说明图 1 为布局模块局部和全局的移动方向比较示意图 ;
     图 2 为本发明所述考虑重叠度和线长的布局模块分布密度平滑方法流程图 ;
     图 3 是本发明跨越多个 bin 的模块的实施例示意图 ;
     图 4 为本发明确定模块 x 轴方向的移动方向示意图 ;
     图 5 为本发明确定模块 y 轴方向的移动方向示意图 ;
     图 6a、 6b 和 6c 分别为 bin 内模块移动关系的三种示意图 ;
     图 7 为采用本发明所述考虑重叠度和线长的布局模块分布密度平滑方法对待布 局区域内的模块进行布局的流程图。 具体实施方式
     下面结合说明书附图对本发明所述方法做进一步的描述。
     如图 2 所示, 本发明所述考虑重叠度和线长的布局模块分布密度平滑方法流程 图, 具体描述如下 :
     步骤 (1)、 读取待布局区域信息, 将待布局区域划分为至少两个具有相同尺寸的 bin 结构, 若待布局区域内存在跨越至少两个 bin 的模块, 则将该模块进行离散处理离散为 多个子模块, 并分别计算出各 bin 内的模块密度 ; 具体实现如下 :
     1.1、 读取待布局区域信息, 建立布局网链表 ;
     1.2、 将待布局区域划分为 m×n 维相同尺寸的 bin 结构, 若待布局区域内存在跨越 至少两个 bin 的模块, 则将该模块以跨越的 bin 边界为分割线离散为多个子模块, 其中, m和 n 均为大于等于 1 的自然数 ;
     1.3、 创建用于存储各 bin 内模块的密度的二维数组 grid[m][n] ;
     1.4、 遍历布局网链表中所有模块节点, 依据各模块的位置和宽高信息查找出二维 数组 grid[m][n] 中该模块所属的 bin 数组元素并更新其内的模块信息, 若该模块被离散为 多个子模块则需依据各子模块的位置和宽高信息查找出二维数组 grid[m][n] 中各模块所 属的 bin 数组元素并更新其内的子模块信息 ;
     1.5、 基于各 bin 数组元素中的模块信息或还包括子模块信息, 计算出各 bin 内的 模块密度。
     其中, 本步骤 (1) 中所述待布局区域信息包括 : 待布局区域内各模块的位置信息、 属性、 各模块的引线端信息、 网表、 及布局区域信息。
     于一具体实施例中, 如图 4 所示, 将布局区域划分为多个具有相同尺寸的 bin, 每 个 bin 能够容纳大约 3 ~ 4 个平均尺寸模块。对于宽 ( 或高 ) 小于平均宽 ( 或高 ) 的模块, 设其宽 ( 或高 ) 为平均值。
     如图 3 所示布局过程中会有许多大的模块 ( 尤其是宏模块 ) 跨越多个 bin, 仅仅把 它们作为点来处理会造成分布模型过于粗糙, 本发明所述方法以大模块所跨越的 bin 边界 为分割线, 将其离散为多个模块。
     设 m 和 n 分别表示行和列的 bin 的数量, Ai, Ak 表示模块 k 的 j 表示 bini, j 的面积,
     面积, Ψ 表示 bin 内布局模块集合, 则 bini, j 内的模块面积和为 :7bini, j的密度为 : Di = Ui/Ai, 最后, 将得出的密度值分别存储到对应的 bini, j ; j 数组元素所在的存102323960 A CN 102323970说明书5/7 页储区域中。
     步骤 (2)、 基于上述步骤 (1) 中得出的各 bin 内的模块密度, 分别计算出各 bin 左 右和上下两侧所有模块的密度, 并依据各侧的密度值确定出各 bin 内模块的移动方向。具 体实现如下 :
     2.1、 遍历数组 grid[m][n] 中的每一 bin 数组元素, 分别计算各 bin 所在列两侧的 所有模块的平均分布密度, 以及各 bin 所在行两侧的所有模块的平均分布密度 ;
     2.2、 分别将步骤 2.1 中得出的左右两侧和上下两侧的所有模块的平均分布密度 进行加权求和, 并将其存储到对应的 bin 数组元素中 ;
     2.3、 依据 bin 左右两侧和上下两侧的密度信息及移动规则, 确定 bin 内模块的移 动方向。
     步骤 2.3 中所述的移动规则为 : bin 内模块向密度低的一侧移动。
     于一具体实施例中, 本发明所述方法不同于 mFAR, 首先计算出 bin 所在列两侧的 所有模块平均分布密度, 而不仅仅是按一行计算。 如图 4 所示, 设 Dli 和 Dri 分别表示 bin(i, j) 所在第 j 列的左右两侧 ( 如图 4 中斜纹部分所示 )。
     首先, 分别计算出 Dli 和 Dri 两部分中 ( 不包括第 i 行 ) 所有模块平均分布密度, 即:
     然后, 分别计算出 Dli 和 Dri 两部分中包括 i 行在内的所有模块分布的加权平均密度为 :
     其中, 参数 γ 用来调节 bin 所在 i 行上下两侧模块分布在 Dli 和 Dri 中所占的比 率, 一般取值 0.4。这里假设 x 坐标轴正方向为模块移动的正方向, 如果 Dli < Dri 则 bin(i, j) 在 x 轴方向的移动方向为正, 否则为负。由于在布局中 x 和 y 方向是独立的, 因此如图 5 所示, bin(i, j) 所在第 i 行上下 两侧中所有模块分布的加权平均密度的求解同上述步骤。同理, y 坐标轴正方向为模块移 动的正方向, 如果 Duj < Ddj 则 bin(i, j) 在 y 轴方向的移动方向为正, 否则为负。
     基于上述的计算, 有利于从全局密度分布着眼来减少重叠度, 也许从局部的密度 分布出发向相反的方向移动模块也会减少重叠度, 但从全局分析这样会增加重叠, 因为 |Dli-Dri| 的绝对值增加了。
     步骤 (3)、 基于步骤 (2) 得出的移动方向, 计算各 bin 内模块面积溢出量, 依据面积 溢出量确定各 bin 内模块的总体平均移动距离。具体实现如下 :
     3.1、 判断在移动方向一侧的 bin 密度是否大于或等于欲移动 bin 的密度, 是, 则欲
     移动 bin 内的模块不移动 ; 否则, 欲移动 bin 内的模块移动至移动方向一侧的 bin, 并继续 下一步骤 ;
     3.2、 令移动方向一侧的 bin 和欲移动 bin 内的模块密度相等, 确定出欲移动 bin 内的模块面积溢出量, 再除以 bin 的宽度或高度即得出 bin 内模块的总体平均移动距离。
     于一具体实施例中, 图 6a、 6b 和 6c 所示, 显示了 bini 即斜纹部分与其右侧邻居密 度的三种关系。如图 6c 所示 Di > Di+1, 假定 bini+1 内的模块保持静止仅 bini 内的模块允许 移动, 那么 bini 的模块总体移动距离为 :
     其中, 参数 w 表示 bin 的宽度, α 是一个移动速度控制参数。 当移动方向向右且 Di > Di-1, 则移动距离为 :其中, 上述计算公式中解得的 Fi 并非 bini 内的所有模块实际的移动距离, 它只是 一个粗略的平均值。
     如图 6a 和图 6b 所示 Di ≤ Di+1, 此时 bini 内的模块被设为静止, 因为它们的移动只 能加剧局部的重叠。这种移动规则可以阻止相邻的 bin 之间的模块互相朝着对方移动。先 全局优化方向, 再局部地优化重叠度, 这样使得局部的密度平滑与全局的优化目标相一致。
     为了尽量减少对线长的破坏, 模块的移动速度必须是相对平滑的, 尤其是在布局 的初期, bin 之间较大的密度差异会导致 |Fi| >> w, 某些模块大距离地移动会对线长产生 较大的破坏。因此除了用 α 来调节移动速度外, 还可以根据布局速度的需要限制模块的最 大移动距离。
     步骤 (4)、 计算出各模块及其所属 bin 的连线网加权和, 依据连线网加权和及步骤 (3) 中得出的各 bin 内模块的总体平均移动距离确定各模块的实际移动距离。具体实现如 下:
     4.1、 遍历所述布局网链表中的所有边, 依据边在 X 和 Y 轴的投影计算出模块节点 的连线网加权和 ;
     4.2、 遍历布局网链表中的所有模块节点, 分别查找出二维数组 grid[m][n] 中该 模块所属的 bin 数组元素并更新其内模块的连线网加权和 ;
     4.3、 依据模块的移动方向和其所属 bin 的连线网加权和计算出该模块的实际移 动距离, 若存在跨越至少两个 bin 的模块, 则根据面积的比率计算其实际移动距离。
     于一具体实施例中, 确定了模块的移动方向和总体移动距离后, 接着需要确定每 个模块具体的移动量。
     首先、 引入一个名为连接线网加权和 (CNW, Connecting Net Weight) 的参数。定 义: 设 Ω 表示与模块 ck 连接的 pin 集合, wp 表示 clique 线网模型下两端线网的权重 (wp = W/(d-1), W 表示 d 端线网的权重 ), ck 左右两侧的 CNW 分别由下式给出 :
     然后, 确定 bin 内模块的连线网加权和 (CNW) ;如图 3 所示, ΔXpl 和 ΔXpr 分别是两端线网在 x 轴上向左和向右的投影。bini 左右两侧的 CNW 由下式给出 : 式中, 跨多 bin 模块的 CNW 已经根据模块的面积比率进行了分割。布局迭代过程 中, 每次模块的移动后一般都会增加总体线长, 对下一次优化结果产生影响。很显然 CNW 跟 线长有密切的关系。
     最后, 依据模块的移动方向和其所属 bin 的连线网加权和计算出该模块的实际移 动距离。如果模块的移动方向为正方向, 那么用下式计算模块的移动矢量 :
     Δfk = Fi·Ri/(Ri+lk-rk)。
     如果移动方向为负方向, 则有 : Δfk = Fi·Li/(Li+rk-lk)。
     另外, 需引入一个参数 ρ, 其目的是用来限制模块最大移动距离, 如果 Δfk > ρ 则令 Δfk = ρ, ρ 的值由布局的速度需求决定。
     对于跨多 bin 的模块用下式求最终的移动距离 :
     其中, 式中 B 表示 bin 集合。
     步骤 (5)、 依据步骤 (2) 和 (4) 得出的各 bin 内模块的移动方向以及各模块的实际 移动距离, 移动各模块并输出移动后的新的模块位置文件。
     如图 7 所示, 采用本发明所述考虑重叠度和线长的布局模块分布密度平滑方法对 待布局区域内的模块进行布局的流程图。具体描述如下 :
     1、 读取初始布局或前一布局迭代过程的结果 ;
     2、 离散跨越多个 bin 的大模块, 更新各 bin 的密度 ;
     3、 计算 bin 两侧的加权平均密度 ;
     4、 确定 bin 内模块的移动方向 ;
     5、 计算 bin 内模块的总体移动距离 ;
     6、 计算模块和 bin 连接线网加权和 ;
     7、 根据连线网加权和计算模块的移动矢量, 若模块被离散, 则按面积比率求离散 模块的矢量和 ;
     8、 移动各模块并输出移动后的新的模块位置文件, 然后在此分布之上运行解析优 化算法得到一个新的布局 ;
     9、 判断模块重叠度是否满足预定的目标, 是, 结束迭代过程 ; 否, 返回 1。
     本文各实施例中仅对模块的 X 轴方向的密度平滑方法作了详细的描述, Y 轴方向 因与 X 轴方向的密度平滑方法一致, 因此没在文中进行详细的描述。模块任何方向上的密 度平滑均可分解为 X 轴和 Y 轴方向, 因此各模块的移动均需要同时进行 X 和 Y 方向的密度 平滑。
     以上, 仅为本发明的较佳实施例, 但本发明的保护范围并不局限于此, 任何熟悉本 技术领域的技术人员在本发明揭露的技术范围内, 可轻易想到的变化或替换, 都应涵盖在 本发明的保护范围之内。 因此, 本发明的保护范围应该以权利要求所界定的保护范围为准。
    

考虑重叠度和线长的布局模块分布密度平滑方法.pdf_第1页
第1页 / 共15页
考虑重叠度和线长的布局模块分布密度平滑方法.pdf_第2页
第2页 / 共15页
考虑重叠度和线长的布局模块分布密度平滑方法.pdf_第3页
第3页 / 共15页
点击查看更多>>
资源描述

《考虑重叠度和线长的布局模块分布密度平滑方法.pdf》由会员分享,可在线阅读,更多相关《考虑重叠度和线长的布局模块分布密度平滑方法.pdf(15页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102323960A43申请公布日20120118CN102323960ACN102323960A21申请号201110098340922申请日20110419G06F17/5020060171申请人清华大学地址100084北京市海淀区清华园1号72发明人周强刘大为蔡懿慈闫海霞74专利代理机构北京中伟智信专利商标代理事务所11325代理人张岱54发明名称考虑重叠度和线长的布局模块分布密度平滑方法57摘要本发明公开一种考虑重叠度和线长的布局模块分布密度平滑方法,主要是为了解决现有密度平滑方法存在的问题而设计。本发明所述方法包括1读取待布局区域信息,将待布局区域划分为至少两个具有。

2、相同尺寸的BIN结构,离散大模块并分别计算出各BIN内的模块密度;2基于各BIN内的模块密度,分别计算出各BIN左右和上下两侧所有模块的密度,依各侧的密度值确定各BIN内模块的移动方向;3基于移动方向,计算各BIN内模块面积溢出量,依面积溢出量确定各BIN内模块的总体平均移动距离;4计算出各模块及其所属BIN的连线网加权和,依据连线网加权和及各BIN内模块的总体平均移动距离确定各模块的实际移动距离;5移动各模块并输出移动后的新的模块位置文件。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书7页附图5页CN102323970A1/2页21一种考虑重叠度和线长的布。

3、局模块分布密度平滑方法,其特征在于,包括步骤1、读取待布局区域信息,将待布局区域划分为至少两个具有相同尺寸的BIN结构,若待布局区域内存在跨越至少两个BIN的模块,则将该模块进行离散处理离散为多个子模块,并分别计算出各BIN内的模块密度;步骤2、基于上述步骤1中得出的各BIN内的模块密度,分别计算出各BIN左右和上下两侧所有模块的密度,并依据各侧的密度值确定出各BIN内模块的移动方向;步骤3、基于步骤2得出的移动方向,计算各BIN内模块面积溢出量,依据面积溢出量确定各BIN内模块的总体平均移动距离;步骤4、计算出各模块及其所属BIN的连线网加权和,依据连线网加权和及步骤3中得出的各BIN内模块。

4、的总体平均移动距离确定各模块的实际移动距离;步骤5、依据步骤2和4得出的各BIN内模块的移动方向以及各模块的实际移动距离,移动各模块并输出移动后的新的模块位置文件。2根据权利要求1所述考虑重叠度和线长的布局模块分布密度平滑方法,其特征在于,步骤1具体实现如下11、读取待布局区域信息,建立布局网链表;12、将待布局区域划分为MN维相同尺寸的BIN结构,若待布局区域内存在跨越至少两个BIN的模块,则将该模块以跨越的BIN边界为分割线离散为多个子模块,其中,M和N均为大于等于1的自然数;13、创建用于存储各BIN内模块的密度的二维数组GRIDMN;14、遍历布局网链表中所有模块节点,依据各模块的位置。

5、和宽高信息查找出二维数组GRIDMN中该模块所属的BIN数组元素并更新其内的模块信息,若该模块被离散为多个子模块则需依据各子模块的位置和宽高信息查找出二维数组GRIDMN中各模块所属的BIN数组元素并更新其内的子模块信息;15、基于各BIN数组元素中的模块信息或还包括子模块信息,计算出各BIN内的模块密度。3根据权利要求1或2所述考虑重叠度和线长的布局模块分布密度平滑方法,其特征在于,其中,各BIN内的模块密度计算过程如下首先,求解出BINI,J内的所有模块面积和,计算公式如下其中,I1、2、M,J1、2、N,AI,J表示BINI,J的面积,AK表示模块K的面积或子模块的面积,表示各BIN内所。

6、有布局模块集合;然后,求解出BINI,J内的模块密度,计算公式如下DIUI/AI,J。4根据权利要求1或2所述考虑重叠度和线长的布局模块分布密度平滑方法,其特征在于,所述待布局区域信息包括待布局区域内各模块的位置信息、属性、各模块的引线端信息、网表、及布局区域信息。5根据权利要求1或2所述考虑重叠度和线长的布局模块分布密度平滑方法,其特征在于,所述步骤2具体实现如下权利要求书CN102323960ACN102323970A2/2页321、遍历数组GRIDMN中的每一BIN数组元素,分别计算各BIN所在列两侧的所有模块的平均分布密度,以及各BIN所在行两侧的所有模块的平均分布密度;22、分别将步。

7、骤21中得出的左右两侧和上下两侧的所有模块的平均分布密度进行加权求和,并将其存储到对应的BIN数组元素中;23、依据BIN左右两侧和上下两侧的密度信息及移动规则,确定BIN内模块的移动方向。6根据权利要求5所述考虑重叠度和线长的布局模块分布密度平滑方法,其特征在于,所述的移动规则为BIN内模块向密度低的一侧移动。7根据权利要求1所述考虑重叠度和线长的布局模块分布密度平滑方法,其特征在于,所述步骤3具体实现如下31、判断在移动方向一侧的BIN密度是否大于或等于欲移动BIN的密度,是,则欲移动BIN内的模块不移动;否则,欲移动BIN内的模块移动至移动方向一侧的BIN,并继续下一步骤;32、令移动方。

8、向一侧的BIN和欲移动BIN内的模块密度相等,确定出欲移动BIN内的模块面积溢出量,再除以BIN的宽度或高度即得出BIN内模块的总体平均移动距离。8根据权利要求1或2所述考虑重叠度和线长的布局模块分布密度平滑方法,其特征在于,所述步骤4具体实现如下41、遍历所述布局网链表中的所有边,依据边在X和Y轴的投影计算出模块节点的连线网加权和;42、遍历布局网链表中的所有模块节点,分别查找出二维数组GRIDMN中该模块所属的BIN数组元素并更新其内模块的连线网加权和;43、依据模块的移动方向和其所属BIN的连线网加权和计算出该模块的实际移动距离,若存在跨越至少两个BIN的模块,则根据面积的比率计算其实际。

9、移动距离。权利要求书CN102323960ACN102323970A1/7页4考虑重叠度和线长的布局模块分布密度平滑方法技术领域0001本发明涉及超大规模集成电路物理设计技术领域,尤其涉及一种考虑重叠度和线长的布局模块分布密度平滑方法。背景技术0002布局过程一般开始于模块重叠度较高的初始布局,在优化线长、拥挤度等目标的同时,将模块均匀地分布到布局区。近年来,力指向的解析式布局算法以其模型简单,运行速度快,布局结果质量高等特点成为研究的热点。力指向布局算法一般先通过模块分布密度平滑方法得到相对平坦的模块分布,接着在此分布之上运行解析优化算法得到一个新的布局,以上过程迭代执行直到模块重叠度满足预。

10、定的目标。不同的密度平滑方法会造成不同的模块分布,从而导致不同的优化结果。因此密度平滑方法对布局优化质量有很大的影响。0003力指向布局算法典型的代表主要有FASTPLACE、MFAR和KRAFTWERK等,按照使用的密度平滑方法不同,可以将它们划分为主动移动方法和力场推动方法两类。0004主动移动密度平滑方法0005在FASTPLACE和MFAR中采用,它们根据当前BIN结构的密度差异计算虚拟的BIN结构,用来映射模块的移动方向和位置,使模块从高密度区向低密度区移动。这种主动移动密度平滑方法的缺陷在于当平滑分布密度时只考虑相邻的BIN,未考虑局部分布与全局分布的关系。在很多情况下,模块的局部。

11、移动方向与全局的优化方向是不一致的。如图1所示,按照扩散的方法如果只根据斜纹区域的密度分布计算,BIN4,4和BIN3,4内的模块应该向BIN5,3方向移动。但是,从全局的密度分布考虑,却应该朝着BIN3,3移动。假如BIN4,4和BIN3,4内的模块移到了BIN5,3,从全局的密度分布观察,BIN5,3已经是一个高密度区,在接下来的布局迭代中会重新把BIN5,3内的模块向低密度区BIN3,3移动。因此,这种移动方法不利于布局过程的收敛。0006MFAR中的密度平滑方法较之FASTPLACE做了改进,通过计算某一BIN边界两侧同一行列的模块平均分布密度之差来确定跨边界的模块移动“流量”,然后进。

12、一步得到对应于这个BIN边界的虚拟边界的位置,再通过与FASTPLACE类似的映射方法求得模块新的位置。这种方法更多的考虑了模块的全局分布,但局部分布对模块移动的影响未加考虑。由于模块密度分布在布局初期非常不均匀,这样会造成模块移动速度不平滑,相邻BIN的模块移动速度容易发生较大的突变,进而破坏模块的相对位置。0007力场推动密度平滑方法0008EISENMANN等提出了经典地使用“力”推动布局模块从高密度区向低密度区移动,力矢量是由模块的密度分布确定的。类似于电磁力场,模块所受到的引力或斥力可以防止模块重新退缩回前一迭代位置,促使布局过程收敛。在HEISENMANN,FMJOHANNES于1。

13、998年发表的GENERICGLOBALPLACEMENTANDFLOORPLANNINGC的理论基础上,KRAFTWERK布局算法在每次布局迭代中用泊松电势方程计算力矢量,把力分成保持力和移动力,完全用说明书CN102323960ACN102323970A2/7页5解析的方法完成整体布局过程。0009基于力场推动的方法是从模块的整体分布来确定力矢量,从理论角度看比较合理,但是实际的应用中很难对力进行控制,需要大量的参数进行校正,较之前面的主动移动方法需要更多的技巧。0010此外,上述密度平滑方法中标准模块一般被假定为具有面积属性的点来处理。由于很多面积大的标准模块会跨越两个以上的BIN,不论。

14、采用主动移动还是力场推动方法,用模块几何中心代表模块来计算移动距离显然存在较大的误差。由于现代大规模集成电路布局中通常会涉及很多可移动宏模块,如何移动这些大的模块对布局结果有很大的影响。发明内容0011针对上述问题,本发明提供一种由全局密度分布差异确定模块的移动方向,由局部密度分布梯度来确定模块移动距离的大小的考虑重叠度和线长的布局模块分布密度平滑方法。0012为达到上述目的,本发明所述考虑重叠度和线长的布局模块分布密度平滑方法,包括0013步骤1、读取待布局区域信息,将待布局区域划分为至少两个具有相同尺寸的BIN结构,若待布局区域内存在跨越至少两个BIN的模块,则将该模块进行离散处理离散为多。

15、个子模块,并分别计算出各BIN内的模块密度;0014步骤2、基于上述步骤1中得出的各BIN内的模块密度,分别计算出各BIN左右和上下两侧所有模块的密度,并依据各侧的密度值确定出各BIN内模块的移动方向;0015步骤3、基于步骤2得出的移动方向,计算各BIN内模块面积溢出量,依据面积溢出量确定各BIN内模块的总体平均移动距离;0016步骤4、计算出各模块及其所属BIN的连线网加权和,依据连线网加权和及步骤3中得出的各BIN内模块的总体平均移动距离确定各模块的实际移动距离;0017步骤5、依据步骤2和4得出的各BIN内模块的移动方向以及各模块的实际移动距离,移动各模块并输出移动后的新的模块位置文件。

16、。0018进一步地,步骤1具体实现如下001911、读取待布局区域信息,建立布局网链表;002012、将待布局区域划分为MN维相同尺寸的BIN结构,若待布局区域内存在跨越至少两个BIN的模块,则将该模块以跨越的BIN边界为分割线离散为多个子模块,其中,M和N均为大于等于1的自然数;002113、创建用于存储各BIN内模块的密度的二维数组GRIDMN;002214、遍历布局网链表中所有模块节点,依据各模块的位置和宽高信息查找出二维数组GRIDMN中该模块所属的BIN数组元素并更新其内的模块信息,若该模块被离散为多个子模块则需依据各子模块的位置和宽高信息查找出二维数组GRIDMN中各模块所属的BI。

17、N数组元素并更新其内的子模块信息;002315、基于各BIN数组元素中的模块信息或还包括子模块信息,计算出各BIN内的模块密度。0024其中,各BIN内的模块密度计算过程如下说明书CN102323960ACN102323970A3/7页60025首先,求解出BINI,J内的所有模块面积和,计算公式如下00260027其中,I1、2、M,J1、2、N,AI,J表示BINI,J的面积,AK表示模块K的面积或子模块的面积,表示各BIN内所有布局模块集合;0028然后,求解出BINI,J内的模块密度,计算公式如下0029DIUI/AI,J。0030所述待布局区域信息包括待布局区域内各模块的位置信息、属。

18、性、各模块的引线端信息、网表、及布局区域信息。0031进一步地,所述步骤2具体实现如下003221、遍历数组GRIDMN中的每一BIN数组元素,分别计算各BIN所在列两侧的所有模块的平均分布密度,以及各BIN所在行两侧的所有模块的平均分布密度;003322、分别将步骤21中得出的左右两侧和上下两侧的所有模块的平均分布密度进行加权求和,并将其存储到对应的BIN数组元素中;003423、依据BIN左右两侧和上下两侧的密度信息及移动规则,确定BIN内模块的移动方向。0035其中,所述的移动规则为BIN内模块向密度低的一侧移动。0036进一步地,所述步骤3具体实现如下003731、判断在移动方向一侧的。

19、BIN密度是否大于或等于欲移动BIN的密度,是,则欲移动BIN内的模块不移动;否则,欲移动BIN内的模块移动至移动方向一侧的BIN,并继续下一步骤;003832、令移动方向一侧的BIN和欲移动BIN内的模块密度相等,确定出欲移动BIN内的模块面积溢出量,再除以BIN的宽度或高度即得出BIN内模块的总体平均移动距离。0039进一步地,所述步骤4具体实现如下004041、遍历所述布局网链表中的所有边,依据边在X和Y轴的投影计算出模块节点的连线网加权和;004142、遍历布局网链表中的所有模块节点,分别查找出二维数组GRIDMN中该模块所属的BIN数组元素并更新其内模块的连线网加权和;004243、。

20、依据模块的移动方向和其所属BIN的连线网加权和计算出该模块的实际移动距离,若存在跨越至少两个BIN的模块,则根据面积的比率计算其实际移动距离。0043较之已有的方法,本发明具有以下几点有益地效果00441本发明所述方法既克服了模块主动移动算法中局部与全局移动之间矛盾,又克服了力场推动算法中模块移动力难以控制的缺点,降低了算法的难度,提高了布局效率。00452本发明提出了重叠度和线长同时考虑的模块移动方法,使模块向着优化目标方向移动。00463本发明通过BIN的边界对宏模块或大的标准模块进行离散处理,然后由各离散模块移动的矢量和求得实际的移动距离,有效的解决了现有用模块几何中心来代表宏模块或大的。

21、标准模块来计算移动距离存在的较大误差。附图说明说明书CN102323960ACN102323970A4/7页70047图1为布局模块局部和全局的移动方向比较示意图;0048图2为本发明所述考虑重叠度和线长的布局模块分布密度平滑方法流程图;0049图3是本发明跨越多个BIN的模块的实施例示意图;0050图4为本发明确定模块X轴方向的移动方向示意图;0051图5为本发明确定模块Y轴方向的移动方向示意图;0052图6A、6B和6C分别为BIN内模块移动关系的三种示意图;0053图7为采用本发明所述考虑重叠度和线长的布局模块分布密度平滑方法对待布局区域内的模块进行布局的流程图。具体实施方式0054下面。

22、结合说明书附图对本发明所述方法做进一步的描述。0055如图2所示,本发明所述考虑重叠度和线长的布局模块分布密度平滑方法流程图,具体描述如下0056步骤1、读取待布局区域信息,将待布局区域划分为至少两个具有相同尺寸的BIN结构,若待布局区域内存在跨越至少两个BIN的模块,则将该模块进行离散处理离散为多个子模块,并分别计算出各BIN内的模块密度;0057具体实现如下005811、读取待布局区域信息,建立布局网链表;005912、将待布局区域划分为MN维相同尺寸的BIN结构,若待布局区域内存在跨越至少两个BIN的模块,则将该模块以跨越的BIN边界为分割线离散为多个子模块,其中,M和N均为大于等于1的。

23、自然数;006013、创建用于存储各BIN内模块的密度的二维数组GRIDMN;006114、遍历布局网链表中所有模块节点,依据各模块的位置和宽高信息查找出二维数组GRIDMN中该模块所属的BIN数组元素并更新其内的模块信息,若该模块被离散为多个子模块则需依据各子模块的位置和宽高信息查找出二维数组GRIDMN中各模块所属的BIN数组元素并更新其内的子模块信息;006215、基于各BIN数组元素中的模块信息或还包括子模块信息,计算出各BIN内的模块密度。0063其中,本步骤1中所述待布局区域信息包括待布局区域内各模块的位置信息、属性、各模块的引线端信息、网表、及布局区域信息。0064于一具体实施例。

24、中,如图4所示,将布局区域划分为多个具有相同尺寸的BIN,每个BIN能够容纳大约34个平均尺寸模块。对于宽或高小于平均宽或高的模块,设其宽或高为平均值。0065如图3所示布局过程中会有许多大的模块尤其是宏模块跨越多个BIN,仅仅把它们作为点来处理会造成分布模型过于粗糙,本发明所述方法以大模块所跨越的BIN边界为分割线,将其离散为多个模块。0066设M和N分别表示行和列的BIN的数量,AI,J表示BINI,J的面积,AK表示模块K的面积,表示BIN内布局模块集合,则BINI,J内的模块面积和为BINI,J的密度为DIUI/AI,J;最后,将得出的密度值分别存储到对应的BINI,J数组元素所在的存。

25、说明书CN102323960ACN102323970A5/7页8储区域中。0067步骤2、基于上述步骤1中得出的各BIN内的模块密度,分别计算出各BIN左右和上下两侧所有模块的密度,并依据各侧的密度值确定出各BIN内模块的移动方向。具体实现如下006821、遍历数组GRIDMN中的每一BIN数组元素,分别计算各BIN所在列两侧的所有模块的平均分布密度,以及各BIN所在行两侧的所有模块的平均分布密度;006922、分别将步骤21中得出的左右两侧和上下两侧的所有模块的平均分布密度进行加权求和,并将其存储到对应的BIN数组元素中;007023、依据BIN左右两侧和上下两侧的密度信息及移动规则,确定B。

26、IN内模块的移动方向。0071步骤23中所述的移动规则为BIN内模块向密度低的一侧移动。0072于一具体实施例中,本发明所述方法不同于MFAR,首先计算出BIN所在列两侧的所有模块平均分布密度,而不仅仅是按一行计算。如图4所示,设DLI和DRI分别表示BINI,J所在第J列的左右两侧如图4中斜纹部分所示。0073首先,分别计算出DLI和DRI两部分中不包括第I行所有模块平均分布密度,即007400750076然后,分别计算出DLI和DRI两部分中包括I行在内的所有模块分布的加权平均密度为007700780079其中,参数用来调节BIN所在I行上下两侧模块分布在DLI和DRI中所占的比率,一般取。

27、值04。这里假设X坐标轴正方向为模块移动的正方向,如果DLIDRI则BINI,J在X轴方向的移动方向为正,否则为负。0080由于在布局中X和Y方向是独立的,因此如图5所示,BINI,J所在第I行上下两侧中所有模块分布的加权平均密度的求解同上述步骤。同理,Y坐标轴正方向为模块移动的正方向,如果DUJDDJ则BINI,J在Y轴方向的移动方向为正,否则为负。0081基于上述的计算,有利于从全局密度分布着眼来减少重叠度,也许从局部的密度分布出发向相反的方向移动模块也会减少重叠度,但从全局分析这样会增加重叠,因为|DLIDRI|的绝对值增加了。0082步骤3、基于步骤2得出的移动方向,计算各BIN内模块。

28、面积溢出量,依据面积溢出量确定各BIN内模块的总体平均移动距离。具体实现如下008331、判断在移动方向一侧的BIN密度是否大于或等于欲移动BIN的密度,是,则欲说明书CN102323960ACN102323970A6/7页9移动BIN内的模块不移动;否则,欲移动BIN内的模块移动至移动方向一侧的BIN,并继续下一步骤;008432、令移动方向一侧的BIN和欲移动BIN内的模块密度相等,确定出欲移动BIN内的模块面积溢出量,再除以BIN的宽度或高度即得出BIN内模块的总体平均移动距离。0085于一具体实施例中,图6A、6B和6C所示,显示了BINI即斜纹部分与其右侧邻居密度的三种关系。如图6C。

29、所示DIDI1,假定BINI1内的模块保持静止仅BINI内的模块允许移动,那么BINI的模块总体移动距离为00860087其中,参数W表示BIN的宽度,是一个移动速度控制参数。0088当移动方向向右且DIDI1,则移动距离为00890090其中,上述计算公式中解得的FI并非BINI内的所有模块实际的移动距离,它只是一个粗略的平均值。0091如图6A和图6B所示DIDI1,此时BINI内的模块被设为静止,因为它们的移动只能加剧局部的重叠。这种移动规则可以阻止相邻的BIN之间的模块互相朝着对方移动。先全局优化方向,再局部地优化重叠度,这样使得局部的密度平滑与全局的优化目标相一致。0092为了尽量减。

30、少对线长的破坏,模块的移动速度必须是相对平滑的,尤其是在布局的初期,BIN之间较大的密度差异会导致|FI|W,某些模块大距离地移动会对线长产生较大的破坏。因此除了用来调节移动速度外,还可以根据布局速度的需要限制模块的最大移动距离。0093步骤4、计算出各模块及其所属BIN的连线网加权和,依据连线网加权和及步骤3中得出的各BIN内模块的总体平均移动距离确定各模块的实际移动距离。具体实现如下009441、遍历所述布局网链表中的所有边,依据边在X和Y轴的投影计算出模块节点的连线网加权和;009542、遍历布局网链表中的所有模块节点,分别查找出二维数组GRIDMN中该模块所属的BIN数组元素并更新其内。

31、模块的连线网加权和;009643、依据模块的移动方向和其所属BIN的连线网加权和计算出该模块的实际移动距离,若存在跨越至少两个BIN的模块,则根据面积的比率计算其实际移动距离。0097于一具体实施例中,确定了模块的移动方向和总体移动距离后,接着需要确定每个模块具体的移动量。0098首先、引入一个名为连接线网加权和CNW,CONNECTINGNETWEIGHT的参数。定义设表示与模块CK连接的PIN集合,WP表示CLIQUE线网模型下两端线网的权重WPW/D1,W表示D端线网的权重,CK左右两侧的CNW分别由下式给出00990100然后,确定BIN内模块的连线网加权和CNW;说明书CN10232。

32、3960ACN102323970A7/7页100101如图3所示,XPL和XPR分别是两端线网在X轴上向左和向右的投影。BINI左右两侧的CNW由下式给出0102式中,跨多BIN模块的CNW已经根据模块的面积比率进行了分割。布局迭代过程中,每次模块的移动后一般都会增加总体线长,对下一次优化结果产生影响。很显然CNW跟线长有密切的关系。0103最后,依据模块的移动方向和其所属BIN的连线网加权和计算出该模块的实际移动距离。如果模块的移动方向为正方向,那么用下式计算模块的移动矢量0104FKFIRI/RILKRK。0105如果移动方向为负方向,则有FKFILI/LIRKLK。0106另外,需引入一。

33、个参数,其目的是用来限制模块最大移动距离,如果FK则令FK,的值由布局的速度需求决定。0107对于跨多BIN的模块用下式求最终的移动距离01080109其中,式中B表示BIN集合。0110步骤5、依据步骤2和4得出的各BIN内模块的移动方向以及各模块的实际移动距离,移动各模块并输出移动后的新的模块位置文件。0111如图7所示,采用本发明所述考虑重叠度和线长的布局模块分布密度平滑方法对待布局区域内的模块进行布局的流程图。具体描述如下01121、读取初始布局或前一布局迭代过程的结果;01132、离散跨越多个BIN的大模块,更新各BIN的密度;01143、计算BIN两侧的加权平均密度;01154、确。

34、定BIN内模块的移动方向;01165、计算BIN内模块的总体移动距离;01176、计算模块和BIN连接线网加权和;01187、根据连线网加权和计算模块的移动矢量,若模块被离散,则按面积比率求离散模块的矢量和;01198、移动各模块并输出移动后的新的模块位置文件,然后在此分布之上运行解析优化算法得到一个新的布局;01209、判断模块重叠度是否满足预定的目标,是,结束迭代过程;否,返回1。0121本文各实施例中仅对模块的X轴方向的密度平滑方法作了详细的描述,Y轴方向因与X轴方向的密度平滑方法一致,因此没在文中进行详细的描述。模块任何方向上的密度平滑均可分解为X轴和Y轴方向,因此各模块的移动均需要同。

35、时进行X和Y方向的密度平滑。0122以上,仅为本发明的较佳实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求所界定的保护范围为准。说明书CN102323960ACN102323970A1/5页11图1说明书附图CN102323960ACN102323970A2/5页12图2说明书附图CN102323960ACN102323970A3/5页13图3图4说明书附图CN102323960ACN102323970A4/5页14图5图6A图6B图6C说明书附图CN102323960ACN102323970A5/5页15图7说明书附图CN102323960A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1