一种基于层次化划分的布图规划方法

文档序号:24713207发布日期:2021-04-16 14:00阅读:184来源:国知局
一种基于层次化划分的布图规划方法

1.本发明属于集成电路电子自动化设计(vlsi eda)技术领域,尤其涉及一种基于层次化划分的布图规划方法。


背景技术:

2.集成电路电子自动化设计采用的是层次化结构,依次进行结构、功能、逻辑和电路和物理设计,最后一步的物理设计需要将将元件的电路表示转换为几何表示、将连接元件的线网转换成几何连线图形。布图规划(floorplanning)是物理设计的一个核心步骤,将元件抽象成几何模块互不嵌入的布图到芯片上,同时优化芯片面积、连线长度和能耗等。布图规划处于物理设计的早期阶段,一方面可以提供前期阶段的反馈数据,指导系统架构的调整,另外一方面在布图过程中可以考虑后续布线阶段的需求,在优化模块布局的同时对布线中的拥塞和时延目标进行初步优化,可以看到布图规划在保证模块合法放置的同时,在整个eda设计流程中起到了承上启下的作用是非常关键的一个步骤。
3.因为布图规划问题是一个np

hard问题,当问题规模达到百级以上时,精确算法不能在有效的时间求解,因此当前对该问题的求解主要是采用了启发式求解算法。当前研究方法整体上可以分为三类:基于模拟退火和遗传的元启发式方法、基于图分割的方法和基于力引导的方法。其中基于元启发式的方法存在求解速度慢的问题,当模块规模达到上百时,求解质量较差;当前基于图分割的方法只对问题进行了较少层次的分割,且分割中未考虑整体模块间的连接关系,未能最大程度发挥图分割算法的能力。当前表现最优的是基于力引导的方法。
4.针对以上技术问题,故需对其进行改进。


技术实现要素:

5.基于现有技术中存在的上述不足,本发明提供了一种基于层次化划分的布图规划方法qinfer。
6.为了达到以上目的,本发明所采用的技术方案是:一种基于层次化划分的布图规划方法,其特征在于:包括以下几个步骤:
7.步骤1:模块粗略排布;对原问题进行层次化划分,每次划分先使用图分割方法将模块分为两部分使得两部分间的模块连接尽量的少,再平行于电路板的短边,按照两部分模块面积比例分割电路板;迭代划分直至每个子问题均只包含一个模块,将每个模块放置到它对应的子电路板上,生成一个所有模块均匀放置在电路板上,但模块可能存在重叠或超出电路板的初始化布图;
8.步骤2:布图合法化调整;基于模块间的重叠面积大小和模块超出电路板的程度构造势能函数,采用l

bfgs

b优化势能函数,当势能函数可以减小到零时,合法化调整成功,跳转到步骤4;合法化识别时,若前期还未调用过步骤3,则跳转到步骤3,否则跳转到步骤4;
9.步骤3:模块精细排布;结合步骤1生成的初始布图,先将问题中尺寸超大的模块固
定在电路板上,之后再采用问题层次划分的方式将剩余的非超大模块均匀排布到电路板上剩余的空间中,从而生成模块排布更加均匀的初始化布图;跳转到步骤2;
10.步骤4:布图输出;输出计算所得布图。
11.作为本发明的一种优选方案,所述步骤2中,布图合法化调整,具体包括以下几个步骤:
12.步骤2.1;查找存在重叠关系的模块;本发明采用的quadtree的方式查找所有的重叠;quadtree的构造中,每个顶点对应一个子电路板和该子电路板重叠的所有模块,初始的根节点对应于初始的电路板和所有模块,之后进行迭代地四划分;对于每个模块,遍历查找所有包含该模块的叶子节点,并与对应叶子节点内的所有模块进行重叠性检查,找出所有存在重叠的模块;
13.步骤2.2;计算布图总势能;本发明中提出水平/竖直嵌入深度和水平/竖直超出幅度的概念,并基于两个概念提出了一种评估模块重叠和模块超出电路板程度的势能函数;
14.步骤2.3;使用l

bfgs

b算法对势能函数进行梯度下降优化。
15.作为本发明的一种优选方案,所述步骤3中,模块精细排布,具体包括以下几个步骤:
16.步骤3.1;固定超大模块;基于步骤1划分生成的叶子问题,每个超大模块会分配了一个子电路板,将该子电路板所对应的区域作为它的固定区域;根据模块面积和对应固定区域边的特性,选取要固定的模块,之后再根据边的特性选取要固定模块对应的固定区域的一个角,将选取的超大模块放置到对应角;
17.步骤3.2;非超大模块排布;本发明的非超大模块排布采用问题迭代二分策略,直至划分生成的每个子问题中只包含一个模块,将模块放置到分配的对应区域内,生成初始布图;在问题划分过程中,如果当前问题中电路板因为超大模块的固定不是规则的矩形,则在问题划分时,不再是固定的先分割模块,再分割电路板的顺序;而是根据电路板上空间的轮廓,考虑到划分生成的两个子问题的电路板上尽量不要有狭窄的空间不易于模块的放置,动态判定模块与电路板分割的先后顺序。
18.作为本发明的一种优选方案,所述步骤3.2中,非超大模块排布,具体包括以下几个步骤:
19.步骤3.2.1将非超大模块和固定超大模块后电路板组成的问题,放入到问题队列中;
20.步骤3.2.2从队列中取出一个问题,根据候选切割线、切割系数、切割线距离和切割距离,确定问题中电路板的切割线;
21.步骤3.2.3:使用步骤3.2.2选取的切割线将电路板分割成两部分;
22.步骤3.2.4:将模块分割成固定面积比例的两份。通过hmeits分割工具中ubfactor参数的自动设置和虚拟模块的设置,使用hmetis进行模块固定面积比例分配;
23.步骤3.2.5:先分割模块再分割电路板的方式将问题分割成子问题;
24.步骤3.2.6:针对步骤3.2.2中生成的所有只含有一个模块的子问题,将其中的模块放置到对应的子电路板上,生成初始化布图。
25.本发明的有益效果是:
26.本发明所设计的基于层次化划分的布图规划方法框架可以最大程度发挥图分割
的能力,同时在层次化分割过程中每次划分都充分考虑了整体模块的连接关系,从而最大优化连线长度。本发明提出的模块精细排布和布图合法化调整可以保证以上层次化划分框架下,可以得到合法的布图;综上,本发明的布图规划方法可以在保证布图合法化成功率的基础上,在有效的计算时间内给出网络连线长度更小的布图结果。
附图说明
27.图1是本发明实施例中qinfer方法示例;
28.图2是本发明实施例中超图构造示例;
29.图3是本发明实施例中quad

tree构造示例;
30.图4是本发明实施例中模块水平嵌入深度和竖直嵌入深度示例;
31.图5是本发明实施例中模块水平超出幅度和竖直超出幅度示例;
32.图6是本发明实施例中超大模块固定区域示例;
33.图7是本发明实施例中电路板切割线选取示例;
34.图8是本发明实施例中qinfer方法在ibm

hb算例上的试验结果示例。
具体实施方式
35.下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
36.在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
37.本发明解决的是电路板形状固定,待放置的模块同时包含软模块和硬模块的布图规划问题,问题中还已知一组网络,每个网络需连接若干模块。目标是确定所有软模块的形状和硬模块的放置方向(水平/竖直),把所有模块无重叠地放置到电路板上,同时最小化所有网络的连线长度。本发明提出了一种基于图分割的层次划分方法(qinfer),它将原问题进行最大层次的划分以充分发挥图分割的作用,同时在层次化划分过程中每次划分都充分考虑了所有模块间的连接关系,因此本发明可以解决当前基于图分割的方法存在的问题。本发明的创新可以总结为以下几点:
38.1.设计了一种基于层次化划分的布图规划方法框架,该框架中可以最大程度发挥图分割的能力,同时在层次化分割过程中每次分割都充分考虑了所有模块间的连接关系,从而最大优化连线长度。
39.2.设计了一种模块精细排布方法,在存在超大模块的场景下,该方法可采用图分割技术生成一个模块均匀放置在电路板上的布图。
40.3.设计了一种布图合法化调整方法,该方法可以自动调整所有模块的位置和软模块的形状,达成布图合法化调整的目标。
41.试验结果表明,相对于当前的基于图分割的方法和基于力引导的方法,本发明的
方法可以求解得到连线长度更短的布图。因此,本发明可以用于eda企业的产品设计中,提高所设计集成电路的性能。
42.具体实施例如下:一种基于层次化划分的布图规划方法qinfer,包括以下几个步骤:
43.步骤1:模块粗略排布;对原问题进行层次化划分,每次划分先使用图分割方法将模块分为两部分使得两部分间的模块连接尽量的少,再平行于电路板的短边,按照两部分模块面积比例分割电路板。迭代划分直至每个子问题均只包含一个模块,将每个模块放置到它对应的子电路板上,生成一个所有模块均匀放置在电路板上,但模块可能存在重叠或超出电路板的初始化布图。跳转到步骤2。
44.步骤2:布图合法化调整;基于模块间的重叠面积大小和模块超出电路板的程度构造势能函数,采用l

bfgs

b优化势能函数,当势能函数可以减小到零时,合法化调整成功,跳转到步骤4。合法化识别时,若前期还未调用过步骤3,则跳转到步骤3,否则跳转到步骤4。
45.步骤3:模块精细排布;结合步骤1生成的初始布图,先将问题中尺寸超大的模块固定在电路板上,之后再采用问题层次划分的方式将剩余的非超大模块均匀排布到电路板上剩余的空间中,从而生成模块排布更加均匀的初始化布图。跳转到步骤2。
46.步骤4:布图输出;输出计算所得布图。
47.图.1是本发明的实施示例图。
48.具体的,
49.步骤1模块粗略排布包含以下步骤:
50.步骤1.1:将初始化布图规划问题放入队列中。
51.步骤1.2:若队列为空跳转到步骤1.4,从队列中取出一个问题,若取出的问题只包含一个模块,跳转到步骤1.2,若取出的问题包含两个及以上模块则构造对应的超图,并用超图分割算法hmetis将超图分割成两份,从而将模块分割成两份,跳转到步骤1.3。
52.在构造的超图中,当前问题中的每个模块对应一个节点,每个网络对应于一条超边。因为在分割过程中不仅要考虑当前问题中的模块,还要考虑当前问题中模块与其它子问题中模块的连接情况,所以在超图构造前,本发明先确定当前问题中电路板的切割方向,若切割方向是竖直的,则构造两个虚拟节点r和l加入到超图中,而若切割方向是水平的,则构造两个虚拟节点b和u加入到超图中,在超图分割过程中严格限制r和l、b和u不被划分在一起。之后本发明遍历所有包含当前问题中模块的网络,若一个网络只包含当前问题中的模块,则对应构造一条超边将所有模块包括即可。而若一个网络中包含非当前问题中的模块,则判断非当前问题模块的位置与切割线(初始默认切割线过当前电路板的中心点)的相对位置关系,进而用虚拟模块替换其中的非当前问题模块。当前切割线是竖直的,非当前问题模块处于切割线左侧时,用虚拟节点l将其替换,非当前问题模块处于切割线右侧时,用虚拟点r将其替换;当前切割线是水平的,非当前问题模块处于切割线的上方时,用虚拟节点u将其替换,非当前问题模块处于切割线下方时,用虚拟节点b将其替换。
53.图.2给出了一个超图构造的示例。当前问题中包含四个模块a,b,c和d,因为当前电路板的切割方向是竖直的,所以在超图构造时,先构造两个虚拟模块l和r。原始问题中包含当前问题中模块的网络有四个,其中网络{a,d}只包含当前问题中的模块,直接构造对应的超边即可;网络{a,b,e}中的非当前问题模块e处于切割线的左侧,用l替换e,构造包含a,
b和l的超边;网络{c,d,f}中的非当前问题模块处于切割线的右侧,用r替换f,构造包含c,d和r的超边;网络{b,e,g}中非当前问题模块e,g分别处于切割线的左侧和右侧,则分别用l和r替换,构造包含b,l和r的超边。
54.步骤1.3:将对应电路板平行于其短边分割成两份,使得两份的面积比例与步骤1.2所生成两份模块的面积比例相等,从而生成两个子问题,并将两个子问题加入队列。跳转到步骤1.2。
55.步骤1.4:针对步骤1.2和1.3中生成的所有只含有一个模块的子问题,将其中的模块放置到对应的子电路板上,生成初始化布图。模块放置时,通过旋转硬模块或调整软模块的形状,使得模块的形状和对应的子电路板最大程度的匹配。
56.步骤2布图合法化调整包含以下步骤。
57.步骤2.1:查找存在重叠关系的模块。
58.对于任意两个模块,可以通过比较它们横向和纵向的中心点距离是否同时分别小于它们横向边长之和的一半和纵向边长之和的一半,判断是否重叠,若以上条件成立,则模块重叠,否则不重叠;为查找所有存在重叠的模块,一般的方法会遍历所有模块对,进行以上判别,但是该方法的计算复杂度o(n2),计算开销大。本发明采用的quadtree的方式查找所有的重叠。quadtree的构造中,每个顶点对应一个子电路板和该子电路板重叠的所有模块,初始的根节点对应于初始的电路板和所有模块,之后进行迭代地四划分。每次划分先将当前节点中的电路板采用十字分割的方式分成四部分,再判断当前节点中的模块是否与分割生成的四个子电路板重叠,若重叠则加入到对应的子节点(模块可能同时处于若干个子节点),当一个叶子节点所包含的模块数目小于τ,则停止对该节点的划分,迭戈划分直至所有叶子节点均不可划分。对于每个模块,遍历查找所有包含该模块的叶子节点,并与对应叶子节点内的所有模块进行重叠性检查,找出所有存在重叠的模块。本发明中采用的方法的时间复杂度是o(nlogn)
59.图.3是quadtree构造示例,初始问题包含9个模块,通过十字划分,生成四个均包含3个模块的子节点,若τ设置为3,则四个节点再进行一次划分,生成的每个叶子节点所含模块数据均小于3,停止划分。对于每个模块,将所有包含它的子节点链接起来,每个模块只与链接的子节点中的模块进行重叠检测,即可找出所有重叠的模块。
60.步骤2.2计算布图总势能。
61.两种因素可以导致势能的产生,一种是模块间的重叠,一种是模块超出电路板。对于一个布图中的任一模块m
i
,a
i
表示它的面积,(x
i1
,y
i1
)和(x
i2
,y
i2
)分别是它的左下角和右上角坐标,w
i
表示它的宽。
62.对于任意两个模块mi和mj,本发明提出了水平嵌入深度和竖直嵌入深度概念,它们的公式定义如下:
[0063][0064][0065]
图.4给出了模块重叠场景下的水平嵌入深度和竖直嵌入深度的示例。
[0066]
对于超出电路板的模块m
i
,本发明提出了水平超出幅度和竖直超出幅度概念,它们的公式定义如下:
[0067][0068][0069]
其中w和h分别表示电路板的宽和高,图.5给出了模块超出电路板场景下的水平超出幅度和竖直超出幅度的示例。
[0070]
基于以上嵌入深度和超出幅度的定义。本发明给出了以下势能函数定义,用于评估布图中总的模块重叠和模块超出电路板的程度。
[0071][0072]
其中δ是设定的参数,在实验中被设置为1.5。
[0073]
步骤2.3使用l

bfgs

b算法对势能函数进行梯度下降优化。
[0074]
对于布图中的每个模块mi个模,使用(xi,yi)表示它的中心点坐标,则公式(5)中的xi1,yi1,xi2和yi2可以用变量xi,yi和wi替换,其中xi和yi是无约束的变量,对于硬模块wi是常数变量,而对于软模块wi是一个有上下界分别为和的带约束变量。l

bfgs

b用于优化部分变量带上下界约束的势能函数。
[0075]
步骤3:模块精细排布包含以下步骤。
[0076]
步骤3.1固定超大模块。
[0077]
本发明中的超大模块定义如下:假定a
max
是给定的模块中最大模块对应的面积,若模块m
i
对应的面积a
i
≥a
max
/ω,则m
i
是超大模块。其中ω是设置的参数,本发明中设置为4。
[0078]
在超大模块固定过程中,为了控制超大模块的数量,将超大模块的数目上限设置为模块总量的四分之一。基于步骤1划分生成的叶子问题,每个超大模块会分配了一个子电路板,将该子电路板所对应的区域作为它的固定区域。为了确定每个超大模块在它的固定区域内的固定位置,将固定区域的边分为了三类:
[0079]
(1),固定边:如果一条边是已知初始电路板边的一部分,则它是固定边。
[0080]
(2),稳定边:当一个固定区域的一条边与另外一个固定区域的边部分或完全重叠,且另外一个固定区域对应的超大模块已经固定,则该固定区域的这条边是稳定边。
[0081]
(3),一般边:除了符合固定边与稳定边定义外,其余的边均是一般边。
[0082]
图.6是固定区域的示例,图中所示是步骤1所得的一个布图,其中左上角放置的两个为超大模块,它们所对应的固定区域用虚线标出。上面固定区域的左侧边和上方边为固定边,下面固定区域的左边为固定边。下面固定区域上方边初始为一般边,但如果上面固定区域的超大模块被固定,则它就变为稳定边。
[0083]
基于以上固定边、稳定边和一般边的定义,超大模块固定中,每次先根据模块面积和对应固定区域边的特性,选取要固定的模块,之后再根据边的特性选取要固定模块对应的固定区域的一个角,将选取的超大模块放置到对应角。当所有超大模块均被固定了,检测超大模块间是否有重叠或超出电路板,如果存在,则通过交替的模块横向和纵向平移消除重叠,并将超大模块完全移到电路板上。
[0084]
步骤3.2非超大模块排布。
[0085]
本发明的非超大模块排布采用问题迭代二分策略,直至划分生成的每个子问题中
只包含一个模块,将模块放置到分配的对应区域内,生成初始布图。其中初始的问题是所有非超大模块和固定超大模块后的电路板上剩余的空间,在问题划分过程中,如果当前问题中电路板因为超大模块的固定不是规则的矩形,则在问题划分时,不再是固定的先分割模块,再分割电路板的顺序。而是根据电路板上空间的轮廓,考虑到划分生成的两个子问题的电路板上尽量不要有狭窄的空间不易于模块的放置,动态判定模块与电路板分割的先后顺序。
[0086]
步骤3.1固定超大模块包含以下步骤。
[0087]
步骤3.1.1固定模块的选取:若所有超大模块均已固定,则跳转到步骤3.1.4,否则根据字典序<模块面积,模块对应固定区域的固定边数目,模块对应固定区域的稳定边数目>优先选取对应数值大的未固定超大模块作为待固定模块。
[0088]
步骤3.1.2固定位置的选取:根据<固定边,稳定边,一般边>的优先级,选取竖直方向和水平方向的边,将选取的两条边组成的角作为固定位置。
[0089]
步骤3.1.3放置超大模块:旋转超大硬模块或调整超大软模块,使得超大模块的形状与对应的固定区域的形状最大程度匹配,之后将超大模块的一个角放置在步骤3.1.2选取的放置位置。跳转到步骤3.1.1
[0090]
步骤3.1.4超大模块布图合法化调整:当超大模块存在重叠或超大电路板时,首先将超出电路板的超大模块通过水平和竖直平移,使它们恰好(外侧的边与电路板重叠)完全处于电路板上。之后从水平方向,自上而下查找重叠的任意两个模块,并通过移动下方的模块依次将重叠移开。若水平移动后重叠依然存在,从左到右查找重叠的任意两个模块,并通过移动右方的模块依次将重叠移开。交替执行以上移动动作,当所有重叠都被消除,或者连续水平和竖直移动都没移开任何重叠,结束该合法化调整。
[0091]
步骤3.2非超大模块排布包含以下步骤。
[0092]
步骤3.2.1将非超大模块和固定超大模块后电路板组成的问题,放入到问题队列中。
[0093]
步骤3.2.2若队列为空跳转到步骤3.2.5,从队列中取出一个问题,若取出的问题只包含一个模块,跳转到3.2.2,否则需对问题进行划分,本步骤先确定当前问题中电路板的切割线。下面先给出切割线确定中用到的候选切割线、切割系数、切割线距离和切割距离概念的定义,四个概念均为本发明提出。
[0094]
(1)候选切割线:根据当前电路板的尺寸,将其短边的方向作为候选切割线的方向。当前电路板空白空间的外沿轮廓在候选切割线方向上的延长线构成了全部候选切割线。
[0095]
(2)切割系数:对于一个候选切割线,若采用它进行切割,生成的两块子电路板中面积小与面积大的比值为切割系数。
[0096]
(3)切割线距离(li到lj):每条候选切割线可以分成若干实线段和若干虚线段,其中实线段是与空白空间轮廓边沿相重叠或穿过模块的线段,否则是虚线段。如果li到lj方向是竖直,且li上的虚线段在lj上的投影与lj上的实线段相重叠,则距离等于|x
i

x
j
|,否则距离等与电路版的宽。如果li到lj方向是水平的,且li上的虚线段在lj上的投影与lj上的实线段相重叠,则距离等于|y
i

y
j
|,否则距离等于电路板的高。
[0097]
(4)切割距离:将一条候选切割线到其它所有切割线的距离最小值作为切割距离
[0098]
基于以上定义,本发明的切割线确定方法,首先根据当前问题的电路板尺寸,确定所有的候选切割线。之后将切割系数小于ξ(发明中将其设置为1/4)的候选切割线排除,如果排除后剩余的候选切割线数目为零,则跳转到步骤3.2.5,否则选取剩余中切割距离最大的作为最终的切割线。
[0099]
图.7是一个电路版切割线选取示例,候选切割线有6条,其中l0、l4和l5因为它们的切割系数较小,被首先排除。l3的切割距离等于l3到l4间的距离,l1的切割距离等于l1到l2间的距离,l2的切割距离等于l2到l4间的距离,因为l2的切割距离最大,所以被选作最终的切割线。
[0100]
步骤3.2.3:使用步骤3.2.2选取的切割线将电路板分割成两部分。
[0101]
步骤3.2.4:将模块分割成固定面积比例的两份。假定步骤3.2.3生成的两个子电路板的空白面积分别为和本步骤的目标是将问题中的模块分成两个集合c1面c2,使得它们的面积和满足以下约束:
[0102][0103]
其中的bias是设定的参数,用于控制分割生成的两部分模块面积与电路板面积匹配的误差。
[0104]
步骤1.2中采用的超图(模块)分割hmeits方法将模块分成两份使得两份之间的面积和差值满足以下约束:
[0105][0106]
其中ubfactor是设定参数。该超图分割方法只能使得分成的两部分面积差值小于一定区间,不能直接使用该超图分割算法达成公式(6)中的目的。
[0107]
可以使用hmetis对原始问题进行递归切割以达成公式(6)中的目的,即当时,分配给集合c2中的模块面积超出预期,使用hmetis从c2分割出部分模块分配给c1;当时,分配给集合c1中的模块面积超出预期,使用hmetis从c1分割出部分模块分配给c2。递归划分调整c1和c2中模块的面积,直至满足公式(6)。在以上使用hmetis的常规分割中,固定的ubfactor设置需要多次调用hmetis进行分割,最终的优化效果欠佳。本发明采用动态的ubfactor设置,可以大幅度优化固定比例的超图分割的效果。
[0108]
步骤3.2.5:先分割模块再分割电路板的方式将问题分割成子问题,与步骤1.2中相同。
[0109]
步骤3.2.6:针对步骤3.2.2中生成的所有只含有一个模块的子问题,将其中的模块放置到对应的子电路板上,生成初始化布图。模块放置时,通过旋转硬模块或调整软模块的形状,使得模块的形状和对应的子电路板最大程度的匹配。
[0110]
步骤3.2.4:将模块分割成固定面积比例的两份包含以下步骤。
[0111]
假定两个子电路板的空白面积分别为和cu表示未被分配的模块,c1和c2是最终划分生成的两个模块集合。cu初始为c,c1和c2初始为空,本专利采用的方法是递归地将cu中的模块分配给c1和c2,使得它们的面积和满足公式(6)中的约束。
[0112]
案采用的方法是递归地将c
u
中的模块分配给c1和c2,使得它们的面积
[0113]
两个子电路板的空白面积分别为和本步骤的目标是将问题中的模块集合c分成两个集合c1和c2,使得它们的面积和满足公式(6)。cu表示未被分配的模块初始为c,c1和c2初始为空。本方案采用的方法是递归地将cu中的模块分配给c1和c2,使得它们的面积
[0114]
步骤3.2.4.1:ubfactor参数和虚拟模块设置。假定a1和a2是cu期望被分成的两个集合的面积,即若a1≥a2,设置一个面积为(a1‑
a2)/2的虚拟模块(与其它模块没有网络连接),并将其固定在cu2侧;若a1<a2,设置一个面积为(a2‑
a1)/2的虚拟模块,并将其固定在cu1侧。将ubfactor设置为50
×
(a1‑
a2)/(3a1+a2)。
[0115]
步骤3.2.4.2:超图分割。使用c
u
中的模块构造超图,并基于步骤3.2.4.1设置的ubfactor参数和虚拟模块,使用hmetis将c
u
分割成c
u1
和c
u2
两部分。若将c
u1
和c
u2
分别分配给c1和c2。若则将c
u1
分配给c1,并将c
u2
赋给c
u
,跳转到步骤3.2.4.1。若则将c
u2
分配给c2,并将c
u1
赋给c
u
,跳转到步骤3.2.4.1。
[0116]
步骤4:布图输出。输出计算所得布图。
[0117]
图.8是本发明方法qinfer在ibm

hb算例上的试验结果,试验结果显示,本发明相对于基于图划分的方法defer和基于力引导的方法f

fm,在连线优化方面分别提升了7.3%和2.1%。
[0118]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现;因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1