CN103914587A - 一种基于模拟退火/回火现场可编程门阵列布局的方法 - Google Patents
一种基于模拟退火/回火现场可编程门阵列布局的方法 Download PDFInfo
- Publication number
- CN103914587A CN103914587A CN201410074911.9A CN201410074911A CN103914587A CN 103914587 A CN103914587 A CN 103914587A CN 201410074911 A CN201410074911 A CN 201410074911A CN 103914587 A CN103914587 A CN 103914587A
- Authority
- CN
- China
- Prior art keywords
- layout
- gate array
- programmable gate
- field programmable
- temperature
- 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
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种基于模拟退火/回火现场可编程门阵列布局的方法,采取混合模拟退火和模拟回火的方法。首先使用传统模拟退火方法,得到模拟退火所能找到的最好解current_best,并记录当解的接受率为44%时的温度temp44,建立从temp44到冰点温度的适宜的温度梯度{t1,t2,…,tm},然后根据该温度梯度开始模拟回火方法,在这个过程中如果碰到了比current_best更好的解,用该解替换current_best,最终得到的current_best即为需要的最优解。将本发明公开的基于模拟退火/回火现场可编程门阵列布局的方法应用于支持FPGA(Field Programmable Gate Array)现场可编程门阵列开发的EDA软件的布局工具,最终得到的布局结果稳定性好,同时能提高电路的质量,降低关键路径上的延时,改善最终的布线线长。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种基于模拟退火/回火现场可编程门阵列布局的方法。
背景技术
近年来,随着集成电路技术的飞速发展,FPGA(Field Programmable GateArray)现场可编程门阵列,因其有集成度高、逻辑资源丰富、设计灵活以及可重构性等特点,在航天领域和国防领域应用非常广泛,每年我国需要从国外进口大量FPGA(Field Programmable Gate Array)现场可编程门阵列芯片以及配套支持软件,而国内FPGA(Field Programmable Gate Array)现场可编程门阵列产业有待发展,制约国内FPGA(Field Programmable Gate Array)现场可编程门阵列产业发展的因素,主要是缺乏自主研发的高性能高质量的支持FPGA(Field Programmable Gate Array)现场可编程门阵列开发的EDA软件。
FPGA(Field Programmable Gate Array)现场可编程门阵列的设计流程,主要包括设计输入、行为综合、逻辑综合、工艺映射、封包、布局和布线。其中,布局是极为重要的一个环节,它直接影响到后续布线的质量和整个电路的性能,包括关键路径延时以及总布线线长等关键性指标。支持FPGA(FieldProgrammable Gate Array)现场可编程门阵列开发的EDA软件包括行为综合、逻辑综合、技术映射、封包、布局、布线、配置文件生成和前仿真、后仿真等功能。
FPGA(Field Programmable Gate Array)现场可编程门阵列的布局是基于一定的优化和约束准则将网表文件描述的逻辑块CLB(包括I/O,逻辑单元Block和布线资源等)映射到FPGA(Field Programmable Gate Array)现场可编程门阵列芯片内部物理位置的过程,学术界和工业界对FPGA(Field ProgrammableGate Array)现场可编程门阵列的布局通常使用的方法是模拟退火方法。
模拟退火方法,由Metropolis等人于1953年提出,是一种启发式迭代搜索方法,多用于复杂的组合优化问题以及NP完全问题。其思想来源于物理上的固体退火原理,由于固体退火过程与一般组合优化问题之间存在一定的相似性,在组合优化过程中引入Metropolis准则,就得到一种对Metropolis算法进行迭代的组合优化算法,同时在数学上又有很好的模型“马尔可夫链”可以对它进行严格地形式化描述。基于马尔可夫过程理论,可以证明模拟退火方法以概率1收敛于全局最优解,这是一条很好的数学特性。模拟退火方法的基本思想是对确定性算法引入随机扰动,使得当搜索到局部极值点时,以一定的概率跳出局部极值的陷阱。组合优化问题的解空间中的每个点都代表一个解,而不同的解有不同的代价值。优化即是在解空间中寻找代价函数,即目标函数的最大值或最小值。模拟退火方法首先产生一个初始布局作为当前解S,并初始化开始温度T和每个温度下迭代的次数L。每次迭代在当前解S的基础上随机扰动产生一个新解,如果新解优于S则接受新解,并取代当前解S;否则以一定概率接受新解,温度T越低接受新解的概率越低。然后逐渐降低温度T,如果温度达到冰点或者当前解达到要求则输出当前解作为最优解。这种方法在每个温度上所做的搜索必须足够多才能达到热力学平衡,理论上温度的下降过程是呈对数下降的,但实际中往往采用的是更加快速的退火策略,如几何下降、直线下降等方法,这样在实际应用中,就无法保证以1的概率达到全局最优解。
使用模拟退火方法,FPGA(Field Programmable Gate Array)现场可编程门阵列的布局问题可以按以下几方面来描述:
问题描述:用户电路上的每个逻辑块都可以用坐标(x,y)来表示它们在FPGA(Field Programmable Gate Array)现场可编程门阵列上的具体位置。初始时,每个逻辑块可以随机分布在FPGA(Field Programmable Gate Array)现场可编程门阵列的一个位置上,这就确保了每个位置都是合法的,随着模拟退火方法的进行,每个逻辑块最终将得到一个固定位置;
移动集:初始布局时,这个集合中只包括了随机的交换。一个随机的交换起先是随机的选择两个逻辑块的坐标,然后交换这两个坐标上的物理元素,任意一个坐标上可以为空,没有不良影响;
成本函数:要得到一个好的FPGA(Field Programmable Gate Array)现场可编程门阵列上的用户电路设计,目标就是最小化关键路径上的延时,实际的延时只有在布局后续的布线完成之后才能知道,因此,布局的成本函数能够预测关键路径延时;
退火表:退火表的设置与具体的应用问题相关,用来决定温度的下降策略。下表为比较常用的布局退火表(Vaughn.Betz等人提出),下一个温度的计算公式是Tnew==·Told,表中Raccept表示当前温度下解的接受率;
Fraction of moves accepted(Raccept) | α |
Raccept>0.96 | 0.5 |
0.8<Raccept≤0.96 | 0.9 |
0.15<Raccept≤0.8 | 0.95 |
Raccept≤0.15 | 0.8 |
传统模拟退火方法在FPGA(Field Programmable Gate Array)现场可编程门阵列布局应用中对参数非常敏感,以及在低温阶段无法跨越能量屏障而徘徊于局部最优解。
模拟回火方法(Simulated Tempering Algorithm),最初是由Charles.Geyer和Elizabeth.Thompson等人提出的。为了克服模拟退火方法陷入局部最优的问题,模拟回火方法把温度看成一个随机变量。在搜索解的过程中,温度可以上升也可以下降,这样搜索过程就能够时时回到较高的温度,从而可以跳出解空间中的某些局部最优解。这个方法明显不同于将温度控制为严格单调下降的模拟退火方法,模拟回火方法已经成功地应用到了DNA序列分析、蛋白质分析等领域。
通常,模拟回火方法会选定一系列的单调下降的温度t1,t2,…,tm,每个温度下玻尔兹曼分布定义如下,
hi(x)=αjexp{-Cost(x)/ti}
在温度ti下产生的解为x,成本函数为Cost,j=i±1,π(i)为修正常量,q1,2=qm,m-1=1,qi,i+1=qi,i-1=0.5。计算概率r的公式如下,
最终以min(r,1)的概率从温度ti设为温度tj;
将模拟回火方法应用于支持FPGA(Field Programmable Gate Array)现场可编程门阵列开发的EDA软件的布局工具。在布局过程中,假设当前温度为TK,刚开始成本函数Cost的值为1,经过温度为TK时的N次搜索之后,成本函数Cost值记为lastCost,此时下一个温度有三种选择:回火到上一温度TK-1、继续保持当前温度TK、下降到下一温度TK+1,这时随机生成变量Skip的取值为K-1或者K+1,其中生成K-1的概率为a,生成K+1的概率为(1-a)。计算概率P的公式如下,
最终以min(1,P)的概率跳转到下标为Skip的温度值。通过分析可知,该方法是以概率(1-a)跳转到下一温度,以a·P的概率跳转到上一温度,以a·(1-P)的概率保持当前温度。该方法的原理是当前温度下,如果成本函数值Cost降低很多,说明布局质量的提升空间还很大,应该进行回火,随着温度的降低,回火概率也会降低,从而最终收敛到全局最优解。
发明内容
本发明实施例的目的在于提供一种基于模拟退火/回火现场可编程门阵列布局的方法,应用于支持FPGA(Field Programmable Gate Array)现场可编程门阵列开发的EDA软件的布局工具。旨在解决传统模拟退火方法在FPGA(FieldProgrammable Gate Array)现场可编程门阵列布局应用中存在的对参数非常敏感,以及在低温阶段无法跨越能量屏障而徘徊于局部最优解的问题。
本发明实施例是这样实现的,一种基于模拟退火/回火现场可编程门阵列布局的方法,该基于模拟退火/回火现场可编程门阵列布局的方法包括以下步骤:
第一步,给定一个FPGA(Field Programmable Gate Array)现场可编程门阵列的网表文件和一个结构文件,使用模拟退火方法进行初始布局,将每个CLB随机的分配到FPGA(Field Programmable Gate Array)现场可编程门阵列的一个坐标位置上;
第二步,在初始布局的基础上,通过进行Nblocks次CLB的交换,计算得到模拟退火方法的初始温度,其中Nblocks是电路中CLB的个数;
第三步,在给定的温度下,判断温度是否达到冰点。如果达到冰点,执行第五步;否则,使用模拟退火方法进行布局。当前温度下,每次迭代都通过一个调整CLB的位置,得到一个新的布局,以Metropolis准则判断是接受还是拒绝新布局。当前温度下的所有布局完成之后,依据一个退火表对温度进行更新;
第四步,重复第三步直至接受新布局的概率达到44%为止,记录当前的温度为temp44,并且保存当前的布局结果为current_best,执行第五步;
第五步,将温度设置为0,进行局部优化搜索,并保存当前最优的布局结果,模拟退火布局方法结束;
第六步,根据第五步的结果,将模拟回火方法的初始温度设置为temp44,初始布局设置为current_best;
第七步,在给定的温度下,判断温度是否达到冰点,如果达到冰点,执行第九步;否则,使用模拟回火方法进行布局。当前温度下,通过调整CLB的位置,得到一个新的布局,以Metropolis准则判断是接受还是拒绝新布局。当前温度下的所有布局完成之后,根据一个回火表对温度进行更新;
第八步,重复第七步直至温度达到冰点为止,执行第九步;
第九步,将温度设置为0,进行局部优化搜索,并保存当前最优的布局结果,模拟回火布局方法结束。
进一步,第二步的具体步骤为:
步骤一,在当前布局的基础上,随机选择一个CLB,在限定的范围内选取另一个CLB或者一个空白位置与其进行交换,得到一个新的布局,计算这个布局的成本花费Cost;
步骤二,重复步骤一Nblocks次,计算这Nblocks个布局的成本花费Cost的均方差,记为STDEV,根据计算20·STDEV得到初始温度。
进一步,第三步的具体步骤为:
步骤一,在当前温度下,根据TK<0.005·Cost/Nnets判断是否达到冰点。如果没有,执行步骤二,其中TK为当前温度,Cost为当前布局的成本花费,Nnets为电路中的线网个数;
步骤二,随机选择一个CLB,在限定的范围内随机选择另一个CLB或者一个空余位置,然后进行交换,计算当前布局成本函数的改变量ΔC,如果ΔC<0,那么可以接受这个交换,否则以概率exp(-ΔC/TK)接受;
步骤三,重复步骤二Num_Move次,Num_Move理论上称为马可夫链长度,Num_Move=10·Nblocks 1.33;
步骤四,根据模拟退火表更新温度。
进一步,第七步的具体步骤为:
步骤一,在当前温度下,根据TK<0.005·Cost/Nnets判断是否达到冰点,如果没有,执行步骤二,其中TK为当前温度,Cost为当前布局的成本花费,Nnets为电路中的线网个数;
步骤二,随机选择一个CLB,在限定的范围内随机选择另一个CLB或者一个空余位置,然后进行交换,计算当前布局成本函数的改变量ΔC,如果ΔC<0,那么可以接受这个交换,否则以概率exp(-ΔC/TK)接受;
步骤三,重复步骤二Num_Move次,Num_Move理论上称为马可夫链长度,Num_Move=10·Nblocks 1.33;
步骤四,在当前温度TK和当前布局成本花费lastCost的基础上产生下一个温度Tnew,此时有三种选择:回火到上一温度Tprev、继续保持当前温度TK、下降到下一温度Tnext,其中Tprev在之前已经保存,Tnext由退火表确定。这时通过一个随机函数生成变量Skip的取值为K-1或者K+1,其中生成K-1的概率为a,生成K+1的概率为(1-a),回火概率a取值在[0,0.5]区间内,以控制回火的影响力。计算概率P的公式如下,
最后以min(1,P)的概率跳转到下标为Skip的温度值。公式中的常量C和α是修正值,在具体应用中确定。应用于支持FPGA(Field Programmable Gate Array)现场可编程门阵列开发的EDA软件的布局工具中,常量C设定为回火的开始温度temp44,αK的计算公式如下,
其中averageCost为迭代过程中所有布局花费Cost的平均值。通过分析可知,该方法是以概率(1-a)跳到下一温度,以a·P的概率跳到上一温度,以a·(1-P)的概率保持当前温度。
本发明提供的基于模拟退火/回火现场可编程门阵列布局的方法,通过结合传统模拟退火方法和模拟回火方法各自的优点,采取混合模拟退火和模拟回火的方法。首先使用传统模拟退火方法,得到模拟退火所能找到的最好的解current_best,并记录当解的接受率为44%时的温度temp44,并建立从temp44到冰点温度的适宜的温度梯度{t1,t2,…,tm},然后根据该温度梯度开始模拟回火方法,在这个过程中如果碰到了比current_best更好的解,便用该解替换current_best,最终得到的current_best即为需要的最优解。将本发明提供的基于模拟退火/回火现场可编程门阵列布局的方法应用于支持FPGA(Field Programmable Gate Array)现场可编程门阵列开发的EDA软件的布局工具,最终得到的布局结果稳定性好,同时能提高电路的质量。在20个MCNC标准电路上,总的关键路径延时降低5.1%,总的布线线长降低0.69%。
附图说明
图1是本发明实施例提供的基于模拟退火/回火现场可编程门阵列布局的方法流程图;
图2和图3是本发明实施例提供的基于模拟退火/回火现场可编程门阵列布局的方法实现流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
下面结合附图及具体实施例对本发明应用于支持FPGA(FieldProgrammable Gate Array)现场可编程门阵列开发的EDA软件的布局工具,针对应用原理作进一步描述。
如图1所示,本发明实施例的基于模拟退火/回火现场可编程门阵列布局的方法,应用于支持FPGA(Field Programmable Gate Array)现场可编程门阵列开发的EDA软件的布局工具,包括以下步骤:
S101:给定一个FPGA(Field Programmable Gate Array)现场可编程门阵列的网表文件和一个结构文件,使用模拟退火方法进行初始布局,将每个CLB随机的分配到FPGA(Field Programmable Gate Array)现场可编程门阵列的一个坐标位置;
S102:在初始布局的基础上,通过进行Nblocks次CLB的交换,计算得到模拟退火方法的初始温度,其中Nblocks是电路中CLB的个数;
S103:在给定的温度下,判断温度是否达到冰点。如果达到冰点,执行S105;否则,使用模拟退火方法进行布局。当前温度下,通过调整CLB的位置,得到一个新的布局,以Metropolis准则判断是接受还是拒绝新布局,当前温度下的所有布局完成之后,根据一个退火表对温度进行更新;
S104:重复步骤S103直至接受新布局的概率达到44%为止,记录当前温度为temp44,并且保存当前的布局结果为current_best,执行步骤S105;
S105:将温度设置为0,进行局部优化搜索,并保存当前最优的布局结果,模拟退火布局方法结束;
S106:根据步骤S105的结果,将模拟回火方法的初始温度设置为temp44,初始布局设置为current_best;
S107:在给定的温度下,判断温度是否达到冰点,如果达到冰点,执行S109;否则,使用模拟回火方法进行布局。当前温度下,通过调整CLB的位置,得到一个新的布局,以Metropolis准则判断是接受还是拒绝新布局,当前温度下的所有布局完成之后,根据一个回火表对温度进行更新;
S108:重复S107直至温度达到冰点为止,执行S109;
S109:将温度设置为0,进行局部优化搜索,并保存当前最优的布局结果,模拟回火布局方法结束。
在S102中的具体步骤为:
步骤一,在当前布局的基础上,随机选择一对CLB进行交换,或者选择一个CLB与一个空白位置进行交换,得到一个新的布局,计算这个布局的成本花费Cost;
步骤二,重复步骤一Nblocks次,计算这Nblocks个布局的成本花费Cost的均方差,记为STDEV,根据计算20·STDEV得到初始温度。
在S103中的具体步骤为:
步骤一,在当前温度下,根据TK<0.005·Cost/Nnets判断是否达到冰点,如果没有,执行步骤二,其中TK为当前温度,Cost为当前布局的成本花费,Nnets为电路中的线网个数;
步骤二,随机选择一个CLB,在一定范围内随机选择另一个CLB或者空余位置,然后进行交换。计算当前布局成本函数的改变量ΔC,如果ΔC<0,那么可以接受这个改变,否则以概率exp(-ΔC/TK)接受;
步骤三,重复步骤二Num_Move次,Num_Move理论上称为马可夫链长度,Num_Move=10·Nblocks 1.33;
步骤四,根据模拟退火表更新温度。
在S107中的具体步骤为:
步骤一,在当前温度下,根据TK<0.005·Cost/Nnets判断是否达到冰点,如果没有,执行步骤二,其中TK为当前温度,Cost为当前布局的成本花费,Nnets为电路中的线网个数;
步骤二,随机选择一个CLB,在一定范围内随机选择另一个CLB或者空余位置,然后进行交换。计算当前布局成本函数的改变量ΔC,如果ΔC<0,那么可以接受这个改变,否则以概率exp(-ΔC/TK)接受;
步骤三,重复步骤二Num_Move次,Num_Move理论上称为马可夫链长度,Num_Move=10·Nblocks 1.33;
步骤四,在当前温度TK和当前布局花费lastCost的基础上产生下一个温度Tnew,此时有三种选择:回火到上一温度Tprev、继续保持当前温度TK、下降到下一温度Tnext,其中Tprev在之前已经保存了,Tnext由退火表确定。此时通过一个随机函数生成变量Skip的取值为K-1或者K+1,生成K-1的概率为a,生成K+1的概率为(1-a),回火概率a取值在[0,0.5]区间内,以控制回火的影响力。计算概率P的公式如下,
最后以min(1,P)的概率跳转到下标为Skip的温度值。公式中的常量C和α是修正值,在具体应用中确定。应用于支持FPGA(Field Programmable Gate Array)现场可编程门阵列开发的EDA软件的布局工具中,常量C设定为回火的开始温度temp44,αK的计算公式如下,
其中averageCost为迭代过程中所有布局花费Cost的平均值。通过分析可知,该方法是以概率(1-a)跳到下一温度,以a·P的概率跳到上一温度,以a·(1-P)的概率保持当前温度。
结合本发明的实施例对本发明做进一步的说明:
如图2,本发明所提出的基于模拟退火/回火现场可编程门阵列布局的方法,应用于支持FPGA(Field Programmable Gate Array)现场可编程门阵列开发的EDA软件的布局工具,步骤如下:
第一步,初始布局,通过随机函数(产生的随机数不大于现场可编程门阵列坐标个数,并且均匀分布),将每个电路元件CLB随机地分配到FPGA(FieldProgrammable Gate Array)现场可编程门阵列的一个坐标位置,每个坐标最多放一个CLB;
第二步,设置初始温度,对初始布局进行Nblocks次交换(Nblocks是电路中CLB的个数),计算Nblocks次交换的布局成本Cost值的均方差STDEV,将初始温度设为20·STDEV;
第三步,模拟退火方法的退出条件,当TK<0.005·Cost/Nnets时,表示当前状态下质量难以再提高,达到退出条件,其中TK为当前温度,Cost为当前布局的成本花费,Nnets为电路中的线网个数;
第四步,内循环退出条件,判断是否达到退出条件,如果没有,循环执行Num_Move次的第五步到第八步;否则执行第十二步。每个温度下都将进行Num_Move次交换,产生Num_Move个新的布局,随后在当前温度下达到热力学平衡。其中Num_Move理论上称为马可夫链长度,Num_Move=10·Nblocks 1.33;
第五步,随机选择逻辑块A,在限定的范围内随机选择逻辑块B或者一个空余位置,然后进行交换;
第六步,计算新布局的成本函数的改变量ΔC;
其中ΔCtiming为延时改变量,Ctiming,prev为上一个布局的延时花费值;ΔCwire为线长改变量,Cwire,prev为上一个布局的线长花费值;
第七步,如果ΔC<0,那么可以接受这个交换;
第八步,如果ΔC≥0,说明新的布局new_place是恶化解,以概率exp(-ΔC/TK)接受这个交换。方法开始时温度很高,大部分交换都可以接受,随着温度逐渐降低,相邻逻辑块之间的交换可被接受,最终温度达到方法退出条件。如果交换可以接受,记录C=C+ΔC,place=new_place;
第九步,当解的接受率Raccept刚达到44%时,记录当前温度为temp44。根据实验表明,在这个温度下,方法能够爬过足够高的屏障,为了减少模拟回火过程的运行时间,以此温度作为初始温度,开始新的搜索过程;
第十步,根据模拟退火表更新温度,这里采用了常用的退火表。仿真实验表明这个退火表时效性非常好,下一温度的计算公式是Tnew=α·Told,表中Raccept为当前温度下解的接受率;
Fraction of moves accepted(Raccept) | α |
Raccept>0.96 | 0.5 |
0.8<Raccept≤0.96 | 0.9 |
0.15<Raccept≤0.8 | 0.95 |
Raccept≤0.15 | 0.8 |
第十一步,将温度设为冰点温度,在这个温度下只接受使ΔC<0的解,不接受恶化解,确保该方法能够在谷底附近找到局部最优解;
第十二步,保存模拟退火方法找到的最优解,并将其记为current_best。
如图3,本发明所提出的基于模拟退火/回火现场可编程门阵列布局的方法,应用于支持FPGA(Field Programmable Gate Array)现场可编程门阵列开发的EDA软件的布局工具,步骤还包括:
第一步,设置模拟回火方法的初始温度为temp44,使回火方法具备以尽量少的时间代价获得跨越足够高的屏障的能力;
第二步,初始布局设置为current_best,模拟回火方法将在模拟退火方法的基础上继续进行解的搜索;
第三步,模拟回火方法的退出条件是根据方法运行时间规定的,也就是在不超过一定时间限制的基础上搜索比current_best更好的解,时间限制由最大的循环迭代次数规定为EXIT_LOOP_CRITERION;
第四步,内循环退出条件,判断是否达到退出条件,如果没有,循环执行Num_Move次的第五步到第八步;否则执行第十二步。每个温度下都将进行Num_Move次交换,产生Num_Move个新的布局,随后在当前温度下达到热力学平衡。其中Num_Move理论上称为马可夫链长度,Num_Move=10·Nblocks 1.33;
第五步,随机选择逻辑块A,在限定的范围内随机逻辑块B或者一个空余位置,然后进行交换;
第六步,计算新布局的成本函数的改变量ΔC;
其中ΔCtiming为延时改变量,Ctiming,prev为上一个布局的延时花费值;ΔCwire为线长改变量,Cwire,prev为上一个布局的线长花费值;
第七步,如果ΔC<0,那么可以接受这个交换;
第八步,如果ΔC≥0,说明新的布局new_place是恶化解,以概率exp(-ΔC/TK)接受这个交换。该方法开始时温度很高,大部分的交换都可以接受,随着温度的逐渐降低,只有相邻逻辑块之间的交换可被接受,最终温度达到方法退出条件。如果交换可以接受,记录C=C+ΔC,place=new_place;
第九步,在当前温度TK和当前布局成本花费lastCost的基础上产生下一个温度Tnew,此时有三个选择:回火的上一温度Tprev、继续保持当前温度TK、下降到下一温度Tnext,其中Tprev在之前已经保存,Tnext由退火表确定。此时随机生成变量Skip的取值为K-1或者K+1,其中生成K-1的概率为a,生成K+1的概率为(1-a),回火概率a取值在[0,0.5]区间内,以控制回火的影响力。计算概率P的公式如下,
最终以min(1,P)的概率跳转到下标为Skip的温度值。通过分析可知,该方法是以概率(1-a)跳到下一温度,以a·P的概率跳到上一温度,以a·(1-P)的概率保持当前温度。该方法的意思是当前温度下,如果成本函数值Cost降低很多,说明布局质量的提升空间还很大,应该进行回火。随着温度的降低,回火概率也会降低,从而最终收敛到全局最优解。
温度修正常量C设定为回火的开始温度temp44,αK的计算公式如下,
其中averageCost为迭代过程中所有布局花费Cost的平均值。
第十步,将温度设为冰点温度,进行局部优化搜索;
第十一步,如果当前搜到的布局优于current_best,那么current_best保存当前布局,然后执行第六步。
第十二步,基于模拟退火/回火现场可编程门阵列的方法布局结束,输出该方法找到的最优解current_best
结合以下的仿真实验对本发明的使用效果做补充说明:
1、仿真条件
基于在多伦多大学的VPR(Versatile Placement and Routing)第6版实现,VPR6.0是当前学术界在FPGA(Field Programmable Gate Array)现场可编程门阵列布局布线问题上最好的工具之一。将基于模拟退火/回火现场可编程门阵列布局的方法(STplace),应用于支持FPGA(Field Programmable Gate Array)现场可编程门阵列开发的EDA软件的布局工具,与VPR6.0使用的布局工具(T_VPlace)进行比较,仿真采用FPGA(Field Programmable Gate Array)现场可编程门阵列的结构文件为k4n4.xml,即为4输入的LUT,每个CLB中封装4个LUT的FPGA(Field Programmable Gate Array)现场可编程门阵列结构,选取20个经装箱工具T-VPack处理后的MCNC标准电路,在HP Z800机器上进行布局仿真;
2、仿真内容
选取20个经过上述装箱处理后的MCNC标准电路,分别采用本发明的基于模拟退火/回火现场可编程门阵列布局方法和国际上常用的VPR6.0布局方法(T_VPlace)进行布局,采用VPR6.0的布线方法进行布线,分别统计仿真实验后的电路关键路径延时和布线线长结果,其中关键路径延时决定电路最终的运行时间,线长表示电路所需要的布线轨道单元个数,延时和线长结果共同决定电路的质量;
3、仿真结果
从上表可以看出,本发明的基于模拟退火/回火现场可编程门阵列布局方法,应用于支持FPGA(Field Programmable Gate Array)现场可编程门阵列开发的EDA软件的布局工具,与现有VPR6.0布局工具相比,总的关键路径延时降低5.1%,总的线长降低0.69%,延时和线长方面的质量都有所提高。
根据以上仿真实验和数据结果表明,本发明的基于模拟退火/回火现场可编程门阵列布局方法,应用于支持FPGA(Field Programmable Gate Array)现场可编程门阵列开发的EDA软件的布局工具,最终得到的布局结果稳定性好,同时能提高电路的质量,降低关键路径上的延时,改善最终的布线线长。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种基于模拟退火/回火现场可编程门阵列布局的方法,其特征在于,该基于模拟退火/回火现场可编程门阵列布局的方法包括以下步骤:
第一步,给定一个描述现场可编程门阵列的网表文件和一个结构文件,使用模拟退火方法进行初始布局,将每个逻辑块CLB随机的分配到FPGA(Field Programmable Gate Array)现场可编程门阵列的一个坐标位置上;
第二步,在初始布局的基础上,通过进行Nblocks次CLB的交换,计算得到模拟退火方法的初始温度,其中Nblocks是电路中CLB的个数;
第三步,在给定的温度下,判断温度是否达到冰点,如果达到冰点,执行第五步;
第四步,重复第三步直至接受新解的概率达到44%为止,记录当前的温度为temp44,并且保存当前的布局结果为current_best,执行第五步;
第五步,将温度设置为0,进行局部优化搜索,并保存当前最优的布局结果,模拟退火布局方法结束;
第六步,根据第五步的结果,将模拟回火方法的初始温度设置为temp44,初始布局设置为current_best;
第七步,在给定的温度下,判断温度是否达到冰点,如果达到冰点,执行第九步;
第八步,重复第七步直至温度达到冰点为止,执行第九步;
第九步,将温度设置为0,进行局部优化搜索,并保存当前最优的布局结果,模拟回火布局方法结束。
2.如权利要求1所述的基于模拟退火/回火现场可编程门阵列布局的方法,其特征在于,将应用于DNA序列分析、蛋白质分析的模拟回火方法应用于FPGA(Field Programmable Gate Array)现场可编程门阵列的布局问题,并将模拟退火方法与模拟回火方法结合使用,应用于FPGA(Field Programmable Gate Array)现场可编程门阵列的布局。
3.如权利要求1所述的基于模拟退火/回火现场可编程门阵列布局的方法,其特征在于,在第四步中,使用模拟退火方法进行布局的过程,由仿真结果表明,当新解的接受率达到44%时,退火过程结束;记录当前温度为temp44,并且保存当前的布局结果为current_best。
4.如权利要求1所述的基于模拟退火/回火现场可编程门阵列布局的方法,其特征在于,应用于支持FPGA(Field Programmable GateArray)现场可编程门阵列开发的EDA软件的布局工具,第七步的具体步骤为:
步骤一,在当前温度下,根据TK<0.005·Cost/Nnets判断是否达到冰点,如果没有,执行步骤二,其中TK为当前温度,Cost为当前布局的成本花费,Nnets为电路中的线网个数;
步骤二,随机选择一个CLB,在限定的范围内随机选择另一个CLB或者空余位置,然后进行交换,计算当前布局成本函数的改变量ΔC,如果ΔC<0,那么可以接受这个改变,否则以概率exp(-ΔC/TK)接受;
步骤三,重复步骤二Num_Move次,Num_Move理论上称为马可夫链长度,Num_Move=10·Nblocks 1.33;
步骤四,在当前温度TK和当前布局花费lastCost的基础上产生下一个温度Tnew;此时有三种选择:回火到上一温度Tprev、继续保持当前温度TK、下降到下一温度Tnext,其中Tprev在之前已经保存,Tnext由退火表确定;此时随机生成变量Skip的取值为K-1或者K+1,其中生成K-1的概率为a,生成K+1的概率为(1-a),回火概率a取值在[0,0.5];计算概率P的公式如下,
最后以min(1,P)的概率跳转到下标为Skip的温度值;公式中的常量C和α是修正值,在具体应用中确定,应用于支持FPGA(FieldProgrammable Gate Array)现场可编程门阵列开发的EDA软件的布局工具中,常量C设定为回火的开始温度temp44,αK的计算公式如下,
其中averageCost为迭代过程中所有布局花费Cost的平均值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410074911.9A CN103914587B (zh) | 2014-03-03 | 2014-03-03 | 一种基于模拟退火/回火现场可编程门阵列布局的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410074911.9A CN103914587B (zh) | 2014-03-03 | 2014-03-03 | 一种基于模拟退火/回火现场可编程门阵列布局的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103914587A true CN103914587A (zh) | 2014-07-09 |
CN103914587B CN103914587B (zh) | 2017-01-25 |
Family
ID=51040263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410074911.9A Active CN103914587B (zh) | 2014-03-03 | 2014-03-03 | 一种基于模拟退火/回火现场可编程门阵列布局的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103914587B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105411784A (zh) * | 2015-12-17 | 2016-03-23 | 季婷婷 | 一种外科护理换药装置 |
CN106682306A (zh) * | 2016-12-26 | 2017-05-17 | 西安电子科技大学 | 一种快速fpga布线方法 |
CN107122565A (zh) * | 2017-05-12 | 2017-09-01 | 山东大学 | 基于非易失性存储器的fpga bram架构与设计方法 |
CN108539059A (zh) * | 2018-06-14 | 2018-09-14 | 北京蜃景光电科技有限公司 | 一种用于新型oled材料的制备方法、制备系统和应用 |
CN108745394A (zh) * | 2018-04-13 | 2018-11-06 | 重庆三峡学院 | 一种光催化材料及制备方法 |
CN110175385A (zh) * | 2019-05-20 | 2019-08-27 | 山东大学 | 一种基于性能磨损均衡的非易失fpga布局优化方法和系统 |
CN111274660A (zh) * | 2019-11-30 | 2020-06-12 | 浙江华云信息科技有限公司 | 一种基于多扰动交替进行的模拟退火算法的线路布局方法 |
CN113095033A (zh) * | 2021-04-23 | 2021-07-09 | 中国科学院计算技术研究所 | 用于双时钟架构的超导rsfq电路布局方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231674A (zh) * | 2008-01-17 | 2008-07-30 | 复旦大学 | 现代可编程逻辑器件软件系统的层次化布局建模方法 |
-
2014
- 2014-03-03 CN CN201410074911.9A patent/CN103914587B/zh active Active
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105411784A (zh) * | 2015-12-17 | 2016-03-23 | 季婷婷 | 一种外科护理换药装置 |
CN106682306A (zh) * | 2016-12-26 | 2017-05-17 | 西安电子科技大学 | 一种快速fpga布线方法 |
CN106682306B (zh) * | 2016-12-26 | 2020-07-07 | 西安电子科技大学 | 一种快速fpga布线方法 |
CN107122565A (zh) * | 2017-05-12 | 2017-09-01 | 山东大学 | 基于非易失性存储器的fpga bram架构与设计方法 |
CN107122565B (zh) * | 2017-05-12 | 2019-08-30 | 山东大学 | 基于非易失性存储器的fpga bram架构与设计方法 |
CN108745394A (zh) * | 2018-04-13 | 2018-11-06 | 重庆三峡学院 | 一种光催化材料及制备方法 |
CN108539059A (zh) * | 2018-06-14 | 2018-09-14 | 北京蜃景光电科技有限公司 | 一种用于新型oled材料的制备方法、制备系统和应用 |
CN110175385A (zh) * | 2019-05-20 | 2019-08-27 | 山东大学 | 一种基于性能磨损均衡的非易失fpga布局优化方法和系统 |
CN111274660A (zh) * | 2019-11-30 | 2020-06-12 | 浙江华云信息科技有限公司 | 一种基于多扰动交替进行的模拟退火算法的线路布局方法 |
CN111274660B (zh) * | 2019-11-30 | 2024-04-26 | 浙江华云信息科技有限公司 | 一种基于多扰动交替进行的模拟退火算法的线路布局方法 |
CN113095033A (zh) * | 2021-04-23 | 2021-07-09 | 中国科学院计算技术研究所 | 用于双时钟架构的超导rsfq电路布局方法 |
CN113095033B (zh) * | 2021-04-23 | 2023-07-21 | 中国科学院计算技术研究所 | 用于双时钟架构的超导rsfq电路布局方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103914587B (zh) | 2017-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103914587A (zh) | 一种基于模拟退火/回火现场可编程门阵列布局的方法 | |
Sechen | VLSI placement and global routing using simulated annealing | |
CN104200087B (zh) | 用于机器学习的参数寻优及特征调优的方法及系统 | |
KR101602506B1 (ko) | 전자 회로의 계층적 오더 랭킹 시뮬레이션 방법 및 시뮬레이션을 위해 컴퓨터 실행가능 명령을 저장하는 컴퓨터 판독가능 기록 매체 | |
Siavashi et al. | Numerical simulation and optimization of steam-assisted gravity drainage with temperature, rate, and well distance control using an efficient hybrid optimization technique | |
CN103136603A (zh) | 一种智能土地利用布局优化配置方法 | |
Xu et al. | GoodFloorplan: Graph convolutional network and reinforcement learning-based floorplanning | |
CN102508977B (zh) | 用于模拟电路移植的电路优化方法和装置 | |
CN102063536B (zh) | 基于模式匹配的电源/地线网络与布图规划的协同设计方法 | |
Hu et al. | Optimal operation of power systems with energy storage under uncertainty: A scenario-based method with strategic sampling | |
CN104992032B (zh) | 一种多电压域设计中保持时间的修正方法 | |
CN103150435B (zh) | 时钟节点结群方法以及时钟网络结构 | |
US20130055187A1 (en) | Floorplan creation information generating method, floorplan creation information generating program, floorplan creation information generating device, floorplan optimizing method, floorplan optimizing program, and floorplan optimizing device | |
Huang et al. | Optimal nonblocking directed control of discrete event systems | |
CN104778088A (zh) | 一种基于减少进程间通信开销的并行i/o优化方法与系统 | |
JP6607264B2 (ja) | x管理システムのための最適スケジューリングおよびリアルタイム制御の方法 | |
JP4871194B2 (ja) | パラメータ抽出方法及び当該パラメータ抽出方法を実行させるプログラムを具備するコンピュータ読み取り可能な記憶媒体 | |
CN103500240B (zh) | 对硅通孔进行动态规划布线的方法 | |
Martin et al. | An adaptive sequential decision making flow for FPGAs using machine learning | |
CN106874611A (zh) | 一种基于超体积迭代策略的含区间参数结构响应区间的分析方法 | |
CN108733869B (zh) | 一种大规模三维集成电路分区方法和装置 | |
CN113987748B (zh) | 基于场路耦合的dab可靠性评估方法、装置及设备 | |
CN110274608A (zh) | 智能化路径规划方法、装置及计算机可读存储介质 | |
US11449017B2 (en) | Apparatus and method for optimizing control parameters of power plant | |
CN103176799A (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 |