一种FPGA详细布局的模拟退火方法技术

技术编号:18050232 阅读:47 留言:0更新日期:2018-05-26 08:11
一种FPGA详细布局的模拟退火方法,根据合法化布局后形成的初始布局计算模拟退火的初始温度,移动单元模块对当前布局进行优化,根据单元模块移动的接受率,在初始温度基础上对单目标的温度值进行固定比例的迭代调节,采用归一化系数对多目标的目标值进行归一化,采用温度比例系数对经过迭代调节后的单目标温度值进行修正迭代计算,得到多目标的温度值。本发明专利技术在单目标优化的基础上,对多目标优化进行了归一化处理和比例系数调节,保证了优化结果的一致性和多目标优化的有效性,消除了传统模拟退火方法中降温策略的不合理对布局的质量和速度造成的影响,调节后的温度更利于布局质量和速度的提高。

【技术实现步骤摘要】
一种FPGA详细布局的模拟退火方法
本专利技术涉及集成电路设计领域,尤其涉及一种FPGA详细布局的模拟退火方法。
技术介绍
FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输入输出模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。典型FPGA的开发流程一般包括功能定义/器件选型、设计输入、功能仿真、综合优化、综合后仿真、布局、布线、后仿真、板级仿真以及芯片编程与调试等主要步骤。FPGA芯片的自动化布局包含以下步骤:输入输出布局,全局时钟布局,初始布局,总体布局,合法化布局和详细布局。布局是整个流程中比较费时的一步,其将逻辑网表中的硬件原语和底层单元合理地配置到芯片内部的固有硬件结构上,并且往往需要在速度最优和面积最优之间做出选择。目前,FPGA的规模越来越大,结构越来越复杂,其中逻辑单元模块的类型越来越多,且包含像DSP和RAM这种大的逻辑单元,并且有些单元之间的走线都是固定(hard)连接,如进位链(carrychain)和移位寄存器(shiftregister)等等,这些都限制了逻辑单元的随意摆放,特别是在有时序约束条件时,由于布局对FPGA版图速度的快慢起到决定性作用,从在布局过程中就要将时序约束考虑进去,否则通过后续的布线等优化很难满足时序的约束。因此,如何快速有效的进行自动化布局,对FPGA版图设计起到至关重要的作用。传统的模拟退火方法很难保证多目标优化函数只优化单一目标与单目标优化函数优化单一目标结果的一致性,传统模拟退火方法中降温策略的不合理对布局的质量和速度造成影响。
技术实现思路
本专利技术提供一种FPGA详细布局的模拟退火方法,在单目标优化的基础上,对多目标优化进行了归一化处理和比例系数调节,保证了优化结果的一致性和多目标优化的有效性,消除了传统模拟退火方法中降温策略的不合理对布局的质量和速度造成的影响,调节后的温度更利于布局质量和速度的提高。为了达到上述目的,本专利技术提供一种FPGA详细布局的模拟退火方法,包含以下步骤:根据合法化布局后形成的初始布局计算模拟退火的初始温度,移动单元模块对当前布局进行优化,根据单元模块移动的接受率,在初始温度基础上对单目标的温度值进行固定比例的迭代调节,采用归一化系数对多目标的目标值进行归一化,采用温度比例系数对经过迭代调节后的单目标温度值进行修正迭代计算,得到多目标的温度值。计算模拟退火的初始温度的方法包含以下步骤:步骤S1.1、选取多个单元模块进行移动或交换;步骤S1.2、计算目标函数值Total_cost;Total_cost=v1×优化目标1的目标函数值+v2×优化目标2的目标函数值+…+vn×优化目标n的目标函数值;其中,v1~vn是每个优化目标的比重系数,v1+v2+…+vn=1;步骤S1.3、计算每一个单元模块的移动对目标函数值的改变量;目标函数值的改变量=移动后的目标函数值-移动前的目标函数值;步骤S1.4、计算所有改变量的均方差,将该均方差作为模拟退火的初始温度。针对单目标优化,以线长为例,单目标的目标函数值简化为:Total_cost=bb_cost(1)其中,bb_cost是线长的代价,线长的代价等于线网连接所有单元模块所在位置的外包络矩形的半周长;针对双目标优化,以线长和时延为例,双目标的目标函数值简化为:其中,td_cost是时延的代价;pin是线网的引脚,num_pin是引脚的数目,weight(num_pins)是线长的权重,与pin引脚的num数目相关;Delay是线网的驱动到各个被驱动点的时延;Slack是线网时延的松弛度;Require_time是线网最大允许的时延值;max_cirt是最大关键度;exponent是指数,x_length是外包络矩形沿X轴方向的宽度;y_length是外包络矩形沿Y轴方向的宽度;tradeoff是线长和时延的比重系数;prev_total_bb_cost是上一轮迭代的线长的目标函数值;prev_total_td_cost是上一轮迭代的时延的目标函数值。所述的计算单元模块移动的接受率的方法包含以下步骤:步骤S2.1、选取多个单元模块进行移动或交换;步骤S2.2、计算每一个单元模块的移动对目标函数值的改变量;目标函数值的改变量=移动后的目标函数值-移动前的目标函数值;步骤S2.3、判断目标函数值的改变量的数值,如果改变量的数值为负值,则接受此次对单元模块的移动,如果改变量的数值为正值,则进一步判断改变量的数值大小,如果改变量的数值小于移动后的目标函数值的1%,则接受此次对单元模块的移动,如果改变量的数值大于等于移动后的目标函数值的1%,则拒绝此次对单元模块的移动,将单元模块恢复到移动前的位置;被接受的移动是成功移动,未被接受的移动是无效移动;步骤S2.4、统计成功移动的次数及目标函数总的改变量;所述的目标函数总的改变量等于所有单元模块的移动对目标函数值的改变量之和。所述的移动或交换的单元模块包含随机移动序列和特定移动序列,所述的随机移动序列是随机产生的移动序列,所述的特定移动序列的移动能够使目标函数值减小。所述的单元模块的移动或交换都需要保证布局的合法性。所述的对单目标的温度值进行固定比例的迭代调节的方法包含:T(iter)=T(prev_iter)×Scale(success_move_rate)0.5<Scale(success_move_rate)<1其中,T是单目标温度;iter是当前迭代次数;prev_iter是上一轮迭代次数,如果本轮是第一次迭代,则T(prev_iter)是模拟退火的初始温度;Scale是温度降低的比例函数;Success_move_rate是单元模块移动的接受率,移动接受率=成功移动的次数/总移动次数。所述的归一化系数是上一轮迭代的目标函数值。所述的对经过迭代调节后的单目标温度值进行修正迭代计算的方法包含:其中,是温度比例系数,current_total_cost是上一轮迭代的总目标函数值,previous_total_cost是本轮迭代的总目标函数值。当迭代满足任意一个终止条件,则停止布局;所述的终止条件包含:迭代次数大于设定阈值,或者迭代后目标函数总的改变量小于迭代前目标函数值的2%,或者温度值小于1e-5,或者成功移动的次数小于移动总次数的5%。本专利技术在单目标优化的基础上,对多目标优化进行了归一化处理和比例系数调节,本文档来自技高网
...
一种FPGA详细布局的模拟退火方法

【技术保护点】
一种FPGA详细布局的模拟退火方法,其特征在于,包含以下步骤:根据合法化布局后形成的初始布局计算模拟退火的初始温度,移动单元模块对当前布局进行优化,根据单元模块移动的接受率,在初始温度基础上对单目标的温度值进行固定比例的迭代调节,采用归一化系数对多目标的目标值进行归一化,采用温度比例系数对经过迭代调节后的单目标温度值进行修正迭代计算,得到多目标的温度值。

【技术特征摘要】
1.一种FPGA详细布局的模拟退火方法,其特征在于,包含以下步骤:根据合法化布局后形成的初始布局计算模拟退火的初始温度,移动单元模块对当前布局进行优化,根据单元模块移动的接受率,在初始温度基础上对单目标的温度值进行固定比例的迭代调节,采用归一化系数对多目标的目标值进行归一化,采用温度比例系数对经过迭代调节后的单目标温度值进行修正迭代计算,得到多目标的温度值。2.如权利要求1所述的FPGA详细布局的模拟退火方法,其特征在于,计算模拟退火的初始温度的方法包含以下步骤:步骤S1.1、选取多个单元模块进行移动或交换;步骤S1.2、计算目标函数值Total_cost;Total_cost=v1×优化目标1的目标函数值+v2×优化目标2的目标函数值+…+vn×优化目标n的目标函数值;其中,v1~vn是每个优化目标的比重系数,v1+v2+…+vn=1;步骤S1.3、计算每一个单元模块的移动对目标函数值的改变量;目标函数值的改变量=移动后的目标函数值-移动前的目标函数值;步骤S1.4、计算所有改变量的均方差,将该均方差作为模拟退火的初始温度。3.如权利要求2所述的FPGA详细布局的模拟退火方法,其特征在于,针对单目标优化,以线长为例,单目标的目标函数值简化为:Total_cost=bb_cost(1)其中,bb_cost是线长的代价,线长的代价等于线网连接所有单元模块所在位置的外包络矩形的半周长;针对双目标优化,以线长和时延为例,双目标的目标函数值简化为:其中,td_cost是时延的代价;pin是线网的引脚,num_pin是引脚的数目,weight(num_pins)是线长的权重,与pin引脚的num数目相关;Delay是线网的驱动到各个被驱动点的时延;Slack是线网时延的松弛度;Require_time是线网最大允许的时延值;max_cirt是最大关键度;exponent是指数,x_length是外包络矩形沿X轴方向的宽度;y_length是外包络矩形沿Y轴方向的宽度;tradeoff是线长和时延的比重系数;prev_total_bb_cost是上一轮迭代的线长的目标函数值;prev_total_td_cost...

【专利技术属性】
技术研发人员:王似飞沈磊叶翼李小南吴昌
申请(专利权)人:上海复旦微电子集团股份有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1