FPGA逻辑综合中加法器优化的实现方法及装置、***
技术领域
本发明涉及FPGA技术领域,尤其涉及一种FPGA逻辑综合中加法器优化的实现方法及装置、***。
背景技术
加法器用于实现两组信号的加法运算,在基于EDA(Electronics DesignAutomation,电子设计自动化)开发软件对FPGA(Field-Programmable Gate Array,现场可编程门阵列)芯片进行开发时,逻辑综合过程中需要用到的加法器可通过逻辑运算单元、逻辑查找表或其它硬件模型实现。其中,不同的实现方式对逻辑综合生成的综合后网表的影响不同,以逻辑运算单元和逻辑查找表两种实现方式为例,采用逻辑运算单元实现加法器可以保证加法器两端时序器件之间的层级较小,但逻辑资源占用可能较多;采用逻辑查找表实现加法器有利于减小逻辑资源的占用,但会导致加法器两端时序器件之间的层级较大,因此,不同的加法器实现方式具有不同的优点但难以兼顾。
面对复杂多变的用户设计,通用的加法器优化算法往往难以选择出最合适的实现方式,优化结果难以覆盖所有用户设计,进而导致优化结果难以满足后端布局布线、时序分析等流程的需求。可见,当前的加法器优化算法存在通用性差、优化效率低的问题。
发明内容
本发明所要解决的技术问题在于,提供一种FPGA逻辑综合中加法器优化的实现方法及装置、***,能够通过后端需求引导加法器的优化,提高了加法器优化方式的通用性以及优化效率。
为了解决上述技术问题,本发明实施例第一方面公开了一种FPGA逻辑综合中加法器优化的实现方法,所述方法包括:
后端处理装置读取前端逻辑综合装置生成的综合后网表,并判断所述综合后网表中的加法器与预先确定出的后端需求是否匹配;当判断出所述综合后网表中的的加法器与所述后端需求不匹配时,生成加法器优化导向信息,并将所述加法器优化导向信息反馈至所述前端逻辑综合装置;
当接收到所述后端处理装置反馈的所述加法器优化导向信息时,所述前端逻辑综合装置根据所述加法器优化导向信息优化所述综合后网表中的加法器得到目标优化结果,并根据所述目标优化结果生成新的综合后网表;
其中,所述前端逻辑综合装置生成的所述综合后网表用于提供给所述后端处理装置。
作为一种可选的实施方式,在本发明实施例第一方面中,所述前端逻辑综合装置根据所述加法器优化导向信息优化所述综合后网表中的加法器,包括:
所述前端逻辑综合装置根据所述加法器优化导向信息优化所述综合后网表中加法器的实现方式,得到第一优化结果;
所述前端逻辑综合装置将所述第一优化结果确定为目标优化结果。
作为一种可选的实施方式,在本发明实施例第一方面中,所述前端逻辑综合装置根据所述加法器优化导向信息优化所述综合后网表中加法器的实现方式,得到第一优化结果之后,所述方法还包括:
所述前端逻辑综合装置判断是否需要对所述综合后网表中的加法器执行局部逻辑优化操作;
当判断出不需要对所述综合后网表中的加法器执行所述局部逻辑优化操作时,所述前端逻辑综合装置执行所述的将所述第一优化结果确定为目标优化结果的步骤;
当判断出需要对所述综合后网表中的加法器执行所述局部逻辑优化操作时,所述前端逻辑综合装置在根据所述加法器优化导向信息优化所述综合后网表中加法器的实现方式的基础上对所述综合后网表中的加法器执行所述局部逻辑优化操作,得到第二优化结果;
所述前端逻辑综合装置将所述第二优化结果确定为目标优化结果。
作为一种可选的实施方式,在本发明实施例第一方面中,所述后端处理装置读取前端逻辑综合装置生成的综合后网表,包括:
所述后端处理装置读取前端逻辑综合装置初始生成的综合后网表;或者,
所述后端处理装置读取前端逻辑综合装置当前生成的综合后网表;
其中,所述前端逻辑综合当前生成的综合后网表是由所述前端逻辑综合装置对在当前时刻之前最新生成的综合后网表中的加法器进行优化后得到的,所述当前时刻为所述前端逻辑综合装置当前生成综合后网表的时刻。
作为一种可选的实施方式,在本发明实施例第一方面中,所述方法还包括:
所述前端逻辑综合装置读取用户设计,对读取到的所述用户设计执行逻辑综合操作得到逻辑综合结果,并判断所述逻辑综合结果中的加法器是否需要执行初始优化操作,所述初始优化操作包括化简操作和/或合并操作;
当判断出所述逻辑综合结果中的加法器需要执行所述初始优化操作时,所述前端逻辑综合装置对所述逻辑综合结果中的加法器执行所述初始优化操作,并通过预先确定出的实现方式实现所述逻辑综合结果中的加法器,以及根据所述逻辑综合结果生成初始提供给所述后端处理装置的综合后网表;
当判断出所述逻辑综合结果中的加法器不需要进行所述初始优化操作时,所述前端逻辑综合装置执行所述的通过预先确定出的实现方式实现所述逻辑综合结果中的加法器,以及根据所述逻辑综合结果生成初始提供给所述后端处理装置的综合后网表的步骤。
作为一种可选的实施方式,在本发明实施例第一方面中,所述预先确定出的实现方式包括逻辑运算单元或逻辑查找表。
作为一种可选的实施方式,在本发明实施例第一方面中,所述后端处理装置读取前端逻辑综合装置生成的综合后网表之后,所述方法还包括:
所述后端处理装置确定读取到的所述综合后网表唯一对应的目标网表标识,并根据所述目标网表标识判断读取到的所述综合后网表的有效性;
当根据所述目标网表标识判断出所述综合后网表有效时,所述后端处理装置执行所述的判断所述综合后网表中的加法器与预先确定出的后端需求是否匹配的步骤。
作为一种可选的实施方式,在本发明实施例第一方面中,所述后端处理装置读取前端逻辑综合装置生成的综合后网表之后,所述方法还包括:
所述后端处理装置判断读取到的所述综合后网表是否为所述前端逻辑综合装置初始生成的综合后网表;
当判断出读取到的所述综合后网表为所述前端逻辑综合装置初始生成的综合后网表时,所述后端处理装置执行所述的判断所述综合后网表中的加法器与预先确定出的后端需求是否匹配的步骤;
当判断出读取到的所述综合后网表不为所述前端逻辑综合装置初始生成的综合后网表时,所述后端处理装置执行所述的确定读取到的所述综合后网表唯一对应的目标网表标识,并根据所述目标网表标识判断读取到的所述综合后网表的有效性的步骤。
本发明实施例第二方面公开了一种前端逻辑综合装置,所述前端逻辑综合装置包括:
生成模块,用于生成综合后网表;
检测模块,用于检测是否接收到后端处理装置针对所述生成模块生成的所述综合后网表反馈的加法器优化导向信息;
优化模块,用于当所述检测模块检测到所述后端处理装置反馈的所述加法器优化导向信息时,根据所述加法器优化导向信息优化所述综合后网表中的加法器得到目标优化结果;
所述生成模块,还用于根据所述目标优化结果生成新的综合后网表;
其中,所述生成模块生成的所述综合后网表用于提供给所述后端处理装置,以使所述后端处理装置判断所述综合后网表中的加法器与预先确定出的后端需求是否匹配,且所述加法器优化导向信息是由所述后端处理装置在判断出所述综合后网表中的的加法器与所述后端需求不匹配时生成的。
作为一种可选的实施方式,在本发明实施例第二方面中,所述优化模块,包括:
优化子模块,用于根据所述加法器优化导向信息优化所述综合后网表中加法器的实现方式,得到第一优化结果;
确定子模块,用于将所述第一优化结果确定为目标优化结果。
作为一种可选的实施方式,在本发明实施例第二方面中,所述优化模块还包括:
判断子模块,用于在所述优化子模块根据所述加法器优化导向信息优化所述综合后网表中加法器的实现方式,得到第一优化结果之后,判断是否需要对所述综合后网表中的加法器执行局部逻辑优化操作;当判断结果为否时,触发所述确定子模块执行所述的将所述第一优化结果确定为目标优化结果;
所述优化子模块,还用于当所述判断子模块的判断结果为是时,在根据所述加法器优化导向信息优化所述综合后网表中加法器的实现方式的基础上对所述综合后网表中的加法器执行所述局部逻辑优化操作,得到第二优化结果;
所述确定子模块,还用于将所述第二优化结果确定为目标优化结果。
作为一种可选的实施方式,在本发明实施例第二方面中,所述前端逻辑综合装置还包括:
逻辑综合模块,用于读取用户设计,对读取到的所述用户设计执行逻辑综合操作得到逻辑综合结果;
优化判断模块,用于判断所述逻辑综合结果中的加法器是否需要执行初始优化操作,所述初始优化操作包括化简操作和/或合并操作;
初始优化处理模块,用于当所述优化判断模块判断出所述逻辑综合结果中的加法器需要执行所述初始优化操作时,对所述逻辑综合结果中的加法器执行所述初始优化操作,通过预先确定出的实现方式实现所述逻辑综合结果中的加法器,以及根据所述逻辑综合结果生成初始提供给所述后端处理装置的综合后网表;当判断出所述逻辑综合结果中的加法器不需要进行所述初始优化操作时,通过预先确定出的实现方式实现所述逻辑综合结果中的加法器并根据所述逻辑综合结果生成初始提供给所述后端处理装置的综合后网表。
作为一种可选的实施方式,在本发明实施例第二方面中,所述预先确定出的实现方式包括逻辑运算单元或逻辑查找表。
本发明实施例第三方面公开了一种后端处理装置,所述后端处理装置包括:
读取模块,用于读取前端逻辑综合装置生成的综合后网表;
判断模块,用于判断所述读取模块读取到的所述综合后网表中的加法器与预先确定出的后端需求是否匹配;
加法器优化导向模块,用于当所述判断模块判断出所述综合后网表中的加法器与所述后端需求不匹配时,生成加法器优化导向信息;
反馈模块,用于将所述加法器优化导向信息反馈至所述前端逻辑综合装置,以触发所述前端逻辑综合装置根据所述加法器优化导向信息优化所述综合后网表中的加法器得到目标优化结果以及根据所述目标优化结果生成新的综合后网表。
作为一种可选的实施方式,在本发明实施例第三方面中,所述读取模块读取前端逻辑综合装置生成的综合后网表的具体方式为:
读取前端逻辑综合装置初始生成的综合后网表;或者,
读取前端逻辑综合装置当前生成的综合后网表;
其中,所述前端逻辑综合当前生成的综合后网表是由所述前端逻辑综合装置对在当前时刻之前最新生成的综合后网表中的加法器进行优化后得到的,所述当前时刻为所述前端逻辑综合装置当前生成综合后网表的时刻。
作为一种可选的实施方式,在本发明实施例第三方面中,所述后端处理装置还包括:
确定模块,用于在所述读取模块读取前端逻辑综合装置生成的综合后网表之后,确定读取到的所述综合后网表唯一对应的目标网表标识;
所述判断模块,还用于根据所述目标网表标识判断读取到的所述综合后网表的有效性;当根据所述目标网表标识判断出所述综合后网表有效时,触发执行所述的判断所述读取模块读取到的所述综合后网表中的加法器与预先确定出的后端需求是否匹配。
作为一种可选的实施方式,在本发明实施例第三方面中,所述判断模块,还用于在所述读取模块读取前端逻辑综合装置生成的综合后网表之后,判断读取到的所述综合后网表是否为所述前端逻辑综合装置初始生成的综合后网表;当判断出读取到的所述综合后网表为所述前端逻辑综合装置初始生成的综合后网表时,触发执行所述的判断所述读取模块读取到的所述综合后网表中的加法器与预先确定出的后端需求是否匹配;
所述确定模块,具体用于:
在所述读取模块读取所述前端逻辑综合装置生成的综合后网表之后以及当所述判断模块判断出读取到的所述综合后网表不为所述前端逻辑综合装置初始生成的综合后网表时,确定读取到的所述综合后网表唯一对应的目标网表标识。
本发明实施例第四方面公开了另一种前端逻辑综合装置,所述前端逻辑综合装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明实施例第一方面公开的FPGA逻辑综合中加法器优化的实现方法中前端逻辑综合装置所执行的步骤。
本发明实施例第五方面公开了另一种后端处理装置,所述后端处理装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明实施例第一方面公开的FPGA逻辑综合中加法器优化的实现方法中后端处理装置所执行的步骤。
本发明实施例第六方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本发明实施例第一方面公开的FPGA逻辑综合中加法器优化的实现方法中前端逻辑综合装置所执行的步骤。
本发明实施例第七方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本发明实施例第一方面公开的FPGA逻辑综合中加法器优化的实现方法中后端处理装置所执行的步骤。
本发明实施例第八方面公开了一种FPGA逻辑综合中加法器优化的实现***,所述***包括本发明实施例第二方面公开的前端逻辑综合装置以及本发明实施例第三方面公开的后端处理装置。
与现有技术相比,本发明实施例具有以下有益效果:
实施本发明实施例能够在后端处理装置读取到综合后网表之后判断综合后网表中的加法器是否满足后端需求,若不满足,则向前端逻辑综合装置反馈加法器优化导向信息以使前端逻辑综合装置对综合后网表中的加法器进行优化并生成新的综合后网表,这样能够根据后端处理装置反馈的加法器优化导向信息实现对综合后网表中加法器的优化,不仅提高了加法器优化方式的通用性以及优化效率,还提高了加法器优化后的结果与后端需求的匹配度,进而有利于提升设计时序并降低功耗。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种FPGA逻辑综合中加法器优化的实现方法的流程示意图;
图2是本发明实施例公开的另一种FPGA逻辑综合中加法器优化的实现方法的流程示意图;
图3是本发明实施例公开的一种前端逻辑综合装置的结构示意图;
图4是本发明实施例公开的另一种前端逻辑综合装置的结构示意图;
图5是本发明实施例公开的又一种前端逻辑综合装置的结构示意图;
图6是本发明实施例公开的一种后端处理装置的结构示意图;
图7是本发明实施例公开的另一种后端处理装置的结构示意图;
图8是本发明实施例公开的又一种后端处理装置的结构示意图;
图9是本发明实施例公开的一种FPGA逻辑综合中加法器优化的实现***的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或端没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或端固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明公开了一种FPGA逻辑综合中加法器优化的实现方法及装置、***,能够根据后端处理装置反馈的加法器优化导向信息实现对综合后网表中加法器的优化,不仅提高了加法器优化方式的通用性以及优化效率,还提高了加法器优化后的结果与后端需求的匹配度,进而有利于提升设计时序并降低功耗。以下分别进行详细说明。
请参阅图1,图1是本发明实施例公开的一种FPGA逻辑综合中加法器优化的实现方法的流程示意图。其中,图1所描述的方法可以应用于EDA开发工具中,该EDA开发工具至少包括前端逻辑综合装置和后端处理装置。如图1所示,该FPGA逻辑综合中加法器优化的实现方法可以包括以下操作:
101、后端处理装置读取前端逻辑综合装置生成的综合后网表。
本发明实施例中,可选的,后端处理装置读取前端逻辑综合装置生成的综合后网表,可以包括:
后端处理装置接收前端逻辑综合装置发送的综合后网表;或者,
后端处理装置直接或者根据操作人员的拷贝操作/剪切操作从存储有前端逻辑综合装置生成的综合后网表的存储装置中读取前端逻辑综合装置生成的综合后网表;或者,
后端处理装置从存储有前端逻辑综合装置生成的综合后网表的内存数据块中读取前端逻辑综合装置生成的综合后网表,可选的,内存数据块可以为共享内存数据块。
需要说明的是,在后端处理装置接收前端逻辑综合装置发送的综合后网表的实施方式中,前端逻辑综合装置生成综合后网表之后可以直接将生成的综合后网表发送至后端处理装置,也可以根据操作人员触发的发送指令将生成的综合后网表发送至后端处理装置,还可以根据后端处理装置发送的综合后网表获取指令将生成的综合后网表发送至后端处理装置,本发明实施例不做限定。
本发明实施例中,后端处理装置读取到的综合后网表可以是前端逻辑综合装置初始生成的综合后网表(又称初始综合后网表),也可以是前端逻辑综合装置当前生成的综合后网表,其中,前端逻辑综合当前生成的综合后网表是由前端逻辑综合装置对在当前时刻之前最新生成的综合后网表中的加法器进行优化后得到的,当前时刻为前端逻辑综合装置当前生成综合后网表的时刻。
102、后端处理装置判断综合后网表中的加法器与预先确定出的后端需求是否匹配,当步骤102的判断结果为是时,可以结束本次流程;当步骤102的判断结果为否时,可以触发执行步骤103。
本发明实施例中,预先确定出的后端需求可以是由开发人员预先录入至后端处理装置的,也可以是后端处理装置在读取到综合后网表之后自动化分析得到的,本发明实施例不做限定。
103、后端处理装置生成加法器优化导向信息,并将加法器优化导向信息反馈至前端逻辑综合装置。
本发明实施例中,可选的,加法器优化导向信息可以包括待优化加法器的标识信息和/或对待优化的加法器的优化方向,对待优化的加法器的优化方向可以具体为该待优化加法器的实现方式,可选的,待优化加法器的标识信息可以为待优化加法器所在的位置区域信息、待优化加法器两端的器件标识以及待优化加法器所在的当前层级信息等一种或多种的组合,本发明实施例不做限定。这样能够为前端逻辑综合装置提供精确的加法器优化导向信息,有利于提高加法器的优化效率以及优化准确率。
进一步可选的,当该加法器优化导向信息包括的待优化加法器有多个时,该加法器优化导向信息还可以包括每个待优化加法器对应的优先级,以便于前端逻辑综合装置在进行加法器优化时资源不足的情况下根据需要进行优化的每个待优化加法器对应的优先级确定优化顺序。其中,优先级越高,对应待优化加法器的重要性就越高,这样能够在资源不足的情况下使前端逻辑综合装置优先优化优先级较高的待优化加法器,以确保对该部分待优化加法器的效率及准确率。
104、当接收到后端处理装置反馈的加法器优化导向信息时,前端逻辑综合装置根据加法器优化导向信息优化综合后网表中的加法器得到目标优化结果。
105、前端逻辑综合装置根据目标优化结果生成新的综合后网表。
本发明实施例中,前端逻辑综合装置生成的综合后网表用于提供给后端处理装置。
在一个可选的实施例中,该FPGA逻辑综合中加法器优化的实现方法还可以包括以下操作:
后端处理装置获取生成其当前读取到的综合后网表的前端逻辑综合装置唯一对应的前端逻辑综合标识以及前端逻辑综合标识对应的优先级,其中,后端处理装置在同一时刻读取到的每个综合后网表均存在与之对应的前端逻辑综合装置,不同的前端逻辑综合标识对应不同的前端逻辑综合装置。
其中,该方法还可以包括以下操作:
当在同一时刻读取到不同的前端逻辑综合装置生成的不同综合后网表且后端处理装置的加法器优化判断资源不足时,后端处理装置根据每个前端逻辑综合标识对应的优先级按照优先级由高到底的顺序对相应的综合后网表执行加法器优化判断操作。
可见,该可选的实施例能够在读取到多个不同的综合后网表且加法器优化判断资源不足时,按照前端逻辑综合标识优先级由高到底的顺序对综合后网表进行加法器优化判断,以提高优先级较高的前端逻辑综合标识对应的综合后网表的加法器优化判断效率,进而有利于提高相应的加法器优化效率。
在另一个可选的实施例中,在执行完毕步骤101之后,后端处理装置还可以执行以下操作:
后端处理装置对读取到的综合后网表执行目标操作,得到与目标操作对应的操作结果;
后端处理装置根据与目标操作对应的操作结果确定后端处理装置的后端需求。
本发明实施例中,可选的,目标操作可以包括布局布线操作、时序分析操作、功耗分析操作、局部面积分析操作以及关键路径分析操作中的至少一种。且后端处理装置能够在读取到前端逻辑综合装置生成的综合后网表之后对综合后网表执行相应操作,以根据操作结果智能化分析得到后端需求,为后续判断综合后网表中的加法器是否满足后端需求提供了判断依据,提高了判断综合后网表中的加法器是否满足后端需求的判断结果的准确性。
可见,实施图1所描述的FPGA逻辑综合中加法器优化的实现方法能够根据后端处理装置反馈的加法器优化导向信息实现对综合后网表中加法器的优化,不仅提高了加法器优化方式的通用性以及优化效率,还提高了加法器优化后的结果与后端需求的匹配度,进而有利于提升设计时序并降低功耗。
实施例二
请参阅图2,图2是本发明实施例公开的另一种FPGA逻辑综合中加法器优化的实现方法的流程示意图。其中,图2所描述的方法可以应用于EDA开发工具中,该EDA开发工具至少包括前端逻辑综合装置和后端处理装置。如图2所示,该FPGA逻辑综合中加法器优化的实现方法可以包括以下操作:
201、前端逻辑综合装置读取用户设计,对读取到的用户设计执行逻辑综合操作得到逻辑综合结果。
202、前端逻辑综合装置判断逻辑综合结果中的加法器是否需要执行初始优化操作,当步骤202的判断结果为是时,触发执行步骤203;当步骤202的判断结果为否时,触发执行步骤204。
本发明实施例中,初始优化操作可以包括化简操作和/或合并操作。其中,前端逻辑综合装置判断逻辑综合结果中的加法器是否需要执行初始优化操作,可以包括:
前端逻辑综合装置判断逻辑综合结果中是否存在用于实现不同加法操作的加法器,当判断结果为是时,确定用于实现不同加法操作的加法器需要执行合并操作;或者,
前端逻辑综合装置判断逻辑综合结果中是否存在用于实现相同加法操作的加法器,当判断结果为是时,确定用于实现相同加法操作的加法器需要执行化简操作。
举例来说,若用户设计中存在a+1+2的操作,则对应的逻辑综合结果中存在2个加法器,一个加法器用于实现a+1的操作,另一个加法器用于实现a+1的和再加2的操作,则前端逻辑综合装置确定需要对这两个加法器执行合并操作,即:将两个加法器通过一个加法器a+3来实现;若用户设计中存在两个a+1的操作,则对应的逻辑综合结果中存在2个加法器,该两个加法器均用来实现a+1的操作,则前端逻辑综合装置确定需要对这两个加法器执行化简操作,即:将该两个加法器化简为一个加法器。
203、前端逻辑综合装置对逻辑综合结果中的加法器执行初始优化操作。
204、前端逻辑综合装置通过预先确定出的实现方式实现逻辑综合结果中的加法器,以及根据逻辑综合结果生成初始提供给后端处理装置的综合后网表。
可选的,预先确定出的实现方式可以为逻辑运算单元或逻辑查找表。
本发明实施例中,步骤204中生成的综合后网表用于提供给后端处理装置。
205、前端逻辑综合装置向后端处理装置提供其生成的综合后网表。
206、后端处理装置读取前端逻辑综合装置生成的综合后网表。
207、后端处理装置判断读取到的综合后网表是否为前端逻辑综合装置初始生成的综合后网表,当步骤207的判断结果为是时,触发执行步骤209;当步骤207的判断结果为否时,可以触发执行步骤208。
208、后端处理装置确定读取到的综合后网表唯一对应的目标网表标识,并根据目标网表标识判断读取到的综合后网表的有效性,当步骤208的判断结果为是时,触发执行步骤209;当步骤208的判断结果为否时,可以结束本次流程。
209、后端处理装置判断综合后网表中的加法器与预先确定出的后端需求是否匹配,当步骤209的判断结果为是时,可以结束本次流程;当步骤209的判断结果为否时,可以触发执行步骤210。
本发明实施例中,具体的,后端处理装置在读取到综合后网表之后可以根据布局布线情况、绕线资源是否充足、路径是否为关键路径等中的一种或多种的组合决定是否需要优化综合后网表中的加法器以及对需要优化的加法器的优化方向(也即加法器的实现方式)。举例来说,如果芯片资源充足,但是对应的层级数较大,则后端处理装置可以引导前端逻辑综合装置优先选择逻辑运算单元来实现需要优化的加法器;如果芯片资源紧张,对应的层级数较小,则后端处理装置可以引导前端逻辑综合装置优先选择逻辑查找表来实现需要优化的加法器。
210、后端处理装置生成加法器优化导向信息。
211、后端处理装置将加法器优化导向信息反馈至前端逻辑综合装置。
212、当接收到后端处理装置反馈的加法器优化导向信息时,前端逻辑综合装置根据加法器优化导向信息优化综合后网表中的加法器得到目标优化结果。
本发明实施例中,作为一种可选的实施方式,前端逻辑综合装置根据加法器优化导向信息优化综合后网表中的加法器得到目标优化结果可以包括:
前端逻辑综合装置根据加法器优化导向信息优化综合后网表中加法器的实现方式,得到第一优化结果;
前端逻辑综合装置将第一优化结果确定为目标优化结果。
在该可选的实施方式中,进一步可选的,前端逻辑综合装置根据加法器优化导向信息优化综合后网表中加法器的实现方式,得到第一优化结果之后,前端逻辑综合装置还可以执行以下操作:
前端逻辑综合装置判断是否需要对综合后网表中的加法器执行局部逻辑优化操作;
当判断出不需要对综合后网表中的加法器执行局部逻辑优化操作时,前端逻辑综合装置执行上述的将第一优化结果确定为目标优化结果的步骤;
当判断出需要对综合后网表中的加法器执行局部逻辑优化操作时,前端逻辑综合装置在根据加法器优化导向信息优化综合后网表中加法器的实现方式的基础上对综合后网表中的加法器执行局部逻辑优化操作,得到第二优化结果;
前端逻辑综合装置将第二优化结果确定为目标优化结果。
又进一步可选的,前端逻辑综合装置判断是否需要对综合后网表中的加法器执行局部逻辑优化操作可以包括:
前端逻辑综合装置判断综合后网表中需要优化的加法器的输入输出是否连接其它组合逻辑电路,当判断结果为是时,确定需要对综合后网表中的加法器执行局部逻辑优化操作;
当判断结果为否时,前端逻辑综合装置确定需要优化的加法器的输入输出连接的均为时序器件,则无需对综合后网表中的加法器执行局部逻辑优化操作。
可见,本发明实施例在优化加法器实现方式的基础上进一步判断是否需要执行局部逻辑优化操作,若是,则进一步执行局部逻辑优化操作,这样能够使优化后的加法器与周围其它组合逻辑电路的合并、化简,提高了加法器优化的全面性。
213、前端逻辑综合装置根据目标优化结果生成新的综合后网表,并触发执行步骤205。
在另一个可选的实施例中,步骤207-步骤208可以被以下步骤替代:
后端处理装置获取读取到的综合后网表的网表参数,该网表参数可以包括该综合后网表的生成次序或该综合后网表的生成历时,其中,综合后网表的生成次序与前端逻辑综合装置生成综合后网表的总次数对应,该综合后网表的生成历时等于从前端逻辑综合装置生成初始综合后网表的时刻到生成当前综合后网表的时刻之间的时长;
后端处理装置判断读取到的综合后网表的网表参数是否位于预先确定出的参数范围内,若是,则触发执行步骤209。
其中,上述步骤207-208以及上述替代步骤可以统一上位成“后端处理装置判断读取到的综合后网表是否满足加法器优化判断条件”的方案。
进一步可选的,综合后网表的网表参数是由前端逻辑综合装置在向后端处理装置提供最新生成的综合后网表时一并提供给后端处理装置的,这样能够简化后端处理装置的统计操作,有利于提高后端处理装置的加法器优化判断效率。
可见,实施图2所描述的FPGA逻辑综合中加法器优化的实现方法能够根据后端处理装置反馈的加法器优化导向信息实现对综合后网表中加法器的优化,不仅提高了加法器优化方式的通用性以及优化效率,还提高了加法器优化后的结果与后端需求的匹配度,进而有利于提升设计时序并降低功耗。此外,在优化加法器实现方式的基础上进一步判断是否需要执行局部逻辑优化操作,若是,则进一步执行局部逻辑优化操作,这样能够使优化后的加法器与周围其它组合逻辑电路的合并、化简,提高了加法器优化的全面性。
实施例三
本发明实施例公开了又一种FPGA逻辑综合中加法器优化的实现方法,该方法应用于EDA开发工具的前端逻辑综合装置中,该方法可以包括以下操作:
前端逻辑综合装置生成综合后网表;
前端逻辑综合装置检测是否接收到后端处理装置针对综合后网表反馈的加法器优化导向信息;
当检测到后端处理装置反馈的加法器优化导向信息时,前端逻辑综合装置根据加法器优化导向信息优化综合后网表中的加法器得到目标优化结果;
前端逻辑综合装置根据目标优化结果生成新的综合后网表。
其中,前端逻辑综合装置生成的综合后网表用于提供给后端处理装置,以使后端处理装置判断综合后网表中的加法器与预先确定出的后端需求是否匹配,且加法器优化导向信息是由后端处理装置在判断出综合后网表中的的加法器与后端需求不匹配时生成的。
在一个可选的实施例中,前端逻辑综合装置根据加法器优化导向信息优化综合后网表中的加法器得到目标优化结果,可以包括:
前端逻辑综合装置根据加法器优化导向信息优化综合后网表中加法器的实现方式,得到第一优化结果;
前端逻辑综合装置将第一优化结果确定为目标优化结果。
在该可选的实施例中,进一步可选的,前端逻辑综合装置根据加法器优化导向信息优化综合后网表中的加法器得到目标优化结果,还可以包括:
在根据加法器优化导向信息优化综合后网表中加法器的实现方式,得到第一优化结果之后,前端逻辑综合装置判断是否需要对综合后网表中的加法器执行局部逻辑优化操作;当判断结果为否时,触发执行上述的将第一优化结果确定为目标优化结果;当判断结果为是时,在根据加法器优化导向信息优化综合后网表中加法器的实现方式的基础上对综合后网表中的加法器执行局部逻辑优化操作,得到第二优化结果;
前端逻辑综合装置将第二优化结果确定为目标优化结果。
在另一个可选的实施例中,前端逻辑综合装置还可以执行以下操作:
前端逻辑综合装置读取用户设计,对读取到的用户设计执行逻辑综合操作得到逻辑综合结果;
前端逻辑综合装置判断逻辑综合结果中的加法器是否需要执行初始优化操作,初始优化操作包括化简操作和/或合并操作;
当判断出逻辑综合结果中的加法器需要执行初始优化操作时,前端逻辑综合装置对逻辑综合结果中的加法器执行初始优化操作,并通过预先确定出的实现方式实现逻辑综合结果中的加法器,以及根据逻辑综合结果生成初始提供给后端处理装置的综合后网表;当判断出逻辑综合结果中的加法器不需要进行初始优化操作时,前端逻辑综合装置通过预先确定出的实现方式实现逻辑综合结果中的加法器并根据逻辑综合结果生成初始提供给后端处理装置的综合后网表。
可选的,预先确定出的实现方式包括逻辑运算单元或逻辑查找表。
需要说明的是,本发明实施例中,针对前端逻辑综合装置的其它描述,包括但不限于前端逻辑综合装置所执行的其它步骤、前端逻辑综合装置与后端处理装置所交互信息的具体内容和具体作用以及前端逻辑综合装置执行某一步骤时的具体实现方式等,请参照实施例一至实施例二中的详细描述,本发明实施例不再赘述。
可见,实施本发明实施例能够根据后端处理装置反馈的加法器优化导向信息实现对综合后网表中加法器的优化,不仅提高了加法器优化方式的通用性以及优化效率,还提高了加法器优化后的结果与后端需求的匹配度,进而有利于提升设计时序并降低功耗。此外,在优化加法器实现方式的基础上进一步判断是否需要执行局部逻辑优化操作,若是,则进一步执行局部逻辑优化操作,这样能够使优化后的加法器与周围其它组合逻辑电路的合并、化简,提高了加法器优化的全面性。
实施例四
本发明实施例公开了又一种FPGA逻辑综合中加法器优化的实现方法,该方法应用于EDA开发工具的后端处理装置中,该方法可以包括以下操作:
后端处理装置读取前端逻辑综合装置生成的综合后网表;
后端处理装置判断读取到的综合后网表中的加法器与预先确定出的后端需求是否匹配;
当判断出综合后网表中的加法器与后端需求不匹配时,后端处理装置生成加法器优化导向信息,并将加法器优化导向信息反馈至前端逻辑综合装置,以触发前端逻辑综合装置根据加法器优化导向信息优化综合后网表中的加法器得到目标优化结果以及根据目标优化结果生成新的综合后网表。
在一个可选的实施例中,后端处理装置读取前端逻辑综合装置生成的综合后网表可以包括:
后端处理装置读取前端逻辑综合装置初始生成的综合后网表;或者,
后端处理装置读取前端逻辑综合装置当前生成的综合后网表。
其中,前端逻辑综合当前生成的综合后网表是由前端逻辑综合装置对在当前时刻之前最新生成的综合后网表中的加法器进行优化后得到的,当前时刻为前端逻辑综合装置当前生成综合后网表的时刻。
在另一个可选的实施例中,后端处理装置还可以执行以下操作:
后端处理装置读取前端逻辑综合装置生成的综合后网表之后,确定读取到的综合后网表唯一对应的目标网表标识;
后端处理装置根据目标网表标识判断读取到的综合后网表的有效性;当判断出读取到的综合后网表的有效时,触发执行上述的判断读取到的综合后网表中的加法器与预先确定出的后端需求是否匹配。
在该可选的实施例中,后端处理装置还可以在读取前端逻辑综合装置生成的综合后网表之后,判断读取到的综合后网表是否为前端逻辑综合装置初始生成的综合后网表;当判断出读取到的综合后网表为前端逻辑综合装置初始生成的综合后网表时,触发执行上述的判断读取模块读取到的综合后网表中的加法器与预先确定出的后端需求是否匹配的步骤;当判断出读取到的综合后网表不为前端逻辑综合装置初始生成的综合后网表时,触发执行上述的确定读取到的综合后网表唯一对应的目标网表标识的步骤。
需要说明的是,本发明实施例中,针对后端处理装置的其它描述,包括但不限于后端处理装置所执行的其它步骤、后端处理装置与前端逻辑综合装置所交互信息的具体内容和具体作用以及后端处理装置执行某一步骤时的具体实现方式等,请参照实施例一至实施例二中的详细描述,本发明实施例不再赘述。
可见,实施本发明实施例根据后端处理装置反馈的加法器优化导向信息实现对综合后网表中加法器的优化,不仅提高了加法器优化方式的通用性以及优化效率,还提高了加法器优化后的结果与后端需求的匹配度,进而有利于提升设计时序并降低功耗。
实施例五
请参阅图3,图3是本发明实施例公开的一种前端逻辑综合装置的结构示意图。如图3所示,该前端逻辑综合装置可以包括:
生成模块301,用于生成综合后网表。
检测模块302,用于检测是否接收到后端处理装置针对生成模块301生成的综合后网表反馈的加法器优化导向信息。
优化模块303,用于当检测模块302检测到后端处理装置反馈的加法器优化导向信息时,根据加法器优化导向信息优化综合后网表中的加法器得到目标优化结果。
生成模块301,还用于根据目标优化结果生成新的综合后网表。
其中,生成模块301生成的综合后网表用于提供给后端处理装置,以使后端处理装置判断综合后网表中的加法器与预先确定出的后端需求是否匹配,且加法器优化导向信息是由后端处理装置在判断出综合后网表中的的加法器与后端需求不匹配时生成的。
在一个可选的实施例中,如图4所示,优化模块303可以包括:
优化子模块3031,用于根据加法器优化导向信息优化综合后网表中加法器的实现方式,得到第一优化结果。
确定子模块3032,用于将第一优化结果确定为目标优化结果。
在该可选的实施例中,进一步可选的,如图4所示,优化模块303还可以包括:
判断子模块3033,用于在优化子模块3031根据加法器优化导向信息优化综合后网表中加法器的实现方式,得到第一优化结果之后,判断是否需要对综合后网表中的加法器执行局部逻辑优化操作;当判断结果为否时,触发确定子模块3032执行上述的将第一优化结果确定为目标优化结果;
优化子模块3031,还用于当判断子模块3033的判断结果为是时,在根据加法器优化导向信息优化综合后网表中加法器的实现方式的基础上对综合后网表中的加法器执行局部逻辑优化操作,得到第二优化结果。
确定子模块3032,还用于将第二优化结果确定为目标优化结果。
在另一个可选的实施例中,如图4所示,该前端逻辑综合装置还可以包括:
逻辑综合模块304,用于读取用户设计,对读取到的用户设计执行逻辑综合操作得到逻辑综合结果。
优化判断模块305,用于判断逻辑综合结果中的加法器是否需要执行初始优化操作,初始优化操作包括化简操作和/或合并操作。
初始优化处理模块306,用于当优化判断模块305判断出逻辑综合结果中的加法器需要执行初始优化操作时,对逻辑综合结果中的加法器执行初始优化操作,并通过预先确定出的实现方式实现逻辑综合结果中的加法器,以及根据逻辑综合结果生成初始提供给后端处理装置的综合后网表;当判断出逻辑综合结果中的加法器不需要进行初始优化操作时,通过预先确定出的实现方式实现逻辑综合结果中的加法器并根据逻辑综合结果生成初始提供给后端处理装置的综合后网表。
可选的,预先确定出的实现方式包括逻辑运算单元或逻辑查找表。
可见,实施图4所描述的前端逻辑综合装置能够根据后端处理装置反馈的加法器优化导向信息实现对综合后网表中加法器的优化,不仅提高了加法器优化方式的通用性以及优化效率,还提高了加法器优化后的结果与后端需求的匹配度,进而有利于提升设计时序并降低功耗。
实施例六
请参阅图5,图5是本发明实施例公开的又一种前端逻辑综合装置的结构示意图。如图5所示,该前端逻辑综合装置可以包括:
存储有可执行程序代码的存储器401;
与存储器401耦合的处理器402;
处理器402调用存储器401中存储的可执行程序代码,执行本发明实施例一~实施例三中任一实施例公开的FPGA逻辑综合中加法器优化的实现中前端逻辑综合装置所执行的步骤。
实施例七
请参阅图6,图6是本发明实施例公开的一种后端处理装置的结构示意图。如图6所示,该后端处理装置可以包括:
读取模块501,用于读取前端逻辑综合装置生成的综合后网表。
判断模块502,用于判断读取模块501读取到的综合后网表中的加法器与预先确定出的后端需求是否匹配。
加法器优化导向模块503,用于当判断模块502判断出综合后网表中的加法器与后端需求不匹配时,生成加法器优化导向信息。
反馈模块504,用于将加法器优化导向信息反馈至前端逻辑综合装置,以触发前端逻辑综合装置根据加法器优化导向信息优化综合后网表中的加法器得到目标优化结果以及根据目标优化结果生成新的综合后网表。
在一个可选的实施例中,读取模块502读取前端逻辑综合装置生成的综合后网表的具体方式为:
读取前端逻辑综合装置初始生成的综合后网表;或者,
读取前端逻辑综合装置当前生成的综合后网表。
其中,前端逻辑综合当前生成的综合后网表是由前端逻辑综合装置对在当前时刻之前最新生成的综合后网表中的加法器进行优化后得到的,当前时刻为前端逻辑综合装置当前生成综合后网表的时刻。
在另一个可选的实施例中,如图7所示,该后端处理装置还可以包括:
确定模块505,用于在读取模块501读取前端逻辑综合装置生成的综合后网表之后,确定读取到的综合后网表唯一对应的目标网表标识。
判断模块502,还可以用于根据目标网表标识判断读取到的综合后网表的有效性;当判断出读取到的综合后网表的有效时,触发执行上述的判断读取模块501读取到的综合后网表中的加法器与预先确定出的后端需求是否匹配。
在该可选的实施例中,进一步可选的,判断模块502,还用于在读取模块501读取前端逻辑综合装置生成的综合后网表之后,判断读取到的综合后网表是否为前端逻辑综合装置初始生成的综合后网表;当判断出读取到的综合后网表为前端逻辑综合装置初始生成的综合后网表时,触发执行上述的判断读取模块读取到的综合后网表中的加法器与预先确定出的后端需求是否匹配。
其中,确定模块505,具体用于:
在读取模块501读取前端逻辑综合装置生成的综合后网表之后以及当判断模块502判断出读取到的综合后网表不为前端逻辑综合装置初始生成的综合后网表时,确定读取到的综合后网表唯一对应的目标网表标识。
可见,实施图7所描述的后端处理装置能够向前端逻辑综合装置反馈加法器优化导向信息以实现对综合后网表中加法器的优化,不仅提高了加法器优化方式的通用性以及优化效率,还提高了加法器优化后的结果与后端需求的匹配度,进而有利于提升设计时序并降低功耗。
实施例八
请参阅图8,图8是本发明实施例公开的又一种后端处理装置的结构示意图。如图8所示,该后端处理装置可以包括:
存储有可执行程序代码的存储器601;
与存储器601耦合的处理器602;
处理器602调用存储器601中存储的可执行程序代码,执行本发明实施例一、实施例二或实施例四中公开的FPGA逻辑综合中加法器优化的实现中后端处理装置所执行的步骤。
实施例九
请参阅图9,图9是本发明实施例公开的一种FPGA逻辑综合中加法器优化的实现***的结构示意图。如图9所示,该***可以包括前端逻辑综合装置以及后端处理装置,其中,前端逻辑综合装置的具体结构和功能请参照实施例五的详细描述,以及后端处理装置的具体结构和功能请参照实施例七的详细描述,本发明实施例不再赘述。
实施例十
本发明实施例公开了一种计算机存储介质,该计算机存储介质存储有计算机指令,该计算机指令被调用时,用于本发明实施例一~实施例三中任一实施例公开的FPGA逻辑综合中加法器优化的实现方法中前端逻辑综合装置所执行的步骤。
实施例十一
本发明实施例公开了一种计算机存储介质,该计算机存储介质存储有计算机指令,该计算机指令被调用时,用于本发明实施例一、实施例二或实施例四中公开的FPGA逻辑综合中加法器优化的实现方法中后端处理装置所执行的步骤。
以上所描述的装置实施例仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施例的具体描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、一次可编程只读存储器(One-timeProgrammable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
最后应说明的是:本发明实施例公开的一种FPGA逻辑综合中加法器优化的实现方法及装置、***所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。