基于移动模式序列与多智能体粒子群的集成电路布图方法

文档序号:6525898阅读:98来源:国知局
基于移动模式序列与多智能体粒子群的集成电路布图方法
【专利摘要】本发明公开一种基于模式移动序列与多智能体粒子群的集成电路布图方法,属于物理设计布图规划【技术领域】。本发明将模式移动序列作为编码方法,将多智能体系统与粒子群算法相结合,用于求解集成电路布图问题,其特征在于:首先根据采用随机生成的方法初始化智能体网格中的每个智能体,然后设计了模式移动序列对每个智能体进行编码,最后设计了邻域竞争算子、粒子群算法、自学习算子对智能体进行优化,验证结果表明,本发明在评定求解集成电路布图问题方法效用的一个重要的方面:求最小矩形包络的面积,有优势,是一种有效的求解集成电路布图问题的方法,还能扩展到求解多目标的集成电路布图问题。
【专利说明】基于移动模式序列与多智能体粒子群的集成电路布图方法
【技术领域】
[0001]本发明涉及物理设计布图规划的一种方法,具体涉及一种基于移动模式序列(moving block sequence, MBS)与多智能体粒子群(mult1-agent particle swarmoptimization, MAPSO)的集成电路布图方法。
【背景技术】
[0002]布图规划(floorplanning)是超大规模集成电路(very large scaleintegration, VLSI)物理设计的关键环节,其结果对最终芯片的尺寸和全局互连结构有着重要影响。随着技术的日新月异,芯片设计的复杂度飞速增长,对芯片的尺寸和内部互连性能的要求也越来越高,这使得布图规划的作用尤为重要。针对布图规划问题,已有许多学者应用不同的数学工具提出了多种算法,包括最小分割算法、分级设计方法、解析型算法及随机优化算法等。随机优化算法的基本操作是对每次产生的新解进行评估,保留较优的解。由于它能够针对问题的特点和复杂性进行特定操作,设计灵活,可保证解的最优性,因而受到广泛的关注。
[0003]随机优化算法的核心是设计布图表示方法,即设计一种表示布局结果的编码。已有的布图表不方法可分为两大类:二分布图表不(slicing)和非二分布图表不(non-slicing)。二分布图表示通过使用垂直或水平的划分线将布图区域递归二划分为若干子区域,每一子区域有且仅有一个模块。代表方法有二叉树表不、规范波兰表达式方法、规范后缀表达式方法等。这是最简单的一类方法、它的解空间较小,因而求解速度较快。但由于大部分的布图问题都不具有二划分结构,使得其适用范围较小。与此相比,非二分布图表示更具有一般性,也更加灵活,可获得更高的面积利用率和更优的互连性能,因此目前的研究均集中在非二分布图表示方法的设计上。代表方法有序列对、有界分割网格、0-tree,B*-tree,角模块序列、传递闭包图、双生二元序列、角序列等。
[0004]对于布图规划问题已研究的算法大都采用模拟退火法,很少采用进化算法优化。这里主要认为由于非二分布图表示的随机优化方法的搜索空间均是非凸的,不利于进化算法,而且其存储量也很大。

【发明内容】

[0005]本发明的目的在于针对上述现有方法的不足,提出了一种基于模式移动序列与多智能体粒子群的集成电路布图方法,本方法能够解决技术背景中存在的不足,从而得到最优解和最优面积利用率的模块形状信息和移动模式序列。
[0006]本发明的技术方案是这样实现的:开始基于模式移动序列与多智能体粒子群的集成电路布图方法,其特征是:至少包括如下步骤:
[0007]步骤从101开始;
[0008]步骤102:参数设定:Β0Χκχ,Β0ΧΤΥ分别记录已摆放的模块最小矩形包络的右边界和上边界;LeftToRight和BottomToTop是两个数组,分别记录按从左到右和从下到上的顺序记录已放置好的模块的右边界和上边界,即LeftToRight包含有x、yb、yt, BottomToTop包含有xl、xr、y ;Edge//x和Edge〃Y分别记录平行于X轴和Y轴的位置信息;LsizeXLsize为多智能体的网格大小,t为大于或等于O的整数,表示第t代,Lt表示第t代智能体网格,Lt+1/2是Lt和Lt+1间的中间代智能体网格,Bestt是ΙΛΙΛ…,Lt中最优的智能体,CBestt是Lt中最优的智能体,SLssizeXsLssizeS自学习时的多智能体的网格大小,st表示为自学习时多智能体的代数,rl、r2指随机产生的O到I之间的实数,Li^.表示处在智能体网格第i行、第j列的智能体,energy (Li;J)表示智能体Li^的能量,Po为邻域竞争时的选择变异概率,cl和c2为粒子群算法中的加速因子,W为粒子群算法中线性递减的惯性权重,η为所有微粒的总数;
[0009]步骤103:初始化智能体网格L°,更新Best°,采用随机生成满足模块顺序、移动序列号、模块方向的智能体网络,例如有9个模块,则模块顺序采用随机生成没有重复的0-8之间的9个整数,移动序列号采用随机生成0-3之间的9个整数,模块方向采用随机生成0-1之间的9个整数;
[0010]步骤104:循环调用基于模式移动序列的算法对智能体网格中每个智能体进行编码;
[0011]步骤105:计算适应度函数,并搜索出智能体中的个体极值和全局最好值,令t=0 ;
[0012]步骤106:网格Lt中每个智能体执行邻域竞争算子,得到Lt+1/2,Li;Jmax表示智能体Li, j邻域中能量最大的智能体,如果energy (I^j) >energy (Li; jmax),则智能体继续存活在网格上,否则,必须死亡,空出的格点由交换LiJax的一部分而得到的新智能体占据,占据的方法由循环调用变异算法对每个智能体进行变异;
[0013]步骤107:对Lt+1/2中的每个智能体,将PSO算法作用在其上,进化得到Lt+1,对每个智能体的模块的摆放顺序采用PSO公式进行变化,对于模块的方向和模块的移动序列号采用单点交叉的方法,当当前代数t为偶数时,它们将和全局最好值的模块的方向和模块的移动序列号进行单点交叉,否则,它们将和个体极值的模块的方向和模块的移动序列号进行单点交叉,得到新的智能体网络;
[0014]步骤108:从 Lt+1 中找出 CBestt+1 ;
[0015]步骤109:将自学习算子作用在CBestt+1上,由CBestt+1循环调用变异产生新智能体SLssizeX SLssize,变异方法与步骤105中变异方法相同,ssize是自学习时智能体的大小,若智能体SLi, j满足自学习条件,不断执行将邻域竞争算子和PSO算法作用在新产生的智能体sLy上,邻域竞争算子和PSO算法分别与步骤106和步骤107中的邻域竞争算子和PSO算法相同,直到自学习算子结束,即达到自学习时的最大代数,将自学习结束后得到的全局最优值赋值给CBestt+1 ;
[0016]步骤110:如果 energy (CBestt+1) >energy (Bestt),则直接进入步骤 111 ;否则,转向步骤112 ;
[0017]步骤111 JECBestt+1 的值赋予 Bestt+1,转向步骤 113 ;
[0018]步骤112:把 Bestt 的值赋予 Bestt+1,把 Bestt 的值赋予 CBestt+1 ;
[0019]步骤113:如果不满足终止准则满足,即没有达到最大进化代数,令t自加1,转向步骤106 ;否则,转向步骤114 ;
[0020]步骤114:结 束基于模式移动序列与多智能体粒子群的集成电路布图方法。
【权利要求】
1.一种基于移动模式序列与多智能体粒子群的集成电路布图方法,其特征是:至少包括如下步骤: 步骤从101开始; 步骤102:参数设定:Β0Χκχ,Β0Χτy分别记录已摆放的模块最小矩形包络的右边界和上边界;LeftToRight和BottomToTop是两个数组,分别记录按从左到右和从下到上的顺序记录已放置好的模块的右边界和上边界,即LeftToRight包含有x、yb、yt, BottomToTop包含有xl、xr、y ;Edge//x和Edge〃Y分别记录平行于X轴和Y轴的位置信息;LsizeXLsize为多智能体的网格大小,t为大于或等于O的整数,表示第t代,Lt表示第t代智能体网格,Lt+1/2是Lt和Lt+1间的中间代智能体网格,Bestt是ΙΛΙΛ…,Lt中最优的智能体,CBestt是Lt中最优的智能体,SLssizeXsLssizeS自学习时的多智能体的网格大小,st表示为自学习时多智能体的代数,rl、r2指随机产生的O到I之间的实数,Li^.表示处在智能体网格第i行、第j列的智能体,energy (Lu)表示智能体Li^的能量,Po为邻域竞争时的选择变异概率,cl和c2为粒子群算法中的加速因子,W为粒子群算法中线性递减的惯性权重,η为所有微粒的总数;步骤103:初始化智能体网格L°,更新Best°,采用随机生成满足模块顺序、移动序列号、模块方向的智能体网络,例如有9个模块,则模块顺序采用随机生成没有重复的0-8之间的9个整数,移动序列号采用随机生成0-3之间的9个整数,模块方向采用随机生成0-1之间的9个整数; 步骤104:循环调用基于模式移动序列的算法对智能体网格中每个智能体进行编码; 步骤105:计算适应度函数,并搜索出智能体中的个体极值和全局最好值,令t=0 ; 步骤106:网格Lt中每个智能体执行邻域竞争算子 ,得到Lt+1/2,Li, ;ax表示智能体Li, j邻域中能量最大的智能体,如果energy (I^j) >energy (Li;jmax),则智能体继续存活在网格上,否则,必须死亡,空出的格点由交换LiJax的一部分而得到的新智能体占据,占据的方法由循环调用变异算法对每个智能体进行变异; 步骤107:对Lt+1/2中的每个智能体,将PSO算法作用在其上,进化得到Lt+1,对每个智能体的模块的摆放顺序采用PSO公式进行变化,对于模块的方向和模块的移动序列号采用单点交叉的方法,当当前代数t为偶数时,它们将和全局最好值的模块的方向和模块的移动序列号进行单点交叉,否则,它们将和个体极值的模块的方向和模块的移动序列号进行单点交叉,得到新的智能体网络; 步骤108:从Lt+1中找出CBestt+1 ; 步骤109:将自学习算子作用在CBestt+1上,由CBestt+1循环调用变异产生新智能体SLssize X SLssize,变异方法与步骤105中变异方法相同,ssize是自学习时智能体的大小,若智能体SLi, j满足自学习条件,不断执行将邻域竞争算子和PSO算法作用在新产生的智能体sLi;J上,邻域竞争算子和PSO算法分别与步骤106和步骤107中的邻域竞争算子和PSO算法相同,直到自学习算子结束,即达到自学习时的最大代数,将自学习结束后得到的全局最优值赋值给CBestt+1 ; 步骤110:如果energy (CBestt+1) Senergy(Bestt),则直接进入步骤111 ;否则,转向步骤 112 ; 步骤111 JECBestt+1的值赋予Bestt+1,转向步骤113 ; 步骤112:把Bestt的值赋予Bestt+1,把Bestt的值赋予CBestt+1 ;步骤113:如果不满足终止准则满足,即没有达到最大进化代数,令t自加1,转向步骤.106 ;否则,转向步骤114 ; 步骤114:结束基于模式移动序列与多智能体粒子群的集成电路布图方法。
2.根据权利要求1所述的一种基于移动模式序列与多智能体粒子群的集成电路布图方法,其特征是:所述步骤104,包括如下步骤: 步骤201:开始调用基于模式移动序列的算法对智能体网格中每个智能体进行编码; 步骤202:初始化每个模块的左下角坐标为(0,0),令
3.根据权利要求1所述的一种基于移动模式序列与多智能体粒子群的集成电路布图方法,其特征是:所述的步骤106,包括如下步骤: 输入:Li,Ziax(P) = Oi^m1,...,Iv1);输出 UP)= (c0, C1,…,Clri) Swap (X, y)表示交换x和y的取值,U (O, I)为0_1均匀分布的随机数,Random (η,i)是0,1,…,η-1中的一个随机整数且不等于i。 步骤301:开始进行 变异算子;
步骤 302:令 Lijj(P) — Li;Jmax(P),i — O ; 步骤303 --若U (O, I)〈Po,转向步骤304 ;否则,转向步骤306 ; 步骤 304:令 I — Random (n, i);
步骤 305:Swap (Ci, C1); 步骤 306:令 i — i+Ι ; 步骤307:若i〈n,则转步骤303 ;否则,转步骤308 ; 步骤308:结束变异算子。
4.根据权利要求1所述的一种基于移动模式序列与多智能体粒子群的集成电路布图方法,其特征是:所述的步骤107,包括如下步骤: 步骤401:开始PSO算法进行优化; 步骤402:初始化,令i — O ; 步骤403:计算每个智能体的适应度值; 步骤404:并找出个体极值和全局最优值; 步骤405:根据如下PSO公式的方程对微粒的速度和位置进行进化:
Vid(t+1) = WX Vid (t)+Cl Xrl X (Pid (t) -xid (t)) +c2 Xr2 X (Pgd(t) _xid(t))
xid (t+1) = xid (t)+Vid (t+1) 其中Vid (t)表示第t代的第i个个体的速度,Pid (t)表示第t代的第i个个体的个体极值,Pgd⑴表示第t代的第i个个体的全局最优值,Xid (t)表示第t代的第i个个体的微粒的个体值。 步骤406:对每个智能体中的微粒计算适应度值,更新个体极值和全局最优值。具体规则是:用它的适应度值xid和个体极值Pid比较,如果xid的适应度值大于Pid的适应度值,则xid替换掉Pid;对每个粒子,用它的适应度值xid和全局最优值Pgd比较,如果xid的适应度值大于Pgd的适应度值,则用xid替换掉Pgd ; 步骤 407:令 i — i+Ι ; 步骤408:如果满足结束条件(误差足够好或i>n-l)就转步骤409;否则,转向步骤 405 ; 步骤409:结束PSO算法的优化。
【文档编号】G06F17/50GK103714211SQ201310733462
【公开日】2014年4月9日 申请日期:2013年12月24日 优先权日:2013年12月24日
【发明者】刘静, 焦李成, 朱园, 韩二丽, 马文萍, 马晶晶 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1