CN1272736C - 基于模块变形和概率局部搜索的集成电路模块级布局方法 - Google Patents
基于模块变形和概率局部搜索的集成电路模块级布局方法 Download PDFInfo
- Publication number
- CN1272736C CN1272736C CN 200410030787 CN200410030787A CN1272736C CN 1272736 C CN1272736 C CN 1272736C CN 200410030787 CN200410030787 CN 200410030787 CN 200410030787 A CN200410030787 A CN 200410030787A CN 1272736 C CN1272736 C CN 1272736C
- Authority
- CN
- China
- Prior art keywords
- module
- alpha
- overbar
- layout
- coordinate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000008569 process Effects 0.000 claims abstract description 6
- 230000008859 change Effects 0.000 claims description 7
- 230000001174 ascending effect Effects 0.000 claims description 3
- 238000013459 approach Methods 0.000 abstract description 7
- 230000006872 improvement Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000007493 shaping process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 101150064138 MAP1 gene Proteins 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000002922 simulated annealing Methods 0.000 description 1
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
基于模块变形和概率局部搜索的集成电路模块级布局方法属于集成电路CAD技术领域,其特征在于:它以原问题为基础,通过模块变形来生成一系列逐步逼近原问题的简单的布局问题,再逐步求解这些问题来得到原问题的解;在逐步逼近过程中,用近似因子α控制模块变形的程度,从最简单的近似问题开始,把当前解作为下一个近似问题的初始解,逐步应用概率局部搜索方法求解这一系列近似的问题,直到α=1时,使各模块大小等于原始各模块大小,该近似问题即为原问题。在引入概率接受后,布局结果的线长相近,面积平均值及最小值均比单一使用模块变形的方法有较大改善,具有广泛工业应用价值。
Description
技术领域
本发明属于集成电路计算机辅助设计CAD技术领域,尤其涉及BBL(Building Block Layout)宏模块布图规划和布局技术领域。
背景技术
在集成电路的布局中,层次式布图设计,模块重用技术,知识产权模块的大量应用,片上系统尤其是数模混合片上系统的设计,以及模拟电路器件级布图问题等,这些问题都可以归结为集成电路宏模块的布图规划和布局问题,即Building Block Layout:BBL模式的布图问题,它已成为当前的研究热点。上述模块级的布局问题可以转化成一个大规模组合优化问题。该模块级的布局(BBL)可简单描述为:
设有一个n个矩形模块的集合,模块的高和宽均为给定的实数,并且模块具有一定的方向,n个模块的一个布局就是在模块互不重叠的情况下,将模块放置在平面上,平面上包含这n个模块的最小矩形区域被称为芯片。模块级布局就是寻找一个最优布局或近似最优布局,使得芯片面积或是其它优化目标组成的目标函数值达到最优。
迄今为止有很多方法被应用于BBL布图模式,例如最小割方法、构造法、力向量法、分级设计方法、2D边界搜索方法、分支限界法、解析型算法、模拟退火算法和遗传算法、机器学习和神经网络算法等等。其中一些方法是由原先的标准单元布局方法借用而来。这些方法要么处理问题的规模非常有限,要么方法的稳定性很差。从得到的结果来看,与实际应用还有非常大的差距。还有基于模块变形的方法具有很好的稳定性,结果也较为实用,但是在该方法中采用局部搜索的方法求解,具有一定的局限性。
发明内容
本发明的目的在于提出一种较迄今为止该领域的其它算法更为稳定、高效,且取得了目前最好的结果的基于模块变形和概率局部搜索的集成电路模块级布局方法来作为解决宏模块布图问题的工业工具。
本发明的思路是:
它以原问题为基础,通过改变模块大小和相应引线端位置即模块变形来生成一系列逐步逼近原问题的简单的布局问题,再逐步求解这一系列逼近原问题的简单布局问题获取原问题的解。在逐步逼近过程中,用近似因子α控制模块变形的程度,按照近似问题的近似程度递增的顺序即近似因子α递减的顺序,从最简单的近似问题开始,并把当前近似问题的解的结构即模块间位置关系作为下一个近似问题的初始解的结构,逐步应用概率局部搜索方法求解这一系列近似问题,直到近似因子α为1时,各模块大小等于原始各模块大小,近似问题即为原问题。其中的步骤依次如下:
本发明的特征在于:
它以计算机为工具,依次采用以下步骤来实现:
(1).初始化,设置:
近似因子的初始值,也就是αmax,α>1;
求解近似问题时用的局部搜索次数NOIMIPUP;
设置最终布局的目标宽长比R及其权重ω;
设置目标函数Cost中总线长TotalWirelength的权重λ。
(2).计算机从模块描述文件依次读入以下模块及线网信息:
(2.1).读入模块四角坐标,并根据模块四角坐标计算模块的宽w、高h;
(2.2).读入模块上引线端坐标,并将其转化为相对模块左下角的坐标;
(2.3).按读入顺序为模块编号i,计算总模块数n、a各模块面积之总和;
(2.4).按下列公式计算读入的所有n个模块的宽、高平均值
w、
h;
(3).构造初始布局的拓扑结构即模块间的位置关系,并记为A:它是指按照模块编号i由小到大的顺序,从任意设定的起始位置沿矩形网格由下向上,然后由左向右的顺序,依次安置模块到矩形网格的方法构造初始布局的拓扑结构;
(4).计算布局问题最优或近似最优解;
(4.1).根据近似因子αk的值按下列公式计算模块i在近似问题中的实际尺寸wi(αk),hi(αk);
其中:wi、hi分别为模块i的宽、高,
wi(αk),hi(αk)分别为模块i在近似因子α下的实际的宽、高,
pw,ph为归一化参数,其取值满足
(4.2).根据模块间拓扑关系A,建立对应于拓扑结构A的布局Q:它是指从网格左下角坐标顶点所在的网格开始,从右下角向左上角作一条对角线(135°对角线),依次从上述左下角坐标顶点向x方向右移一个网格,再从新的右下角向新的左上角作一条也是135度的对角线,如此重复,一直做到右上角的网格为止:再从第一条对角线开始,依次两两连接相邻对角线的左上角,且每条对角线只被连接一次;从第二条对角线开始,依次两两连接对角线的右下角,且每条对角线也只被连接一次;然后从上述左下角坐标顶点所在的网格开始,建立相应的布局,在计算过程中,各模块左面和下面的模块的坐标都已经先期计算过;同时计算芯片的宽长比;
(4.3).用下列公式根据当前各模块大小计算相应引线端相对该模块左下角顶点的坐标(pin_xj i(α),pin_yj i(α));
其中:pin_xj i,pin_yj i是原问题中第i个模块第j个引线端相对模块左下角顶点的坐标;wi、hi:原问题中模块i的宽和高;再用下述公式并根据布局中模块i的右上角坐标xi,yi计算引线端在布局中的位置即引线端对矩形网格左下角顶点的坐标(p_xj i(α),p_yi j(α));
其中:xi,yi,为本布局中模块i的右上角坐标。
(4.4).根据下述公式计算各线网线长估计值,及总线长估计值,单个线网是由相互之间存在连接关系的引线端构成的,单个线网的线长根据线网中的引线端位置用下述半周长模型进行估计:
设:某线网N的m个引线端p1(x1,y1),…,pm(xm,ym),
则:该线网的线长WireLength(N)用下述公式估计,
总线长估计值为:
(4.5).用下列公式评价布局Q,得到目标函数值CostQ;
CostQ=Area+λ×TotalWireLength+ω×Rs2;
其中:
Rs=/R-max(ration,l/ration)/;
其中:R为期望的芯片宽长比,ration为芯片实际宽长比;
(4.6).运用概率局部搜索的方法,求取当前近似问题实例的近似最优解:
从循环变量R=0开始,当R<NOIMPUP时,依次重复以下步骤:
(4.6.1).用下列方法从当前布局产生新的布局,把新的拓扑结构记为A1:
要改变布局的拓扑结构,用下列方法之一:
a.交换两个模块的位置;
b.把一个模块移动到另外一个位置;
要改变模块方向以有利于优化线长时,用下列方法之一:
a.随机选择一个模块进行旋转,旋转角度通过随机函数选取为90°,或180°,或270°;
b.随机选择一个模块进行翻转,翻转轴通过随机函数选取为水平轴,或垂直轴或模块对角线;
(4.6.2).建立对应于拓扑结构A1的布局Q1,即计算各模块的右上角坐标,并计算芯片的宽长比;
(4.6.3).根据当前各模块大小计算用上述已知公式计算相应引线端相对相应模块左下角的坐标;并根据模块右上角坐标用上面已述公式计算引线端在新布局Q1中的位置。
(4.6.4).根据上面已述公式计算各线网的线长估计值,及总线长估计值;
(4.6.5).用上面已述的目标函数计算公式计算新布局Q1的目标函数值CostQ1;
(4.6.6).按下列公式计算接受所产生新解的概率APα:
其中costsmooth取值为步骤(4.5)中所计算的目标函数值;costα的初始值设为costsmooth,以后每次使用的值在步骤(4.6.7)中计算;
如果CostQ1<=CostQ则接受新解A1,令A←A1,Q←Q1,R←O,CostQ←CostQ1;
如果CostQ1>CostQ,则依据计算的概率Aα按如下方法接收新解:
a.在0~C之间随机地选取一个cr,C为不同的常数,通常为100000,
b.使r=cr/C;
c.若:r<A°则接收新解A1:令A←A1,Q←Q1,R←O,CostQ←CostQ1;否则抛弃新解,R←R+1;
(4.6.7).保持模块间拓扑结构不变,恢复各模块在原问题中的尺寸即原始尺寸,重复上述(4.6.2)~(4.6.5)的步骤,计算目标函数值作为下一次计算新解接受概率的Costα;
(4.6.8).转步骤(4.6.1);
(5).输出当前布局Q;
(6).用下述公式计算下一个近似问题的近似因子αk:
若:α≥1,则以当前的拓扑结构A作为初始布局的拓扑结构,求解下一个近似问题;
若:α<1,则当前布局即为最终布局,作为原问题实例的最终解输出。
所述的步骤(4.1)中计算模块i在近似问题中的实际大小wi(αk),hi(αk)可按下式中的任一式计算:
在sun公司的v880(750M)计算机上通过实验证明:
基于模块变形的集成电路布图规划和布局方法(Shaping)与基于模块变形和概率接收的局部搜索的集成电路布图规划和布局方法(prob-shaping)比较;
为了突出在模块变形的集成电路布图规划和布局方法中引入概率接收的局部搜索方法的有效性,在保证其它运行条件(诸如初始解,解的生成方式等)一致的条件下,我们分别提取这两种方法连续运行10次的结果进行了比较,如下表所示。
Shaping | Prob-shaping | |||
Area | Wire-length | Area | Wire-length | |
Average | 1.251391 | 33.223 | 1.236372 | 33.686 |
Minimum | 1.240092 | 30.933 | 1.206576 | 30.828 |
从表中可以看出,引入概率接受后,布局结果的线长相近,面积平均值及最小值均有较大改进。
附图说明:
图1:实施例1提出的4个模块的布局问题。
图2:构造图1所述实施例1的初始布局的拓扑结构的方法。
图3:图1所示的实施例1的4个模块的初始布局拓扑结构。
图4:计算得到的图1所示的实施例1的初始布局在近似问题中的实际尺寸。
图5:根据模块间拓扑关系A,建立对应于拓扑结构A的布局Q的顺序示意图。
图6:根据实施例1当前拓扑结构A中各模块大小计算出的引线端在最终布局中的位置。
图7:通过把一个模块移动到另外一个位置的方法把图3所示的拓扑关系进行改变后得到的新的拓扑关系。
图8:本发明用到的概率局部搜索方法的程序流程图。
图9:求解实施例2提出的ami33.yal(国际标准测试用例)问题实例的主程序流程图。
图10:图10.0为构造的初始布局图;在实施过程中,当α从α=6递减至α=1,获得近似最优解过程中相应于不同的α值而得到的部分近似问题的布局结果图。从图10.1-图10.10中,α值分别为:6.0、1.550915、1.282808、1.074526、1.004437、1.001003、1.000226、1.000051、1.000013、1.0。在图10.9中,保持图10.8的拓扑不变,恢复原始模块大小,计算相应的布局作为初始布局,求得原始问题的解。
表1:近似因子α=6的近似问题的最终布局中的模块宽度、高度和坐标。
表2:原始模块大小及最终布局坐标。
表3:对应于图10.1中α=6时部分模块的引线端坐标
表4:对应于图10.10中α=1时部分模块的引线端坐标。
具体实施方式:
本方法具体实施中使用的硬件环境均为sun公司的v880工作站,4个750M的cpu,8G内存。
实施实例1:用以说明如何根据原问题构造初始拓扑结构及相应的布局,并计算出线长估计值。
设n个模块的布局问题:模块集合M={Mi(wi,hi)|i ∈[1..n]},(wi,hi)为模块Mi的宽和高;设共有m个引线端(位于模块边界),所有引线端集合
,其中j为引线端标号,i为该引线端所属的模块编号,(pin_xj i,pin_yj i)为pj i相对于其所在模块i左下角的坐标;NET={(pi,...,pk),...,(pj,...,pi)},位于同一个括号内的引线端属于同一个线网,也就是说同一括号内的引线端之间存在连接关系。在实施例1中,M={M1(6,3),M2(2,5),M3(4,5),M4(2,8)},PIN={p1 1(1,3),p2 1(2,0),p3 2(0,3),p4 2(2,1),p5 3(2,0),p6 3(4,3),p7 4(0,1),p8 4(2,4),p9 4(1,8)},其中p1 1,p2 1表示引线端p1、p2都属于模块1,后面括号内的数据是它们对模块1左下角顶点的坐标;NET={(p1,p3,p9),(p2,p4,p8),(p5,p6,p7)}。接着用上面所述方法,根据设定的起始位置按照模块编号由小到大的顺序,从模块M1开始,沿着网格由下向上,然后由左向右的顺序依次安置模块到矩形网格的方法构造初始布局的拓扑结构,如图2所示,并记为A。接着,求取当前近似问题最优解或近似最优解。首先根据给定的近似因子α的值和归一化参数pw,ph,即α=2,pw=10,ph=10,用公式:
计算各模块宽、高的平均值
w、
h,再用计算wi(α)、hi(α)的第一种可供选择的公式计算模块在近似问题中的实际尺寸,如图4所示。接着再按图5所示的顺序,计算模块右上角坐标,建立相应于拓扑关系A的布局Q并计算芯片的宽长比,其结果见图6。在计算每一个模块的右上角坐标时,该模块左面和下面的模块的坐标都是已被计算过的。各模块右上角坐标分别为:M1’(4.13,4.74),M2’(3.28,9.98),M3’(7.65,5.24),M4’(7.41,11.25),相应的布局如图6所示。接着,再用上面所述的公式根据当前模块的大小计算相应引线端相对于该模块左下角顶点的坐标,并根据模块右上角坐标计算引线端在该α值时在最终布局中的位置,请见图6。然后,再根据上面所述公式计算个线网线长估计值及总线长估计值,在图6所示的布局实例中,三个线网的估计值分别为:
L(p1,p3,p9)=(5.77-0)+(11.25-4.74)=12.28;
L(p2,p4,p8)=(7.41-1.38)+(8.24-0)=14.27;
L(p5,p6,p7)=(7.65-4.13)+(5.99-0)=9.51;
总线长估计值为:L=L(p1,p3,p9)+L(p2,p4,p8)+L(p5,p6,p7)=36.06
实施例2:用国际基准测试电路实例MCNC ami33.yal做实例结合图9用本发明的方法进行模块布局。图10中给出了求解过程中,所有近似问题的解。起初试布局见图10.0,对应的模块大小及坐标见表1。近似因子α=6的近似问题的最终布局中的模块坐标见表2。原始模块尺寸大小及最终布局坐标见表3。α=6的布局中部分模块上引线端坐标见表4。α=1的部分模块的引线端坐标见表5。在本实施例中,计算了α=6的近似问题中模块的尺寸以及该近似问题的解中模块坐标及部分引线端坐标,当求解α=5的近似问题时,将保持图10.1的拓扑结构不变,计算相应的布局作为初始布局,再往下的求解过程从略,最终结果用表1,表5表示,它依次有以下步骤:
1.初始化
设置:
(1).近似因子的初始值,也就是α的最大值;
(2).求解近似问题时局部搜索次数NOIMPUP;
(3).设置最终布局的目标宽长比及其权重;
(4).设置目标函数中总线长的权重。
2.以下步骤按图8、图9所示的流程图进行,具体结果见图10及表1-表5。
本发明提出的方法已如上所述,它有如下优点:
(1).用一系列近似问题逐渐逼近原问题,使得在求解原问题时可以获得一个较好的初始解;
(2).所采用的模块变形策略和近似因子控制策略在不降低效率的条件下能够产生相对其它随机优化方法更为稳定的解;
(3).调整模块变形策略和问题的近似策略,可以进一步改进原问题的解的质量。
(4).具有工业应用价值,可以用于集成电路设计过程中:包含知识产权模块的模块布局;分级设计中的模块布局。
(5)采用概率局部搜索方法,进一步改善了布局结果的质量
表格1 近似因子α=6的近似问题中模块尺寸及最终布局的模块坐标。
高度 | 宽度 | 横坐标 | |
1 | 194.937531 | 195.999786 | 779.846955 |
2 | 196.01741 | 194.939194 | 1366.502517 |
3 | 195.999786 | 194.939194 | 1366.484893 |
4 | 194.939194 | 196 | 584.906266 |
5 | 194.977036 | 195.999878 | 587.003769 |
6 | 196 | 194.939392 | 1170.786133 |
7 | 196 | 194.938553 | 1366.786133 |
8 | 194.942383 | 195.999939 | 584.909455 |
9 | 194.939392 | 195.999939 | 585.87677 |
10 | 196 | 194.939331 | 390.929733 |
11 | 194.939362 | 195.999939 | 390.937394 |
12 | 194.939331 | 198.325989 | 978.966064 |
13 | 194.942383 | 195.999939 | 194.942383 |
14 | 196.002838 | 194.939362 | 1176.029327 |
15 | 196 | 194.953293 | 784.026733 |
16 | 194.940323 | 195.999939 | 976.908096 |
17 | 195.998032 | 194.939194 | 195.998032 |
18 | 196 | 194.939392 | 390.942383 |
19 | 196 | 194.939392 | 1562.786133 |
20 | 196.028717 | 194.939392 | 392.026749 |
21 | 194.939285 | 195.999786 | 194.939285 |
22 | 195.999786 | 194.947266 | 980.026519 |
23 | 195.999786 | 194.939529 | 781.967743 |
24 | 194.939194 | 196 | 1757.725327 |
25 | 196.00087 | 194.939194 | 585.967942 |
26 | 196 | 194.939194 | 780.909424 |
27 | 195.698944 | 195.999969 | 1170.485077 |
28 | 195.027786 | 195.999969 | 389.967071 |
29 | 194.939194 | 196 | 974.786118 |
30 | 194.929733 | 195.999786 | 194.929733 |
31 | 196 | 194.939362 | 588.026733 |
32 | 194.939194 | 196.036346 | 1174.965683 |
33 | 196.007523 | 194.939331 | 1170.793656 |
表格2 原始模块大小及最终布局坐标
高度 | 宽度 | 横坐标 | |
1 | 119 | 84 | 343 |
2 | 357 | 119 | 238 |
3 | 119 | 119 | 259 |
4 | 119 | 182 | 322 |
5 | 378 | 126 | 1197 |
6 | 210 | 210 | 1071 |
7 | 182 | 98 | 1176 |
8 | 133 | 315 | 630 |
9 | 231 | 133 | 742 |
10 | 175 | 133 | 1057 |
11 | 133 | 140 | 770 |
12 | 133 | 560 | 560 |
13 | 315 | 133 | 371 |
14 | 140 | 315 | 315 |
15 | 350 | 182 | 553 |
16 | 133 | 294 | 1064 |
17 | 84 | 119 | 1197 |
18 | 203 | 182 | 924 |
19 | 203 | 182 | 924 |
20 | 371 | 182 | 742 |
21 | 119 | 126 | 1050 |
22 | 119 | 336 | 658 |
23 | 119 | 266 | 609 |
24 | 161 | 119 | 1071 |
25 | 119 | 294 | 952 |
26 | 196 | 119 | 861 |
27 | 140 | 497 | 1078 |
28 | 140 | 406 | 581 |
29 | 119 | 175 | 175 |
30 | 49 | 119 | 119 |
31 | 161 | 140 | 140 |
32 | 378 | 119 | 119 |
33 | 336 | 133 | 1197 |
表格3 对应于图10.1的布局中部分模块的引线端坐标
m:模块编号
m_x、m_y:引线端相对于所属模块左下角的横坐标和纵坐标
x、y:引线端在近似问题的最终布局中的横坐标和纵坐标
M | m_x | m_y | x | y | M | m_x | m_y | x | y |
1 | 0 | 162.447937 | 977.878418 | 617.398987 | 5 | 195.9999 | 90.26714 | 585.8787 | 482.2939 |
1 | 11.5294 | 0 | 966.348999 | 779.846924 | 5 | 0 | 61.38166 | 389.8788 | 453.4084 |
1 | 23.0588 | 0 | 954.819641 | 779.846924 | 5 | 0 | 64.99235 | 389.8788 | 457.0191 |
1 | 184.470398 | 0 | 793.40802 | 779.846924 | 5 | 0 | 68.60303 | 389.8788 | 460.6298 |
1 | 172.940994 | 0 | 804.937439 | 779.846924 | 5 | 0 | 72.21372 | 389.8788 | 464.2404 |
1 | 161.411591 | 194.937531 | 816.466797 | 584.909424 | 5 | 0 | 75.8244 | 389.8788 | 467.8511 |
1 | 195.999786 | 162.447937 | 781.878662 | 617.398987 | 5 | 0 | 79.43509 | 389.8788 | 471.4618 |
1 | 195.999786 | 16.244795 | 781.878662 | 763.602112 | 5 | 0 | 83.04578 | 389.8788 | 475.0725 |
1 | 103.764587 | 194.937531 | 874.113831 | 584.909424 | 5 | 21.77776 | 194.977 | 411.6565 | 587.0038 |
2 | 115.304359 | 194.939194 | 979.180298 | 1285.789429 | 5 | 10.88888 | 194.977 | 400.7676 | 587.0038 |
2 | 196.017426 | 183.472183 | 990.647339 | 1366.502563 | 5 | 54.44441 | 194.977 | 444.3232 | 587.0038 |
2 | 0 | 183.472183 | 990.647339 | 1170.485107 | 5 | 76.22218 | 194.977 | 466.1009 | 587.0038 |
2 | 196.017426 | 172.005173 | 1002.114319 | 1366.502563 | 5 | 97.99994 | 194.977 | 487.8787 | 587.0038 |
2 | 0 | 172.005173 | 1002.114319 | 1170.485107 | 5 | 119.7777 | 194.977 | 509.6565 | 587.0038 |
2 | 196.017426 | 11.467011 | 1162.652466 | 1366.502563 | 5 | 0 | 36.10686 | 389.8788 | 428.1336 |
2 | 0 | 11.467011 | 1162.652466 | 1170.485107 | 5 | 0 | 39.71755 | 389.8788 | 431.7443 |
2 | 196.017426 | 22.934023 | 1151.185425 | 1366.502563 | 5 | 0 | 43.32823 | 389.8788 | 435.355 |
2 | 0 | 22.934023 | 1151.185425 | 1170.485107 | 5 | 0 | 46.93892 | 389.8788 | 438.9656 |
2 | 0 | 34.401035 | 1139.718506 | 1170.485107 | 5 | 0 | 50.5496 | 389.8788 | 442.5763 |
2 | 7.686957 | 194.939194 | 979.180298 | 1178.172119 | 5 | 0 | 54.16029 | 389.8788 | 446.187 |
2 | 192.173935 | 194.939194 | 979.180298 | 1362.659058 | 5 | 0 | 57.77097 | 389.8788 | 449.7977 |
2 | 0 | 126.137131 | 1047.982422 | 1170.485107 | 6 | 98 | 0 | 784.2411 | 1072.786 |
2 | 196.017426 | 80.269081 | 1093.850464 | 1366.502563 | 6 | 0 | 97.4697 | 686.7714 | 974.7861 |
2 | 153.739151 | 0 | 1174.119507 | 1324.224243 | 6 | 196 | 103.9677 | 680.2734 | 1170.786 |
2 | 0 | 68.802071 | 1105.317383 | 1170.485107 | 6 | 196 | 110.4657 | 673.7755 | 1170.786 |
2 | 3.843478 | 0 | 1174.119507 | 1174.328613 | 6 | 196 | 116.9636 | 667.2775 | 1170.786 |
3 | 172.940994 | 194.939194 | 979.180298 | 1193.543823 | 6 | 196 | 123.4616 | 660.7795 | 1170.786 |
3 | 195.999786 | 183.472183 | 967.713257 | 1170.485107 | 6 | 196 | 129.9596 | 654.2815 | 1170.786 |
3 | 0 | 183.472183 | 967.713257 | 1366.484863 | 6 | 196 | 136.4576 | 647.7835 | 1170.786 |
3 | 195.999786 | 172.005173 | 956.246277 | 1170.485107 | 6 | 196 | 142.9556 | 641.2855 | 1170.786 |
3 | 0 | 172.005173 | 956.246277 | 1366.484863 | 6 | 196 | 58.48182 | 725.7593 | 1170.786 |
3 | 195.999786 | 11.467011 | 795.70813 | 1170.485107 | 6 | 196 | 64.9798 | 719.2613 | 1170.786 |
3 | 0 | 22.934023 | 807.17511 | 1366.484863 | 6 | 196 | 71.47778 | 712.7633 | 1170.786 |
3 | 195.999786 | 22.934023 | 807.17511 | 1170.485107 | 6 | 196 | 77.97576 | 706.2653 | 1170.786 |
3 | 0 | 11.467011 | 795.70813 | 1366.484863 | 6 | 196 | 84.47373 | 699.7673 | 1170.786 |
3 | 23.0588 | 194.939194 | 979.180298 | 1343.426025 | 6 | 196 | 90.97172 | 693.2693 | 1170.786 |
3 | 195.999786 | 103.203102 | 887.444214 | 1170.485107 | 6 | 196 | 97.4697 | 686.7714 | 1170.786 |
3 | 11.5294 | 0 | 784.241089 | 1354.955444 | 6 | 91.46667 | 194.9394 | 589.3017 | 1066.253 |
3 | 92.235199 | 0 | 784.241089 | 1274.249634 | 6 | 104.5333 | 194.9394 | 589.3017 | 1079.319 |
3 | 0 | 68.802071 | 853.043152 | 1366.484863 | 6 | 58.8 | 194.9394 | 589.3017 | 1033.586 |
3 | 0 | 80.269081 | 864.510193 | 1366.484863 | 6 | 65.33334 | 194.9394 | 589.3017 | 1040.12 |
4 | 150.769226 | 0 | 1131.010254 | 389.967072 | 6 | 13.06667 | 194.9394 | 589.3017 | 987.8528 |
4 | 196 | 11.467011 | 1176.241089 | 401.434082 | 6 | 19.6 | 194.9394 | 589.3017 | 994.3861 |
4 | 0 | 11.467011 | 980.241089 | 401.434082 | 6 | 26.13333 | 194.9394 | 589.3017 | 1000.919 |
4 | 196 | 22.934023 | 1176.241089 | 412.901093 | 6 | 39.2 | 194.9394 | 589.3017 | 1013.986 |
4 | 0 | 22.934023 | 980.241089 | 412.901093 | 7 | 196 | 167.0902 | 418.824 | 1366.786 |
4 | 196 | 172.005173 | 1176.241089 | 561.972229 | 7 | 180.9231 | 194.9386 | 390.9757 | 1351.709 |
4 | 0 | 172.005173 | 980.241089 | 561.972229 | 7 | 180.9231 | 0 | 585.9142 | 1351.709 |
4 | 196 | 183.472183 | 1176.241089 | 573.43927 | 7 | 188.4615 | 194.9386 | 390.9757 | 1359.248 |
4 | 0 | 183.472183 | 980.241089 | 573.43927 | 7 | 188.4615 | 0 | 585.9142 | 1359.248 |
4 | 37.692307 | 0 | 1017.933411 | 389.967072 | 7 | 7.538462 | 0 | 585.9142 | 1178.325 |
4 | 22.615385 | 194.939194 | 1002.856445 | 584.90625 | 7 | 15.07692 | 0 | 585.9142 | 1185.863 |
4 | 196 | 57.335056 | 1176.241089 | 447.302124 | 7 | 0 | 167.0902 | 418.824 | 1170.786 |
5 | 97.999939 | 0 | 487.878693 | 392.026733 | 7 | 37.69231 | 194.9386 | 390.9757 | 1208.478 |
表格4最终布局(图10.9)中部分模块的引线端坐标(标签说明同表4)
Claims (2)
1.基于模块变形和概率局部搜索的集成电路模块级布局方法,其特征在于,它以计算机为工具,依次采用以下步骤来实现:
(1).初始化,设置:
近似因子的初始值,也就是αmaxα>1;
求解近似问题时用的局部搜索次数NOIMPUP;
设置最终布局的目标宽长比R及其权重ω;
设置目标函数Cost中总线长TotalWirelength的权重λ;
(2).计算机从模块描述文件依次读入以下模块及线网信息:
(2.1).读入模块四角坐标,并根据模块四角坐标计算模块的宽w、高h;
(2.2).读入模块上引线端坐标,并将其转化为相对模块左下角的坐标;
(2.3).按读入顺序为模块编号i,计算总模块数n、a各模块面积之总和;
(2.4).按下列公式计算读入的所有n个模块的宽、高平均值w、h;
(3).构造初始布局的拓扑结构即模块间的位置关系,并记为A:它是指按照模块编号i由小到大的顺序,从任意设定的起始位置沿矩形网格由下向上,然后由左向右的顺序,依次安置模块到矩形网格的方法构造初始布局的拓扑结构;
(4).计算布局问题最优或近似最优解:
(4.1).根据近似因子αk的值按下列公式计算模块i在近似问题中的实际尺寸wi(αk),hi(αk);
其中:wi、hi分别为模块i的宽、高,
wi(αk),hi(αk)分别为模块i在近似因子α下的实际的宽、高,pw,ph为归一化参数,其取值满足
(4.2).根据模块间拓扑关系A,建立对应于拓扑结构A的布局Q:它是指从网格左下角坐标顶点所在的网格开始,从右下角向左上角作一条对角线即135°对角线,依次从上述左下角坐标顶点向x方向右移一个网格,再从新的右下角向新的左上角作一条也是135度的对角线,如此重复,一直做到右上角的网格为止;再从第一条对角线开始,依次两两连接相邻对角线的左上角,且每条对角线只被连接一次;从第二条对角线开始,依次两两连接对角线的右下角,且每条对角线也只被连接一次;然后从上述左下角坐标顶点所在的网格开始,建立相应的布局,在计算过程中,各模块左面和下面的模块的坐标都已经先期计算过;同时计算芯片的宽长比;
(4.3).用下列公式根据当前各模块大小计算相应引线端相对该模块左下角顶点的坐标(pin_xj i(α),pin_yj i(α));
其中:pin_xj i,pin_yj i是问题中第i个模块第j个引线端相对模块左下角顶点的坐标;
wi、hi:模块i的宽和高;
再用下述公式并根据布局中模块i的右上角坐标xi,yi计算引线端在布局中的位置即引线端对矩形网格左下角顶点的坐标(p_xj i(α),p_yj i(α));
其中:xi,yi,为本布局中模块i的右上角坐标;
(4.4).根据下述公式计算各线网线长估计值,及总线长估计值,单个线网是由相互之间存在连接关系的引线端构成的,单个线网的线长根据线网中的引线端位置用下述半周长模型进行估计:
设:某线网N的m个引线端p1(x1,y1),…,pm(xm,ym),
则:该线网的线长WireLength(N)用下述公式估计,
总线长估计值为:
(4.5).用下列公式评价布局Q,得到目标函数值CostQ;
CostQ=Area+λ×TotalWireLength+ω×Rs2;
其中:
Rs=/R-max(ration,1/ration)/;
其中:R为期望的芯片宽长比,ration为芯片实际宽长比;
(4.6).运用概率局部搜索的方法,求取当前近似问题实例的近似最优解:
从循环变量R=0开始,当R<NOIMPUP时,依次重复以下步骤:
(4.6.1).用下列方法从当前布局产生新的布局,把新的拓扑结构记为A1:
要改变布局的拓扑结构,用下列方法之一:
a.交换两个模块的位置;
b.把一个模块移动到另外一个位置;
要改变模块方向以有利于优化线长时,用下列方法之一:
a.随机选择一个模块进行旋转,旋转角度通过随机函数选取为90°,或180°,或270°;
b.随机选择一个模块进行翻转,翻转轴通过随机函数选取为水平轴,或垂直轴或模块对角线;
(4.6.2).建立对应于拓扑结构A1的布局Q1,即计算各模块的右上角坐标,并计算芯片的宽长比;
(4.6.3).根据当前各模块大小用步骤4.3中的公式计算相应引线端相对相应模块左下角的坐标;并根据模块右上角坐标用步骤4.3中的公式计算引线端在新布局Q1中的位置;
(4.6.4).根据步骤4.4中的公式计算各线网的线长估计值,及总线长估计值;
(4.6.5).用步骤4.5中的目标函数计算公式计算新布局Q1的目标函数值CostQi;
(4.6.6).按下列公式计算接受所产生新解的概率APα:
其中costsmooth取值为步骤(4.5)中所计算的目标函数值;costα的初始值设为costsmooth,
以后每次使用的值在步骤(4.6.7)中计算;
如果CostQ1<=CostQ则接受新解A1,令A←A1,Q←Q1,R←0,CostQ←CostQ1;
如果CostQ1>CostQ,则依据计算的概率Aα按如下方法接收新解:
a.在0~C之间随机地选取一个cr,C的值是100000,
b.使r=cr/C;
c.若:r<Aα则接收新解A1:令A←A1,Q←Q1,R←0,CostQ←CostQ1;否则抛弃新解,R←R+1;
(4.6.7).保持模块间拓扑结构不变,恢复各模块的原始尺寸,重复上述(4.6.2)~(4.6.5)的步骤,计算目标函数值作为下一次计算新解接受概率的Costα;
(4.6.8).转步骤(4.6.1);
(5).输出当前布局Q;
(6).用下述公式计算下一个近似问题的近似因子αk:
若:α≥1,则以当前的拓扑结构A作为初始布局的拓扑结构,求解下一个近似问题;
若:α<1,则当前布局即为最终布局,作为问题实例的最终解输出。
2.根据权利要求1所述的基于模块变形和概率局部搜索的集成电路模块级布局方法,其特征在于:所述的步骤(4.1)中计算模块i在近似问题中的实际大小wi(αk),hi(αk)按下式中的任一式计算:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410030787 CN1272736C (zh) | 2004-02-20 | 2004-04-09 | 基于模块变形和概率局部搜索的集成电路模块级布局方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200410004526 | 2004-02-20 | ||
CN200410004526.3 | 2004-02-20 | ||
CN 200410030787 CN1272736C (zh) | 2004-02-20 | 2004-04-09 | 基于模块变形和概率局部搜索的集成电路模块级布局方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1560771A CN1560771A (zh) | 2005-01-05 |
CN1272736C true CN1272736C (zh) | 2006-08-30 |
Family
ID=34465871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200410030787 Expired - Fee Related CN1272736C (zh) | 2004-02-20 | 2004-04-09 | 基于模块变形和概率局部搜索的集成电路模块级布局方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1272736C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528923A (zh) * | 2016-09-27 | 2017-03-22 | 北京深维科技有限公司 | 一种芯片全局布局方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4967934B2 (ja) * | 2007-09-04 | 2012-07-04 | 富士ゼロックス株式会社 | 画像処理装置及びプログラム |
US8122406B2 (en) * | 2008-10-27 | 2012-02-21 | Taiwan Semiconductor Manufacturing Co., Ltd. | Generating models for integrated circuits with sensitivity-based minimum change to existing models |
CN102063535B (zh) * | 2010-12-17 | 2012-07-11 | 清华大学 | 面向倒装封装技术的增量式i/o规划方法 |
CN104881542B (zh) * | 2015-05-27 | 2018-05-22 | 中城特色小镇规划研究院有限公司 | 微型片上生化反应检测装置的组件布置方法和系统 |
CN109684745B (zh) * | 2018-12-27 | 2020-04-07 | 北京华大九天软件有限公司 | 基于最小宽度约束的6t&6tppnn单元布局方法 |
CN113268946B (zh) * | 2021-06-09 | 2021-10-15 | 广东工业大学 | 一种基于连线总和最小的芯片布局方法 |
-
2004
- 2004-04-09 CN CN 200410030787 patent/CN1272736C/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528923A (zh) * | 2016-09-27 | 2017-03-22 | 北京深维科技有限公司 | 一种芯片全局布局方法 |
CN106528923B (zh) * | 2016-09-27 | 2019-08-13 | 京微齐力(北京)科技有限公司 | 一种芯片全局布局方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1560771A (zh) | 2005-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1272736C (zh) | 基于模块变形和概率局部搜索的集成电路模块级布局方法 | |
CN1834969A (zh) | 用于设计具有增强的可制造性的集成电路的系统 | |
CN1746697A (zh) | 一种芯片可实现的多信号分类算法 | |
CN115859899B (zh) | 一种多驱动能力的集成电路标准单元版图迁移的方法 | |
CN1885349A (zh) | 三维扫描的点云孔洞填补方法 | |
CN1881562A (zh) | 一种自动适应工艺特征尺寸的互连寄生电容提取方法 | |
CN1928853A (zh) | 一种分类广告自动排版的方法 | |
CN1929234A (zh) | 大规模电力系统网络分割潮流并行计算方法 | |
CN110442994A (zh) | 一种基于图论的3d打印切片处理方法 | |
CN1932642A (zh) | 标板形状分析和校正方法 | |
CN102323960A (zh) | 考虑重叠度和线长的布局模块分布密度平滑方法 | |
CN118194733B (zh) | 一种装配式建筑构件模具的智能排版双目标优化方法 | |
CN110531638B (zh) | 基于整车仿真模型的phev部件工况数据统计与工况构建方法 | |
CN103714384B (zh) | 基于移动模式序列与遗传禁忌的集成电路的布图方法 | |
CN1311390C (zh) | 三维形状数据向单元内部数据的变换方法 | |
CN103903227A (zh) | 一种图像降噪的方法和装置 | |
CN100347709C (zh) | 基于最小自由度优先原则的非线性规划布局方法 | |
CN1851754A (zh) | 一种快速建立车身概念设计几何模型的方法 | |
CN1449017A (zh) | 基于模块变形的集成电路宏模块布图规划和布局方法 | |
CN1641957A (zh) | 电力系统潮流分网并行计算方法 | |
CN112183001A (zh) | 一种基于超图的多级聚类方法 | |
CN108614889B (zh) | 基于混合高斯模型的移动对象连续k近邻查询方法及系统 | |
CN1702656A (zh) | 一种基于权重的平面布图规划方法 | |
CN1949273A (zh) | 一种在3d游戏中绘制草坪的方法和系统 | |
CN1271786C (zh) | 可编程逻辑器件结构建模方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060830 Termination date: 20100409 |