CN103810322A - 基于最优适应启发式序列与组织进化的集成电路布图方法 - Google Patents
基于最优适应启发式序列与组织进化的集成电路布图方法 Download PDFInfo
- Publication number
- CN103810322A CN103810322A CN201310733368.4A CN201310733368A CN103810322A CN 103810322 A CN103810322 A CN 103810322A CN 201310733368 A CN201310733368 A CN 201310733368A CN 103810322 A CN103810322 A CN 103810322A
- Authority
- CN
- China
- Prior art keywords
- module
- org
- individuality
- tissue
- integrated circuit
- 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
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开一直基于最优适应启发式序列与组织进化的集成电路布图方法,属于物理设计布图规划技术领域。本发明将最优适应启发式序列作为编码和解码,与组织进化算法结合,用于求解超大规模集成电路布图方法,其特征在于:首先初始化每个个体,然后采用最优适应启发式序列对每个个体进行编码和解码,最后用设计的分裂算子、吞并算子、培训算子对组织进行优化,验证结果表明,本发明在评定求解超大规模集成电路布图规划问题方法效用的一个重要方面:求最优的芯片的面积利用率,有优势,是一种有效的求解超大规模集成电路布图规划问题的方法,还能扩展到求解多目标的超大规模集成电路布图规划问题。
Description
技术领域
本发明涉及物理设计布图规划的一种方法,具体涉及一种基于最优适应启发式序列(Best Fit Heuristic Sequence,BFHS)与组织进化(Organizational Evolutionary Algorithms,OEA)的集成电路布图方法。
背景技术
布图规划(floorplanning)是超大规模集成电路(very largescale integration,VLSI)物理设计的关键环节,其结果对最终芯片的尺寸和全局互连结构有着重要影响。随着技术的日新月异,芯片设计的复杂度飞速增长,对芯片的尺寸和内部互连性能的要求也越来越高,这使得布图规划的作用尤为重要。针对布图规划问题,已有许多学者应用不同的数学工具提出了多种算法,包括最小分割算法、分级设计方法、解析型算法及随机优化算法等。随机优化算法的基本操作是对每次产生的新解进行评估,保留较优的解。由于它能够针对问题的特点和复杂性进行特定操作,设计灵活,可保证解的最优性,因而受到广泛的关注。
随机优化算法的核心是设计布图表示方法,即设计一种表示布局结果的编码。已有的布图表示方法可分为两大类:二分布图表示(slicing)和非二分布图表示(non-slicing)。二分布图表示通过使用垂直或水平的划分线将布图区域递归二划分为若干子区域,每一子区域有且仅有一个模块。代表方法有二叉树表示、规范波兰表达式方法、规范后缀表达式方法等。这是最简单的一类方法、它的解空间较小,因而求解速度较快。但由于大部分的布图问题都不具有二划分结构,使得其适用范围较小。与此相比,非二分布图表示更具有一般性,也更加灵活,可获得更高的面积利用率和更优的互连性能,因此目前的研究均集中在非二分布图表示方法的设计上。代表方法有序列对、有界分割网格、O-tree、B*-tree、角模块序列、传递闭包图、双生二元序列、角序列等。
纵观这些方法都是单向布图方法,在布图过程中,仅仅面对模块序列进行布局,很少利用已布模块的反馈信息对将要放置的模块进行有效的启发式指导,这使得布图效率不高,计算时间随布图规模成指数增长。它们对软矩形模块的处理也很粗糙,只是任意选用几个备选模块代替软矩形模块,然后按照硬模块的布图方法进行布局,这样做只是取了软矩形模块形状变化范围内的几个离散点,破坏了软矩形模块形状变化的任意性和连续性,与实际情况不相符。
发明内容
本发明的目的在于针对上述现有方法的不足,提出了一种基于最优适应启发式序列与组织进化的集成电路布图方法,本方法能够解决技术背景中存在的不足,从而得到最优解和最优面积利用率的布局结果。
本发明的技术方案是这样实现的:
基于最优适应启发式序列与组织进化的集成电路布图方法,其特征是:具体步骤如下:
步骤101:开始基于最优适应启发式序列与组织进化的集成电路布图方法;
步骤102:参数设定:最大进化代数T,初始个体数num,合法组织所允许的最大个体数nummax,模块的长宽比的变化范围[min h_w,max h_w],最优个体的适应度COST,t为大于或等于0的整数,表示进化到第t代;
步骤103:初始化每个个体,更新最优值COST,令t=0,采用随机生成的方法产生模块的放置顺序,模块的长宽比序列,芯片的初始化宽度,如果存在硬直线边界模块,则循环调用预处理算法对硬直线边界模块进行预处理;
步骤104:循环调用基于最优适应启发式序列的算法对每个模块个体进行编码和解码;
步骤105:使每个个体成为一个组织,将分裂算子作用在组织上,分裂算子根据下面条件:
(orgp.num>nummax)or{(1<orgp.num≤nummax)and(U(0,1)<orgp.num/Nmember)}把一个组织orgp分裂成两个非空组织,其中num是一个合法组织中允许包含个体数目的最大值,U(0,1)是0到1之间的一个任意值,Nmember是所有组织中所有个体的总数,每个组织中的个体按适应度从大到小进行排列;
步骤106:将吞并算子作用在两个组织上,随机选择两个组织orgp1和orgp2,如果COST(orgp1)<COST(orgp2),则orgp1吞并orgp2,否则orgp2吞并orgp1,其中对两个组织采用吞并算子的具体规则如下:
假设组织orgp1吞并orgp2成一个新的组织orgc,这个新的组织由三部分组成:
1)orgp1中的所有个体;
2)由orgp1和orgp2根据下面公式生成orgp2.num/2个新的个体,membernew1:
令0≤i≤orgp2.num/2,0≤j≤n,membernew1[i].b=orgp2.member[0].b
3)随机生成orgp2.num/2个新个体,membernew2;
步骤107:将培训算子作用在从组织选出的个体,被选出的个体称为该组织的代表,按照组织中个体的排列顺序,第一个未被培训过的个体被选为代表,若所有的个体都已经被培训过则选择第一个个体为代表;对培训后的个体进行最优启发式序列编码和解码,找出最优个体。其中对每个组织的代表个体进行培训的具体规则如下:
对下面三步独立进行操作,每步执行5次;
1)改变模块的放置顺序:对模块b[i](0≤i≤n),从b中选择另一个模块与其交换位置;
2)改变模块的长宽比:对长宽比p[j](0≤j≤n),用[min h_w,max h_w]中的任意值替换它;
3)改变芯片的宽度:随机生成一个正实数代替W,每次改变后都可以得到一个新的个体,如果新的个体的COST小于选出的代表的COST,则用新的个体代替原来的个体,否则保留原有个体;
培训完以后,将培训的个体标记为1,表示该个体已经培训过;
步骤108:采用最优适应启发式序列对每个个体编码和解码,找出最优个体;
步骤109:如果满足结束条件,即超过最大进化代数,则转向步骤110;否则,令t自加1,并转向步骤105;
步骤110:输出布图结果;
步骤111:结束基于最优适应启发式序列与组织进化的集成电路布图方法。
所述的步骤103,包括如下步骤:
步骤201:开始对硬直线边界模块预处理;
步骤202:模块的序列为M={M0,M1,……,Mn-1},令i=0;
步骤203:判断模块Mi是硬直线边界模块还是软矩形模块,如果是硬直线边界模块,转向步骤204;否则,转向步骤209;
步骤204:当Mi是硬直线边界模块时,通过旋转模块操作,使得直线边界模块填补尽可能的软矩形模块,即模块的下边需要填补的模块最少k;
步骤205:令m=1;
步骤206:从软矩形模块中选择与缺失模块区面积之差的绝对值最小的软矩形模块Mj,并且Mj必须满足,Mj高为y=qy,宽x=area/y其中,area表示的是软矩形模块的面积,缺失模块区的宽为qx,高为qy,则minh_w≤y/x≤maxh_w;
步骤207:令n=n-1,m=m+1;
步骤208:如果m>k,转向步骤209;否则,转向步骤206;
步骤209:i=i+1;
步骤210:如果i<n,转向步骤203;否则,转向步骤211;
步骤211:结束对硬直线边界模块的预处理。
所述的步骤104,包括如下步骤:
步骤301:开始基于最优适应启发式的算法,对模块进行编码和解码;
步骤302:第一个模块b[0]被放在第一象限的左下角,它的长宽比为p[0]。芯片的初始化宽度为W,令i=0;
步骤303:每个模块都遵循左下紧布局原则,放置在顶线上最低最适合的位置上。只有一种情况例外:当最低线段和次最低线段相邻,且最低段在次最低段的左边时,模块遵循右下紧布局原则放置。软矩形模块的最低最适合的位置满足两个条件:(1)在顶线上,该位置是所有能放置该软矩形模块的最低段;(2)在长宽比允许的限度内,软矩形模块能放置在该位置上,并且尽可能占满该位置,使它留下的空白区最少。
步骤304:判断ylowest(即放置第一排模块)是否为0。如果ylowest为0,转向步骤305;否则,转向步骤308;
步骤305:判断要放置的模块是不是软矩形模块,如果是软模块,转向步骤306;否则,转向步骤307;
步骤306:软矩形模块的形状由它的初始长宽比决定;
步骤307:放置模块,当被放置的模块的右边界超出了芯片的右边界(Rside)的限制时,用该模块的右边界更新Rside的值,至此,第一排模块放置完成,以后再放置的任何模块都不允许超出Rside的限制。转向步骤311;
步骤308:判断要放置的模块是不是软矩形模块,如果是软模块,转向步骤309;否则,转向步骤310;
步骤309:调整软矩形模块的长宽比;
步骤310:为模块寻找最低最合适的位置放置模块。依次在最低线段、次最低线段以及最低线段和次最低线段相邻的三种情况中寻找,如果找到,则放置该模块;否则,抬高最低线段,重新开始寻找,直到模块被放置在最优合适的位置上;
步骤311:每放置一个模块或抬高最低线段后,都更新顶线;
步骤312:i=i+1;
步骤313:如果i<n,转向步骤303;否则,转向步骤314;
步骤314:被放置完时,结束最优适应启发式序列的编码和解码。
本发明与现有的技术相比具有以下优点:1)本发明根据布图规划问题和最优适应启发式序列的特点,设计分裂算子、吞并算子和培训算子。吞并算子体现了组织间的竞争关系,较差的组织将被别的组织吞并,以使好的组织有更大的发展空间,分裂算子控制每个组织的规模,以使得计算量分配更合理,培训算子是组织提高自身能力的方式。设计的三个算子使组织进化算法适合于求解超大规模集成电路布图规划问题,从而更快的得到更好的布局结果;2)本发明提出了一种新的布图表示方法—最优适应启发式序列,它是双向布图方法,既面向模块序列,又面向已布模块的信息,充分利用已布模块的反馈信息对将要放置的模块的位置和形状进行启发式指导,使之以最优的形状放置在最合适的位置上。在该方法中,根据位置的需要,软矩形模块的长宽比可以取变化范围内的任意值,这保证了软矩形模块形状变化的任意性和连续性;3)本发明在评定求解超大规模集成电路布图规划问题方法的一个重要方面:求解到最优的芯片的面积利用率,有优势,是一种有效的求解超大规模集成电路布图规划问题的方法。
仿真实验结果表明,本发明提出的基于最优适应启发式序列与组织进化的集成电路布图方法有效的求解超大规模集成电路布图规划问题。
附图说明
图1是基于最优适应启发式序列与组织进化的集成电路布图方法的主流程图;
图2是硬直线边界模块的旋转示意图;
图3是硬直线边界模块填充缺失区示意图;
图4是顶线示意图;
图5是对硬直线边界模块进行预处理的流程图;
图6是对每个模块采用最优适应启发式序列进行编码和解码的流程图;
图7是软矩形模块布图规划问题的部分最优结果;
图8是软矩形模块与硬直线边界模块混合布图规划问题最优结果;
具体实施方式
本发明研究的超大规模集成电路布图问题,是指在最优适应启发式序列要求达到所有模块都处于最合适位置的情况下,将所有的模块全部摆放在第一象限,并且要求它们之间不会出现重叠,使包围所有模块的包络的面积达到最小。超大规模集成电路布图问题分为很多种,本发明求解的单目标、软矩形模块以及软矩形模块与硬直线边界模块的混合的超大规模集成电路布图问题,目标是使芯片的面积利用率最优,并对两个标准问题库MCNC和GSRC的数据集进行测试。
本发明根据表示模块特点的初始化每个个体,每个个体包含三个元素:BFHS,COST,Treated(记录该个体是否被培训过)。搜索每个个体中是否包含硬直线边界模块,如果包含有硬直线边界模块,则旋转模块,使直线边界模块填补尽可能的少(旋转前后见附图2),对旋转后的模块填充软矩形模块,填充情况见附图3。对每个个体采用最优适应启发式序列进行编码和解码,其中主要是找出顶线(the topline)和选择左下紧布局或者右下紧布局处理,顶线的示意图见附图4,其中左下紧布局是:在一个布局中,如果任何一个模块在不移动其它模块的情况下,既不能水平向左移,又不能竖直向下移动;右下紧是:在一个布局中,如果一个模块在不移动其它模块的情况下,既不能水平向右移动,又不能竖直向下移动。
如图1所示,
主流程图步骤特征是:
步骤101:开始基于最优适应启发式序列与组织进化的集成电路布图方法;
步骤102:参数设定:最大进化代数T,初始个体数num,合法组织所允许的最大个体数nummax,模块的长宽比的变化范围[min h_w,max h_w],最优个体的适应度COST,t为大于或等于0的整数,表示进化到第t代;
步骤103:初始化每个个体,更新最优值COST,令t=0,采用随机生成的方法产生模块的放置顺序,模块的长宽比序列,芯片的初始化宽度,如果存在硬直线边界模块,则循环调用预处理算法对硬直线边界模块进行预处理;
步骤104:循环调用基于最优适应启发式序列的算法对每个模块个体进行编码和解码;
步骤105:使每个个体成为一个组织,将分裂算子作用在组织上,分裂算子根据下面条件:
(orgp.num>nummax)or{(1<orgp.num≤nummax)and(U(0,1)<orgp.num/Nmember)}把一个组织orgp分裂成两个非空组织,其中num是一个合法组织中允许包含个体数目的最大值,U(0,1)是0到1之间的一个任意值,Nmember是所有组织中所有个体的总数,每个组织中的个体按适应度从大到小进行排列;
步骤106:将吞并算子作用在两个组织上,随机选择两个组织orgp1和orgp2,如果COST(orgp1)<COST(orgp2),则orgp1吞并orgp2,否则orgp2吞并orgp1,其中对两个组织采用吞并算子的具体规则如下:
假设组织orgp1吞并orgp2成一个新的组织orgc,这个新的组织由三部分组成:
1)orgp1中的所有个体;
2)由orgp1和orgp2根据下面公式生成orgp2.num/2个新的个体,membernew1:
令0≤i≤orgp2.num/2,0≤j≤n,membernew1[i].b=orgp2.member[0].b
3)随机生成orgp2.num/2个新个体,membernew2;
步骤107:将培训算子作用在从组织选出的个体,被选出的个体称为该组织的代表,按照组织中个体的排列顺序,第一个未被培训过的个体被选为代表,若所有的个体都已经被培训过则选择第一个个体为代表;对培训后的个体进行最优启发式序列编码和解码,找出最优个体。其中对每个组织的代表个体进行培训的具体规则如下:
对下面三步独立进行操作,每步执行5次;
1)改变模块的放置顺序:对模块b[i](0≤i≤n),从b中选择另一个模块与其交换位置;
2)改变模块的长宽比:对长宽比p[j](0≤j≤n),用[min h_w,max h_w]中的任意值替换它;
3)改变芯片的宽度:随机生成一个正实数代替W,每次改变后都可以得到一个新的个体,如果新的个体的COST小于选出的代表的COST,则用新的个体代替原来的个体,否则保留原有个体;
培训完以后,将培训的个体标记为1,表示该个体已经培训过;
步骤108:采用最优适应启发式序列对每个个体编码和解码,找出最优个体;
步骤109:如果满足结束条件,即超过最大进化代数,则转向步骤110;否则,令t自加1,并转向步骤105;
步骤110:输出布图结果;
步骤111:结束基于最优适应启发式序列与组织进化的集成电路布图方法;
如图5所示,
所述的步骤103,包括如下步骤:
步骤201:开始对硬直线边界模块预处理;
步骤202:模块的序列为M={M0,M1,……,Mn-1},令i=0;
步骤203:判断模块Mi是硬直线边界模块还是软矩形模块,如果是硬直线边界模块,转向步骤204;否则,转向步骤209;
步骤204:当Mi是硬直线边界模块时,通过旋转模块操作,使得直线边界模块填补尽可能的软矩形模块,即模块的下边需要填补的模块最少k;
步骤205:令m=1;
步骤206:从软矩形模块中选择与缺失模块区面积之差的绝对值最小的软矩形模块Mj,并且Mj必须满足,Mj高为y=qy,宽x=area/y其中,area表示的是软矩形模块的面积,缺失模块区的宽为qx,高为qy,则minh_w≤y/x≤maxh_w;
步骤207:令n=n-1,m=m+1;
步骤208:如果m>k,转向步骤209;否则,转向步骤206;
步骤209:i=i+1;
步骤210:如果i<n,转向步骤203;否则,转向步骤211;
步骤211:结束对硬直线边界模块的预处理。
如图6所示,
所述的步骤104,包括如下步骤:
步骤301:开始基于最优适应启发式的算法,对模块进行编码和解码;
步骤302:第一个模块b[0]被放在第一象限的左下角,它的长宽比为p[0]。芯片的初始化宽度为W,令i=0;
步骤303:每个模块都遵循左下紧布局原则,放置在顶线上最低最适合的位置上。只有一种情况例外:当最低线段和次最低线段相邻,且最低段在次最低段的左边时,模块遵循右下紧布局原则放置。软矩形模块的最低最适合的位置满足两个条件:(1)在顶线上,该位置是所有能放置该软矩形模块的最低段;(2)在长宽比允许的限度内,软矩形模块能放置在该位置上,并且尽可能占满该位置,使它留下的空白区最少。
步骤304:判断ylowest(即放置第一排模块)是否为0。如果ylowest为0,转向步骤305;否则,转向步骤308;
步骤305:判断要放置的模块是不是软矩形模块,如果是软模块,转向步骤306;否则,转向步骤307;
步骤306:软矩形模块的形状由它的初始长宽比决定;
步骤307:放置模块,当被放置的模块的右边界超出了芯片的右边界(Rside)的限制时,用该模块的右边界更新Rside的值,至此,第一排模块放置完成,以后再放置的任何模块都不允许超出Rside的限制。转向步骤311;
步骤308:判断要放置的模块是不是软矩形模块,如果是软模块,转向步骤309;否则,转向步骤310;
步骤309:调整软矩形模块的长宽比;
步骤310:为模块寻找最低最合适的位置放置模块。依次在最低线段、次最低线段以及最低线段和次最低线段相邻的三种情况中寻找,如果找到,则放置该模块;否则,抬高最低线段,重新开始寻找,直到模块被放置在最优合适的位置上;
步骤311:每放置一个模块或抬高最低线段后,都更新顶线;
步骤312:i=i+1;
步骤313:如果i<n,转向步骤303;否则,转向步骤314;
步骤314:被放置完时,结束最优适应启发式序列的编码和解码;
本实施没有详细叙述的部分属本行业的公知的常用手段,这里不一一叙述。
本发明的效果可以通过以下仿真实验进行验证:
1.实验运行环境和条件设置
实验运行的环境:处理器为Intel(R)Core(TM)i3CPU5503.2GHz3.19GHz,内存为3.05GB,硬盘为1T,操作系统为Microsoftwindows XP Professional2002,编程环境为Visual C++6.0。
实验条件设置:实验中测试了常用的两个标准问题集,一个是MCNC问题集,这个问题集应用非常广泛,它只有5个硬矩形模块布图问题和5个软矩形模块布图问题,其中规模最大的问题也只有49个模块;另一个是GSRC问题集,它的问题规模从10个模块到300个模块,能够测试算法对大规模问题的性能。本发明中测试了单目标的软矩形模块布图、软矩形模块与硬直线边界模块混合布图实例集。以上两个布图标准问题集均可在网站(http://www.cse.ucsc.edu/research/surf/GSRC/progress.html)上下载。
实验一:软矩形模块布图实验。在MCNC和GSRC中,软矩形模块布图问题给出模块高度和宽度比的范围。同一问题中所有模块的比值范围相同。表1列出了实验中所用的这两类问题的信息。其中软矩形模块问题共21个,问题规模从9到300。参数设置如下:每个问题独立试验20次,面积利用率的平均值和最优值以及运行时间都是在20次独立试验的基础上得到的;最大进化代数为200代;初始个体数为30,合法组织所允许的最大个体数为10。模块长宽比的变化范围在MCNC中为[0.5,2.0],在GSRC中为[0.3,3.0]。
表1试验所用的软矩形模块问题
File | Benchmark | Block | Min h_w | Max h_w | Totalerea |
Apte | MCNC | 9 | 0.5 | 2.0 | 46.56162 |
Xerox | MCNC | 10 | 0.5 | 2.0 | 19.350296 |
Hp | MCNC | 11 | 0.5 | 2.0 | 8.830584 |
Ami33 | MCNC | 33 | 0.5 | 2.0 | 1.156449 |
Ami49 | MCNC | 49 | 0.5 | 2.0 | 35.445424 |
N10a | GSRC | 10 | 0.3 | 3.0 | 22.1679 |
N10b | GSRC | 10 | 0.3 | 3.0 | 22.1177 |
N10c | GSRC | 10 | 0.3 | 3.0 | 22.8770 |
N30a | GSRC | 30 | 0.3 | 3.0 | 20.8591 |
N30b | GSRC | 30 | 0.3 | 3.0 | 19.7781 |
N30c | GSRC | 30 | 0.3 | 3.0 | 22.2522 |
N50a | GSRC | 50 | 0.3 | 3.0 | 19.8579 |
N50b | GSRC | 50 | 0.3 | 3.0 | 20.3053 |
N50c | GSRC | 50 | 0.3 | 3.0 | 20.1512 |
N100a | GSRC | 100 | 0.3 | 3.0 | 17.9501 |
N100b | GSRC | 100 | 0.3 | 3.0 | 16.0126 |
N100c | GSRC | 100 | 0.3 | 3.0 | 17.1966 |
N200a | GSRC | 200 | 0.3 | 3.0 | 17.5696 |
N200b | GSRC | 200 | 0.3 | 3.0 | 17.4593 |
N200c | GSRC | 200 | 0.3 | 3.0 | 17.0129 |
N300a | GSRC | 300 | 0.3 | 3.0 | 27.3170 |
实验二:软模块和硬直线边界模块的混合模块集实验。软矩形模块与硬直线边界模块混合布图问题来自于GSRC,共有6个,问题规模从30到100,具体信息在表2中给出。参数设置如下:每个问题独立试验20次,面积利用率的平均值和最优值以及运行时间都是在20次独立试验的基础上得到的;最大进化代数为500代;初始个体数为30,合法组织所允许的最大个体数为10。模块长宽比的变化范围为[0.3,3.0]。
表2GSRC中混合模块问题的信息
2.实验内容和实验结果分析
每个问题运行一次时的面积利用率的计算方式如下:
实验一:软矩形模块布图实验。计算结果如表3所示。
表3OEA-BFHS求解MCNC和GSRC软模块集的实验结果
目前,求解布图规划问题的方法比较多,但是有的文献中模块的长宽比设置范围与本文不一样,无法进行比较。CBL、MBS中的参数设置与本文一致,因此下面将本文的结果与其进行比较。比较结果见表4和表5。表4是关于MCNC问题集的比较,表5是关于GSRC问题集的比较。由于CBL中只给出了MCNC问题集的结果,MBS给出了GSRC问题集的结果,但没有关于N200a、N200b、N200c、N300a的试验结果,因此只能进行部分比较。从比较结果来看,除了apte、xerox、hp、N10c和N30c,本方法比其它方法更优。本方法的时间耗费与模块集规模近似成线性关系,因此它更适合解大规模布图规划问题。布图结果在附图7中给出。
表4关于MCNC中软模块集的比较
表5关于GSRC中软模块集的比较
*“-------”表示没有给出结果*
实验二:软模块和硬直线边界模块的混合模块集实验。实验结果如表6所示。
表6OEA-BFHS求解GSRC中混合模块问题的实验结果
MBS也给出了关于六个混合模块集的实验结果,在表7中和本方法进行了比较。从比较的结果可以看出,本文的方法得到了比MBS更高的面积利用率,尤其是N100_10模块集,本方法的面积利用率达到97.89%,比MBS提高了3.66%。这说明在解大规模问题时,本方法的优势更明显。混合模块的布图结果如附图8所示。
表7关于GSRC中混合模块集的比较
File | 模块数 | MBS | OEA-BFHS | |
N30_10 | 30 | 利用率(%)/时间(s) | 98.34/478.2 | 98..52/20..55 |
N30_20 | 30 | 利用率(%)/时间(s) | 97.38/703.4 | 97..42/24..76 |
N50_10 | 50 | 利用率(%)/时间(s) | 97.91/1704.1 | 98..27/70..09 |
N50_20 | 50 | 利用率(%)/时间(s) | 96.26/2247.3 | 96..75/99..86 |
100_10 | 100 | 利用率(%)/时间(s) | 94.23/9478.0 | 97..89/343..6 |
N100_20 | 100 | 利用率(%)/时间(s) | 92.79/12743.3 | 93..15/412..9 |
从以上实验结果可以看出,对300个软矩形模块问题、100个软矩形模块和硬直线边界模块的混合问题均求得了高质量的解,表现出了求解大规模问题的优越性能,具有很高的实用价值。本发明是一种有效的布图方法,于目前存在的效果最好的布图方法,本发明在时间或者面积利用率上都有一定的优势,并且用基于最优适应启发式序列与组织进化算法求解超大规模集成电路布图规划问题,这是一个创新点,可能对发展其它算法求解超大规模集成电路布图问题有很好的指导作用。
本实施例没有详细叙述的部分和英文缩写属本行业的公知常识,在网上可以搜索到,这里不一一叙述。
Claims (3)
1.一种基于最优适应启发式序列与组织进化的集成电路布图方法,其特征是:具体步骤如下:
步骤101:开始基于最优适应启发式序列与组织进化的集成电路布图方法;
步骤102:参数设定:最大进化代数T,初始个体数num,合法组织所允许的最大个体数nummax,模块的长宽比的变化范围[min h_w,max h_w],最优个体的适应度COST,t为大于或等于0的整数,表示进化到第t代;
步骤103:初始化每个个体,更新最优值COST,令t=0,采用随机生成的方法产生模块的放置顺序,模块的长宽比序列,芯片的初始化宽度,如果存在硬直线边界模块,则循环调用预处理算法对硬直线边界模块进行预处理;
步骤104:循环调用基于最优适应启发式序列的算法对每个模块个体进行编码和解码;
步骤105:使每个个体成为一个组织,将分裂算子作用在组织上,分裂算子根据下面条件:
(orgp.num>nummax)or{(1<orgp.num≤nummax)and(U(0,1)<orgp.num/Nmember)}把一个组织orgp分裂成两个非空组织,其中num是一个合法组织中允许包含个体数目的最大值,U(0,1)是0到1之间的一个任意值,Nmember是所有组织中所有个体的总数,每个组织中的个体按适应度从大到小进行排列;
步骤106:将吞并算子作用在两个组织上,随机选择两个组织orgp1和orgp2,如果COST(orgp1)<COST(orgp2),则orgp1吞并orgp2,否则orgp2吞并orgp1,其中对两个组织采用吞并算子的具体规则如下:
假设组织orgp1吞并orgp2成一个新的组织orgc,这个新的组织由三部分组成:
1)orgp1中的所有个体;
2)由orgp1和orgp2根据下面公式生成orgp2.num/2个新的个体,membernew1:
令0≤i≤orgp2.num/2,0≤j≤n,membernew1[i].b=orgp2.member[0].b
3)随机生成orgp2.num/2个新个体,membernew2;
步骤107:将培训算子作用在从组织选出的个体,被选出的个体称为该组织的代表,按照组织中个体的排列顺序,第一个未被培训过的个体被选为代表,若所有的个体都已经被培训过则选择第一个个体为代表;对培训后的个体进行最优启发式序列编码和解码,找出最优个体。其中对每个组织的代表个体进行培训的具体规则如下:
对下面三步独立进行操作,每步执行5次;
1)改变模块的放置顺序:对模块b[i](0≤i≤n),从b中选择另一个模块与其交换位置;
2)改变模块的长宽比:对长宽比p[j](0≤j≤n),用[min h_w,max h_w]中的任意值替换它;
3)改变芯片的宽度:随机生成一个正实数代替W,每次改变后都可以得到一个新的个体,如果新的个体的COST小于选出的代表的COST,则用新的个体代替原来的个体,否则保留原有个体;
培训完以后,将培训的个体标记为1,表示该个体已经培训过;
步骤108:采用最优适应启发式序列对每个个体编码和解码,找出最优个体;
步骤109:如果满足结束条件,即超过最大进化代数,则转向步骤110;否则,令t自加1,并转向步骤105;
步骤110:输出布图结果;
步骤111:结束基于最优适应启发式序列与组织进化的集成电路布图方法。
2.根据权利要求书1所述的基于最优适应启发式序列与组织进化的集成电路布图方法,其特征是:所述的步骤103,包括如下步骤:
步骤201:开始对硬直线边界模块预处理;
步骤202:模块的序列为M={M0,M1,……,Mn-1},令i=0;
步骤203:判断模块Mi是硬直线边界模块还是软矩形模块,如果是硬直线边界模块,转向步骤204;否则,转向步骤209;
步骤204:当Mi是硬直线边界模块时,通过旋转模块操作,使得直线边界模块填补尽可能的软矩形模块,即模块的下边需要填补的模块最少k;
步骤205:令m=1;
步骤206:从软矩形模块中选择与缺失模块区面积之差的绝对值最小的软矩形模块Mj,并且Mj必须满足,Mj高为y=qy,宽x=area/y其中,area表示的是软矩形模块的面积,缺失模块区的宽为qx,高为qy,则minh_w≤y/x≤maxh_w;
步骤207:令n=n-1,m=m+1;
步骤208:如果m>k,转向步骤209;否则,转向步骤206;
步骤209:i=i+1;
步骤210:如果i<n,转向步骤203;否则,转向步骤211;
步骤211:结束对硬直线边界模块的预处理。
3.根据权利要求书1所述的基于最优适应启发式序列与组织进化的集成电路布图方法,其特征在于:所述的步骤104,包括如下步骤:
步骤301:开始基于最优适应启发式的算法,对模块进行编码和解码;
步骤302:第一个模块b[0]被放在第一象限的左下角,它的长宽比为p[0]。芯片的初始化宽度为W,令i=0;
步骤303:每个模块都遵循左下紧布局原则,放置在顶线上最低最适合的位置上;只有一种情况例外:当最低线段和次最低线段相邻,且最低段在次最低段的左边时,模块遵循右下紧布局原则放置;软矩形模块的最低最适合的位置满足两个条件:(1)在顶线上,该位置是所有能放置该软矩形模块的最低段;(2)在长宽比允许的限度内,软矩形模块能放置在该位置上,并且尽可能占满该位置,使它留下的空白区最少;
步骤304:判断ylowest(即放置第一排模块)是否为0。如果ylowest为0,转向步骤305;否则,转向步骤308;
步骤305:判断要放置的模块是不是软矩形模块,如果是软模块,转向步骤306;否则,转向步骤307;
步骤306:软矩形模块的形状由它的初始长宽比决定;
步骤307:放置模块,当被放置的模块的右边界超出了芯片的右边界(Rside)的限制时,用该模块的右边界更新Rside的值,至此,第一排模块放置完成,以后再放置的任何模块都不允许超出Rside的限制。转向步骤311;
步骤308:判断要放置的模块是不是软矩形模块,如果是软模块,转向步骤309;否则,转向步骤310;
步骤309:调整软矩形模块的长宽比;
步骤310:为模块寻找最低最合适的位置放置模块。依次在最低线段、次最低线段以及最低线段和次最低线段相邻的三种情况中寻找,如果找到,则放置该模块;否则,抬高最低线段,重新开始寻找,直到模块被放置在最优合适的位置上;
步骤311:每放置一个模块或抬高最低线段后,都更新顶线;
步骤312:i=i+1;
步骤313:如果i<n,转向步骤303;否则,转向步骤314;
步骤314:被放置完时,结束最优适应启发式序列的编码和解码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310733368.4A CN103810322B (zh) | 2013-12-24 | 2013-12-24 | 基于最优适应启发式序列与组织进化的集成电路布图方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310733368.4A CN103810322B (zh) | 2013-12-24 | 2013-12-24 | 基于最优适应启发式序列与组织进化的集成电路布图方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103810322A true CN103810322A (zh) | 2014-05-21 |
CN103810322B CN103810322B (zh) | 2017-01-25 |
Family
ID=50707086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310733368.4A Active CN103810322B (zh) | 2013-12-24 | 2013-12-24 | 基于最优适应启发式序列与组织进化的集成电路布图方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103810322B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111881644A (zh) * | 2020-08-05 | 2020-11-03 | 广东工业大学 | 一种最小化芯片布局面积的自适应选择方法 |
CN115221835A (zh) * | 2022-07-27 | 2022-10-21 | 清华大学 | 一种芯片设计的物理验证方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149765A (zh) * | 2007-11-09 | 2008-03-26 | 北京航空航天大学 | 高可靠性数字集成电路设计方法 |
CN101183405A (zh) * | 2007-11-30 | 2008-05-21 | 西安交通大学 | 基于fpga的小世界算法硬件平台实现方法 |
CN101187958A (zh) * | 2006-11-20 | 2008-05-28 | 国际商业机器公司 | 生成集成电子电路的布图的方法和系统 |
CN101207323A (zh) * | 2007-12-20 | 2008-06-25 | 中山大学 | 基于蚁群算法的功率电子电路优化方法 |
US20110161907A1 (en) * | 2009-12-28 | 2011-06-30 | Taiwan Semiconductor Manufacturing Company, Ltd. | Practical Approach to Layout Migration |
US20110214101A1 (en) * | 2010-02-26 | 2011-09-01 | Taiwan Semiconductor Manufacturing Company, Ltd. | Method of thermal density optimization for device and process enhancement |
US20120144361A1 (en) * | 2010-12-02 | 2012-06-07 | Taiwan Semiconductor Manufacturing Company, Ltd. | Parameterized dummy cell insertion for process enhancement |
-
2013
- 2013-12-24 CN CN201310733368.4A patent/CN103810322B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101187958A (zh) * | 2006-11-20 | 2008-05-28 | 国际商业机器公司 | 生成集成电子电路的布图的方法和系统 |
CN101149765A (zh) * | 2007-11-09 | 2008-03-26 | 北京航空航天大学 | 高可靠性数字集成电路设计方法 |
CN101183405A (zh) * | 2007-11-30 | 2008-05-21 | 西安交通大学 | 基于fpga的小世界算法硬件平台实现方法 |
CN101207323A (zh) * | 2007-12-20 | 2008-06-25 | 中山大学 | 基于蚁群算法的功率电子电路优化方法 |
US20110161907A1 (en) * | 2009-12-28 | 2011-06-30 | Taiwan Semiconductor Manufacturing Company, Ltd. | Practical Approach to Layout Migration |
US20110214101A1 (en) * | 2010-02-26 | 2011-09-01 | Taiwan Semiconductor Manufacturing Company, Ltd. | Method of thermal density optimization for device and process enhancement |
US20120144361A1 (en) * | 2010-12-02 | 2012-06-07 | Taiwan Semiconductor Manufacturing Company, Ltd. | Parameterized dummy cell insertion for process enhancement |
Non-Patent Citations (2)
Title |
---|
刘静: "协同进化算法及其应用研究", 《中国优秀博硕士学位论文全文数据库 (博士)信息科技辑 (季刊 )》 * |
黄训诚等: "基于粒子群优化算法的集成电路无网格布线", 《西安电子科技大学学报(自然科学版)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111881644A (zh) * | 2020-08-05 | 2020-11-03 | 广东工业大学 | 一种最小化芯片布局面积的自适应选择方法 |
CN115221835A (zh) * | 2022-07-27 | 2022-10-21 | 清华大学 | 一种芯片设计的物理验证方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103810322B (zh) | 2017-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Young et al. | Slicing floorplans with boundary constraints | |
Charalambous et al. | A constructive bin-oriented heuristic for the two-dimensional bin packing problem with guillotine cuts | |
Arkin et al. | Optimization problems related to zigzag pocket machining | |
Maslov et al. | Speeding up branch and bound algorithms for solving the maximum clique problem | |
CN106709503A (zh) | 一种基于密度的大型空间数据聚类算法k‑dbscan | |
He et al. | Dynamic reduction heuristics for the rectangle packing area minimization problem | |
CN106874955A (zh) | 一种基于深度卷积神经网络的三维形状分类方法 | |
CN103714384A (zh) | 基于移动模式序列与遗传禁忌的集成电路的布图方法 | |
CN103810322A (zh) | 基于最优适应启发式序列与组织进化的集成电路布图方法 | |
Tom et al. | Un/DoPack: re-clustering of large system-on-chip designs with interconnect variation for low-cost FPGAs | |
CN103714211B (zh) | 基于移动模式序列与多智能体粒子群的集成电路布图方法 | |
Tang et al. | A genetic algorithm for VLSI floorplanning using O-tree representation | |
Jain et al. | Non slicing floorplan representations in VLSI floorplanning: A summary | |
Pérez-Galarce et al. | Algorithms for the minmax regret path problem with interval data | |
CN103714210A (zh) | 基于最优适应启发式序列与多目标组织进化的集成电路布图方法 | |
CN103699940A (zh) | 一种基于情景的空间分区多目标优化决策方法 | |
Kalayci et al. | A reactive self-tuning scheme for multilevel graph partitioning | |
Fampa et al. | A specialized branch-and-bound algorithm for the Euclidean Steiner tree problem in n-space | |
CN104834957A (zh) | 一种基于杜鹃搜索算法求解非线性规划模型的方法和装置 | |
Bauer et al. | Finite loop spaces are manifolds | |
Khasawneh et al. | Hill climbing with trees: Detail placement for large windows | |
Benjamini et al. | Anchored expansion of Delaunay complexes in real hyperbolic space and stationary point processes | |
Areibi | Recursive and flat partitioning for VLSI circuit design | |
Ye | Field-programmable gate array architectures and algorithms optimized for implementing datapath circuits | |
Sassone et al. | Traffic: a novel geometric algorithm for fast wire-optimized floorplanning |
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 |