发明名称 基于最优适应启发式序列与组织进化的集成电路布图方法
摘要 本发明公开一直基于最优适应启发式序列与组织进化的集成电路布图方法,属于物理设计布图规划技术领域。本发明将最优适应启发式序列作为编码和解码,与组织进化算法结合,用于求解超大规模集成电路布图方法,其特征在于:首先初始化每个个体,然后采用最优适应启发式序列对每个个体进行编码和解码,最后用设计的分裂算子、吞并算子、培训算子对组织进行优化,验证结果表明,本发明在评定求解超大规模集成电路布图规划问题方法效用的一个重要方面:求最优的芯片的面积利用率,有优势,是一种有效的求解超大规模集成电路布图规划问题的方法,还能扩展到求解多目标的超大规模集成电路布图规划问题。
申请公布号 CN103810322B 申请公布日期 2017.01.25
申请号 CN201310733368.4 申请日期 2013.12.24
申请人 西安电子科技大学 发明人 刘静;焦李成;朱园;王景润;马文萍;马晶晶
分类号 G06F17/50(2006.01)I 主分类号 G06F17/50(2006.01)I
代理机构 西安吉盛专利代理有限责任公司 61108 代理人 张培勋
主权项 一种基于最优适应启发式序列与组织进化的集成电路布图方法,其特征是:具体步骤如下:步骤101:开始基于最优适应启发式序列与组织进化的集成电路布图方法;步骤102:参数设定:最大进化代数T,初始个体数num,合法组织所允许的最大个体数num<sub>max</sub>,模块的长宽比的变化范围[min h_w,max h_w],最优个体的适应度COST,t为大于或等于0的整数,表示进化到第t代;步骤103:初始化每个个体,更新最优值COST,令t=0,采用随机生成的方法产生模块的放置顺序,模块的长宽比序列,芯片的初始化宽度,如果存在硬直线边界模块,则循环调用预处理算法对硬直线边界模块进行预处理;步骤104:循环调用基于最优适应启发式序列的算法对每个模块个体进行编码和解码;步骤105:使每个个体成为一个组织,将分裂算子作用在组织上,分裂算子根据下面条件:(org<sub>p</sub>.num>num<sub>max</sub>)or{(1<org<sub>p</sub>.num≤num<sub>max</sub>)and(U(0,1)<org<sub>p</sub>.num/N<sub>member</sub>)}把一个组织orgp分裂成两个非空组织,其中orgp.num是orgp中的个体数目,num<sub>max</sub>是一个合法组织中允许包含个体数目的最大值,U(0,1)是0到1之间的一个任意值,N<sub>member</sub>是所有组织中所有个体的总数,每个组织中的个体按适应度从大到小进行排列;步骤106:将吞并算子作用在两个组织上,随机选择两个组织org<sub>p1</sub>和org<sub>p2</sub>,如果COST(org<sub>p1</sub>)<COST(org<sub>p2</sub>),则org<sub>p1</sub>吞并org<sub>p2</sub>,否则org<sub>p2</sub>吞并org<sub>p1</sub>,其中COST(org<sub>p1</sub>)和COST(org<sub>p2</sub>)为org<sub>p1</sub>和org<sub>p2</sub>的适应度值,对两个组织采用吞并算子的具体规则如下:假设组织org<sub>p1</sub>吞并org<sub>p2</sub>成一个新的组织org<sub>c</sub>,这个新的组织由三部分组成:1)org<sub>p1</sub>中的所有个体;2)由org<sub>p1</sub>和org<sub>p2</sub>根据下面公式生成org<sub>p2</sub>.num/2个新的个体,member<sub>new1</sub>:令0≤i≤org<sub>p2</sub>.num/2,0≤j≤n,member<sub>new1</sub>[i].b=org<sub>p2</sub>.member[0].b<maths num="0001"><math><![CDATA[<mrow><msub><mi>member</mi><mrow><mi>n</mi><mi>e</mi><mi>w</mi><mn>1</mn></mrow></msub><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mo>.</mo><mi>p</mi><mo>&lsqb;</mo><mi>j</mi><mo>&rsqb;</mo><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msub><mi>org</mi><mrow><mi>p</mi><mn>2</mn></mrow></msub><mo>.</mo><mi>m</mi><mi>e</mi><mi>m</mi><mi>b</mi><mi>e</mi><mi>r</mi><mo>&lsqb;</mo><mn>0</mn><mo>&rsqb;</mo><mo>.</mo><mi>p</mi><mo>&lsqb;</mo><mi>j</mi><mo>&rsqb;</mo></mrow></mtd><mtd><mrow><mi>i</mi><mi>f</mi><mo>(</mo><msub><mi>org</mi><mrow><mi>p</mi><mn>1</mn></mrow></msub><mo>.</mo><mi>m</mi><mi>e</mi><mi>m</mi><mi>b</mi><mi>e</mi><mi>r</mi><mo>&lsqb;</mo><mn>0</mn><mo>&rsqb;</mo><mo>.</mo><mi>p</mi><mo>&lsqb;</mo><mi>j</mi><mo>&rsqb;</mo><mo>=</mo></mrow></mtd></mtr><mtr><mtd><mrow></mrow></mtd><mtd><mrow><msub><mi>org</mi><mrow><mi>p</mi><mn>2</mn></mrow></msub><mo>.</mo><mi>m</mi><mi>e</mi><mi>m</mi><mi>b</mi><mi>e</mi><mi>r</mi><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mo>.</mo><mi>p</mi><mo>&lsqb;</mo><mi>j</mi><mo>&rsqb;</mo><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mrow></mrow></mtd><mtd><mrow><mi>a</mi><mi>n</mi><mi>d</mi><mrow><mo>(</mo><mi>U</mi><mo>(</mo><mrow><mn>0</mn><mo>,</mo><mn>1</mn></mrow><mo>)</mo><mo>=</mo><mn>0</mn><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>org</mi><mrow><mi>p</mi><mn>1</mn></mrow></msub><mo>.</mo><mi>m</mi><mi>e</mi><mi>m</mi><mi>b</mi><mi>e</mi><mi>r</mi><mo>&lsqb;</mo><mn>0</mn><mo>&rsqb;</mo><mo>.</mo><mi>p</mi><mo>&lsqb;</mo><mi>j</mi><mo>&rsqb;</mo></mrow></mtd><mtd><mrow><mi>o</mi><mi>t</mi><mi>h</mi><mi>e</mi><mi>r</mi><mi>w</mi><mi>i</mi><mi>s</mi><mi>e</mi></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0001116582130000021.GIF" wi="1451" he="317" /></maths>其中org<sub>p2</sub>.num为org<sub>p2</sub>中的个体数,member<sub>new1</sub>[i].b和org<sub>p2</sub>.member[0].b为对应成员中的模块排列信息,member[0]指对应组织中的第一个个体,member[i]指对应组织中的第i+1个个体,member[0].p[j]与member[i].p[j]指对应个体第j+1个模块的长宽比;3)随机生成org<sub>p2</sub>.num/2个新个体,member<sub>new2</sub>;步骤107:将培训算子作用在从组织选出的个体,被选出的个体称为该组织的代表,按照组织中个体的排列顺序,第一个未被培训过的个体被选为代表,若所有的个体都已经被培训过则选择第一个个体为代表;对培训后的个体进行最优启发式序列编码和解码,找出最优个体,其中对每个组织的代表个体进行培训的具体规则如下:对下面三步独立进行操作,每步执行5次;1)改变模块的放置顺序:对模块b[i](0≤i≤n),从b中选择另一个模块与其交换位置;2)改变模块的长宽比:对长宽比p[j](0≤j≤n),用[min h_w,max h_w]中的任意值替换它;3)改变芯片的宽度W:随机生成一个正实数代替W,每次改变后都可以得到一个新的个体,如果新的个体的COST小于选出的代表的COST,则用新的个体代替原来的个体,否则保留原有个体;培训完以后,将培训的个体标记为1,表示该个体已经培训过;步骤108:采用最优适应启发式序列对每个个体编码和解码,找出最优个体;步骤109:如果满足结束条件,即超过最大进化代数,则转向步骤110;否则,令t自加1,并转向步骤105;步骤110:输出布图结果;步骤111:结束基于最优适应启发式序列与组织进化的集成电路布图方法。
地址 710071 陕西省西安市太白南路2号西安电子科技大学