FPGA逻辑综合的优化方法及装置、系统转让专利

申请号 : CN201910972542.8

文献号 : CN110457868B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 宋宁刘建华刘奎王宁王维张青

申请人 : 广东高云半导体科技股份有限公司

摘要 :

本发明公开了一种FPGA逻辑综合的优化方法及装置、系统,包括:前端逻辑综合装置生成综合后网表;后端处理装置获取前端逻辑综合装置生成的综合后网表并判断接收到的综合后网表是否需要进行优化;若是,则生成优化指示信息并反馈至前端逻辑综合装置,若否,则根据综合后网表输出布局布线结果;当接收到优化指示信息时,前端逻辑综合装置根据优化指示信息对综合后网表执行优化操作以生成新的综合后网表,其中,前端逻辑综合装置生成的综合后网表用于提供给后端处理装置。可见,实施本发明能够根据后端反馈的优化指示信息实现对逻辑综合的优化,提高了前端逻辑综合的结果与后端实际需求的匹配度,进一步提高了逻辑综合的通用性以及逻辑综合的质量。

权利要求 :

1.一种FPGA逻辑综合的优化方法,其特征在于,所述方法包括:

前端逻辑综合装置生成综合后网表;

后端处理装置获取所述前端逻辑综合装置生成的所述综合后网表,并判断所述综合后网表是否需要进行优化;当判断出所述综合后网表需要进行优化时,生成优化指示信息,并将所述优化指示信息反馈至所述前端逻辑综合装置;当判断出所述综合后网表不需要进行优化时,根据所述综合后网表输出布局布线结果;

当接收到所述后端处理装置发送的所述优化指示信息时,所述前端逻辑综合装置根据所述优化指示信息对所述综合后网表执行优化操作以生成新的综合后网表;

以及,在判断出所述综合后网表需要进行优化之后,所述后端处理装置生成优化指示信息之前,所述方法还包括:所述后端处理装置统计目标次数,并判断所述目标次数是否达到预设次数阈值;当判断出所述目标次数达到所述预设次数阈值时,所述后端处理装置执行所述的根据所述综合后网表输出布局布线结果的操作;当判断出所述目标次数未达到所述预设次数阈值时,所述后端处理装置执行所述的生成优化指示信息的操作,所述目标次数为优化指示信息生成总次数或者综合后网表接收总次数;

其中,所述前端逻辑综合装置生成的所述综合后网表用于提供给所述后端处理装置。

2.根据权利要求1所述的FPGA逻辑综合的优化方法,其特征在于,所述目标次数具体为从第一时刻到当前时刻的时间段内与所述后端处理装置对应的优化指示信息生成总次数;

或者,所述目标次数具体为从第二时刻到所述当前时刻的时间段内与所述后端处理装置对应的综合后网表接收总次数;

所述第一时刻早于所述后端处理装置生成初始综合后网表对应的优化指示信息的时刻,所述第二时刻早于所述后端处理装置接收到所述初始综合后网表的时刻,所述初始综合后网表是由所述前端逻辑综合装置根据读取到的用户设计文件生成的。

3.根据权利要求1或2所述的FPGA逻辑综合的优化方法,其特征在于,所述后端处理装置生成优化指示信息之后,所述方法还包括:所述后端处理装置向与所述后端处理装置对应的控制装置发送优化确认请求,所述优化确认请求包括所述优化指示信息且用于请求所述控制装置控制对应的输出装置输出所述优化指示信息供操作人员确认;

所述后端处理装置接收所述控制装置针对所述优化确认请求反馈的优化确认响应,并执行所述的将所述优化指示信息反馈至所述前端逻辑综合装置的操作;其中,所述优化确认响应是由所述控制装置在接收到所述操作人员针对所述优化确认请求触发的确认消息之后生成的。

4.根据权利要求1或2所述的FPGA逻辑综合的优化方法,其特征在于,所述优化指示信息包括所述综合后网表中需要优化的目标局部网表;或者,所述优化指示信息包括所述综合后网表以及标注信息,所述标注信息用于标注所述综合后网表中需要优化的目标局部网表。

5.根据权利要求4所述的FPGA逻辑综合的优化方法,其特征在于,所述优化指示信息还包括与所述目标局部网表相匹配的优化导向信息,所述优化导向信息用于作为所述前端逻辑综合装置优化所述综合后网表的优化依据;

其中,所述优化导向信息包括技术映射结果导向信息、逻辑优化结果导向信息以及逻辑综合结果导向信息中的至少一种。

6.根据权利要求1、2或5所述的FPGA逻辑综合的优化方法,其特征在于,所述后端处理装置判断所述综合后网表是否需要进行优化,包括:所述后端处理装置判断所述综合后网表的局部网表面积是否大于等于预设网表面积阈值,若是,则确定所述综合后网表需要进行优化;或者,所述后端处理装置判断所述综合后网表的层级关系复杂度是否大于等于预设复杂度阈值,若是,则确定所述综合后网表需要进行优化;或者,所述后端处理装置判断所述综合后网表的网表结构是否与对应电路中的器件相匹配,若否,则确定所述综合后网表需要进行优化;或者,所述后端处理装置判断所述综合后网表的目标关键路径是否符合预设路径需求,若否,则确定所述综合后网表需要进行优化;或者,所述后端处理装置判断所述综合后网表对应的功耗是否满足预设功耗条件,若否,则确定所述综合后网表需要进行优化。

7.根据权利要求1所述的FPGA逻辑综合的优化方法,其特征在于,所述方法还包括:当未接收所述后端处理装置发送的所述优化指示信息时,所述前端逻辑综合装置统计综合后网表优化信息,并基于统计出的所述综合后网表优化信息生成综合后网表优化记录;

其中,所述综合后网表优化信息包括综合后网表优化总次数、每次优化对应的优化指示信息以及每次优化后的综合后网表优化结果中的至少一种。

8.一种前端逻辑综合装置,其特征在于,所述前端逻辑综合装置包括:生成模块,用于生成综合后网表;

检测模块,用于检测是否接收到后端处理装置反馈的优化指示信息;

所述生成模块,还用于当所述检测模块检测到所述后端处理装置反馈的所述优化指示信息时,根据所述优化指示信息对所述综合后网表执行优化操作以生成新的综合后网表;

其中,所述生成模块生成的所述综合后网表用于提供给所述后端处理装置,以触发所述后端处理装置执行以下操作:判断所述综合后网表是否需要进行优化,在判断出所述综合后网表需要进行优化之后,统计目标次数,并判断所述目标次数是否达到预设次数阈值;当判断出所述目标次数达到所述预设次数阈值时,根据所述综合后网表输出布局布线结果的操作;当判断出所述目标次数未达到所述预设次数阈值时,生成优化指示信息,所述目标次数为优化指示信息生成总次数或者综合后网表接收总次数。

9.一种后端处理装置,其特征在于,所述后端处理装置包括:

获取模块,用于获取前端逻辑综合装置生成的综合后网表;

判断模块,用于判断所述获取模块获取到的所述综合后网表是否需要进行优化;

优化生成模块,用于当所述判断模块判断出所述综合后网表需要进行优化时,生成优化指示信息;

通信模块,用于将所述优化指示信息反馈至所述前端逻辑综合装置,以触发所述前端逻辑综合装置对所述综合后网表执行优化操作以生成新的综合后网表;

输出模块,用于当所述判断模块判断出所述综合后网表不需要进行优化时,根据所述综合后网表输出布局布线结果;

其中,所述后端处理装置还包括:

统计模块,统计目标次数,所述目标次数为优化指示信息生成总次数或者综合后网表接收总次数;

所述判断模块,还用于判断所述目标次数是否达到预设次数阈值;

所述输出模块,还用于在所述判断模块判断出所述综合后网表需要进行优化之后以及当所述判断模块判断出所述目标次数达到所述预设次数阈值时,根据所述综合后网表输出布局布线结果;

所述优化生成模块,具体用于当所述判断模块判断出所述综合后网表需要进行优化时以及当所述判断模块判断出所述目标次数未达到所述预设次数阈值时,生成优化指示信息。

10.一种FPGA逻辑综合的优化系统,其特征在于,所述系统包括如权利要求8所述的前端逻辑综合装置以及如权利要求9所述的后端处理装置。

说明书 :

FPGA逻辑综合的优化方法及装置、系统

技术领域

[0001] 本发明涉及FPGA技术领域,尤其涉及一种FPGA逻辑综合的优化方法及装置、系统。

背景技术

[0002] FPGA(Field-Programmable Gate Array,现场可编程门阵列)的设计流程是利用EDA(Electronics Design Automation,电子设计自动化)开发软件和编程工具对FPGA芯片进行开发的过程。EDA开发软件的开发流程主要包括前端的逻辑综合流程及后端的布局布线、时序分析和功耗分析等流程,其中,前端的逻辑综合流程用于将用户设计文件(如数字电路的寄存器传输级描述)转化为器件网表并对该器件网表进行优化,后端则将前端生成的器件网表放置在FPGA芯片的特定位置上并根据器件间的映射关系进行绕线,最终输出布局布线结果,该布局布线结果的好坏将直接影响后端时序的高低及芯片资源的使用。
[0003] 实践发现,通过EDA开发软件进行FPGA芯片开发时,前端和后端之间是相互独立执行的,这导致了前端逻辑综合的结果与后端的实际需求的匹配度低的问题,降低了逻辑综合的质量和效率,不利于提高逻辑资源的利用率和时序设计的准确性。可见,如何实现对逻辑综合的优化,以提高前端逻辑综合的结果与后端实际需求的匹配度显得尤为重要。

发明内容

[0004] 本发明所要解决的技术问题在于,提供一种FPGA逻辑综合的优化方法及装置、系统,能够根据后端反馈的优化指示信息实现对逻辑综合的优化,提高了前端逻辑综合的结果与后端实际需求的匹配度。
[0005] 为了解决上述技术问题,本发明实施例第一方面公开了一种FPGA逻辑综合的优化方法,所述方法包括:
[0006] 前端逻辑综合生成综合后网表;
[0007] 后端处理装置获取所述前端逻辑综合装置生成的所述综合后网表,并判断所述综合后网表是否需要进行优化;当判断出所述综合后网表需要进行优化时,生成优化指示信息,并将所述优化指示信息反馈至所述前端逻辑综合装置;当判断出所述综合后网表不需要进行优化时,根据所述综合后网表输出布局布线结果;
[0008] 当接收到所述后端处理装置发送的所述优化指示信息时,所述前端逻辑综合装置根据所述优化指示信息对所述综合后网表执行优化操作以生成新的综合后网表;
[0009] 其中,所述前端逻辑综合装置生成的所述综合后网表用于提供给所述后端处理装置。
[0010] 作为一种可选的实施方式,在本发明实施例第一方面中,在判断出所述综合后网表需要进行优化之后,所述后端处理装置生成优化指示信息之前,所述方法还包括:
[0011] 所述后端处理装置统计目标次数,并判断所述目标次数是否达到预设次数阈值;
[0012] 当判断出所述目标次数达到所述预设次数阈值时,所述后端处理装置执行所述的根据所述综合后网表输出布局布线结果的操作;
[0013] 当判断出所述目标次数未达到所述预设次数阈值时,所述后端处理装置执行所述的生成优化指示信息的操作;
[0014] 其中,所述目标次数为从第一时刻到当前时刻的时间段内与所述后端处理装置对应的优化指示信息生成总次数;或者,所述目标次数为从第二时刻到所述当前时刻的时间段内与所述后端处理装置对应的综合后网表接收总次数;
[0015] 所述第一时刻早于所述后端处理装置生成初始综合后网表对应的优化指示信息的时刻,所述第二时刻早于所述后端处理装置接收到所述初始综合后网表的时刻,所述初始综合后网表是由所述前端逻辑综合装置根据读取到的用户设计文件生成的。
[0016] 作为一种可选的实施方式,在本发明实施例第一方面中,所述后端处理装置生成优化指示信息之后,所述方法还包括:
[0017] 所述后端处理装置向与所述后端处理装置对应的控制装置发送优化确认请求,所述优化确认请求包括所述优化指示信息且用于请求所述控制装置控制对应的输出装置输出所述优化指示信息供操作人员确认;
[0018] 所述后端处理装置接收所述控制装置针对所述优化确认请求反馈的优化确认响应,并执行所述的将所述优化指示信息反馈至所述前端逻辑综合装置的操作;其中,所述优化确认响应是由所述控制装置在接收到所述操作人员针对所述优化确认请求触发的确认消息之后生成的。
[0019] 作为一种可选的实施方式,在本发明实施例第一方面中,所述优化指示信息包括所述综合后网表中需要优化的目标局部网表;或者,
[0020] 所述优化指示信息包括所述综合后网表以及标注信息,所述标注信息用于标注所述综合后网表中需要优化的目标局部网表。
[0021] 作为一种可选的实施方式,在本发明实施例第一方面中,所述优化指示信息还包括与所述目标局部网表相匹配的优化导向信息,所述优化导向信息用于作为所述前端逻辑综合装置优化所述综合后网表的优化依据;
[0022] 其中,所述优化导向信息包括技术映射结果导向信息、逻辑优化结果导向信息以及逻辑综合结果导向信息中的至少一种。
[0023] 作为一种可选的实施方式,在本发明实施例第一方面中,所述后端处理装置判断所述综合后网表是否需要进行优化,包括:
[0024] 所述后端处理装置判断所述综合后网表的局部网表面积是否大于等于预设网表面积阈值,若是,则确定所述综合后网表需要进行优化;或者,
[0025] 所述后端处理装置判断所述综合后网表的层级关系复杂度是否大于等于预设复杂度阈值,若是,则确定所述综合后网表需要进行优化;或者,
[0026] 所述后端处理装置判断所述综合后网表的网表结构是否与对应电路中的器件相匹配,若否,则确定所述综合后网表需要进行优化;或者,
[0027] 所述后端处理装置判断所述综合后网表的目标关键路径是否符合预设路径需求,若否,则确定所述综合后网表需要进行优化;或者,
[0028] 所述后端处理装置判断所述综合后网表对应的功耗是否满足预设功耗条件,若否,则确定所述综合后网表需要进行优化。
[0029] 作为一种可选的实施方式,在本发明实施例第一方面中,所述方法还包括:
[0030] 当未接收所述后端处理装置发送的所述优化指示信息时,所述前端逻辑综合装置统计综合后网表优化信息,并基于统计出的所述综合后网表优化信息生成综合后网表优化记录;
[0031] 其中,所述综合后网表优化信息包括综合后网表优化总次数、每次优化对应的优化指示信息以及每次优化后的综合后网表优化结果中的至少一种。
[0032] 本发明实施例第二方面公开了一种前端逻辑综合装置,所述前端逻辑综合装置包括:
[0033] 生成模块,用于生成综合后网表;
[0034] 检测模块,用于检测是否接收到所述后端处理装置反馈的优化指示信息;
[0035] 所述生成模块,还用于当所述检测模块检测到所述后端处理装置反馈的所述优化指示信息时,根据所述优化指示信息对所述综合后网表执行优化操作以生成新的综合后网表;
[0036] 其中,所述生成模块生成的所述综合后网表用于提供给所述后端处理装置,以使所述后端处理装置判断所述综合后网表是否需要进行优化,且所述优化指示信息是由所述后端处理装置判断出所述综合后网表需要进行优化时生成的。
[0037] 作为一种可选的实施方式,在本发明实施例第二方面中,所述优化指示信息包括所述综合后网表中需要优化的目标局部网表;或者,
[0038] 所述优化指示信息包括所述综合后网表以及标注信息,所述标注信息用于标注所述综合后网表中需要优化的目标局部网表。
[0039] 作为一种可选的实施方式,在本发明实施例第二方面中,所述优化指示信息还包括与所述目标局部网表相匹配的优化导向信息,所述优化导向信息用于作为所述前端逻辑综合装置优化所述综合后网表的优化依据;
[0040] 其中,所述优化导向信息包括技术映射结果导向信息、逻辑优化结果导向信息以及逻辑综合结果导向信息中的至少一种。
[0041] 作为一种可选的实施方式,在本发明实施例第二方面中,所述前端逻辑综合装置还包括:
[0042] 优化统计模块,用于当未接收所述后端处理装置发送的所述优化指示信息时,统计综合后网表优化信息;
[0043] 所述生成模块,还用于基于统计出的所述综合后网表优化信息生成综合后网表优化记录;
[0044] 其中,所述综合后网表优化信息包括综合后网表优化总次数、每次优化对应的优化指示信息以及每次优化后的综合后网表优化结果中的至少一种。
[0045] 本发明实施例第三方面公开了一种后端处理装置,所述后端处理装置包括:
[0046] 获取模块,用于获取前端逻辑综合装置生成的综合后网表;
[0047] 判断模块,用于判断所述获取模块获取到的所述综合后网表是否需要进行优化;
[0048] 优化生成模块,用于当所述判断模块判断出所述综合后网表需要进行优化时,生成优化指示信息;
[0049] 通信模块,用于将所述优化指示信息反馈至所述前端逻辑综合装置,以触发所述前端逻辑综合装置对所述综合后网表执行优化操作以生成新的综合后网表;
[0050] 输出模块,用于当所述判断模块判断出所述综合后网表不需要进行优化时,根据所述综合后网表输出布局布线结果。
[0051] 作为一种可选的实施方式,在本发明实施例第三方面中,所述后端处理装置还包括:
[0052] 统计模块,统计目标次数;
[0053] 所述判断模块,还用于判断所述目标次数是否达到预设次数阈值;
[0054] 所述输出模块,还用于在所述判断模块判断出所述综合后网表需要进行优化之后以及当所述判断模块判断出所述目标次数达到所述预设次数阈值时,根据所述综合后网表输出布局布线结果;
[0055] 所述优化生成模块,具体用于当所述判断模块判断出所述综合后网表需要进行优化时以及当所述判断模块判断出所述目标次数未达到所述预设次数阈值时,生成优化指示信息;
[0056] 其中,所述目标次数为从第一时刻到当前时刻的时间段内与所述后端处理装置对应的优化指示信息生成总次数;或者,所述目标次数为从第二时刻到所述当前时刻的时间段内与所述后端处理装置对应的综合后网表接收总次数;
[0057] 所述第一时刻早于所述后端处理装置生成初始综合后网表对应的优化指示信息的时刻,所述第二时刻早于所述后端处理装置接收到所述初始综合后网表的时刻,所述初始综合后网表是由所述前端逻辑综合装置根据读取到的用户设计文件生成的。
[0058] 作为一种可选的实施方式,在本发明实施例第三方面中,所述后端处理装置还包括:
[0059] 发送模块,用于在所述优化生成模块生成所述优化指示信息之后,向与所述后端处理装置对应的控制装置发送优化确认请求,所述优化确认请求包括所述优化指示信息且用于请求所述控制装置控制对应的输出装置输出所述优化指示信息供操作人员确认;
[0060] 接收模块,用于接收所述控制装置针对所述优化确认请求反馈的优化确认响应;其中,所述优化确认响应是由所述控制装置在接收到所述操作人员针对所述优化确认请求触发的确认消息之后生成的;
[0061] 所述通信模块将所述优化指示信息反馈至所述前端逻辑综合装置的具体方式为:
[0062] 在所述接收模块接收所述控制装置针对所述优化确认请求反馈的优化确认响应之后,将所述优化指示信息反馈至所述前端逻辑综合装置。
[0063] 作为一种可选的实施方式,在本发明实施例第三方面中,所述优化指示信息包括所述综合后网表中需要优化的目标局部网表;或者,
[0064] 所述优化指示信息包括所述综合后网表以及标注信息,所述标注信息用于标注所述综合后网表中需要优化的目标局部网表。
[0065] 作为一种可选的实施方式,在本发明实施例第三方面中,所述优化指示信息还包括与所述目标局部网表相匹配的优化导向信息,所述优化导向信息用于作为所述前端逻辑综合装置优化所述综合后网表的优化依据;
[0066] 其中,所述优化导向信息包括技术映射结果导向信息、逻辑优化结果导向信息以及逻辑综合结果导向信息中的至少一种。
[0067] 作为一种可选的实施方式,在本发明实施例第三方面中,所述判断模块判断所述综合后网表是否需要进行优化的具体方式为:
[0068] 判断所述综合后网表的局部网表面积是否大于等于预设网表面积阈值,若是,则确定所述综合后网表需要进行优化;或者,
[0069] 判断所述综合后网表的层级关系复杂度是否大于等于预设复杂度阈值,若是,则确定所述综合后网表需要进行优化;或者,
[0070] 判断所述综合后网表的网表结构是否与对应电路中的器件相匹配,若否,则确定所述综合后网表需要进行优化;或者,
[0071] 所述后端处理装置判断所述综合后网表的目标关键路径是否符合预设路径需求,若否,则确定所述综合后网表需要进行优化;或者,
[0072] 所述后端处理装置判断所述综合后网表对应的功耗是否满足预设功耗条件,若否,则确定所述综合后网表需要进行优化。
[0073] 本发明实施例第四方面公开了另一种前端逻辑综合装置,所述前端逻辑综合装置包括:
[0074] 存储有可执行程序代码的存储器;
[0075] 与所述存储器耦合的处理器;
[0076] 所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明实施例第一方面公开的FPGA逻辑综合的优化方法中前端逻辑综合装置所执行的步骤。
[0077] 本发明实施例第五方面公开了另一种后端处理装置,所述后端处理装置包括:
[0078] 存储有可执行程序代码的存储器;
[0079] 与所述存储器耦合的处理器;
[0080] 所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明实施例第一方面公开的FPGA逻辑综合的优化方法中后端处理装置所执行的步骤。
[0081] 本发明实施例第六方面公开了一种计算机可存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本发明实施例第一方面公开的FPGA逻辑综合的优化方法中前端逻辑综合装置所执行的步骤。
[0082] 本发明实施例第七方面公开了一种计算机可存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本发明实施例第一方面公开的FPGA逻辑综合的优化方法中后端处理装置所执行的步骤。
[0083] 与现有技术相比,本发明实施例具有以下有益效果:
[0084] 本发明实施例中,前端逻辑综合装置生成综合后网表;后端处理装置获取前端逻辑综合装置生成的综合后网表,并判断综合后网表是否需要进行优化;当判断出综合后网表需要进行优化时,生成优化指示信息,并将优化指示信息反馈至前端逻辑综合装置,当判断出综合后网表不需要进行优化时,根据综合后网表输出布局布线结果;当接收到后端处理装置发送的优化指示信息时,前端逻辑综合装置根据优化指示信息对综合后网表执行优化操作以生成新的综合后网表,其中,前端逻辑综合装置生成的综合后网表用于提供给后端处理装置。可见,实施本发明实施例能够根据后端反馈的优化指示信息实现对逻辑综合的优化,提高了前端逻辑综合的结果与后端实际需求的匹配度,进一步提高了逻辑综合的通用性以及逻辑综合的质量。

附图说明

[0085] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0086] 图1是本发明实施例公开的一种FPGA逻辑综合的优化方法的流程示意图;
[0087] 图2是本发明实施例公开的另一种FPGA逻辑综合的优化方法的流程示意图;
[0088] 图3是本发明实施例公开的一种前端逻辑综合装置的结构示意图;
[0089] 图4是本发明实施例公开的另一种前端逻辑综合装置的结构示意图;
[0090] 图5是本发明实施例公开的又一种前端逻辑综合装置的结构示意图;
[0091] 图6是本发明实施例公开的一种后端处理装置的结构示意图;
[0092] 图7是本发明实施例公开的另一种后端处理装置的结构示意图;
[0093] 图8是本发明实施例公开的又一种后端处理装置的结构示意图。

具体实施方式

[0094] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0095] 本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或端没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或端固有的其他步骤或单元。
[0096] 在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
[0097] 本发明公开了一种FPGA逻辑综合的优化方法及装置、系统,能够根据后端反馈的优化指示信息实现对逻辑综合的优化,提高了前端逻辑综合的结果与后端实际需求的匹配度,进一步提高了逻辑综合的通用性以及逻辑综合的质量。
[0098] 以下分别进行详细说明。
[0099] 请参阅图1,图1是本发明实施例公开的一种FPGA逻辑综合的优化方法的流程示意图。其中,图1所描述的方法可以应用于EDA开发工具中,该EDA开发工具至少包括前端逻辑综合装置和后端处理装置。如图1所示,该FPGA逻辑综合的优化方法可以包括以下操作:
[0100] 101、前端逻辑综合装置生成综合后网表。
[0101] 本发明实施例中,作为一种可选的实施方式,前端逻辑综合装置生成综合后网表可以包括:
[0102] 前端逻辑综合装置读取用户设计文件,并根据用户设计文件生成综合后网表,其中,根据读取到的用户设计文件生成的综合后网表也可以称之为初始综合后网表。
[0103] 在该可选的实施方式中,该用户设计文件可以是开发人员将所设计的系统或电路以EDA开发工具所要求的某种形式表现出来并由开发人员输入至EDA开发工具的。该用户设计文件的输入方式可以为图像输入方式或HDL文本输入方式,其中,图像输入方式可以包括原理图输入方式、状态图输入方式以及波形图输入方式中的至少一种,HDL文本输入方式具体为将使用了硬件描述语言的电路设计文本进行编辑输入。
[0104] 在该可选的实施方式中,具体的,前端逻辑综合装置根据用户设计文件生成综合后网表,可以包括:
[0105] 前端逻辑综合装置对读取到的用户设计文件进行编译操作,得到编译结果,该编译结果为将用户设计文件编译成的功能块与功能块之间的拓扑结构;
[0106] 前端逻辑综合装置根据操作人员所施加的约束控制条件,对编译结果进行逻辑重组和逻辑优化,以优化编译结果,该约束控制条件包括时序约束控制条件和面积约束控制条件,还可以进一步包括环境约束控制条件;
[0107] 前端逻辑综合装置根据操作人员所施加约束控制条件以及优化后的编译结果,从目标工艺库中搜索符合条件的单元以构成实际电路的综合后网表。
[0108] 其中,根据用户设计文件生成综合后网表的过程也可以理解为根据给定的硬件结构组件和约束控制条件进行编译、综合、优化以及映射并最终获得综合后网表的过程,该综合后网表可以为门级电路网表,也可以为更底层的电路描述网表数据。其中,映射的过程可以理解为适配的过程,其目的是将综合优化后的网表数据配置于指定的目标器件中,使之产生最终的下载文件。
[0109] 可选的,在读取用户设计文件之后,前端逻辑综合装置还可以执行以下操作:
[0110] 前端逻辑综合装置确定该用户设计文件的类型,并判断该用户设计文件的类型是否为预设类型集合中的其中一种类型,当判断结果为是时,触发执行上述的根据用户设计文件生成综合后网表的操作,其中,该预设类型集合包括前端逻辑综合装置能够识别或处理的用户设计文件的所有类型。
[0111] 可见,该可选的实施方式能够在读取到用户设计文件之后先判断用户设计文件的类型是否符合要求,若是,则再进行生成综合后网表的操作,这样能够减少因读取到的用户设计文件不符合要求而导致的无法生成综合后网表或生成错误的综合后网表的情况发生。
[0112] 在本发明实施例中,作为另一种可选的实施方式,前端逻辑综合装置生成综合后网表也可以包括:
[0113] 前端逻辑综合装置在接收到后端处理装置反馈的优化指示信息之后,根据该优化指示信息对在此之前最新生成的综合后网表执行优化操作后生成的新的综合后网表。
[0114] 102、后端处理装置获取前端逻辑综合装置生成的综合后网表,并判断综合后网表是否需要进行优化,当步骤102的判断结果为否时,触发执行步骤103;当步骤102的判断结果为是时,可以触发执行步骤104。
[0115] 本发明实施例中,后端处理装置获取到的前端逻辑综合装置生成的综合后网表为前端逻辑综合装置最新生成的综合后网表。可选的,后端处理装置获取前端逻辑综合装置生成的综合后网表,可以包括:
[0116] 后端处理装置接收前端逻辑综合装置发送的综合后网表;或者,
[0117] 后端处理装置直接或者根据操作人员的拷贝操作/剪切操作从存储有前端逻辑综合装置生成的综合后网表的存储装置中读取前端逻辑综合装置生成的综合后网表;或者,[0118] 后端处理装置从存储有前端逻辑综合装置生成的综合后网表的内存数据块中读取前端逻辑综合装置生成的综合后网表,可选的,内存数据块可以为共享内存数据块。
[0119] 需要说明的是,在后端处理装置接收前端逻辑综合装置发送的综合后网表的实施方式中,前端逻辑综合装置生成综合后网表之后可以直接将生成的综合后网表发送至后端处理装置,也可以根据操作人员触发的发送指令将生成的综合后网表发送至后端处理装置,还可以根据后端处理装置发送的综合后网表获取指令将生成的综合后网表发送至后端处理装置,本发明实施例不做限定。
[0120] 本发明实施例中,后端处理装置可以根据预置的算法判断综合后网表是否需要优化,其中,该预置的算法可以包括但不限于布局布线算法、时序分析算法以及功耗分析算法等中的至少一种,本发明实施例不做限定。
[0121] 103、后端处理装置根据综合后网表输出布局布线结果。
[0122] 104、后端处理装置生成优化指示信息,并将优化指示信息反馈至前端逻辑综合装置。
[0123] 本发明实施例中,该优化指示信息是根据后端处理装置本次接收到的综合后网表生成的,且该优化指示信息用于指示前端逻辑综合装置需要对最新发送至后端处理装置的综合后网表进行优化操作以更新需要发送至后端处理装置的综合后网表(也即生成需要发送至后端处理装置的新的综合后网表)。可选的,该优化指示信息可以包括需要进行优化的内容,进一步可选的,当该优化指示信息包括需要进行优化的多个内容时,该优化指示信息还可以进一步包括需要优化的每个内容对应的优先级,以便于前端逻辑综合装置在优化综合后网表时资源不足的情况下根据需要优化的每个内容对应的优先级确定优先优化的内容。其中,优先级越高,对应的需要优化的内容的重要性就越高,在资源不足的情况下,前端逻辑综合装置优先优化优先级较高的内容,以确保对该部分内容进行优化的效率及准确率。
[0124] 105、当接收到后端处理装置发送的优化指示信息时,前端逻辑综合装置根据优化指示信息对综合后网表执行优化操作以生成新的综合后网表。
[0125] 本发明实施例中,需要说明的是,前端逻辑综合装置生成的综合后网表用于提供给后端处理装置。其中,在执行完毕步骤105之后,后端处理装置可以继续触发执行步骤102。且前端逻辑综合装置根据优化指示信息对综合后网表执行优化操作以生成新的综合后网表可以包括:
[0126] 前端逻辑综合装置根据优化指示信息对综合后网表中需要优化的内容进行优化,并将优化后的综合后网表作为需要发送至后端处理装置新的综合后网表。这样在综合后网表的基础上直接对需要优化的内容进行优化的方式能够提高优化的效率。
[0127] 在一个可选的实施例中,在生成综合后网表之后,前端逻辑综合装置还可以执行以下操作:
[0128] 前端逻辑综合装置为生成的综合后网表设置与该综合后网表唯一对应的标识信息,可选的,该标识信息可以依据综合后网表的生成顺序和/或生成时刻生成。
[0129] 其中,后端处理装置获取前端逻辑综合装置生成的综合后网表之后,还可以执行以下操作:
[0130] 后端处理装置确定其获取到的前端逻辑综合装置生成的综合后网表唯一对应的目标标识信息,并判断预先存储的标识信息集合中是否存在该目标标识信息,当判断结果否时,触发执行上述的判断综合后网表是否需要进行优化的操作;当判断结果为是时,输出错误提示,该错误提示用于提示当前获取到的综合后网表为重复获取到的综合后网表。其中,该标识信息集合包括后端处理装置已判断过是否需要进行优化的所有综合后网表中每个综合后网表唯一对应的标识信息。
[0131] 可见,该可选的实施例还能够在生成综合后网表后为该综合后网表设置唯一对应的标识信息,以使后端处理装置在判断获取到的综合后网表是否需要进行优化之前先对综合后网表的有效性进行判断,进而减少后端处理装置误获取到重复的综合后网表而导致的重复判断综合后网表是否需要进行优化的操作,提高了对获取到的综合后网表进行优化判断的准确性以及可靠性。
[0132] 可见,实施本发明实施例能够在后端处理装置获取到前端逻辑综合装置生成的综合后网表后不直接根据该综合后网表输出布局布线结果,而是先判断接收到的综合后网表是否需要优化,且在判断出需要优化的情况下由后端处理装置向前端逻辑综合装置反馈优化指示信息,以使得前端逻辑综合装置根据优化指示信息对综合后网表进行优化,即在FPGA芯片开发过程中前端逻辑综合装置和后端处理装置不再是相互独立的,通过后端处理装置反馈优化指示信息以及前端逻辑综合装置根据优化指示信息优化综合后网表的方式提高了前端逻辑综合的结果与后端实际需求的匹配度,进一步提高了逻辑综合的通用性以及逻辑综合的质量,进而有利于提高逻辑综合资源的利用率以及时序分析的准确性。
[0133] 实施例二
[0134] 请参阅图2,图2是本发明实施例公开的另一种FPGA逻辑综合的优化方法的流程示意图。其中,图2所描述的方法可以应用于EDA开发工具中,该EDA开发工具至少包括前端逻辑综合装置和后端处理装置。如图2所示,该FPGA逻辑综合的优化方法可以包括以下操作:
[0135] 201、前端逻辑综合装置生成综合后网表。
[0136] 202、后端处理装置获取前端逻辑综合装置生成的综合后网表,并判断综合后网表是否需要进行优化,当步骤202的判断结果为否时,触发执行步骤203;当步骤202的判断结果为是时,可以触发执行步骤204。
[0137] 本发明实施例中,后端处理装置判断综合后网表是否需要进行优化是通过预设的算法进行判断的。作为一种可选的实施方式,后端处理装置判断综合后网表是否需要进行优化可以包括:
[0138] 后端处理装置判断综合后网表的局部网表面积是否大于等于预设网表面积阈值,若是,则确定综合后网表需要进行优化;或者,
[0139] 后端处理装置判断综合后网表的层级关系复杂度是否大于等于预设复杂度阈值,若是,则确定综合后网表需要进行优化;或者,
[0140] 后端处理装置判断综合后网表的网表结构是否与对应电路中的器件相匹配,若否,则确定综合后网表需要进行优化;或者,
[0141] 后端处理装置判断综合后网表的目标关键路径是否符合预设路径需求(例如时序需求),若否,则确定综合后网表需要进行优化;或者,
[0142] 后端处理装置判断综合后网表对应的功耗是否满足预设功耗条件,若否,则确定综合后网表需要进行优化。
[0143] 需要说明的是,在实际操作中,后端处理装置可以根据综合后网表的层级关系复杂度、综合后网表的局部网表面积、综合后网表的网表结构、综合后网表的目标关键路径以及综合后网表对应的功耗中一种或多种的组合来共同判断综合后网表是否需要进行优化,本发明实施例不做限定。
[0144] 203、后端处理装置根据综合后网表输出布局布线结果。
[0145] 本发明实施例中,步骤201-步骤203的其它详细描述可以参照实施例一中针对步骤101-步骤103的详细描述,本发明实施例不再赘述。
[0146] 204、后端处理装置统计目标次数,并判断该目标次数是否达到预设次数阈值,当步骤204的判断结果为是时,触发执行步骤203;当步骤204的判断结果为否时,触发执行步骤205。
[0147] 本发明实施例中,可选的,目标次数为从第一时刻到当前时刻的时间段内与后端处理装置对应的优化指示信息生成总次数;或者,目标次数为从第二时刻到当前时刻的时间段内与后端处理装置对应的综合后网表接收总次数。其中,第一时刻早于后端处理装置生成初始综合后网表对应的优化指示信息的时刻,第二时刻早于后端处理装置接收到该初始综合后网表的时刻,该初始综合后网表是由前端逻辑综合装置根据读取到的用户设计文件生成的。
[0148] 本发明实施例中,在后端处理装置判断出需要优化前端逻辑综合装置发送的综合后网表时,后端处理装置可以先对目标次数进行判断,以判断目标次数是否达到预设次数阈值,如果是,则后端处理装置根据本次接收到的综合后网表输出布局布线结果。这样通过设置预设次数阈值的方式在一定程度上可以限制后端处理装置与前端逻辑综合装置的优化交互次数,减少无限优化的情况发生,进而减少对逻辑综合资源的不必要浪费。可选的,当步骤205的判断结果为是时,后端处理装置还可以执行以下操作:
[0149] 后端处理装置输出未彻底优化指示,该未彻底优化指示用于表示后端处理装置输出布局布线结果所依据的综合后网表还可以进一步优化。可选的,该未彻底优化指示还可以包括初始综合后网表、每次优化后的综合后网表以及后端处理装置最后判断出的综合后网表需要进一步优化的地方,以便于相关操作人员把握后端处理装置输出的布局布线结果的准确性,进而便于相关操作人员根据实际情况决定是否需要调整用户设计文件,并重新执行本发明实施例所描述的步骤。
[0150] 205、后端处理装置生成优化指示信息,并将优化指示信息反馈至前端逻辑综合装置。
[0151] 可选的,该优化指示信息包括本次接收到的综合后网表中需要优化的目标局部网表;或者,该优化指示信息包括本次接收到的综合后网表以及标注信息,该标注信息用于标注本次接收到的综合后网表中需要优化的目标局部网表。
[0152] 进一步可选的,该优化指示信息还包括与目标局部网表相匹配的优化导向信息,优化导向信息用于作为前端逻辑综合装置优化综合后网表的优化依据;其中,该优化导向信息包括技术映射结果导向信息、逻辑优化结果导向信息以及逻辑综合结果导向信息中的至少一种,逻辑综合结果导向信息作为逻辑综合过程的优化依据,逻辑优化结果导向信息作为逻辑优化过程中的优化依据,技术映射结果导向信息作为技术映射过程中的优化依据。
[0153] 206、当接收到后端处理装置发送的优化指示信息时,前端逻辑综合装置根据优化指示信息对综合后网表执行优化操作以生成新的综合后网表。
[0154] 本发明实施例中,针对步骤205-步骤206的其它详细描述请参照实施例一中针对步骤104-步骤105的详细描述,本发明实施例不再赘述。
[0155] 在一个可选的实施例中,在后端处理装置生成优化指示信息之后,后端处理装置还可以执行以下操作:
[0156] 后端处理装置向与后端处理装置对应的控制装置发送优化确认请求,该优化确认请求包括优化指示信息且用于请求控制装置控制对应的输出装置输出优化指示信息供操作人员确认;
[0157] 后端处理装置接收控制装置针对优化确认请求反馈的优化确认响应,并执行上述的将优化指示信息反馈至前端逻辑综合装置的操作;其中,该优化确认响应是由控制装置在接收到操作人员针对优化确认请求触发的确认消息之后生成的。
[0158] 可见,本发明实施例还能够在生成优化指示信息之后通过控制装置所控制的输出装置输出优化指示信息供操作人员确认,在操作人员确认之后再向前端逻辑综合装置反馈优化指示信息,这样能够使操作人员根据实际需求选择是否优化综合后网表。
[0159] 在另一个可选的实施例中,前端逻辑综合装置还可以执行以下操作:
[0160] 当未接收后端处理装置发送的优化指示信息时,前端逻辑综合装置综合后网表优化信息,并基于统计出的综合后网表优化信息生成综合后网表优化记录。
[0161] 其中,综合后网表优化信息包括综合后网表优化总次数、每次优化对应的优化指示信息、每次优化后的综合后网表优化结果、每次优化对应的优化起始时刻以及每次优化对应的优化完毕时刻中的至少一种。
[0162] 可见,该可选的实施例还能够在不需要继续对最新生成的综合后网表进行优化时根据对综合后网表的优化过程生成综合后网表的优化记录供操作人员参考和查看,有利于实现综合后网表的回溯。
[0163] 可见,实施本发明实施例能够通过后端处理装置反馈优化指示信息以及前端逻辑综合装置根据优化指示信息优化综合后网表的方式提高了前端逻辑综合的结果与后端实际需求的匹配度,进一步提高了逻辑综合的通用性以及逻辑综合的质量,进而有利于提高逻辑综合资源的利用率以及时序分析的准确性。此外,还能够通过设置预设次数阈值的方式在一定程度上限制后端处理装置与前端逻辑综合装置的优化交互次数,减少无限优化的情况发生,进而减少对逻辑综合资源的不必要浪费。此外,还能够在不需要继续对最新生成的综合后网表进行优化时根据对综合后网表的优化过程生成综合后网表的优化记录供操作人员参考和查看,有利于实现综合后网表的回溯。
[0164] 实施例三
[0165] 请参阅图3,图3是本发明实施例公开的一种前端逻辑综合装置的结构示意图。如图3所示,该前端逻辑综合装置可以包括:
[0166] 生成模块301,用于生成综合后网表。
[0167] 本发明实施例中,该综合后网表可以为根据读取到的用户设计文件生成的综合后网表,其中,根据读取到的用户设计文件生成的综合后网表也可以称之为初始综合后网表;或者,该综合后网表是根据后端处理装置反馈的优化指示信息对在此之前最新生成的综合后网表执行优化操作后生成的新的综合后网表。
[0168] 检测模块302,用于检测是否接收到后端处理装置反馈的优化指示信息。
[0169] 生成模块301,还用于当检测模块302检测到后端处理装置反馈的优化指示信息时,根据优化指示信息对综合后网表执行优化操作以生成新的综合后网表。
[0170] 其中,生成模块301生成的综合后网表用于提供给后端处理装置,以使后端处理装置判断综合后网表是否需要进行优化,且上述优化指示信息是由后端处理装置判断出综合后网表需要进行优化时生成的。可选的,前端逻辑综合装置还可以包括通信模块(图3、图4中均未示出),通信模块用于将生成模块301生成的综合后网表发送给后端处理装置,进一步的,还可以用于接收后端处理装置反馈的优化指示信息,本发明实施例不做限定。
[0171] 可选的,优化指示信息可以包括后端处理装置当前接收到的综合后网表中需要优化的目标局部网表;或者,优化指示信息可以包括后端处理装置当前接收到的综合后网表以及标注信息,标注信息用于标注后端处理装置当前接收到的综合后网表中需要优化的目标局部网表。
[0172] 进一步可选的,该优化指示信息还可以包括与目标局部网表相匹配的优化导向信息,优化导向信息用于作为前端逻辑综合装置优化综合后网表的优化依据;其中,优化导向信息包括技术映射结果导向信息、逻辑优化结果导向信息以及逻辑综合结果导向信息中的至少一种。
[0173] 可见,实施图3所描述的前端逻辑综合装置能够在生成综合后网表之后根据后端处理装置反馈的优化指示信息优化综合后网表,这样提高了前端逻辑综合的结果与后端实际需求的匹配度,进一步提高了逻辑综合的通用性以及逻辑综合的质量,进而有利于提高逻辑综合资源的利用率以及时序分析的准确性。
[0174] 在一个可选的实施例中,如图4所示,该前端逻辑综合装置还可以包括:
[0175] 优化统计模块303,用于当检测模块302检测未接收后端处理装置发送的优化指示信息时,统计综合后网表优化信息。
[0176] 生成模块301,还用于基于统计出的综合后网表优化信息生成综合后网表优化记录。
[0177] 其中,综合后网表优化信息包括综合后网表优化总次数、每次优化对应的优化指示信息、每次优化后的综合后网表优化结果、每次优化对应的优化起始时刻以及每次优化对应的优化完毕时刻中的至少一种。
[0178] 可见,实施图4所描述的前端逻辑综合装置还能够在不需要继续对最新生成的综合后网表进行优化时根据对综合后网表的优化过程生成综合后网表的优化记录供操作人员参考和查看,有利于实现综合后网表的回溯。
[0179] 实施例四
[0180] 请参阅图5,图5是本发明实施例公开的又一种前端逻辑综合装置的结构示意图。如图5所示,该前端逻辑综合装置可以包括:
[0181] 存储有可执行程序代码的存储器501;
[0182] 与存储器耦合的处理器502;
[0183] 处理器502调用存储器501中存储的可执行程序代码,执行本发明实施例一或实施例二公开的FPGA逻辑综合的优化方法中前端逻辑综合装置所执行的步骤。
[0184] 实施例五
[0185] 请参阅图6,图6是本发明实施例公开的一种后端处理装置的结构示意图。如图6所示,该后端处理装置可以包括:
[0186] 获取模块601,用于获取前端逻辑综合装置生成的综合后网表。
[0187] 判断模块602,用于判断获取模块601获取到的综合后网表是否需要进行优化。
[0188] 优化生成模块603,用于当判断模块602判断出综合后网表需要进行优化时,生成优化指示信息。
[0189] 通信模块604,用于将优化指示信息反馈至前端逻辑综合装置,以触发前端逻辑综合装置对综合后网表执行优化操作以生成新的综合后网表。
[0190] 输出模块605,用于当判断模块602判断出综合后网表不需要进行优化时,根据综合后网表输出布局布线结果。
[0191] 本发明实施例中,前端逻辑综合装置生成的综合后网表用于提供给后端处理装置。
[0192] 可见,实施图6所描述的后端处理装置能够在获取到前端逻辑综合装置生成的综合后网表后智能化的判断综合后网表是否需要优化且当判断结果为是时向前端逻辑综合装置反馈优化指示信息,以使前端逻辑综合装置根据后端处理装置反馈的优化指示信息优化综合后网表,这样提高了前端逻辑综合的结果与后端实际需求的匹配度,进一步提高了逻辑综合的通用性以及逻辑综合的质量,进而有利于提高逻辑综合资源的利用率以及时序分析的准确性。
[0193] 在一个可选的实施例中,如图7所示,该后端处理装置还包括:
[0194] 统计模块606,统计目标次数。
[0195] 判断模块602,还用于判断目标次数是否达到预设次数阈值。
[0196] 输出模块605,还用于在判断模块602判断出综合后网表需要进行优化之后以及当判断模块602判断出目标次数达到预设次数阈值时,根据综合后网表输出布局布线结果。
[0197] 优化生成模块603,具体用于当判断模块602判断出综合后网表需要进行优化时以及当判断出目标次数未达到预设次数阈值时,生成优化指示信息。
[0198] 其中,目标次数为从第一时刻到当前时刻的时间段内与后端处理装置对应的优化指示信息生成总次数;或者,目标次数为从第二时刻到当前时刻的时间段内与后端处理装置对应的综合后网表接收总次数。其中,第一时刻早于后端处理装置生成初始综合后网表对应的优化指示信息的时刻,第二时刻早于后端处理装置接收到该初始综合后网表的时刻,该初始综合后网表是由前端逻辑综合装置根据读取到的用户设计文件生成的。
[0199] 在另一个可选的实施例中,如图7所示,该后端处理装置还可以包括:
[0200] 发送模块607,用于在优化生成模块603生成优化指示信息之后,向与后端处理装置对应的控制装置发送优化确认请求,优化确认请求包括优化指示信息且用于请求控制装置控制对应的输出装置输出优化指示信息供操作人员确认。
[0201] 接收模块608,用于接收控制装置针对优化确认请求反馈的优化确认响应;其中,优化确认响应是由控制装置在接收到操作人员针对优化确认请求触发的确认消息之后生成的。
[0202] 在该另一种可选的实施例中,通信模块604将优化指示信息反馈至前端逻辑综合装置的具体方式为:
[0203] 在接收模块608接收控制装置针对优化确认请求反馈的优化确认响应之后,将优化指示信息反馈至前端逻辑综合装置。
[0204] 可选的,优化指示信息可以包括后端处理装置当前接收到的综合后网表中需要优化的目标局部网表;或者,优化指示信息可以包括后端处理装置当前接收到的综合后网表以及标注信息,标注信息用于标注后端处理装置当前接收到的综合后网表中需要优化的目标局部网表。
[0205] 进一步可选的,该优化指示信息还可以包括与目标局部网表相匹配的优化导向信息,优化导向信息用于作为前端逻辑综合装置优化综合后网表的优化依据;其中,优化导向信息包括技术映射结果导向信息、逻辑优化结果导向信息以及逻辑综合结果导向信息中的至少一种。
[0206] 又进一步可选的,判断模块602判断综合后网表是否需要进行优化的具体方式为:
[0207] 判断综合后网表的局部网表面积是否大于等于预设网表面积阈值,若是,则确定综合后网表需要进行优化;或者,
[0208] 判断综合后网表的层级关系复杂度是否大于等于预设复杂度阈值,若是,则确定综合后网表需要进行优化;或者,
[0209] 判断综合后网表的网表结构是否与对应电路中的器件相匹配,若否,则确定综合后网表需要进行优化;或者,
[0210] 判断综合后网表的目标关键路径是否符合预设路径需求,若否,则确定综合后网表需要进行优化;或者,
[0211] 判断综合后网表对应的功耗是否满足预设功耗条件,若否,则确定综合后网表需要进行优化。
[0212] 可见,实施图7所描述的后端处理装置还能够通过设置预设次数阈值的方式在一定程度上限制后端处理装置与前端逻辑综合装置的优化交互次数,减少无限优化的情况发生,进而减少对逻辑综合资源的不必要浪费。
[0213] 实施例六
[0214] 请参阅图8,图8是本发明实施例公开的又一种后端处理装置的结构示意图。如图8所示,该后端处理装置包括:
[0215] 存储有可执行程序代码的存储器801;
[0216] 与存储器801耦合的处理器802;
[0217] 处理器802调用存储器801中存储的可执行程序代码,执行本发明实施例一或实施例二公开的FPGA逻辑综合的优化方法中后端处理装置所执行的步骤。
[0218] 实施例七
[0219] 本发明实施例公开了一种计算机可存储介质,计算机存储介质存储有计算机指令,计算机指令被调用时,用于执行本发明实施例一或实施例二公开的FPGA逻辑综合的优化方法中前端逻辑综合装置所执行的步骤。
[0220] 实施例八
[0221] 本发明实施例公开了一种计算机可存储介质,计算机存储介质存储有计算机指令,计算机指令被调用时,用于执行本发明实施例一或实施例二公开的FPGA逻辑综合的优化方法中后端处理装置所执行的步骤。
[0222] 实施例九
[0223] 本发明实施例公开了一种FPGA逻辑综合的优化系统,该系统可以包括实施例三所描述的前端逻辑综合装置和实施例五所描述的后端处理装置。
[0224] 以上所描述的装置实施例仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0225] 通过以上的实施例的具体描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable  ReadOnly Memory,EPROM)、一次可编程只读存储器(One-time Programmable  Read-Only  Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
[0226] 最后应说明的是:本发明实施例公开的一种FPGA逻辑综合的优化方法及装置、系统所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离奔放各项实施例技术方案的精神和范围。