CN103714384A - 基于移动模式序列与遗传禁忌的集成电路的布图方法 - Google Patents
基于移动模式序列与遗传禁忌的集成电路的布图方法 Download PDFInfo
- Publication number
- CN103714384A CN103714384A CN201310733464.9A CN201310733464A CN103714384A CN 103714384 A CN103714384 A CN 103714384A CN 201310733464 A CN201310733464 A CN 201310733464A CN 103714384 A CN103714384 A CN 103714384A
- Authority
- CN
- China
- Prior art keywords
- module
- fitness
- move mode
- value
- indi
- 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
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种基于移动模式序列与遗传禁忌的集成电路布图方法,其特征在于:首先初始化种群中个体的宽和高、移动模式、旋转模式,而后根据移动模式序列的方法计算出个体的面积代价,适应度。然后应用遗传算法的选择算子,之后运用禁忌搜索进行局部搜索,最后运用交叉、变异算子。当然,每次变更模块顺序、移动模式、旋转模式后均要用移动模式序列的方法对个体重新计算适应度。本发明对于求解超大规模集成电路方面有很多的优势,还可以扩展到求解其他组合优化问题上。
Description
技术领域
本发明涉及物理设计布图规划,具体涉及一种基于移动模式序列(moving modal sequence,MMS)与遗传禁忌(Memetic algorithm)集成电路布图方法。
背景技术
布图规划(floorplanning)是超大规模集成电路(very large scale integration,VLSI)物理设计的关键环节,其结果对最终芯片的尺寸和全局互连结构有着重要影响。随着技术的日新月异,芯片设计的复杂度飞速增长,对芯片的尺寸和内部互连性能的要求也越来越高,这使得布图规划的作用尤为重要。针对布图规划问题,已有许多学者应用不同的数学工具提出了多种算法,包括最小分割算法、分级设计方法、解析型算法及随机优化算法等。随机优化算法的基本操作是对每次产生的新解进行评估,保留较优的解。由于它能够针对问题的特点和复杂性进行特定操作,设计灵活,可保证解的最优性,因而受到广泛的关注。
随机优化算法的核心是设计布图表示方法,即设计一种表示布局结果的编码。已有的布图表示方法可分为两大类:二分布图表示(slicing)和非二分布图表示(nonslicing)。二分布图表示通过使用垂直或水平的划分线将布图区域递归二划分为若干子区域,每一子区域有且仅有一个模块。代表方法有二叉树表示、规范波兰表达式方 法、规范后缀表达式方法等。这是最简单的一类方法、它的解空间较小,因而求解速度较快。但由于大部分的布图问题都不具有二规划分结构,使得其适用范围较小。与此相比,非二分布图表示更具有一般性,也更加灵活,可获得更高的面积利用率和更优的互连性能,因此目前的研究均集中在非二分布图表示方法的设计上。代表方法有序列对、有界分割网格、O-tree、B*-tree、角模块序列、传递闭包图、双生二元序列、角序列等。
对于布图规划问题已研究的算法大都采用模拟退火法,很少采用进化算法优化。这里主要认为是由于非二分布图表示的随机优化方法的搜索空间均是非凸的,不利于进化算法,而且其存储量也很大。
目前文献中提出的大量求解布图规划的算法均是基于有序列对、有界分割网格、O-tree、B*-tree等框架之下,用到的算法有遗传算法,粒子群算法以及在粒子群的框架下加入交叉,变异等策略。其中,遗传算法是最常用的一种元启发式算法。更广义的地说,遗传算法属于一种进化算法,由于进化算法与传统优化方法相比,具有简单、通用、鲁棒性强和便于并行化处理等优点,已被广泛应用于数值优化、组合优化、分类器设计等领域。但实践也表明,仅仅使用以遗传算法为代表的进化算法来求解这类问题是不够的,还必须更加深层次地问挖掘和利用生物的智能资源。在遗传算法中,用于产生子代的个体是根据适应度从整个种群中选择出来的,因此必须预先确定整个种群的适应度,事实上,自然选择本身是一种局部现象,它只与个体所在的局部环境有关。也就是说,某一阶段,自然进化是一个局部过程,它 通过渐渐扩散,才使得信息为全局共享。因此,仅仅用遗传算法求解布图问题不能很好的模仿生物处理事物的智能,另外遗传算法还有易早熟收敛、收敛速度慢、稳定性差等缺点,从而无法得到好的项目进度计划。
发明内容
本发明的目的是针对上述不足,提供一种基于移动模式序列与遗传禁忌的集成电路布图方法,它基于移动模式序列,利用全局搜索和局部搜索的优化方法对布图规划问题进行求解,从而能够更有效地得到最优解。
本发明的技术方案是这样实现的:基于移动模式序列与遗传禁忌的集成电路布图方法,其特征是:包括如下步骤:
步骤101:开始进行参数设定,N为遗传算法中种群数目,M为每个种群中个体数目,H为一常量,设为100,用来除以每个个体面积代价值,从而得到该个体适应度;RX,RY分别表示放置矩形模块的二维平面内横坐标的最大值,纵坐标的最大值;T表示输入数据的txt文档数据列数,用于表示数组的列;maxgen表示进化的最大代数,pc表示两两交叉概率,pm表示变异概率;R为禁忌表的长度;
步骤102:gen=0,初始化种群中模块顺序,有M个模块,随机打乱顺序保存起来,而后根据这些不同的顺序初始化种群中个体的宽、高,随机产生个体的移动模式、旋转模式;其中group[i].indi[j].*,表示第i个种群的第j个个体的属性,其中*可以为w,h,m,n,x,y,则分别表示第j个模块的宽、高,移动模式中的数值为0,1,2,3中的一值, 旋转模式中用0表示不旋转,1表示矩形模块的长和宽互换,模块左下角横坐标,左下角纵坐标;group[i].cost和group[i].fitness分别表示第i个种群的面积代价和适应度;LTR[j].*,Edgy[j].*,其中*可以表示为xr,yb,yt,分别表示第j个模块平行y轴放置时,右边界横坐标,左边界下端点的纵坐标,左边界上端点的纵坐标;BTT[j].*,Edgx[j].*,其中*可以表示为xl,xr,yt,分别表示第j个模块平行x轴放置时,下边界左端点横坐标,下边界右端点的横坐标,下边界的纵坐标;
步骤103:将初始化后的个体根据移动模式和旋转模式在二维平面内进行放置,从而计算出每个个体的面积代价以及适应度;
步骤104:是否满足条件gen<maxgen,若是,则转向步骤111,输出最优值,否则转向步骤105;
步骤105:用轮盘赌对个体进行选择;
步骤106:禁忌搜索进行局部优化;将选择后的个体作为初始解,置空禁忌表,j=0,用2-opt进行邻域搜索,相当于变异,每次变其模块顺序或者移动模式,用移动模式序列计算适应度,将适应度最大的一个候选解作为当前解,j自动加1,重复邻域搜索的过程,直至满足终止条件;以此产生交叉、变异的初始种群;
步骤107:随机产生(0,1)之间的随机数t,若t<pc,则随机选择两不同个体进行两点交叉,并用移动模式序列计算适应度.重复步骤107,直至满足终止条件;pc为交叉概率;
步骤108:随机产生(0,1)之间的随机数t,若t<pm,则随机选择一个个体进行单点变异,用移动模式序列计算适应度.重复步 骤108,直至满足终止条件;pm为变异概率;
步骤109:将所得到的种群按适应度从高到低进行排序,并将每代中的第一个个体存放在一结构体数组中,便于保留历代中的最优个体;
步骤110:gen自动加1,转步骤104;
步骤111:输出最优结果,结束循环。
所述步骤106,包括以下步骤:
步骤201:开始进行禁忌搜索;
步骤202:参数设定,置空禁忌表;j=0,将选择算子选择后的种群作为初始种群,并对种群中的每个个体进行禁忌搜索,将当前个体作为最优个体;对于每个个体进行下一步骤;
步骤203:是否到达迭代步数,若是,则将最优解保存,否则转向步骤204;
步骤204:采用2-opt的方法进行更新,即是将个体中的任意两个模块的顺序进行交换的方法进行优化;
步骤205:产生当前邻域解,选出候选解,并将候选解中适应度最大的候选解替代原最佳候选解,更新禁忌表;
步骤206:j=j+1,转向步骤203;
步骤207:保留最优解并终止循环。
所述步骤103,106,107,108用到的移动模式序列计算适应度,有如下步骤:
步骤301:开始移动模式序列适应度的计算;
步骤302:初始化M个个体的长、宽,随机产生移动模式,旋转模式;
步骤303:令i=0,将M个个体中的第0个模块放到第一象限的左下角,即令该模块的左下角点的坐标为(0,0),并初始化已摆放模块的最小矩形包络的右边界RX,上边界RY,以及按从左到右顺序和从下到上顺序记录已放置好的模块的LTR[0],BTT[0]中的各参数值;
步骤304:i=1,判断是否满足终止条件i<M,若是则转向步骤305,否则转步骤312;
步骤305:j=i-1,根据个体移动模式m的值:若m的值为0,则转向步骤306;若m的值为1,则转向步骤307;若m的值为2,赋初值indi[i].x=max(0,RX-indi[i].w),indi[i].y=RY,转向步骤308;若m的值为3,赋初值indi[i].y=max(0,RY-indi[i].h),indi[i].x=RX,转向步骤309;
步骤306:给Edgx[i]各个参数分别赋值为0,indi[i].w,RY,若Edgx[i]非上覆盖BTT[j],则令j=j-1,并转向步骤306;否则令indi[i].y=BTT[j].yt.转向步骤310;
步骤307:给Edgy[i]各个参数分别赋值为RX,0,indi[i].h,若Edgy[i]非右覆盖LTR[j],则令j=j-1,并转向步骤307;否则令indi[i].x=LTR[j].xr.转向步骤310;
步骤308:模块达到下紧的时候,再将其向左移动,以达到左下紧状态,即是模块不能向左、向下移动的状态,转向步骤310;
步骤309:模块达到左紧的时候,再将其向下移动,以达到左下 紧状态,即是模块不能向左、向下移动的状态,转向步骤310;
步骤310:更新各个参数值。更新LTR,BTT中各个变量的值;
步骤311:令i=i+1,转向步骤304进行判断;
步骤312:计算出该个体的面积代价和适应度;
步骤313:结束循环。
本发明与现有的技术相比计较具有以下优点:
1.本发明基于一种新的非二分布图表示方法——移动模式序列(moving modal sequences,MMS),使得它的搜索空间是凸的,为进化算法中交叉算子的设计提供了平台。
2.本发明基于任何一个布局都可以通过迭代的向左和向下移动模块而得到左下紧布局,且所得到的左下紧布局的面积不会大于原始布局的面积,因此本发明用的移动模式序列的方法可以保证所得的布局为左下紧布局。
3.本发明将全局搜索与局部搜索相结合,设计了一种基于移动模式序列的文化基因算法的超大规模集成电路布图方法。遗传算法是基于它具有全局搜索能力,它的主要特点是模拟达尔文生物进化论的自然选择和遗传学机理“适者生存”的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。可以直接对结构对象进行操作,具有内在的隐并行性和更好的全局寻优能力,但易达到局部最优而产生“早熟”现象。而禁忌搜索具有良好的局部搜索能力,通过引用一个灵活的存储结构和相应的禁忌准则来避免迂回搜索,并通过藐视准则来特免一些被禁忌的优 良状态,进而保证多样性的有效搜索,避免遗传算法达到局部最优。仿真实验结果表明,本发明提出的基于移动模式序列与遗传禁忌的超大规模集成电路布图方法能够有效的求解布图问题。
下面结合实例附图对本发明作进一步说明:
附图说明
图1是移动模式序列的定义图;
图2是本发明的实现总流程图;
图3是禁忌搜索流程图;
图4是移动模式序列到布局的转换流程图;
图5是移动模式序列中各种上覆盖,右覆盖类型图;
图6是MCNC数据集中apte的实验结果;
图7是MCNC数据集中xerox的实验结果;
图8是MCNC数据集中hp的实验结果;
图9是MCNC数据集中ami33的实验结果;
图10是GSRC数据集中10a的实验结果;
图11是GSRC数据集中10b的实验结果;
图12是GSRC数据集中10c的实验结果。
具体实施方式
本发明研究的布图方法,是为确定硬模块在芯片上的位置,使得芯片的某些性能,如芯片面积、模块之间的互连线总长等,得到优化。本发明求解的是如何放置模块,目标是最小化芯片的面积,并对标准问题库MCNC Benchmark进行测试。
如图2所示,
主流程图步骤特征是:
步骤101:开始进行参数设定,N为遗传算法中种群数目,M为每个种群中个体数目,H为一常量(此处设为100),用来除以每个个体面积代价值,从而得到该个体适应度。RX,RY分别表示放置矩形模块的二维平面内横坐标的最大值,纵坐标的最大值。T表示输入数据的txt文档数据列数,用于表示数组的列。maxgen表示进化的最大代数,pc表示两两交叉概率,pm表示变异概率。R为禁忌表的长度;
步骤102:gen=0,初始化种群中模块顺序,有M个模块,随机打乱顺序保存起来,而后根据这些不同的顺序初始化种群中个体的宽、高,随机产生个体的移动模式、旋转模式。其中group[i].indi[j].*,表示第i个种群的第j个个体的属性,其中*可以为w,h,m,n,x,y,则分别表示第j个模块的宽、高,移动模式中的数值为0,1,2,3中的一值,旋转模式中用0表示不旋转,1表示矩形模块的长和宽互换,模块左下角横坐标,左下角纵坐标;group[i].cost和group[i].fitness分别表示第i个种群的面积代价和适应度。LTR[j].*,Edgy[j].*,其中*可以表示为xr,yb,yt,分别表示第j个模块平行y轴放置时,右边界横坐标,左边界下端点的纵坐标,左边界上端点的纵坐标。BTT[j].*,Edgx[j].*,其中*可以表示为xl,xr,yt,分别表示第j个模块平行x轴放置时,下边界左端点横坐标,下边界右端点的横坐标,下边界的纵坐标;
步骤103:将初始化后的个体根据移动模式和旋转模式在二维 平面内进行放置,从而计算出每个个体的面积代价以及适应度;
步骤104:是否满足条件gen<maxgen,若是,则转向步骤111输出最优值,否则转向步骤105;
步骤105:用轮盘赌对个体进行选择;
步骤106:禁忌搜索进行局部优化。将选择后的个体作为初始解,置空禁忌表,j=0,用2-opt进行邻域搜索,相当于变异,每次变其模块顺序或移动模式,用移动模式序列计算适应度,将适应度最大的一个候选解作为当前解,j自动加1,重复邻域搜索的过程,直至满足终止条件。以此产生交叉、变异的初始种群;
步骤107:随机产生(0,1)之间的随机数t,若t<pc(交叉概率),则随机选择两不同个体进行两点交叉,并用移动模式序列计算适应度.重复步骤107,直至满足终止条件;
步骤108:随机产生(0,1)之间的随机数t,若t<pm(变异概率),则随机选择一个个体进行单点变异,用移动模式序列计算适应度.重复步骤108,直至满足终止条件;
步骤109:将所得到的种群按适应度从高到低进行排序,并将每代中的第一个个体存放在一结构体数组中,便于保留历代中的最优个体;
步骤110:gen自动加1,转步骤104;
步骤111:输出最优结果,结束循环;
如图3所示,
所述步骤106,包括以下步骤:
步骤201:开始进行禁忌搜索;
步骤202:参数设定,置空禁忌表。j=0,将选择算子选择后的种群作为初始种群,并对种群中的每个个体进行禁忌搜索,将当前个体作为最优个体。对于每个个体进行下一步骤;
步骤203:是否到达迭代步数,若是,则将最优解保存,否则转向步骤204;
步骤204:采用2-opt的方法进行更新,即是将个体中的任意两个模块的顺序进行交换的方法进行优化;
步骤205:产生当前邻域解,选出候选解,并将候选解中适应度最大的候选解替代原最佳候选解,更新禁忌表;
步骤206:j=j+1,转向步骤203;
步骤207:保留最优解并终止循环;
如图4所示,
所述步骤103,106,107,108用到的移动模式序列计算适应度,包括如下步骤:
步骤301:开始移动模式序列适应度的计算;
步骤302:初始化M个个体的长、宽,随机产生移动模式,旋转模式;
步骤303:令i=0,将M个个体中的第0个模块放到第一象限的左下角,即令该模块的左下角点的坐标为(0,0),并初始化已摆放模块的最小矩形包络的右边界RX,上边界RY,以及按从左到右顺序和从下到上顺序记录已放置好的模块的LTR[0],BTT[0]中的各参数 值;
步骤304:i=1,判断是否满足终止条件i<M,若是则转向步骤305,否则转步骤312;
步骤305:j=i-1,根据个体移动模式m的值:若m的值为0,则转向步骤306;若m的值为1,则转向步骤307;若m的值为2,赋初值indi[i].x=max(0,RX-indi[i].w),indi[i].y=RY,转向步骤308;若m的值为3,赋初值indi[i].y=max(0,RY-indi[i].h),indi[i].x=RX,转向步骤309;
步骤306:给Edgx[i]各个参数分别赋值为0,indi[i].w,RY,若Edgx[i]非上覆盖BTT[j],则令j=j-1,并转向步骤306。否则令indi[i].y=BTT[j].yt.转向步骤310;
步骤307:给Edgy[i]各个参数分别赋值为RX,0,indi[i].h,若Edgy[i]非右覆盖LTR[j],则令j=j-1,并转向步骤307;否则令indi[i].x=LTR[j].xr.转向步骤310;
步骤308:模块达到下紧的时候,再将其向左移动,以达到左下紧状态,即是模块不能向左、向下移动的状态,转向步骤310;
步骤309:模块达到左紧的时候,再将其向下移动,以达到左下紧状态,即是模块不能向左、向下移动的状态,转向步骤310;
步骤310:更新各个参数值。更新LTR,BTT中各个变量的值;
步骤311:令i=i+1,转向步骤304进行判断;
步骤312:计算出该个体的面积代价和适应度;
步骤313:结束循环;
本发明的效果可以通过以下仿真实验进行验证:
1.实验运行环境和条件设置:
实验运行的环境:处理器为Intel(R)Core(TM)2CPU63001.86GHZ,1.97GB的内存,硬盘为250G,操作***为Microsoft windows XP Professional2002,编程环境为microsoft Visual C++6.0
实验条件设置:实验中测试了一套布图规划问题库,是对Floorplan_Data数据库中MCNC Benchmark数据中的9、10、11、33、49个硬模块以及GSRC数据库中10a,10b,10c进行实验,它们分别是:apte hard、xerox hard、hp hard、ami33hard、ami49hard,n10a,n10b,n10c。实验中进进化代数maxgen为200代,N为100,即指每个种群中有N个个体,交叉概率为pc=0.95,变异概率为pm=0.15.考虑到算法的随机性,求解问题中每个实例时,程序重复运行了10次,其测试结果如表一所示。表中是用布图结果的最小矩形包络面积和面积利用率两个指标来衡量布图结果的优劣。面积利用率的计算方式如下:
表一用文化基因算法求解MCNC GSRC问题集实例
表中实例中实验了MCNC问题集以及GSRC部分问题集,计算出了最优面积值以及10实验的平均值和平均运行时间。
为了便于说明问题,本发明所用方法与一些经典方法求解超大规模集成电路的MCNC数据集的性能比较,结果如表二:
表二
由于GSRC数据集使用较少,下面仅将部分结果与所得结果进行比较,如表三:
表三
从以上实验结果看,本发明是一种有效的布图方法,相对于目前存在的效果最好的方法,本发明不是更好的,但基于移动模式序列的遗传禁忌求解超大规模集成电路的布图是一个创新点,可能对发展其他进化算法求解超大规模集成电路的布图问题有很好的指导作用。
基于移动模式序列,应用遗传算法的选择,交叉,变异算子并在其框架下应用禁忌搜索对面积进行优化。
现对移动模式序列作一简要介绍:如图1所示,将平面划分为下边界和右边界,分别固定为x轴,y轴,所有模块的移动范围均在第一象限。第一个需排放的模块放置在第一象限的左下角,即该模块的左下角的坐标为(0,0)。对于第i个需摆放的模块,要放在i-1个模块的矩形包络的上或侧面;第一种位置的编号为0,它表示将该模块放在包络上边界的左方,即令该模块左下角的横坐标为0,纵坐标为包络的上边界,这i个模块已构成左紧布局,即是在其他模块不移动的情况下不可再向左移,因此只能将该模块向下移构成下紧布局;第二种位置的编号为1,它表示将模块放在包络右边界的下方,即令该模块左下角的横坐标为包络的右边界,纵坐标为0,这i个模块已构成一种下紧布局,即是在其他模块不移动的情况下不可再向下移,因此只能将该模块向左移动以构成左紧布局;第三种位置的编号为 2,它表示将模块放在包络上边界的右方,即令该模块右下角的横坐标为包络的右边界,纵坐标为包络的上边界。当该模块的宽大于包络的宽时,其左边界就会处于第二象限。这时,必须将其向右移动,直到其左下角的横坐标为0。处于第三种位置的模块既可以向左移动也可以向下移动,但若向左移动的话,先达到左紧,则与第一种位置重复,故处于第三种位置的模块向下移动的优先级高于向左移动的优先级,即先向下移动到不能移动为止,而后向左移动,直到达到左下紧布局为止;第四种位置编号为3,它表示将放在包络右边界的上方,即令该模块左上角的横坐标为包络的右边界,纵坐标为包络的上边界。当该模块的高大于包络的高时,其下边界就会处于第四象限。这时,必须将其向上移动,直至其左下角的纵坐标为0.处于第四种位置的模块既可以向下移动也可以向左移动,但若向下移动的话,先达到下紧,则与第二种位置重复,故处于第四种位置的模块向左移动的优先级高于向下移动的优先级,即先向左移动到不能移动为止,而后向下移动,直到达到左下紧布局为止。
移动模式使模块达到左下紧的过程中要用到上覆盖和右覆盖,其定义如图5所示:设平行于X轴的边界为Edgya,Edgyb,如果它们不满足Edgxa.xr≤Edgxb.xr,或者Edgxa.xl≥Edgxb.xr,或者Edgxa.yt≤Edgxb.yt则说明Edgya上覆盖Edgyb,即是模块A上覆盖模块B;设平行于X轴的边界为Edgya,Edgyb,如果它们不满足Edgya.yt≤Edgyb.yb,或者Edgya.yb≥Edgyb.yt,或者Edgya.xr≤Edgyb.xr,则说明Edgya右覆盖Edgyb,即是模块A右覆盖模块B;
实验结果的说明:
1)图6所示是数据集MCNC中apte,即0~8共九个模块,应用本发明的布图结果;
2)图7所示是数据集MCNC中xerox,即0~9共十模块,应用本发明的布图结果;
3)图8是MCNC数据集MCNC中hp,即0~10共十一个模块,应用本发明的布图结果;
4)图9是数据集MCNC中ami33,即0~32共三十三个模块,应用本发明的布图结果;
5)图10是数据集GSRC中10a,即0~9共十个模块,应用本发明的布图结果;
6)图11是数据集GSRC中10b,即0~9共十个模块,应用本发明的布图结果;
7)图12是数据集GSRC中10c,即0~9共十个模块,应用本发明的布图结果;
本实施例没有详细叙述的部分和英文缩写属本行业的公知常识,在网上可以搜索到,这里不一一叙述。
Claims (3)
1.基于移动模式序列与遗传禁忌的集成电路布图方法,其特征是:包括如下步骤:
步骤101:开始进行参数设定,N为遗传算法中种群数目,M为每个种群中个体数目,H为一常量,设为100,用来除以每个个体面积代价值,从而得到该个体适应度;RX,RY分别表示放置矩形模块的二维平面内横坐标的最大值,纵坐标的最大值;T表示输入数据的txt文档数据列数,用于表示数组的列;maxgen表示进化的最大代数,pc表示两两交叉概率,pm表示变异概率;R为禁忌表的长度;
步骤102:gen=0,初始化种群中模块顺序,有M个模块,随机打乱顺序保存起来,而后根据这些不同的顺序初始化种群中个体的宽、高,随机产生个体的移动模式、旋转模式;其中group[i].indi[j].*,表示第i个种群的第j个个体的属性,其中*可以为w,h,m,n,x,y,则分别表示第j个模块的宽,高,移动模式中的数值为0,1,2,3中的一值,旋转模式中用0表示不旋转,1表示矩形模块的长和宽互换,模块左下角横坐标,左下角纵坐标;group[i].cost和group[i].fitness分别表示第i个种群的面积代价和适应度;LTR[j].*,Edgy[j].*,其中*可以表示为xr,yb,yt,分别表示第j个模块平行y轴放置时,右边界横坐标,左边界下端点的纵坐标,左边界上端点的纵坐标;BTT[j].*,Edgx[j].*,其中*可以表示为xl,xr,yt,分别表示第j个模块平行x轴放置时,下边界左端点横坐标,下边界右端点的横坐标,下边界的纵坐标;
步骤103:将初始化后的个体根据移动模式和旋转模式在二维平面内进行放置,从而计算出每个个体的面积代价以及适应度;
步骤104:判断是否满足条件gen<maxgen,若是,则转向步骤111,输出最优值,否则转向步骤105;
步骤105:用轮盘赌对个体进行选择;
步骤106:禁忌搜索进行局部优化;将选择后的个体作为初始解,置空禁忌表,j=0,用2-opt进行邻域搜索,相当于变异,每次变其模块顺序或者移动模式,用移动模式序列计算适应度,将适应度最大的一个候选解作为当前解,j自动加1,重复邻域搜索的过程,直至满足终止条件;以此产生交叉、变异的初始种群;
步骤107:随机产生(0,1)之间的随机数t,若t<pc,则随机选择两不同个体进行两点交叉,并用移动模式序列计算适应度.重复步骤107,直至满足终止条件;pc为交叉概率;
步骤108:随机产生(0,1)之间的随机数t,若t<pm,则随机选择一个个体进行单点变异,用移动模式序列计算适应度.重复步骤108,直至满足终止条件;pm为变异概率;
步骤109:将所得到的种群按适应度从高到低进行排序,并将每代中的第一个个体存放在一结构体数组中,便于保留历代中的最优个体;
步骤110:gen自动加1,转步骤104;
步骤111:输出最优结果,结束循环。
2.根据权利要求1所述的基于移动模式序列与遗传禁忌的集成电路布图方法,其特征是:
所述步骤106,包括以下步骤:
步骤201:开始进行禁忌搜索;
步骤202:参数设定,置空禁忌表;j=0,将选择算子选择后的种群作为初始种群,并对种群中的每个个体进行禁忌搜索,将当前个体作为最优个体;对于每个个体进行下一步骤;
步骤203:是否到达迭代步数,若是,则将最优解保存,否则转向步骤204;
步骤204:采用2-opt的方法进行更新,即是将个体中的任意两个模块的顺序进行交换的方法进行优化;
步骤205:产生当前邻域解,选出候选解,并将候选解中适应度最大的候选解替代原最佳候选解,更新禁忌表;
步骤206:j=j+1,转向步骤203;
步骤207:保留最优解并终止循环。
3.根据权利要求书1所述的基于移动模式序列与遗传禁忌的集成电路布图方法,其特征是:
所述步骤103,106,107,108用到的移动模式序列计算适应度,有如下步骤:
步骤301:开始移动模式序列适应度的计算;
步骤302:初始化M个个体的长、宽,随机产生移动模式,旋转模式;
步骤303:令i=0,将M个个体中的第0个模块放到第一象限的左下角,即令该模块的左下角点的坐标为(0,0),并初始化已摆放模块的最小矩形包络的右边界RX,上边界RY,以及按从左到右顺序和从下到上顺序记录已放置好的模块的LTR[0],BTT[0]中的各参数值;
步骤304:i=1,判断是否满足终止条件i<M,若是则转向步骤305,否则转步骤312;
步骤305:j=i-1,根据个体移动模式m的值:若m的值为0,则转向步骤306;若m的值为1,则转向步骤307;若m的值为2,赋初值indi[i].x=max(0,RX-indi[i].w),indi[i].y=RY,转向步骤308;若m的值为3,赋初值indi[i].y=max(0,RY-indi[i].h),indi[i].x=RX,转向步骤309;
步骤306:给Edgx[i]各个参数分别赋值为0,indi[i].w,RY,若Edgx[i]非上覆盖BTT[j],则令j=j-1,并转向步骤306;否则令indi[i].y=BTT[j].yt.转向步骤310;
步骤307:给Edgy[i]各个参数分别赋值为RX,0,indi[i].h,若Edgy[i]非右覆盖LTR[j],则令j=j-1,并转向步骤307;否则令indi[i].x=LTR[j].xr.转向步骤310;
步骤308:模块达到下紧的时候,再将其向左移动,以达到左下紧状态,即是模块不能向左、向下移动的状态,转向步骤310;
步骤309:模块达到左紧的时候,再将其向下移动,以达到左下紧状态,即是模块不能向左、向下移动的状态,转向步骤310;
步骤310:更新各个参数值。更新LTR,BTT中各个变量的值;
步骤311:令i=i+1,转向步骤304进行判断;
步骤312:计算出该个体的面积代价和适应度;
步骤313:结束循环。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310733464.9A CN103714384B (zh) | 2013-12-24 | 2013-12-24 | 基于移动模式序列与遗传禁忌的集成电路的布图方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310733464.9A CN103714384B (zh) | 2013-12-24 | 2013-12-24 | 基于移动模式序列与遗传禁忌的集成电路的布图方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103714384A true CN103714384A (zh) | 2014-04-09 |
CN103714384B CN103714384B (zh) | 2017-03-01 |
Family
ID=50407339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310733464.9A Active CN103714384B (zh) | 2013-12-24 | 2013-12-24 | 基于移动模式序列与遗传禁忌的集成电路的布图方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103714384B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033510A (zh) * | 2018-06-14 | 2018-12-18 | 佛山市顺德区中山大学研究院 | 基于遗传算法的三维集成电路互连线长度优化方法及装置 |
CN109543217A (zh) * | 2018-10-16 | 2019-03-29 | 成都华微电子科技有限公司 | 串行等效的fpga并行布局方法 |
CN109726479A (zh) * | 2018-12-29 | 2019-05-07 | 南京宁麒智能计算芯片研究院有限公司 | 一种三维片上网络垂直通道的部署方法 |
US10628627B2 (en) | 2017-11-15 | 2020-04-21 | Industrial Technology Research Institute | Thermal estimation device and thermal estimation method |
CN111268564A (zh) * | 2020-02-10 | 2020-06-12 | 河北工业大学 | 基于迭代-遗传算法的智能天车防摆控制*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090307636A1 (en) * | 2008-06-05 | 2009-12-10 | International Business Machines Corporation | Solution efficiency of genetic algorithm applications |
CN103150459A (zh) * | 2013-01-10 | 2013-06-12 | 北京航空航天大学 | 一种基于遗传算法的低噪声放大器的优化设计方法 |
-
2013
- 2013-12-24 CN CN201310733464.9A patent/CN103714384B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090307636A1 (en) * | 2008-06-05 | 2009-12-10 | International Business Machines Corporation | Solution efficiency of genetic algorithm applications |
CN103150459A (zh) * | 2013-01-10 | 2013-06-12 | 北京航空航天大学 | 一种基于遗传算法的低噪声放大器的优化设计方法 |
Non-Patent Citations (3)
Title |
---|
NAKAYA S ETAL.: "An adaptive genetic algorithm for VLSI floorplanning based on sequence-pair", 《IEEE INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS》 * |
刘静: "协同进化算法及其应用研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
符宁: "用于VLSI布局的计算智能方法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10628627B2 (en) | 2017-11-15 | 2020-04-21 | Industrial Technology Research Institute | Thermal estimation device and thermal estimation method |
CN109033510A (zh) * | 2018-06-14 | 2018-12-18 | 佛山市顺德区中山大学研究院 | 基于遗传算法的三维集成电路互连线长度优化方法及装置 |
CN109033510B (zh) * | 2018-06-14 | 2023-10-13 | 佛山市顺德区中山大学研究院 | 基于遗传算法的三维集成电路互连线长度优化方法及装置 |
CN109543217A (zh) * | 2018-10-16 | 2019-03-29 | 成都华微电子科技有限公司 | 串行等效的fpga并行布局方法 |
CN109543217B (zh) * | 2018-10-16 | 2023-05-02 | 成都华微电子科技股份有限公司 | 串行等效的fpga并行布局方法 |
CN109726479A (zh) * | 2018-12-29 | 2019-05-07 | 南京宁麒智能计算芯片研究院有限公司 | 一种三维片上网络垂直通道的部署方法 |
CN111268564A (zh) * | 2020-02-10 | 2020-06-12 | 河北工业大学 | 基于迭代-遗传算法的智能天车防摆控制*** |
Also Published As
Publication number | Publication date |
---|---|
CN103714384B (zh) | 2017-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108228972B (zh) | 确定用于可重配置逻辑器件的至少一个电路的布置的方法 | |
Wang | The hybrid genetic algorithm with two local optimization strategies for traveling salesman problem | |
CN103714384A (zh) | 基于移动模式序列与遗传禁忌的集成电路的布图方法 | |
Hofmeyer et al. | Coevolutionary and genetic algorithm based building spatial and structural design | |
Kampolis et al. | A multilevel approach to single-and multiobjective aerodynamic optimization | |
Wang et al. | SSIEA: a hybrid evolutionary algorithm for supporting conceptual architectural design | |
Rakha et al. | Generative urban modeling: a design work flow for walkability-optimized cities | |
CN107330214A (zh) | 基于离散化与启发式进化算法的空间布局优化方法 | |
US6512999B1 (en) | Apparatus for and method of simulating turbulence | |
CN106527381A (zh) | 一种面向并行批处理机动态调度的快速评估方法 | |
Hua | Irregular architectural layout synthesis with graphical inputs | |
CN115859899A (zh) | 一种多驱动能力的集成电路标准单元版图迁移的方法 | |
CN104574517B (zh) | 三维模型的边界面网格单元的处理方法和装置 | |
CN108764741B (zh) | 用于确定工厂设定区域内的生产设备布局的方法及装置 | |
Shang et al. | Spatial scheduling optimization algorithm for block assembly in shipbuilding | |
Chiou et al. | Circular-contour-based obstacle-aware macro placement | |
Lee et al. | Finding an optimal LEGO® brick layout of voxelized 3D object using a genetic algorithm | |
CN114491726A (zh) | 建筑性能分析(bpa)机器:用于促进建筑能量分析的机器学习 | |
Du et al. | A review on automatic generation of architectural space layouts with energy performance optimization | |
CN103714211B (zh) | 基于移动模式序列与多智能体粒子群的集成电路布图方法 | |
Doulgerakis | Genetic programming+ unfolding embryology in automated layout planning | |
CN101894063A (zh) | 一种用于微处理器功能验证的测试程序生成方法及装置 | |
Jain et al. | Non slicing floorplan representations in VLSI floorplanning: A summary | |
CN103810322B (zh) | 基于最优适应启发式序列与组织进化的集成电路布图方法 | |
Miller et al. | Embedding-based placement of processing element networks on FPGAs for physical model simulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |