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

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

Info

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
Application number
CN 200410030787
Other languages
English (en)
Other versions
CN1560771A (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;
求解近似问题时用的局部搜索次数NOIMIPUP;
设置最终布局的目标宽长比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);
w i ( &alpha; k ) = ( w &OverBar; / 10 pw + ( w i / 10 pw - w &OverBar; / 10 pw ) &alpha; k ) &times; 10 pw , w i > w &OverBar; , ( w &OverBar; / 10 pw - ( w &OverBar; / 10 pw - w i / 10 ph ) &alpha; k ) &times; 10 pw , w i < w &OverBar; , h i ( &alpha; k ) = ( h &OverBar; / 10 ph + ( h i / 10 ph - h &OverBar; / 10 ph ) &alpha; k ) &times; 10 ph , h i > h &OverBar; , ( h &OverBar; / 10 ph - ( h &OverBar; / 10 ph - h i / 10 ph ) &alpha; k ) &times; 10 ph , h i < h &OverBar; ,
其中:wi、hi分别为模块i的宽、高,
wik),hik)分别为模块i在近似因子α下的实际的宽、高,
pw,ph为归一化参数,其取值满足
max ( w i ) i &Element; { 1 , . . . , n } / 10 pw &Element; ( 0,1 ] , max ( h i ) i &Element; { 1 , . . . , n } / 10 ph &Element; ( 0,1 ] ,
(4.2).根据模块间拓扑关系A,建立对应于拓扑结构A的布局Q:它是指从网格左下角坐标顶点所在的网格开始,从右下角向左上角作一条对角线(135°对角线),依次从上述左下角坐标顶点向x方向右移一个网格,再从新的右下角向新的左上角作一条也是135度的对角线,如此重复,一直做到右上角的网格为止:再从第一条对角线开始,依次两两连接相邻对角线的左上角,且每条对角线只被连接一次;从第二条对角线开始,依次两两连接对角线的右下角,且每条对角线也只被连接一次;然后从上述左下角坐标顶点所在的网格开始,建立相应的布局,在计算过程中,各模块左面和下面的模块的坐标都已经先期计算过;同时计算芯片的宽长比;
(4.3).用下列公式根据当前各模块大小计算相应引线端相对该模块左下角顶点的坐标(pin_xj i(α),pin_yj i(α));
pin _ x j i ( &alpha; ) = pin _ x j i &times; w i ( &alpha; ) / w i , pin _ y j i ( &alpha; ) = pin _ y j i &times; h i ( &alpha; ) / h i ,
其中:pin_xj i,pin_yj i是原问题中第i个模块第j个引线端相对模块左下角顶点的坐标;wi、hi:原问题中模块i的宽和高;再用下述公式并根据布局中模块i的右上角坐标xi,yi计算引线端在布局中的位置即引线端对矩形网格左下角顶点的坐标(p_xj i(α),p_yi j(α));
p _ x j i ( &alpha; ) = x i - ( w i ( &alpha; ) - pin _ x j i ( &alpha; ) p _ y i j ( &alpha; ) = y i - ( h i ( &alpha; ) - pin _ y j i ( &alpha; )
其中:xi,yi,为本布局中模块i的右上角坐标。
(4.4).根据下述公式计算各线网线长估计值,及总线长估计值,单个线网是由相互之间存在连接关系的引线端构成的,单个线网的线长根据线网中的引线端位置用下述半周长模型进行估计:
设:某线网N的m个引线端p1(x1,y1),…,pm(xm,ym),
则:该线网的线长WireLength(N)用下述公式估计,
WireLength ( N ) = ( max l &Element; { 1 , . . . , m } ( x l ) - min l &Element; { 1 , . . . , m } ( x l ) ) + ( max l &Element; { 1 , . . . , m } ( y l ) - min l &Element; { 1 , . . . , m } ( y l ) )
总线长估计值为:
TotalWireLength = &Sigma; N = 1 L WireLength ( N ) , L为线网的个数
(4.5).用下列公式评价布局Q,得到目标函数值CostQ
CostQ=Area+λ×TotalWireLength+ω×Rs2
其中:
Area = max { x i } i &Element; [ 1 . . . n ] &times; max { y i } i &Element; [ 1 . . . n ]
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α
AP &alpha; = 1 cos t Q 1 &le; cos t Q exp ( - ( cos t Q 1 - cos t Q ) &CenterDot; cos t &alpha; / cos t smooth K &CenterDot; ( &alpha; - 1 ) ) cos t Q 1 > cos t Q
其中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
&alpha; k = ( &alpha; k - 1 - 1 ) &times; 0.95 + 1 k > 0 6 k = 0
若:α≥1,则以当前的拓扑结构A作为初始布局的拓扑结构,求解下一个近似问题;
若:α<1,则当前布局即为最终布局,作为原问题实例的最终解输出。
所述的步骤(4.1)中计算模块i在近似问题中的实际大小wik),hik)可按下式中的任一式计算:
w i ( &alpha; k ) = w i &alpha; k h i ( &alpha; k ) = h i &alpha; k
w i ( &alpha; k ) = w i 1 / &alpha; k h i ( &alpha; k ) = h i 1 / &alpha; k
w i ( &alpha; k ) = w &OverBar; + 1 &alpha; k ( w i - w &OverBar; ) , w i &GreaterEqual; w &OverBar; , w &OverBar; = 1 n &Sigma; i w i w &OverBar; - 1 &alpha; k ( w &OverBar; - w i ) , w i < w &OverBar; , w &OverBar; = 1 n &Sigma; i w i h i ( &alpha; k ) = h &OverBar; + 1 &alpha; k ( h i - h &OverBar; ) , h i &GreaterEqual; h &OverBar; , h &OverBar; = 1 n &Sigma; i h i h &OverBar; - 1 &alpha; k ( h &OverBar; - h i ) , h i &le; h &OverBar; , h &OverBar; = 1 n &Sigma; i h i .
在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 &Element; [ 1 . . . m ] , i &Element; [ i . . . n ] , } ,其中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 &OverBar; = 1 4 &Sigma; i w i , h &OverBar; = 1 4 &Sigma; 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   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)
Figure C20041003078700161

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

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106528923A (zh) * 2016-09-27 2017-03-22 北京深维科技有限公司 一种芯片全局布局方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
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 广东工业大学 一种基于连线总和最小的芯片布局方法

Cited By (2)

* Cited by examiner, † Cited by third party
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