CN105573901B - 一种fpga软件可达最高频率的混合搜索方法 - Google Patents
一种fpga软件可达最高频率的混合搜索方法 Download PDFInfo
- Publication number
- CN105573901B CN105573901B CN201410532197.3A CN201410532197A CN105573901B CN 105573901 B CN105573901 B CN 105573901B CN 201410532197 A CN201410532197 A CN 201410532197A CN 105573901 B CN105573901 B CN 105573901B
- Authority
- CN
- China
- Prior art keywords
- frequency
- search
- highest frequency
- value
- highest
- 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.)
- Active
Links
Abstract
本发明涉及一种FPGA软件可达最高频率的混合搜索方法,该方法包括以下步骤:步骤一、在预定区域内,根据历次搜索已得的最高频率值和次高频率值进行比较,通过比较结果调整搜索步长因子和频率容差,进行最高频率值的正向区域搜索或负向区域搜索,确定当前期望频率值;步骤二、判断当前期望频率值是否有效,如果是,以当前期望频率值运行FPGA软件流程,否则返回步骤一;步骤三、提取FPGA软件静态时序分析过程中的最高频率,基于收敛迭代操作确定下次期望频率值,转步骤二。本发明可在更广更优的频率区间搜索频率收敛点,从而得到FPGA软件运行时更佳的最高频率。
Description
技术领域
本发明涉及FPGA软件流程,尤其涉及一种FPGA软件可达最高频率的混合搜索方法。
背景技术
FPGA软件所能跑到的最高频率是衡量其性能的一个重要指标,现有技术提出了几种FPGA软件流程可达最高频率的搜索方法与评价指标,例如区域搜索算法和收敛迭代算法等。然而单独的区域搜索算法不能体现FPGA软件中后端布局布线工具受时序驱动收敛的特性,不能尽快找到频率收敛点,效率较低;单独的收敛迭代算法搜索到的频率收敛点与初始频率的设置关系很大,不同的初始频率驱动下,得到的频率收敛点可能是很不一样的。不能体现不同初始频率区域的影响,也不能避免相同或相近频率点重复搜索的问题。
发明内容
本发明的目的在于提供一种FPGA软件可达最高频率的混合搜索策略,从而解决现有技术中存在的上述技术问题。
为实现上述目的,本发明提供了一种FPGA软件可达最高频率的混合搜索方法,该方法包括以下步骤:
步骤一、在预定区域内,根据历次搜索已得的最高频率值和次高频率值进行比较,通过比较结果调整搜索步长因子和频率容差,进行最高频率值的正向区域搜索或负向区域搜索,确定当前期望频率值;
步骤二、判断当前期望频率值是否有效,如果是,以当前期望频率值运行FPGA软件流程,否则返回步骤一;
步骤三、提取FPGA软件在静态时序分析过程中的最高频率,基于收敛迭代操作确定下次期望频率值,转步骤二。
本发明通过混合搜索策略在更广更优的频率区间搜索频率收敛点,从而得到FPGA软件运行时更佳的最高频率,解决了单独的区域搜索算法不能尽快找到频率收敛点的问题,以及单独的收敛迭代算法搜索区间单一,不能避免相同或相近频率点重复搜索的问题。
附图说明
图1为本发明实施例提供的一种FPGA软件可达最高频率的混合策略搜索方法流程图;
图2a为搜索步长因子和频率容差调整结果示意图;
图2b为搜索步长因子和频率容差调整方法示意图;
图3为FPGA软件可运行最高频率的多次收敛迭代搜索示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
图1为本发明实施例提供的一种FPGA软件可达最高频率的混合策略搜索方法流程图。如图1所示,该方法包括步骤101-103(步骤一至步骤三):
在步骤一、在预定搜索区域内,根据历次搜索已得的最高频率值和次高频率值进行比较,通过比较结果调整搜索步长因子和频率容差,并进行最高频率值的正向区域搜索或负向区域搜索,确定当前期望频率值。
具体地,通过触发区域搜索算法获取FPGA软件运行时的频率集合,将频率集合中的最高频率值和次高频率值进行比较,即根据最高频率和次高频率计算其差值,该差值的计算方式为最高频率值和次高频率值差的绝对值再除以最高频率,根据其比较结果调整搜索步长因子和频率容差,根据调整后的搜索步长因子及频率容差,再以最高频率值为中心进行正向区域搜索或负向区域搜索,通过正向区域和负向区域搜索得到的频率分别称为正向区域频率和负向区域频率,从正向区域频率和负向区域频率中得到与最高频率最接近的还未搜索过的频率点,确定为当前期望频率值。
在一个调整搜索步长因子和频率容差例子中(如图2a所示),默认正向搜索区域为RI,负向搜索区间为RJ,搜索步长因子为T及频率容差为L,其中,搜索区间和搜索步长可由用户设定,频率容差可以预先设定,以排徐不符合要求的频率。默认正向搜索区间RI,负向搜索区间RJ,步长因子T及容差L。假设历次搜索已得的最高频率值为Fmax2、次高频率值为Fmax3,令最高频率值Fmax2与次高频率值Fmax3的差Difference=|Fmax3-Fmax2|/Fmax2,其中Fmax2=max[Fmax(i)]=max[1/(第i次搜索时钟周期-第i次搜索布局布线后时钟余量)],Fmax3=max[Fmax(j)]=max[1/(第j次搜索时钟周期-第j次搜索布局布线后时钟余量)],j!=i(Fmax2)。搜索步长因子及频率容差调整如下:判断最高频率值与次高频率值的差(Difference)是否小于0.005,如果是,则设RI=0.01,RJ=0.01,T=0.001,L=0.001;如果不是,则进一步判断最高频率值与次高频率值的差(Difference)是否小于0.01,如果是,则设RI=0.05,RJ=0.05,T=0.002,L=0.002;如果不是,则进一步判断最高频率值与次高频率值的差(Difference)是否小于0.05,如果是,则设RI=0.1,RJ=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。
步骤二、判断当前期望频率值是否有效,如果是,以当前期望频率值运行FPGA软件流程,否则返回步骤一。
具体地,判断当前期望频率值是否属于预定的搜索频率范围,如果是以当前期限频率值运行FPGA软件流程,否则返回步骤一,重新搜索当前频率值。优选地,在判断当前期望频率值是否有效时,同时过滤掉相同或相近频率点。
步骤一和步骤二的具体流程如下(参考图2b):
以最高频率值Fmax2为中心进行正向区域搜索,令Fi=Fmax2(1+i*T),其中,Fi为当前搜索得到的频率,i为搜索步数,T为搜索步长因子。当i在[1,RI/T]区间,且|Fi-Fmax2|>L时,判断Fi是否有效,如果有效则设置Fi为当前期望频率,并以当前期望频率Fi运行FPGA软件流程;当i不在[1,RI/T]区间时,则以最高频率值Fmax2为中心进行反向区域搜索,令Fi=Fmax2(1-j*T),其中j为搜索步数,判断j是否在[1,RJ/T]区间,如果不在则退出区域搜索操作,如果j在[1,RJ/T]区间,且P[Fj-Fmax2]>L,则判断Fj是否有效,如果有效,则设置Fj为当前期望频率,再以当前期望频率Fj运行FPGA软件流程。
步骤三、提取FPGA软件静态时序分析过程中的最高频率,基于收敛迭代操作确定下次期望频率值,转步骤二。
具体地,基于收敛迭代算法计算FPGA软件可达到的最高频率,其中,迭代次数、最大时钟余量比率和时钟余量容限均可由用户指定,最大时钟余量=最大时钟余量比率*时钟周期。在默认的情况下,迭代次数可以设为20,最大时钟余量比率可以设为0.1,时钟余量容限可以设为0。
在迭代之初,用户可以设置初始时钟周期,并在FPGA软件以该初始时钟运行之后检查布局布线后的时序状态。如果FPGA软件运行一次后的时钟余量为正,则提高最高频率的数值;如果FPGA软件运行一次后的时钟余量为负,则降低最高频率的数值。对应于提高/降低的最高频率的数值,新的时钟周期将作为下一次迭代的时钟周期。迭代一直进行,直到当前迭代后得到的时钟余量满足预定条件,或者迭代达到用户预定的迭代次数之后,迭代停止。优选地,可以选取迭代停止时,即FPGA软件最后一次运行的时钟余量,将该时钟余量对应的频率值作为FPGA软件可运行的最高频率,确定为下次期望频率值,转步骤二。
图3为FPGA软件可运行最高频率的多次收敛迭代搜索示意图。如图3所示,多次迭代从状态s0开始,从状态s5退出;当然,多次迭代也可以在达到用户设定的迭代次数后在其中的某一个状态结束。具体地,s0为初始迭代状态;s1、s3为时钟余量为负时的迭代状态,即时序违规时的迭代状态;s2、s4为时钟余量为正时的迭代状态,即时序满足时的迭代状态;s5为退出迭代状态。
在初始状态s0,用户可设定初始时钟周期、最大时钟余量、时钟余量容限;另外,用户还可以设定迭代次数。在初始迭代状态s0,FPGA软件按照初始设定运行一次后,检查布局布线后的时序状态,得到初始时钟余量。
取决于初始时钟周期的设置以及改变时钟周期的具体策略,所述的多次迭代可能理想地按照下述的两条支线之一进行,直至最后满足预定条件或者达到预定迭代次数后退出迭代。
本发明实施例通过混合搜索策略在更广更优的频率区间搜索频率收敛点,从而得到FPGA软件运行时更佳的最高频率,解决了单独的区域搜索算法不能尽快找到频率收敛点的问题,以及单独的收敛迭代算法搜索区间单一,不能避免相同或相近频率点重复搜索的问题。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种FPGA软件可达最高频率的混合搜索方法,其特征在于,所述方法包括以下步骤:
步骤一、在预定区域内,通过触发区域搜索算法获取FPGA软件运行时的频率集合,将所述频率集合中的最高频率值和次高频率值进行比较,即根据所述最高频率和所述次高频率计算其差值,所述差值的计算方式为所述最高频率值和所述次高频率值差的绝对值再除以所述最高频率值,根据其比较结果调整搜索步长因子和频率容差,根据调整后的搜索步长因子及频率容差,再以所述最高频率值为中心进行正向区域搜索或负向区域搜索,通过正向区域和负向区域搜索得到的频率分别称为正向区域频率和负向区域频率,从所述正向区域频率和所述负向区域频率中得到与所述最高频率最接近的还未搜索过的频率点,确定当前期望频率值;
步骤二、判断所述当前期望频率值是否有效,如果是,以所述当前期望频率值运行FPGA软件流程,否则返回步骤一;
步骤三、提取所述FPGA软件静态时序分析过程中的最高频率,基于收敛迭代操作确定下次期望频率值,转步骤二。
2.根据权利要求1所述的方法,其特征在于,所述根据历次搜索已得的最高频率值和次高频率值进行比较,通过比较结果调整搜索步长因子和频率容差步骤包括:
根据所述最高频率和所述次高频率计算差值,所述差值为所述最高频率和所述次高频率差的绝对值再除以所述最高频率;
根据所述差值来调整所述搜索步长因子和频率容差。
3.根据权利要求1所述的方法,其特征在于,所述进行最高频率值的正向区域搜索或负向区域搜索,确定当前期望频率值步骤包括:
基于预先设定的搜索步长,在预定区域中,进行正向区域搜索或负向区域搜索,得到与最高频率最接近的还未搜索过的频率点,其中,所述预定区域与预先设定的搜索区间有关,所述正向区域搜索和所述负向区域搜索的步数与所述搜索区间和所述搜索步长相关并且被预先设定。
4.根据权利要求1所述的方法,其特征在于,所述进行最高频率值的正向区域搜索,确定当前期望频率值步骤包括:
以最高频率值为中心进行正向区域搜索,令Fi=Fmax2(1+i*T),其中,Fi为当前搜索得到的频率,Fmax2为最高频率值,i为搜索步数,T为搜索步长因子;当i在[1,搜索区间RI/搜索步长因子T]区间,且|Fi-Fmax2|>频率容差L时,判断Fi是否有效,如果有效则设置Fi为当前期望频率。
5.根据权利要求4所述的方法,其特征在于,当i不在[1,RI/T]区间时,则以最高频率值Fmax2为中心进行反向区域搜索,令Fi=Fmax2(1-j*T),其中j为搜索步数,判断j是否在[1,RJ/T]区间,如果不在则退出区域搜索操作,如果j在[1,RJ/T]区间,且P[Fj-Fmax2]>L,则判断Fj是否有效,如果有效,则设置Fj为当前期望频率。
6.根据权利要求1所述的方法,其特征在于,所述判断所述当前期望频率值是否有效步骤包括:
检测所述当前期望频率是否超出预定频率区间,如果超过预定频率区间,则无效;否则有效。
7.根据权利要求1所述的方法,其特征在于还包括:
在判断所述当前期望频率值是否有效时,过滤掉相同或相近频率点。
8.根据权利要求1所述的方法,其特征在于,所述基于收敛迭代操作确定下次期望频率值步骤包括:
在迭代之初,用户设置初始时钟周期,并在FPGA软件以该初始时钟运行之后检查布局布线后的时序状态;
如果FPGA软件运行一次后的时钟余量为正,则提高最高频率的数值;如果FPGA软件运行一次后的时钟余量为负,则降低最高频率的数值;对应于提高/降低的最高频率的数值,新的时钟周期将作为下一次迭代的时钟周期;
直到当前迭代后得到的时钟余量满足预定条件,或者迭代达到用户预定的迭代次数之后,迭代停止;迭代停止时FPGA软件最后一次运行的时钟余量对应的频率值作为下次期望频率值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410532197.3A CN105573901B (zh) | 2014-10-10 | 2014-10-10 | 一种fpga软件可达最高频率的混合搜索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410532197.3A CN105573901B (zh) | 2014-10-10 | 2014-10-10 | 一种fpga软件可达最高频率的混合搜索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105573901A CN105573901A (zh) | 2016-05-11 |
CN105573901B true CN105573901B (zh) | 2018-03-30 |
Family
ID=55884067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410532197.3A Active CN105573901B (zh) | 2014-10-10 | 2014-10-10 | 一种fpga软件可达最高频率的混合搜索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105573901B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113627108B (zh) * | 2021-08-13 | 2023-08-25 | 山东大学 | Fpga中密码算法的最大运行频率自动化搜索方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770424A (zh) * | 2010-01-05 | 2010-07-07 | 天津七一二通信广播有限公司 | 适于数字通信终端底层协议栈的数据采集与仿真系统 |
CN102353838A (zh) * | 2011-06-30 | 2012-02-15 | 南京航空航天大学 | 一种用fpga芯片实现的快速高精度频率测量方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8176296B2 (en) * | 2000-10-26 | 2012-05-08 | Cypress Semiconductor Corporation | Programmable microcontroller architecture |
-
2014
- 2014-10-10 CN CN201410532197.3A patent/CN105573901B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770424A (zh) * | 2010-01-05 | 2010-07-07 | 天津七一二通信广播有限公司 | 适于数字通信终端底层协议栈的数据采集与仿真系统 |
CN102353838A (zh) * | 2011-06-30 | 2012-02-15 | 南京航空航天大学 | 一种用fpga芯片实现的快速高精度频率测量方法 |
Non-Patent Citations (1)
Title |
---|
基于FPGA的全相位FFT高精度频率测量;贺同 等;《电子测量技术》;20130815;第36卷(第8期);80-83 * |
Also Published As
Publication number | Publication date |
---|---|
CN105573901A (zh) | 2016-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8726211B2 (en) | Generating an equivalent waveform model in static timing analysis | |
CN103353550A (zh) | 一种测量电力系统信号频率及谐波参数的方法 | |
CN104990893B (zh) | 一种基于相似判别的汽油辛烷值检测方法 | |
CN109492508A (zh) | 一种限幅滤波方法及系统 | |
CN105573901B (zh) | 一种fpga软件可达最高频率的混合搜索方法 | |
CN108959779A (zh) | 基于电源噪声时域解析分析的去耦网络设计方法 | |
CN106513879A (zh) | 一种基于混沌理论的火花放电状态识别和检测方法 | |
Guo et al. | Passivity enforcement for passive component modeling subject to variations of geometrical parameters using neural networks | |
CN107453639A (zh) | 一种伺服用死区补偿方法、装置及系统 | |
CN104572291B (zh) | 一种处理器的调用方法及电子设备 | |
Kolk et al. | Numerical solution of Volterra integral equations with weakly singular kernels which may have a boundary singularity | |
CN102054069B (zh) | 非线性电路直流工作点的伪瞬态分析方法与装置 | |
CN106777032A (zh) | 一种云计算环境下的混合近似查询方法 | |
CN104184351B (zh) | 一种逆变器控制方法及系统 | |
CN103207936A (zh) | 一种基于空间缩减策略的序列采样算法 | |
CN104346270B (zh) | 一种搜索fpga软件可运行到的最高频率的方法 | |
CN102005769B (zh) | 基于受扰轨迹模式分析的电力系统动态稳定辅助决策方法 | |
CN111130098B (zh) | 一种含分布式电源配电网系统风险评估方法 | |
CN107943558A (zh) | 基于霍尔特指数平滑法的状态预测模型生成方法 | |
Zauner et al. | Grid refinement using spectral error indicators with application to airfoil DNS | |
CN105627904A (zh) | 一种变压器绕组变形的判定方法 | |
CN107491577A (zh) | 白车身设计方法及装置 | |
CN104679931A (zh) | 一种用于集成电路布局的加速型模拟退火方法 | |
CN206004312U (zh) | 一种交流滤波器投切系统 | |
Ambasana et al. | Automated frequency selection for machine-learning based EH/EW prediction from S-Parameters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PP01 | Preservation of patent right |
Effective date of registration: 20180601 Granted publication date: 20180330 |
|
PP01 | Preservation of patent right | ||
PD01 | Discharge of preservation of patent |
Date of cancellation: 20210601 Granted publication date: 20180330 |
|
PD01 | Discharge of preservation of patent |