CN1560771A - 基于模块变形和概率局部搜索的集成电路模块级布局方法 - Google Patents

基于模块变形和概率局部搜索的集成电路模块级布局方法 Download PDF

Info

Publication number
CN1560771A
CN1560771A CNA2004100307872A CN200410030787A CN1560771A CN 1560771 A CN1560771 A CN 1560771A CN A2004100307872 A CNA2004100307872 A CN A2004100307872A CN 200410030787 A CN200410030787 A CN 200410030787A CN 1560771 A CN1560771 A CN 1560771A
Authority
CN
China
Prior art keywords
module
layout
coordinate
cost
calculate
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.)
Granted
Application number
CNA2004100307872A
Other languages
English (en)
Other versions
CN1272736C (zh
Inventor
董社勤
洪先龙
陈松
王锐杰
齐鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN 200410030787 priority Critical patent/CN1272736C/zh
Publication of CN1560771A publication Critical patent/CN1560771A/zh
Application granted granted Critical
Publication of CN1272736C publication Critical patent/CN1272736C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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;
求解近似问题时用的局部搜索次数NOIMPUP;
设置最终布局的目标宽长比R及其权重ω;
设置目标函数Cost中总线长TotalWirelength的权重λ。
(2).计算机从模块描述文件依次读入以下模块及线网信息:
(2.1).读入模块四角坐标,并根据模块四角坐标计算模块的宽w、高h;
(2.2).读入模块上引线端坐标,并将其转化为相对模块左下角的坐标;
(2.3).按读入顺序为模块编号i,计算总模块数n、a各模块面积之总和;
(2.4).按下列公式计算读入的所有n个模块的宽、高平均值 w、 h;
w ‾ = 1 n Σ i w i , h ‾ = 1 n Σ i w i
(3).构造初始布局的拓扑结构即模块间的位置关系,并记为A:它是指按照模块编号i由小到大的顺序,从任意设定的起始位置沿矩形网格由下向上,然后由左向右的顺序,依次安置模块到矩形网格的方法构造初始布局的拓扑结构;
(4).计算布局问题最优或近似最优解:
(4.1).根据近似因子αk的值按下列公式计算模块i在近似问题中的实际尺寸wik),hik);
Figure A20041003078700073
其中:wi、hi分别为模块i的宽、高,
wik),hik)分别为模块i在近似因子α下的实际的宽、高,
pw,ph为归一化参数,其取值满足
max ( w i ) / 10 pw i ∈ { 1 , . . . , n } ∈ ( 0,1 ] , max ( h i ) / 10 ph i ∈ { 1 , . . . , n } ∈ ( 0,1 ] ,
(4.2).根据模块间拓扑关系A,建立对应于拓扑结构A的布局Q:它是指从网格左下角坐标顶点所在的网格开始,从右下角向左上角作一条对角线(135°对角线),依次从上述左下角坐标顶点向x方向右移一个网格,再从新的右下角向新的左上角作一条也是135度的对角线,如此重复,一直做到右上角的网格为止;再从第一条对角线开始,依次两两连接相邻对角线的左上角,且每条对角线只被连接一次;从第二条对角线开始,依次两两连接对角线的右下角,且每条对角线也只被连接一次;然后从上述左下角坐标顶点所在的网格开始,建立相应的布局,在计算过程中,各模块左面和下面的模块的坐标都已经先期计算过;同时计算芯片的宽长比;
(4.3).用下列公式根据当前各模块大小计算相应引线端相对该模块左下角顶点的坐标
( pin _ x j i ( α ) , pin _ y j i ( α ) ) ;
Figure A20041003078700082
其中:pin_xj i,pin_yj i是原问题中第i个模块第j个引线端相对模块左下角顶点的坐标;wi、hi:原问题中模块i的宽和高;
再用下述公式并根据布局中模块i的右上角坐标xi,yi计算引线端在布局中的位置即引线端对矩形网格左下角顶点的坐标 ( p _ x j i ( α ) , p _ y i j ( α ) ) ;
其中:xi,yi,为本布局中模块i的右上角坐标。
(4.4).根据下述公式计算各线网线长估计值,及总线长估计值,单个线网是由相互之间存在连接关系的引线端构成的,单个线网的线长根据线网中的引线端位置用下述半周长模型进行估计:
设:某线网N的m个引线端p1(x1,y1),…,pm(xm,ym),
则:该线网的线长WireLength(N)用下述公式估计,
WireLength ( N ) = ( max l ∈ { 1 , . . . , m } ( x l ) - min l ∈ { 1 , . . . , m } ( x l ) ) + ( max l ∈ { 1 , . . . , m } ( y l ) - min l ∈ { 1 , . . . , m } ( y l ) )
总线长估计值为:
TotalWireLength = Σ N = 1 L WireLength ( N ) , L为线网的个数
(4.5).用下列公式评价布局Q,得到目标函数值CostQ
CostQ=Area+λ×TotalWireLength+ω×Rs2
其中:
Area = max { x i } i ∈ [ 1 . . . n ] × max { y i } i ∈ [ 1 . . . n ]
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).根据当前各模块大小计算用上述已知公式计算相应引线端相对相应模块左下角的坐标;并根据模块右上角坐标用上面已述公式计算引线端在新布局Q1中的位置。
(4.6.4).根据上面已述公式计算各线网的线长估计值,及总线长估计值;
(4.6.5).用上面已述的目标函数计算公式计算新布局Q1的目标函数值CostQ1
(4.6.6).按下列公式计算接受所产生新解的概率APα
Figure A20041003078700091
其中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,则当前布局即为最终布局,作为原问题实例的最终解输出。
所述的步骤(4.1)中计算模块i在近似问题中的实际大小wik),hik)可按下式中的任一式计算:
在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个引线端(位于模块边界),所有引线端集合 PIN = { p j i ( pin _ x j i , pin _ y j i ) | j ∈ [ 1 . . . m ] , i ∈ [ 1 . . . n ] } , 其中j为引线端标号,i为该引线端所属的模块编号,(pin_xj i,pin_yj i)为pj i相对于其所在模块i左下角的坐标;NET={(pi,...,pk),...,(pj,...,pl)},位于同一个括号内的引线端属于同一个线网,也就是说同一括号内的引线端之间存在连接关系。在实施例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 ‾ = 1 4 Σ i w i , h ‾ = 1 4 Σ i w i
计算各模块宽、高的平均值 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   136 6.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)
    M     m_x     m_y     x     y     M     m_x     m_y     x     y
    1     0     70     329     742     5     0     91     1071     427
    1     7     0     259     735     5     0     98     1071     434
    1     14     0     259     728     5     0     105     1071     441
    1     112     0     259     630     5     0     112     1071     448
    1     105     0     259     637     6     105     0     966     336
    1     98     84     343     644     6     0     105     861     441
    1     119     70     329     623     6     210     112     1071     448
    1     119     7     266     623     6     210     119     1071     455
    1     63     84     343     679     6     210     126     1071     462
    2     210     119     238     420     6     210     133     1071     469
    2     357     112     231     273     6     210     140     1071     476
    2     0     112     231     630     6     210     147     1071     483
    2     357     105     224     273     6     210     154     1071     490
    2     0     105     224     630     6     210     63     1071     399
    2     357     7     126     273     6     210     70     1071     406
    2     0     7     126     630     6     210     77     1071     413
    2     357     14     133     273     6     210     84     1071     420
    2     0     14     133     630     6     210     91     1071     427
    2     0     21     140     630     6     210     98     1071     434
    2     14     119     238     616     6     210     105     1071     441
    2     350     119     238     280     6     98     210     959     546
    2     0     77     196     630     6     112     210     973     546
    2     357     49     168     273     6     63     210     924     546
    2     280     0     119     350     6     70     210     931     546
    2     0     42     161     630     6     14     210     875     546
    2     7     0     119     623     6     21     210     882     546
    3     105     119     245     749     6     28     210     889     546
    3     119     112     259     742     6     42     210     903     546
    3     0     112     140     742     7     182     84     1092     980
    3     119     105     259     735     7     168     98     1078     966
    3     0     105     140     735     7     168     0     1176     966
    3     119     7     259     637     7     175     98     1078     973
    3     0     14     140     644     7     175     0     1176     973
    3     119     14     259     644     7     7     0     1176     805
    3     0     7     140     637     7     14     0     1176     812
    3     14     119     154     749     7     0     84     1092     798
    3     119     63     259     693     7     35     98     1078     833
    3     7     0     147     630     7     0     49     1127     798
    3     56     0     196     630     7     49     98     1078     847
    3     0     42     140     672     7     133     98     1078     931
    3     0     49     140     679     7     119     98     1078     917
    4     140     0     182     868     8     133     210     420     133
    4     182     7     140     861     8     84     0     630     84
    4     0     7     322     861     8     14     315     315     14
    4     182     14     140     854     8     7     315     315     7
    4     0     14     322     854     8     7     0     630     7
    4     182     105     140     763     8     105     315     315     105
    4     0     105     322     763     8     105     0     630     105
    4     182     112     140     756     8     112     0     630     112
    4     0     112     322     756     8     133     14     616     133
    4     35     0     287     868     8     28     315     315     28
    4     21     119     301     749     8     0     238     392     0
    4     182     35     140     833     8     42     315     315     42
    5     63     0     1134     336     8     49     315     315     49
    5     126     175     1197     511     8     0     98     532     0
    5     0     119     1071     455     8     49     0     630     49
    5     0     126     1071     462     8     35     0     630     35
    5     0     133     1071     469     8     70     0     630     70
    5     0     140     1071     476     8     77     0     630     77
    5     0     147     1071     483     8     56     0     630     56
    5     0     154     1071     490     8     133     301     329     133
    5     0     161     1071     497     9     133     140     609     602
    5     14     378     1085     714     9     119     231     623     511
    5     7     378     1078     714     9     119     0     623     742
    5     35     378     1106     714     9     126     0     616     742
    5     49     378     1120     714     9     28     0     714     742
    5     63     378     1134     714     9     21     0     721     742
    5     77     378     1148     714     9     0     140     742     602
    5     0     70     1071     406     9     84     0     658     742
    5     0     77     1071     413     9     98     0     644     742
    5     0     84     1071     420     9     63     231     679     511

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;
w ‾ = 1 n Σ i w i , h ‾ = 1 n Σ i w i
(3).构造初始布局的拓扑结构即模块间的位置关系,并记为A:它是指按照模块编号i由小到大的顺序,从任意设定的起始位置沿矩形网格由下向上,然后由左向右的顺序,依次安置模块到矩形网格的方法构造初始布局的拓扑结构;
(4).计算布局问题最优或近似最优解:
(4.1).根据近似因子αk的值按下列公式计算模块i在近似问题中的实际尺寸wik),hik);
Figure A2004100307870002C2
其中:wi、hi分别为模块i的宽、高,
wik),hik)分别为模块i在近似因子α下的实际的宽、高,
pw,ph为归一化参数,其取值满足
max ( w i ) i ∈ { 1 , . . . , n } / 10 pw ∈ ( 0,1 ] , max ( h i ) i ∈ { 1 , . . . , n } / 10 ph ∈ ( 0,1 ] ,
(4.2).根据模块间拓扑关系A,建立对应于拓扑结构A的布局Q:它是指从网格左下角坐标顶点所在的网格开始,从右下角向左上角作一条对角线(135°对角线),依次从上述左下角坐标顶点向x方向右移一个网格,再从新的右下角向新的左上角作一条也是135度的对角线,如此重复,一直做到右上角的网格为止;再从第一条对角线开始,依次两两连接相邻对角线的左上角,且每条对角线只被连接一次;从第二条对角线开始,依次两两连接对角线的右下角,且每条对角线也只被连接一次;然后从上述左下角坐标顶点所在的网格开始,建立相应的布局,在计算过程中,各模块左面和下面的模块的坐标都已经先期计算过;同时计算芯片的宽长比;
(4.3).用下列公式根据当前各模块大小计算相应引线端相对该模块左下角顶点的坐标 ( pin _ x j i ( α ) , pin _ y j i ( α ) ) ;
其中:pin_xj i,pin_yj i是原问题中第i个模块第j个引线端相对模块左下角顶点的坐标;
wi、hi:原问题中模块i的宽和高;
再用下述公式并根据布局中模块i的右上角坐标xi,yi计算引线端在布局中的位置即引线端对矩形网格左下角顶点的坐标 ( p _ x j i ( α ) , p _ y i j ( α ) ) ;
其中:xi,yi,为本布局中模块i的右上角坐标。
(4.4).根据下述公式计算各线网线长估计值,及总线长估计值,单个线网是由相互之间存在连接关系的引线端构成的,单个线网的线长根据线网中的引线端位置用下述半周长模型进行估计:
设:某线网N的m个引线端p1(x1,y1),…,pm(xm,ym),
则:该线网的线长WireLength(N)用下述公式估计,
WireLength ( N ) = ( max l ∈ { 1 , . . . , m } ( x l ) - max l ∈ { 1 , . . . , m } ( x l ) ) + ( max l ∈ { 1 , . . . , m } ( y l ) - max l ∈ { 1 , . . . , m } ( y l ) )
总线长估计值为:
(4.5).用下列公式评价布局Q,得到目标函数值CostQ
      CostQ=Areα+λ×TotalWireLength+ω×Rs2
其中:
Area = max { x i } i ∈ [ 1 . . . n ] × max { y i } i ∈ [ 1 . . . n ]
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).根据当前各模块大小计算用上述已知公式计算相应引线端相对相应模块左下角的坐标;并根据模块右上角坐标用上面已述公式计算引线端在新布局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←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
Figure A2004100307870004C2
若:α≥1,则以当前的拓扑结构A作为初始布局的拓扑结构,求解下一个近似问题;
若:α<1,则当前布局即为最终布局,作为原问题实例的最终解输出。
2.根据权利要求1所述的基于模块变形和概率局部搜索的集成电路模块级布局方法,其特征在于:所述的步骤(4.1)中计算模块i在近似问题中的实际大小wik),hik)可按下式中的任一式计算:
Figure A2004100307870005C2
Figure A2004100307870005C3
CN 200410030787 2004-02-20 2004-04-09 基于模块变形和概率局部搜索的集成电路模块级布局方法 Expired - Fee Related CN1272736C (zh)

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.3 2004-02-20
CN200410004526 2004-02-20
CN 200410030787 CN1272736C (zh) 2004-02-20 2004-04-09 基于模块变形和概率局部搜索的集成电路模块级布局方法

Publications (2)

Publication Number Publication Date
CN1560771A true CN1560771A (zh) 2005-01-05
CN1272736C 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 (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102063535A (zh) * 2010-12-17 2011-05-18 清华大学 面向倒装封装技术的增量式i/o规划方法
CN101383049B (zh) * 2007-09-04 2012-06-06 富士施乐株式会社 图像处理装置及图像处理方法
CN101727515B (zh) * 2008-10-27 2012-07-18 台湾积体电路制造股份有限公司 生成用于集成电路的目标器件的模型文件的方法
CN104881542A (zh) * 2015-05-27 2015-09-02 谢俊 微型片上生化反应检测装置的组件布置方法和系统
CN109684745A (zh) * 2018-12-27 2019-04-26 北京华大九天软件有限公司 基于最小宽度约束的6t&6tppnn单元布局方法
CN113268946A (zh) * 2021-06-09 2021-08-17 广东工业大学 一种基于连线总和最小的芯片布局方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106528923B (zh) * 2016-09-27 2019-08-13 京微齐力(北京)科技有限公司 一种芯片全局布局方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101383049B (zh) * 2007-09-04 2012-06-06 富士施乐株式会社 图像处理装置及图像处理方法
CN101727515B (zh) * 2008-10-27 2012-07-18 台湾积体电路制造股份有限公司 生成用于集成电路的目标器件的模型文件的方法
CN102063535A (zh) * 2010-12-17 2011-05-18 清华大学 面向倒装封装技术的增量式i/o规划方法
CN102063535B (zh) * 2010-12-17 2012-07-11 清华大学 面向倒装封装技术的增量式i/o规划方法
CN104881542A (zh) * 2015-05-27 2015-09-02 谢俊 微型片上生化反应检测装置的组件布置方法和系统
CN104881542B (zh) * 2015-05-27 2018-05-22 中城特色小镇规划研究院有限公司 微型片上生化反应检测装置的组件布置方法和系统
CN109684745A (zh) * 2018-12-27 2019-04-26 北京华大九天软件有限公司 基于最小宽度约束的6t&6tppnn单元布局方法
CN113268946A (zh) * 2021-06-09 2021-08-17 广东工业大学 一种基于连线总和最小的芯片布局方法
CN113268946B (zh) * 2021-06-09 2021-10-15 广东工业大学 一种基于连线总和最小的芯片布局方法

Also Published As

Publication number Publication date
CN1272736C (zh) 2006-08-30

Similar Documents

Publication Publication Date Title
CN108399450A (zh) 基于生物进化原则的改进粒子群算法
CN1272736C (zh) 基于模块变形和概率局部搜索的集成电路模块级布局方法
CN1834969A (zh) 用于设计具有增强的可制造性的集成电路的系统
CN108629117A (zh) 基于Rhino平台的大跨度钢拱曲面网格屋面钢结构建模方法
CN1881562A (zh) 一种自动适应工艺特征尺寸的互连寄生电容提取方法
CN1885349A (zh) 三维扫描的点云孔洞填补方法
CN1746697A (zh) 一种芯片可实现的多信号分类算法
CN106204415A (zh) 一种新型的图像配准方法
CN1929234A (zh) 大规模电力系统网络分割潮流并行计算方法
CN1932642A (zh) 标板形状分析和校正方法
CN1945626A (zh) 基于b样条曲面的三维扫描的点云孔洞填补方法
CN104574517B (zh) 三维模型的边界面网格单元的处理方法和装置
CN102323960A (zh) 考虑重叠度和线长的布局模块分布密度平滑方法
CN115859899B (zh) 一种多驱动能力的集成电路标准单元版图迁移的方法
CN1760888A (zh) 利用星载sar多时相图像识别地表变化的方法
CN103714384B (zh) 基于移动模式序列与遗传禁忌的集成电路的布图方法
CN103903227A (zh) 一种图像降噪的方法和装置
CN1311390C (zh) 三维形状数据向单元内部数据的变换方法
Janssen et al. Möbius evolver: Competitive exploration of urban massing strategies
CN100347709C (zh) 基于最小自由度优先原则的非线性规划布局方法
CN1662911A (zh) 改变设计数据以制成组件之方法及其单元
CN1449017A (zh) 基于模块变形的集成电路宏模块布图规划和布局方法
CN1641957A (zh) 电力系统潮流分网并行计算方法
CN112183001A (zh) 一种基于超图的多级聚类方法
CN110032815B (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