一种fpga软件可达最高频率的混合搜索方法

文档序号:9810431阅读:261来源:国知局
一种fpga软件可达最高频率的混合搜索方法
【技术领域】
[0001]本发明涉及FPGA软件流程,尤其涉及一种FPGA软件可达最高频率的混合搜索方法。
【背景技术】
[0002]FPGA软件所能跑到的最高频率是衡量其性能的一个重要指标,现有技术提出了几种FPGA软件流程可达最高频率的搜索方法与评价指标,例如区域搜索算法和收敛迭代算法等。然而单独的区域搜索算法不能体现FPGA软件中后端布局布线工具受时序驱动收敛的特性,不能尽快找到频率收敛点,效率较低;单独的收敛迭代算法搜索到的频率收敛点与初始频率的设置关系很大,不同的初始频率驱动下,得到的频率收敛点可能是很不一样的。不能体现不同初始频率区域的影响,也不能避免相同或相近频率点重复搜索的问题。

【发明内容】

[0003]本发明的目的在于提供一种FPGA软件可达最高频率的混合搜索策略,从而解决现有技术中存在的上述技术问题。
[0004]为实现上述目的,本发明提供了一种FPGA软件可达最高频率的混合搜索方法,该方法包括以下步骤:
[0005]步骤一、在预定区域内,根据历次搜索已得的最高频率值和次高频率值进行比较,通过比较结果调整搜索步长因子和频率容差,进行最高频率值的正向区域搜索或负向区域搜索,确定当前期望频率值;
[0006]步骤二、判断当前期望频率值是否有效,如果是,以当前期望频率值运行FPGA软件流程,否则返回步骤一;
[0007]步骤三、提取FPGA软件在静态时序分析过程中的最高频率,基于收敛迭代操作确定下次期望频率值,转步骤二。
[0008]本发明通过混合搜索策略在更广更优的频率区间搜索频率收敛点,从而得到FPGA软件运行时更佳的最高频率,解决了单独的区域搜索算法不能尽快找到频率收敛点的问题,以及单独的收敛迭代算法搜索区间单一,不能避免相同或相近频率点重复搜索的问题。
【附图说明】
[0009]图1为本发明实施例提供的一种FPGA软件可达最高频率的混合策略搜索方法流程图;
[0010]图2a为搜索步长因子和频率容差调整结果TJK意图;
[0011]图2b为搜索步长因子和频率容差调整方法TJK意图;
[0012]图3为FPGA软件可运行最高频率的多次收敛迭代搜索示意图。
【具体实施方式】
[0013]下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
[0014]图1为本发明实施例提供的一种FPGA软件可达最高频率的混合策略搜索方法流程图。如图1所示,该方法包括步骤101-103(步骤一至步骤三):
[0015]在步骤一、在预定搜索区域内,根据历次搜索已得的最高频率值和次高频率值进行比较,通过比较结果调整搜索步长因子和频率容差,并进行最高频率值的正向区域搜索或负向区域搜索,确定当前期望频率值。
[0016]具体地,通过触发区域搜索算法获取FPGA软件运行时的频率集合,将频率集合中的最高频率值和次高频率值进行比较,即根据最高频率和次高频率计算其差值,该差值的计算方式为最高频率值和次高频率值差的绝对值再除以最高频率,根据其比较结果调整搜索步长因子和频率容差,根据调整后的搜索步长因子及频率容差,再以最高频率值为中心进行正向区域搜索或负向区域搜索,通过正向区域和负向区域搜索得到的频率分别称为正向区域频率和负向区域频率,从正向区域频率和负向区域频率中得到与最高频率最接近的还未搜索过的频率点,确定为当前期望频率值。
[0017]在一个调整搜索步长因子和频率容差例子中(如图2a所示),默认正向搜索区域为RI,负向搜索区间为RJ,搜索步长因子为T及频率容差为L,其中,搜索区间和搜索步长可由用户设定,频率容差可以预先设定,以排徐不符合要求的频率。默认正向搜索区间RI,负向搜索区间RJ,步长因子T及容差L。假设历次搜索已得的最高频率值为Fmax2、次高频率值为Fmax3,令最高频率值Fmax2与次高频率值Fmax3的差Difference = | Fmax3-Fmax2 | /Fmax2,其中Fmax2 = max [Fmax(i)] = max [I/(第i次搜索时钟周期-第i次搜索布局布线后时钟余量)],Fmax3 = max [Fmax (j) ] = max [I/(第j次搜索时钟周期-第j次搜索布局布线后时钟余量)],j ! = i(Fmax2)。搜索步长因子及频率容差调整如下:判断最高频率值与次高频率值的差(Difference)是否小于0.005,如果是,则设RI = 0.01,RJ = 0.01,T=0.0OLL = 0.001 ;如果不是,则进一步判断最高频率值与次高频率值的差(Difference)是否小于0.01,如果是,则设RI = 0.05,RJ = 0.05,T = 0.002,L = 0.002 ;如果不是,则进一步判断最高频率值与次高频率值的差(Difference)是否小于0.05,如果是,则设RI =
0.LRJ = 0.1,T = 0.005,L = 0.005 ;如果不是,则进一步判断最高频率值与次高频率值的差(Difference)是否小于 0.1,如果是,则设 RI = 0.2,RJ = 0.2,T = 0.01,L = 0.01 ;如果不是,则进一步判断最高频率值与次高频率值的差(Difference)是否小于0.2,如果是,则设 RI = 0.5,RJ = 0.5,T = 0.02,L = 0.02 ;否则设 RI =频率搜索范围下限 /Fmax2,RJ=频率搜索范围上限/Fmax2,T = 0.05,L = 0.05。
[0018]步骤二、判断当前期望频率值是否有效,如果是,以当前期望频率值运行FPGA软件流程,否则返回步骤一。
[0019]具体地,判断当前期望频率值是否属于预定的搜索频率范围,如果是以当前期限频率值运行FPGA软件流程,否则返回步骤一,重新搜索当前频率值。优选地,在判断当前期望频率值是否有效时,同时过滤掉相同或相近频率点。
[0020]步骤一和步骤二的具体流程如下(参考图2b):
[0021]以最高频率值Fmax2为中心进行正向区域搜索,令Fi = Fmax2(l+i*T),其中,Fi为当前搜索得到的频率,i为搜索步数,T为搜索步长因子。当i在[1,RI/T]区间,且|F1-Fmax2|>L时,判断Fi是否有效,如果有效则设置Fi为当前期望频率,并以当前期望频率Fi运行FPGA软件流程;当i不在[1,RI/T]区间时,则以最高频率值Fmax2为中心进行反向区域搜索,令Fi = Fmax2(l-j*T),其中j为搜索步数,判断j是否在[I, RJ/T]区间,如果不在则退出区域搜索操作,如果j在[1,RJ/T]区间,且P[Fj-Fmax2]>L,则判断Fj是否有效,如果有效,则设置Fj为当前期望频率,再以当前期望频率Fj运行FPGA软件流程。
[0022]步骤三、提取FPGA软件静态时序分析过程中的最高频率,基于收敛迭代操作确定下次期望频率值,转步骤二。
[0023]具体地,基于收敛迭代算法计算FPGA软件可达到的最高频率,其中,迭代次数、最大时钟余量比率和时钟余量容限均可由用户指定,最大时钟余量=最大时钟余量比率*时钟周期。在默认的情况下,迭代次数可以设为20,最大时钟余量比率可以设为0.1,时钟余量容限可以设为O。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1