CN117634383B - 关键路径延时优化方法、装置、计算机设备及存储介质 - Google Patents
关键路径延时优化方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN117634383B CN117634383B CN202311811326.8A CN202311811326A CN117634383B CN 117634383 B CN117634383 B CN 117634383B CN 202311811326 A CN202311811326 A CN 202311811326A CN 117634383 B CN117634383 B CN 117634383B
- Authority
- CN
- China
- Prior art keywords
- critical path
- lookup table
- boolean function
- target
- boolean
- 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
- 238000005457 optimization Methods 0.000 title claims abstract description 74
- 238000000034 method Methods 0.000 title claims abstract description 70
- 230000006870 function Effects 0.000 claims description 189
- 230000008521 reorganization Effects 0.000 claims description 65
- 230000006798 recombination Effects 0.000 claims description 63
- 238000005215 recombination Methods 0.000 claims description 63
- 230000008901 benefit Effects 0.000 claims description 45
- 230000015654 memory Effects 0.000 claims description 27
- 230000010076 replication Effects 0.000 claims description 12
- 230000000750 progressive effect Effects 0.000 claims description 10
- 238000004422 calculation algorithm Methods 0.000 claims description 4
- 230000000694 effects Effects 0.000 abstract description 18
- 238000010586 diagram Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012300 Sequence Analysis Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/343—Logical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/347—Physical level, e.g. placement or routing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及FPGA技术领域,公开了一种关键路径延时优化方法、装置、计算机设备及存储介质,本发明通过每个查找表组合构成的布尔函数进行重组来确定最终的目标重组布尔函数,进而根据得到的目标重组布尔函数对多个查找表组合进行重组,可以得到对应的关键路径延时优化结果。因此,通过实施本发明,通过函数重构的方式调整引脚之间的连接关系从而达到了减少关键路径延时的效果。
Description
技术领域
本发明涉及FPGA技术领域,具体涉及一种关键路径延时优化方法、装置、计算机设备及存储介质。
背景技术
关键路径延时是用于判断将给定用户设计映射到FPGA芯片的性能的一个核心指标。将用户设计映射到FPGA芯片往往需要通过专门的EDA工具,该工具一般包含综合,布局,布线,比特流生成等环节,综合,布局,布线都会基于关键路径的延时信息做出相关优化。但是每个环节所能得到的信息存在差异,且环节之间的交互成本较大,因此仅通过上述综合,布局,布线环节所能实现的优化效果有限,关键路径的延时还存在极大的优化空间,但是现有的优化方法在关键路径延时的过程中会产生新的节点导致优化效果不稳定。
发明内容
有鉴于此,本发明提供了一种关键路径延时优化方法、装置、计算机设备及存储介质,以解决现有的优化方法在关键路径延时的过程中会产生新的节点导致优化效果不稳定的问题。
第一方面,本发明提供了一种关键路径延时优化方法,用于FPGA芯片;该方法包括:
获取关键路径和关键路径的延时信息,关键路径由FPGA芯片上的多个基本逻辑单元和每个基本逻辑单元的多个引脚组成;获取关键路径对应的多个查找表组合,每个查找表组合包括任意两个连续的查找表,查找表反映FPGA芯片上基本逻辑器件的输入为1且输出为n时对应的布尔函数;对每个查找表组合构成的布尔函数进行重组,得到每个查找表组合对应的目标重组布尔函数;利用每个目标重组布尔函数对多个查找表组合进行重组,得到关键路径延时优化结果。
本发明提供的关键路径延时优化方法,通过每个查找表组合构成的布尔函数进行重组来确定最终的标重组布尔函数,进而根据得到的目标重组布尔函数对多个查找表组合进行重组,可以得到对应的关键路径延时优化结果。因此,通过实施本发明,通过函数重构的方式调整引脚之间的连接关系从而达到了减少关键路径延时的效果。
在一种可选的实施方式中,获取关键路径和关键路径的延时信息,包括:
获取FPGA芯片对应的初始网表与布局结果;基于初始网表与布局结果,获取关键路径和关键路径的延时信息。
本发明通过FPGA芯片对应的网表与布局结果可以得到对应的关键路径和关键路径的延时信息。
在一种可选的实施方式中,对每个查找表组合构成的布尔函数进行重组,得到每个查找表组合对应的目标重组布尔函数,目标重组布尔函数,包括:
对每个查找表组合进行遍历,并获取多个第一级关键信号;将每个第一级关键信号向后移动一级,并得到多个第一重组布尔函数;基于每个第一重组布尔函数,确定每个查找表组合对应的目标重组布尔函数。
在一种可选的实施方式中,基于每个第一重组布尔函数,确定每个查找表组合对应的目标重组布尔函数,包括:
基于每个第一重组布尔函数,经过预设合法判断方法,确定多个第二重组布尔函数;计算每个第二重组布尔函数的第一效益;基于每个第一效益在多个第二重组布尔函数中确定每个查找表组合对应的目标重组布尔函数。
本发明通过合法的多个第二重组布尔函数的效益可以确定最终的函数重组后的目标重组布尔函数。
在一种可选的实施方式中,基于每个第一重组布尔函数,经过预设合法判断方法,确定多个第二重组布尔函数,包括:
基于每个第一重组布尔函数,经过预设计算算法,判断是否得到每个第一重组布尔函数对应的真值表;当未得到真值表,确定不合法的多个第三重组布尔函数;基于每个第一重组布尔函数和多个第三重组布尔函数,确定多个第二重组布尔函数。
本发明通过判断是否得到真值表可以判断函数重组是否合法。
在一种可选的实施方式中,利用每个目标重组布尔函数对多个查找表组合进行重组,得到关键路径延时优化结果,包括:
获取每个目标重组布尔函数的第二效益;基于每个第二效益对多个查找表组合进行排序,得到查找表目标排序组合;基于查找表目标排序组合,确定关键路径延时优化结果。
在一种可选的实施方式中,该方法还包括:
获取节点复制情况,节点表示基本逻辑单元;基于节点复制情况,利用渐进布局方法对初始网表与布局结果进行优化直至得到目标网表与布局结果;基于目标网表与布局结果,重复获取关键路径和关键路径的延时信息的步骤至利用每个目标重组布尔函数对多个查找表组合进行重组,得到关键路径延时优化结果的步骤。
本发明通过对网表与布局结果的优化,可以提高关键路径的延时优化效果。
第二方面,本发明提供了一种关键路径延时优化装置,用于FPGA芯片;该装置包括:
第一获取模块,用于获取关键路径和关键路径的延时信息,关键路径由FPGA芯片上的多个基本逻辑单元和每个基本逻辑单元的多个引脚组成;第二获取模块,用于获取关键路径对应的多个查找表组合,每个查找表组合包括任意两个连续的查找表,查找表反映FPGA芯片上基本逻辑器件的输入为1且输出为n时对应的布尔函数;第一重组模块,用于对每个查找表组合构成的布尔函数进行重组,得到每个查找表组合对应的目标重组布尔函数;第二重组模块,用于利用每个目标重组布尔函数对多个查找表组合进行重组,得到关键路径延时优化结果。
第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的关键路径延时优化方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的关键路径延时优化方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的用户设计到FPGA芯片的使能的流程示意图;
图2是根据本发明实施例的用户设计到FPGA芯片的使能的另一流程示意图;
图3是根据本发明实施例的关键路径延时优化方法的流程示意图;
图4是根据本发明实施例的另一关键路径延时优化方法的流程示意图;
图5是根据本发明实施例的一条关键路径的示意图;
图6是根据本发明实施例的又一关键路径延时优化方法的流程示意图;
图7是根据本发明实施例的LUTA与LUTB之间存在共享的输入的结构示意图;
图8是根据本发明实施例的LUT组合中的LUT输出连接别的逻辑单元的结构示意图;
图9是根据本发明实施例的FPGA的延时优化方法的流程示意图;
图10是根据本发明实施例的计算重组函数及其收益并排序的流程示意图;
图11是根据本发明实施例的关键路径延时优化装置的结构框图;
图12是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
从用户设计到FPGA芯片的使能往往需要经过综合,布局,布线,生成比特流,如图1所示。中生成比特流可以简单立即为将前面步骤所产生的结果转化为了能将FPGA芯片使能的结果,不涉及优化操作。综合阶段是将用户设计转化为网表(可以简单理解为一种电路的表示方式),布局阶段将综合阶段得到的网表上的每一个节点映射到FPGA芯片的具***置上,布线阶段基于布局阶段的位置以及网表中的引脚连接关系确定在FPGA芯片上引脚之间的具体连接方式。上述三个阶段均涉及到关键路径延时的优化,但是可以看到上述三个阶段信息单向传递,每个阶段的优化手段均存在较大的局限性,因此还存在极大的优化空间。
如图2所示,本发明实施例在布局和布线环节之间添加了延时优化环节,放置与此的优势在于可以得到相较于综合环节之后更为准确的延时信息以及相较于布线环节之后更小的操作复杂度与运行时间成本。
根据本发明实施例,提供了一种关键路径延时优化方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种关键路径延时优化方法,可用于FPGA芯片;图3是根据本发明实施例的关键路径延时优化方法的流程图,如图3所示,该流程包括如下步骤:
步骤S301,获取关键路径和关键路径的延时信息。
其中,关键路径由FPGA芯片上的多个基本逻辑单元和每个基本逻辑单元的多个引脚组成。
具体地,关键路径的本质是一系列的节点与引脚。
其中,节点表示FPGA芯片上的基本逻辑单元,引脚即为基本逻辑单元的引脚。
进一步,关键路径和关键路径的延时信息可以通过EDA工具自带的时序分析工具获取得到。
步骤S302,获取关键路径对应的多个查找表组合。
具体地,每个查找表组合包括任意两个连续的查找表LUT。
进一步,查找表LUT是FPGA芯片上的一种基本逻辑器件,其存在n个输入和m个输出。
进一步,本实施例中仅考虑m为1的情况,在该情况下一个查找表可以表示任意一种n输入的布尔函数。
因此,本实施例中查找表LUT反映FPGA芯片上基本逻辑器件的输入为1且输出为n时对应的布尔函数。
步骤S303,对每个查找表组合构成的布尔函数进行重组,得到每个查找表组合对应的目标重组布尔函数。
具体地,每一个两两连续的LUT组合都可能存在不同的重组,因此,对每个查找表组合构成的布尔函数进行重组,并得到最终的每一组连续LUT的最终重组方式,即目标重组布尔函数。
通过函数重构的方式可以调整引脚之间的连接关系,进而可以达到减少关键路径延时的效果。
步骤S304,利用每个目标重组布尔函数对多个查找表组合进行重组,得到关键路径延时优化结果。
具体地,利用确定的重组后的每个目标重组布尔函数对多个查找表组合进行重组可以得到关键路径的延时优化结果。
本实施例提供的关键路径延时优化方法,通过每个查找表组合构成的布尔函数进行重组来确定最终的标重组布尔函数,进而根据得到的目标重组布尔函数对多个查找表组合进行重组,可以得到对应的关键路径延时优化结果。因此,通过实施本发明,通过函数重构的方式调整引脚之间的连接关系从而达到了减少关键路径延时的效果。
在本实施例中提供了一种关键路径延时优化方法,可用于FPGA芯片;图4是根据本发明实施例的关键路径延时优化方法的流程图,如图4所示,该流程包括如下步骤:
步骤S401,获取关键路径和关键路径的延时信息。
具体地,上述步骤S401包括:
步骤S4011,获取FPGA芯片对应的初始网表与布局结果。
具体地,获取FPGA芯片对应的初始的网表与布局结果。
步骤S4012,基于初始网表与布局结果,获取关键路径和关键路径的延时信息。
具体地,在得到的初始网表与布局结果的基础上,可以通过EDA工具自带的时序分析工具获取得到对应的关键路径以及该关键路径的延时信息。
步骤S402,获取关键路径对应的多个查找表组合。详细请参见图3所示实施例的步骤S302,在此不再赘述。
步骤S403,对每个查找表组合构成的布尔函数进行重组,得到每个查找表组合对应的目标重组布尔函数。
具体地,上述步骤S403包括:
步骤S4031,对每个查找表组合进行遍历,并获取多个第一级关键信号。
其中,关键信号表示在关键路径上传递的信号。
具体地,对每个查找表组合进行遍历,可以得到对应的多个第一级关键信号。
在一实例中,如图5所示描述了一条关键路径,该路径为:引脚I0->LUTA->引脚O0->引脚I1->LUTB->引脚O1->引脚I2->LUTC->引脚O2。其中存在的两两连续的LUT组合有两个,分别为LUTA与LUTB以及LUTB与LUTC。
进一步,通过对每个查找表组合进行遍历,可以得到对应的多个第一级关键信号。比如I3,I0,I4,I5,I6引脚原本对应的输入信号分别为a,b,c,d,e,关键路径上的引脚为I0也就意味着b为关键路径上的信号,即第一级关键信号。
步骤S4032,将每个第一级关键信号向后移动一级,并得到多个第一重组布尔函数。
具体地,如图5所示的关键路径,当LUT进行两两组合之后则可以看作为一个新的多输入单输出的函数,以LUTA与LUTB的组合为例,LUTA与LUTB本身分别为三输入单输出的函数,但是将其组合之后可以将其看作以I3,I0,I4,I5,I6作为输入,O1作为输出的新的函数。
因此,通过将每个第一级关键信号向后移动一级,可以得到对应的多个显得重组布尔函数。
在一实例中,以图5中LUTA与LUTB的组合为例,LUTA可看作是一个函数Fa{I3,I0,I4}({}中表示函数的输入参数),LUTB可以看作另一个函数Fb{I1,I5,I6}。同时I1是Fa的输出,因此可以将Fb写为Fb{Fa,I5,I6}。
进一步,将LUTA与LUTB组合形成的新函数写为F{I3,I0,I4,I5,I6},同时将引脚对应的输入信号带入即为F{a,b,c,d,e},Fa{a,b,c},Fb{Fa,d,e}。
进一步,在保证F功能不变的情况下(输入信号相同则输出信号也相同)改变信号与引脚之间的对应关系从而减少关键信号的延时。
首先,关键信号b必定需要交换至LUTB的输入,那么重组之后的Fb可以写为Fb{Fa,b,X}或Fb{Fa,X,b},分别表示信号b被交换至I5和I6,X代表为任意其他信号即为a,c,d,e中任意一个。此外剩余的三个信号为Fa的输入参数。
进一步,假设一个信号作用于同一个LUT不同引脚的效果是等价的,例如b信号被交换至I5或者I6是等价的,那么一共需要考虑的可能函数重组情况共有四种:Fb{Fa,b,a}与Fa{c,d,e},Fb{Fa,b,c}与Fa{a,d,e},Fb{Fa,b,d}与Fa{c,a,e},Fb{Fa,b,e}与Fa{a,d,e},即对应的多个第一重组布尔函数。
步骤S4033,基于每个第一重组布尔函数,确定每个查找表组合对应的目标重组布尔函数。
具体地,通过上述步骤S4031至步骤S4033的描述,函数重组本质上是改变输入信号作用的引脚从而实现关键路径延时的减少。
比如I3,I0,I4,I5,I6引脚原本对应的输入信号分别为a,b,c,d,e,关键路径上的引脚为I0也就意味着b为关键路径上的信号,那么如果能将信号b转接到I6上即交换信号b与信号e所接入的引脚,那么对于信号b来说其将不再需要通过I0,LUTA,O0,从而减少信号b传递所带来的延时。
在一些可选的实施方式中,上述步骤S4033包括:
步骤a1,基于每个第一重组布尔函数,经过预设合法判断方法,确定多个第二重组布尔函数。
具体地,在布尔函数重组过程中可能存在不合法的重组情况,因此,利用预设合法判断方法对每个第一重组布尔函数的合法性进行判断,并最终确定出合法的多个第二重组布尔函数。
在一些可选的实施方式中,上述步骤a1包括:
步骤a11,基于每个第一重组布尔函数,经过预设计算算法,判断是否得到每个第一重组布尔函数对应的真值表。
步骤a12,当未得到真值表,确定不合法的多个第三重组布尔函数。
步骤a13,基于每个第一重组布尔函数和多个第三重组布尔函数,确定多个第二重组布尔函数。
具体地,计算步骤S4032中得到的每一种函数重组情况下即每个第一重组布尔函数对应的LUTA与LUTB的真值表。
进一步,如果可以得到真值表则表示对应的函数重组即第一重组布尔函数合法,否则该函数重组不合法,并将不合法的函数重组表示为第三重组布尔函数。
进一步,在得到的多个第一重组布尔函数中去除掉不合法的多个第三重组布尔函数,即可以得到对应的合法的多个第二重组布尔函数。
在一实例中,判断重组合法性以及计算重组后的LUTA与LUTB的真值表的具体过程如下:
首先,基于原始的LUTA与LUTB得到F的真值表,之后基于F的真值表以及一个重组得到一个表格。比如,假设所得到的F的真值表为11101110111011100001000100010001,且重组组合为Fb{Fa,b,a}与Fa{c,d,e},那么可以得到一个对应的表格,如下表1所示:
表1
根据上表1,仅有两种类型的列数据分别为1100与0011,因此,上表1中对应的重组是合法的,但是如果将第一行最后一列的0修改为1那么就有三种类型的列数据分别为1100,0011,1011,那么这种情况下该重组就不合法。
进一步,对上表1所示的合法重组,首先计算LUTA的真值表,计算方式为每一种类型的列对应0或1。
比如上表1中有两种类型的列,让其分别对应0,1或者1,0。
进一步,以让其对应1,0为例,可以得到LUTA的真值表为10001000。
进一步,基于LUTA的真值表以及上表1可以得到LUTB的真值表,如下表2所示:
表2
进一步,根据上表2可以得到了LUTB的所有三种输入情况下对应的输出值进而得到其真值表为00111100。
步骤a2,计算每个第二重组布尔函数的第一效益。
具体地,利用如下关系式(1)计算每个第二重组布尔函数的第一效益:
式中:G表示第一效益;α表示一个人为设定的参数,其范围在0-1之间;gA,B表示LUTA与LUTB之间的重组收益,可以利用如下关系式(2)计算:
式中:tA,B表示重组前LUTA的输出和LUTB的连接中LUTB上的引脚的裕度;t′A,B表示重组后LUTA的输出和LUTB的连接中LUTB上的引脚的裕度;e表示一个人为设定的常数。
其中,裕度=要求延时-延时,每一个引脚都有其对应的裕度,其含义为所能接受的最长的延时(要求延时)与现有的延时之间的差值。进一步,关键路径上的所有引脚的裕度均为0。
进一步,rA,B表示用于将裕度反映到收益的系数,其范围在0-1之间,越接近1,表示裕度越小,对应的收益可能越大,可以利用如下关系式(3)计算:
式中:tmax表示整个设计中最大的裕度。
进一步,gi表示针对引脚i所计算的收益,具体的计算方法类似其中i表示任意LUTA以及LUTB上的且其没有与LUTA输出连接的输入引脚,如下关系式(4)所示:
式中:ti表示引脚i的裕度;ri表示一个将引脚i的裕度反映到引脚i的收益的系数,其范围在0-1之间,越接近1,表示裕度越小,对应的收益可能越大,可以利用如下关系式(5)计算:
步骤a3,基于每个第一效益在多个第二重组布尔函数中确定每个查找表组合对应的目标重组布尔函数。
具体地,如果计算得到的收益为0则认定该对应的第二重组布尔函数不合法。
进一步,将合法的效益最高的每个第二重组布尔函数作为每个查找表组合对应的目标重组布尔函数。
步骤S404,利用每个目标重组布尔函数对多个查找表组合进行重组,得到关键路径延时优化结果。详细请参见图3所示实施例的步骤S304,在此不再赘述。
本实施例提供的关键路径延时优化方法,通过判断是否得到真值表可以判断函数重组是否合法,进一步,通过合法的多个第二重组布尔函数的效益可以确定最终的函数重组后的目标重组布尔函数,进而根据得到的目标重组布尔函数对多个查找表组合进行重组,可以得到对应的关键路径延时优化结果。因此,通过实施本发明,通过函数重构的方式调整引脚之间的连接关系从而达到了减少关键路径延时的效果。
在本实施例中提供了一种关键路径延时优化方法,可用于FPGA芯片;图6是根据本发明实施例的关键路径延时优化方法的流程图,如图6所示,该流程包括如下步骤:
步骤S601,获取关键路径和关键路径的延时信息。详细请参见图4所示实施例的步骤S401,在此不再赘述。
步骤S602,获取关键路径对应的多个查找表组合。详细请参见图3所示实施例的步骤S302,在此不再赘述。
步骤S603,对每个查找表组合构成的布尔函数进行重组,得到每个查找表组合对应的目标重组布尔函数。详细请参见图4所示实施例的步骤S403,在此不再赘述。
步骤S604,利用每个目标重组布尔函数对多个查找表组合进行重组,得到关键路径延时优化结果。
具体地,上述步骤S604包括:
步骤S6041,获取每个目标重组布尔函数的第二效益。
具体地,获取确定的每个查找表组合对应的目标重组布尔函数的效益,即第二效益。
步骤S6042,基于每个第二效益对多个查找表组合进行排序,得到查找表目标排序组合。
具体地,将多个查找表组合按照得到的每个第二效益进行由大到小的排序,并得到对应的排序后的查找表目标排序组合。
步骤S6043,基于查找表目标排序组合,确定关键路径延时优化结果。
具体地,根据排序后的查找表目标排序组合依次对每个查找表组合进行重组,可以得到对应的关键路径延时优化结果。
进一步,因为一个重组可能影响到其他的组合,因此优先对收益更高的组合进行重组,如果优先级更低的受到了影响则不再对优先级更低的组合进行重组。
在一实例中,以图5为例,虽然一开始能得到两个组合LUTA与LUTB以及LUTB与LUTC,但假设首先对LUTA与LUTB进行了重组,那么LUTB的真值表就会发生改变,此时之前计算的LUTB与LUTC组合的重组就不再成立,因此本实例中选择直接跳过LUTB与LUTC的组合。
进一步,针对一些特殊情况进行处理说明。首先,LUTA与LUTB之间可以存在共享的输入,如图7所示。
针对图7所示的情况可以理解为最终的F仅有4的输入分别为:I3,I0,I4,I5对应a,b,c,d。但是在构建如上表1所示的表格的时候可以依旧可以按照a,b,c,d,e进行构建,区别在于所有c不等于e的情况都不可能发生,因此对于c不等于e的位置可以将其设置为0或者1。
进一步,也可以调整对于c,e不相等的位置的值来使一个重组变得合法。
进一步,另一种特殊情况为LUT组合中的LUT输出还连接了别的逻辑单元,如图8所示。
具体地,如图8中的LUTA的输出还连接到了LUTD,而在重组之后LUTA的真值表已经发生了改变,为了保证整个设计的逻辑功能不变,也就是LUTD的输入不变,可以采取将LUTA进行复制的方式解决原始LUTA真值表在重组之后发生改变所带来的问题。
步骤S605,获取节点复制情况。
其中,根据步骤S301的描述,节点表示基本逻辑单元。
具体地,根据上述步骤S6043的描述,当采取将LUTA进行复制的方式解决原始LUTA真值表在重组之后发生改变所带来的问题时会引入节点复制,可能造成布局结果不再合法。
因此,需要获取对应的节点复制情况。
步骤S606,基于节点复制情况,利用渐进布局方法对初始网表与布局结果进行优化直至得到目标网表与布局结果。
具体地,当引入节点复制后,可以根据节点复制情况,利用渐进布局方法对初始网表与布局结果进行优化直至得到对应的目标网表与布局结果。
其中,通过利用渐进布局方法可以使得复制的节点能被合法地布局,进而实现对初始网表与布局结果的优化。
步骤S607,基于目标网表与布局结果,重复获取关键路径和关键路径的延时信息的步骤至利用每个目标重组布尔函数对多个查找表组合进行重组,得到关键路径延时优化结果的步骤。
具体地,得到对应的目标网表与布局结果,重复步骤S601至步骤S604,可以得到最终的关键路径延时优化结果。
其中,由于重新进行了布局各个路径的延时发生了改变,其结果不一定能带来效益,因此对于这种需要进行节点复制的情况将对其效益G进行重新计算,如下关系式(6)所示:
G1=βG-aver(G) (6)
式中:G1表示重新计算后的效益;β表示一个0-1之间的人为设定值;aver(G)表示所有的组合最终重组收益的平均值。
进一步,除了对收益G进行修改之外,每一次进行了渐进布局之后都需要重新调用时序分析工具来判断所得到的关键路径延时是否变得更大,如果更大则丢弃这一次迭代的结果,进入下一个循环,如果变得更小则保留这一次迭代的结果。
本实施例提供的关键路径延时优化方法,通过每个查找表组合构成的布尔函数进行重组来确定最终的标重组布尔函数,进而根据得到的目标重组布尔函数对多个查找表组合进行重组,可以得到对应的关键路径延时优化结果,进一步,通过对网表与布局结果的优化,可以提高关键路径的延时优化效果。因此,通过实施本发明,通过函数重构的方式调整引脚之间的连接关系从而达到了减少关键路径延时的效果。
在一实例中,提供一种FPGA的延时优化方法,具体实现方法如图9所示。
具体地,如图9所示本实例的输入为网表与布局的结果,基于网表与布局结果可以得到关键路径以及关键路径的延时信息。关键路径及其延时信息的获取可以通过EDA工具自带的时序分析工具完成。关键路径的本质是一系列的节点与引脚(节点可以理解为FPGA上的基本逻辑单元,引脚即为该基本逻辑单元上的引脚)。获得关键路径后将进入到计算重组函数收益并排序的环节,该环节首先找到该关键路径上所有两两连续的LUT(LUT即为查找表,是FPGA芯片上的一种基本逻辑器件,其存在n个输入和m个输出,本方案仅考虑m为1的情况,在该情况下一个查找表可以表示任意一种n输入的布尔函数)组合,之后将每一个两两连续的LUT组合所构成的布尔函数进行重组,并根据重组后的结果计算该重组所带来的收益。每一个两两连续的LUT组合都可能存在不同的重组,因此在计算完所有可能重组后将收益最高的重组方式作为这一组连续LUT的最终重组方式。在获得所有连续LUT组合的重组方式之后对组合依据重组方式的收益进行由大到小的排序,排序完成之后依据排序结果依次对LUT组合进行重组。
进一步,本实施例中LUT组合可以参考图5进行描述。
如图5所示,描述了一条路径,假设其为一条关键路径上的一段路径,该路径为:引脚I0->LUTA->引脚O0->引脚I1->LUTB->引脚O1->引脚I2->LUTC->引脚O2。其中存在的两两连续的LUT组合有两个,分别为LUTA与LUTB以及LUTB与LUTC。当LUT进行两两组合之后则可以看作为一个新的多输入单输出的函数,以LUTA与LUTB的组合为例,LUTA与LUTB本身分别为三输入单输出的函数,但是将其组合之后可以将其看作以I3,I0,I4,I5,I6作为输入,O1作为输出的新的函数,所谓的函数重组本质上是改变输入信号作用的引脚从而实现关键路径延时的减少。例如I3,I0,I4,I5,I6引脚原本对应的输入信号分别为a,b,c,d,e,关键路径上的引脚为I0也就意味着b为关键路径上的信号,那么如果能将信号b转接到I6上即交换信号b与信号e所接入的引脚,那么对于信号b来说其将不再需要通过I0,LUTA,O0,从而减少信号b传递所带来的延时。不过与之对应的信号e将需要额外通过I0,LUTA,O0,因此信号e传递所带来的延时将增加。不过,如果信号e在延时增加之后依旧小于交换前关键信号b(所谓关键信号即为在关键路径上传递的信号)的延时,也就是关键路径的延时,那么整体的最大延时将会减少,从而达到优化延时的效果。
进一步,对函数重组的过程进行描述。以图5中LUTA与LUTB的组合为例,LUTA可看作是一个函数Fa{I3,I0,I4}({}中表示函数的输入参数),LUTB可以看作另一个函数Fb{I1,I5,I6}。同时I1是Fa的输出,因此也可以将Fb写为Fb{Fa,I5,I6}。将LUTA与LUTB组合形成的新函数写为F{I3,I0,I4,I5,I6},同时将引脚对应的输入信号带入即为F{a,b,c,d,e},Fa{a,b,c},Fb{Fa,d,e}。接下来要做的便是在保证F功能不变的情况下(输入信号相同则输出信号也相同)改变信号与引脚之间的对应关系从而减少关键信号的延时。首先知道关键信号为b,因此关键信号必定需要交换至LUTB的输入,那么重组之后的Fb可写为Fb{Fa,b,X}或Fb{Fa,X,b},分别表示信号b被交换至I5和I6,X代表为任意其他信号即为a,c,d,e中任意一个。此外剩余的三个信号为Fa的输入参数。假设一个信号作用于同一个LUT不同引脚的效果是等价的,例如b信号被交换至I5或者I6是等价的,那么一共需要考虑的可能函数重组情况共有四种:Fb{Fa,b,a}与Fa{c,d,e},Fb{Fa,b,c}与Fa{a,d,e},Fb{Fa,b,d}与Fa{c,a,e},Fb{Fa,b,e}与Fa{a,d,e}。之后只需要计算得到每一种情况下新的LUTA与LUTB的真值表即可(也就是得到Fa与Fb的真值表),如果可以得到真值表则证明该重组合法,否则该重组不合法,不合法的重组情况将被略去,不会被计算收益并用于排序。
基于上述描述,本实例提供的图9所示的FPGA的延时优化方法中计算重组函数及其收益并排序的环节的具体步骤如图10所示。
进一步,对本实例中判断重组合法性以及计算重组后的LUTA与LUTB的真值表的方法进行介绍。首先可以基于原始的LUTA与LUTB得到F的真值表,之后基于F的真值表以及一个重组得到一个表格。例如假设所得到的F的真值表为11101110111011100001000100010001,且重组组合为Fb{Fa,b,a}与Fa{c,d,e},那么能得到一个对应上表1的表格。基于上表1的表格可以首先判断该重组是否合法,并在重组合法的情况下计算该重组所对应的LUTA与LUTB的真值表。判断重组的合法标准是判断是否有两个以上类型的列数据,例如图六的表中仅有两种类型的列数据分别为1100与0011,因此上表1的所对应的重组是合法的,但如果将第一行最后一列的0修改为1那么就有三种类型的列数据分别为1100,0011,1011这种情况下该重组就不合法。
进一步,对上表1所示的合法重组首先计算LUTA的真值表,计算方式为每一种类型的列对应0或1。例如上表1中有两种类型的列,可以让其分别对应0,1或者1,0。以让其对应1,0为例,那么可以得到LUTA的真值表为10001000。之后基于LUTA的真值表以及上表1便能得到LUTB的真值表,如上表2所示。
进一步,基于上表2可以知道LUTB的所有三种输入情况下对应的输出值进而得到其真值表为00111100。那么由此便得到了重组后的LUTA与LUTB的真值表。
进一步,通过上述关系式(1)至(5)可以计算得到每一个重组的收益,如果计算得到的收益为0则认定该重组不合法。对于每一种组合将其收益最高的重组作为其最终的重组,之后对所有的组合依据其最终重组的收益进行由高到低的排序之后进入到图9中所示的依照排序完成重组的环节。
进一步,要依照排序完成重组是因为一个重组可能影响到其他的组合,因此优先对收益更高的组合进行重组,如果优先级更低的受到了影响则不再对优先级更低的组合进行重组。
以图5为例,虽然一开始能得到两个组合LUTA与LUTB以及LUTB与LUTC,但假设首先对LUTA与LUTB进行了重组,那么LUTB的真值表就会发生改变,此时之前计算的LUTB与LUTC组合的重组就不再成立,因此本实例选择直接跳过LUTB与LUTC的组合。
进一步,针对于一些特殊情况进行处理说明。首先,LUTA与LUTB之间可以存在共享的输入,如图7所示。
针对图7所示的情况可以理解为最终的F仅有4的输入分别为:I3,I0,I4,I5对应a,b,c,d。但是在构建如上表1所示的表格的时候可以依旧可以按照a,b,c,d,e进行构建,区别在于所有c不等于e的情况都不可能发生,因此对于c不等于e的位置可以将其设置为0或者1。由此,也可以调整对于c,e不相等的位置的值来使一个重组变得合法。
进一步,另一种特殊情况为LUT组合中的LUT输出还连接了别的逻辑单元,如图8所示。
具体地,如图8中的LUTA的输出还连接到了LUTD,而在重组之后LUTA的真值表已经发生了改变,为了保证整个设计的逻辑功能不变,也就是LUTD的输入不变,本实例采取将LUTA进行复制的方式解决原始LUTA真值表在重组之后发生改变所带来的问题。
进一步,由于引入了节点复制,可能造成布局结果不再合法由此需要通过图三中所述的渐进布局来使得复制的节点能被合法地布局。但是由于重新进行了布局各个路径的延时发生了改变,其结果不一定能带来收益,因此对于这种需要进行节点复制的情况将对其效益进行重新计算,计算方式如上关系式(6)所示。
进一步,除了对收益G进行修改之外,每一次进行了渐进布局之后都需要重新调用时序分析工具来判断所得到的关键路径延时是否变得更大,如果更大则丢弃这一次迭代的结果,进入下一个循环,如果变得更小则保留这一次迭代的结果。上述的渐进布局也来自于EDA工具,可直接调用。
本实例提供的FPGA的延时优化方法,具有如下优点:
1、该方法不在EDA工具的主要环节之中,作用于布局之后可极大程度上发掘未被优化的延时。
2、通过在存在节点复制的情况下减少收益的方式减少了节点复制发生的情况,可以在提升优化效果的同时也能极大程度上减少运行时长(因为存在节点复制就意味着需要进行渐进布局)。
3、设计了一种收益的计算方法用来判断如何选取关键路径上的LUT组合,而不是采用随机或是从输入到输出或是从输出到输入的直接方式选择LUT组合进行优化。这种做法在提升优化效果的同时还能极大程度上提升优化的可控性,即可以通过调节参数基于不同的用例达到针对性的优化效果。
在本实施例中还提供了一种关键路径延时优化装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种关键路径延时优化装置,用于FPGA芯片;如图11所示,包括:
第一获取模块701,用于获取关键路径和所述关键路径的延时信息,关键路径由FPGA芯片上的多个基本逻辑单元和每个基本逻辑单元的多个引脚组成。
第二获取模块702,用于获取关键路径对应的多个查找表组合,每个查找表组合包括任意两个连续的查找表,查找表反映FPGA芯片上基本逻辑器件的输入为1且输出为n时对应的布尔函数。
第一重组模块703,用于对每个查找表组合构成的布尔函数进行重组,得到每个查找表组合对应的目标重组布尔函数。
第二重组模块704,用于利用每个目标重组布尔函数对多个查找表组合进行重组,得到关键路径延时优化结果。
在一些可选的实施方式中,第一获取模块701包括:
第一获取子模块,用于获取FPGA芯片对应的初始网表与布局结果。
第二获取子模块,用于基于初始网表与布局结果,获取关键路径和关键路径的延时信息。
在一些可选的实施方式中,第一重组模块703包括:
遍历子模块,用于对每个查找表组合进行遍历,并获取多个第一级关键信号。
移动子模块,用于将每个第一级关键信号向后移动一级,并得到多个第一重组布尔函数。
第一确定子模块,用于基于每个第一重组布尔函数,确定每个查找表组合对应的目标重组布尔函数。
在一些可选的实施方式中,第一确定子模块包括:
判断与确定单元,用于基于每个第一重组布尔函数,经过预设合法判断方法,确定多个第二重组布尔函数。
计算单元,用于计算每个第二重组布尔函数的第一效益。
确定单元,用于基于每个第一效益在多个第二重组布尔函数中确定每个查找表组合对应的目标重组布尔函数。
在一些可选的实施方式中,判断与确定单元包括:
计算与判断子单元,用于基于每个第一重组布尔函数,经过预设计算算法,判断是否得到每个第一重组布尔函数对应的真值表。
第一确定子单元,用于当未得到真值表,确定不合法的多个第三重组布尔函数。
第二确定子单元,用于基于每个第一重组布尔函数和多个第三重组布尔函数,确定多个第二重组布尔函数。
在一些可选的实施方式中,第二重组模块704包括:
第三获取子模块,用于获取每个目标重组布尔函数的第二效益。
排序子模块,用于基于每个第二效对多个查找表组合进行排序,得到查找表目标排序组合。
第二确定子模块,用于基于查找表目标排序组合,确定关键路径延时优化结果。
在一些可选的实施方式中,该装置还包括:
第三获取模块,用于获取节点复制情况,节点表示基本逻辑单元。
优化模块,用于基于节点复制情况,利用渐进布局方法对初始网表与布局结果进行优化直至得到目标网表与布局结果。
重复模块,用于基于目标网表与布局结果,重复获取关键路径和关键路径的延时信息的步骤至利用每个目标重组布尔函数对多个查找表组合进行重组,得到关键路径延时优化结果的步骤。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的关键路径延时优化装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述图11所示的关键路径延时优化装置。
请参阅图12,图12是本发明可选实施例提供的一种计算机设备的结构示意图,如图12所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图12中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (8)
1.一种关键路径延时优化方法,用于FPGA芯片;其特征在于,所述方法包括:
获取关键路径和所述关键路径的延时信息,所述关键路径由所述FPGA芯片上的多个基本逻辑单元和每个基本逻辑单元的多个引脚组成;
获取所述关键路径对应的多个查找表组合,每个所述查找表组合包括任意两个连续的查找表,所述查找表反映所述FPGA芯片上基本逻辑器件的输入为1且输出为n时对应的布尔函数;
对每个所述查找表组合构成的布尔函数进行重组,得到每个所述查找表组合对应的目标重组布尔函数;
利用每个所述目标重组布尔函数对所述多个查找表组合进行重组,得到关键路径延时优化结果;
其中,对每个所述查找表组合构成的布尔函数进行重组,得到每个所述查找表组合对应的目标重组布尔函数,包括:
对每个所述查找表组合进行遍历,并获取多个第一级关键信号;
将每个所述第一级关键信号向后移动一级,并得到多个第一重组布尔函数;
基于每个第一重组布尔函数,确定每个所述查找表组合对应的所述目标重组布尔函数;
其中,利用每个所述目标重组布尔函数对所述多个查找表组合进行重组,得到关键路径延时优化结果,包括:
获取每个所述目标重组布尔函数的第二效益;
基于每个所述第二效益对所述多个查找表组合进行排序,得到查找表目标排序组合;
基于所述查找表目标排序组合,确定所述关键路径延时优化结果。
2.根据权利要求1所述的方法,其特征在于,获取关键路径和所述关键路径的延时信息,包括:
获取所述FPGA芯片对应的初始网表与布局结果;
基于所述初始网表与布局结果,获取所述关键路径和所述关键路径的延时信息。
3.根据权利要求1所述的方法,其特征在于,基于每个第一重组布尔函数,确定每个所述查找表组合对应的所述目标重组布尔函数,包括:
基于每个所述第一重组布尔函数,经过预设合法判断方法,确定多个第二重组布尔函数;
计算每个第二重组布尔函数的第一效益;
基于每个所述第一效益在所述多个第二重组布尔函数中确定每个所述查找表组合对应的所述目标重组布尔函数。
4.根据权利要求3所述的方法,其特征在于,基于每个所述第一重组布尔函数,经过预设合法判断方法,确定多个第二重组布尔函数,包括:
基于每个所述第一重组布尔函数,经过预设计算算法,判断是否得到每个所述第一重组布尔函数对应的真值表;
当未得到所述真值表,确定不合法的多个第三重组布尔函数;
基于每个所述第一重组布尔函数和所述多个第三重组布尔函数,确定所述多个第二重组布尔函数。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取节点复制情况,所述节点表示所述基本逻辑单元;
基于所述节点复制情况,利用渐进布局方法对所述初始网表与布局结果进行优化直至得到目标网表与布局结果;
基于所述目标网表与布局结果,重复获取关键路径和所述关键路径的延时信息的步骤至利用每个所述目标重组布尔函数对所述多个查找表组合进行重组,得到关键路径延时优化结果的步骤。
6.一种关键路径延时优化装置,用于FPGA芯片;其特征在于,所述装置包括:
第一获取模块,用于获取关键路径和所述关键路径的延时信息,所述关键路径由所述FPGA芯片上的多个基本逻辑单元和每个基本逻辑单元的多个引脚组成;
第二获取模块,用于获取所述关键路径对应的多个查找表组合,每个所述查找表组合包括任意两个连续的查找表,所述查找表反映所述FPGA芯片上基本逻辑器件的输入为1且输出为n时对应的布尔函数;
第一重组模块,用于对每个所述查找表组合构成的布尔函数进行重组,得到每个所述查找表组合对应的目标重组布尔函数;
第二重组模块,用于利用每个所述目标重组布尔函数对所述多个查找表组合进行重组,得到关键路径延时优化结果;
其中,所述第一重组模块,包括:
遍历子模块,用于对每个查找表组合进行遍历,并获取多个第一级关键信号;
移动子模块,用于将每个第一级关键信号向后移动一级,并得到多个第一重组布尔函数;
第一确定子模块,用于基于每个第一重组布尔函数,确定每个查找表组合对应的目标重组布尔函数;
其中,所述第二重组模块,包括:
第三获取子模块,用于获取每个目标重组布尔函数的第二效益;
排序子模块,用于基于每个第二效益对多个查找表组合进行排序,得到查找表目标排序组合;
第二确定子模块,用于基于查找表目标排序组合,确定关键路径延时优化结果。
7.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至5中任一项所述的关键路径延时优化方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至5中任一项所述的关键路径延时优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311811326.8A CN117634383B (zh) | 2023-12-26 | 2023-12-26 | 关键路径延时优化方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311811326.8A CN117634383B (zh) | 2023-12-26 | 2023-12-26 | 关键路径延时优化方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117634383A CN117634383A (zh) | 2024-03-01 |
CN117634383B true CN117634383B (zh) | 2024-06-07 |
Family
ID=90027095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311811326.8A Active CN117634383B (zh) | 2023-12-26 | 2023-12-26 | 关键路径延时优化方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117634383B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118113660B (zh) * | 2024-04-26 | 2024-07-02 | 苏州异格技术有限公司 | Fpga延时优化方法、装置、设备、存储介质及程序产品 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6389579B1 (en) * | 1998-01-26 | 2002-05-14 | Chameleon Systems | Reconfigurable logic for table lookup |
CN101515312A (zh) * | 2008-12-03 | 2009-08-26 | 复旦大学 | 一种现场可编程器件fpga逻辑单元模型及其通用装箱算法 |
JP2013125378A (ja) * | 2011-12-14 | 2013-06-24 | Tokyo Keiki Inc | リコンフィギュラブルプロセッサの制御方法及びリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法及びコンフィギュレーション情報生成ツール |
CN103580678A (zh) * | 2013-11-04 | 2014-02-12 | 复旦大学 | 一种基于fgpa的高性能查找表电路 |
CN107918694A (zh) * | 2016-10-11 | 2018-04-17 | 英特尔公司 | 用于减少集成电路上的延迟的方法 |
CN109800468A (zh) * | 2018-12-25 | 2019-05-24 | 河南工程学院 | 一种基于寄存器重定时的多流水级时序电路装箱操作方法 |
US10943043B1 (en) * | 2020-03-26 | 2021-03-09 | Xilinx, Inc. | Multiple output constrained input lookup table generation |
CN113705135A (zh) * | 2021-07-20 | 2021-11-26 | 深圳市紫光同创电子有限公司 | 基于fpga进位链的电路结构优化方法及*** |
CN116070556A (zh) * | 2021-11-01 | 2023-05-05 | 华为技术有限公司 | 一种多级查找表电路、函数求解方法及相关设备 |
CN116894413A (zh) * | 2023-09-05 | 2023-10-17 | 苏州异格技术有限公司 | 一种基于硬件的逻辑映射方法、装置、设备及存储介质 |
CN117236254A (zh) * | 2023-11-13 | 2023-12-15 | 中科芯磁科技(珠海)有限责任公司 | 可配置逻辑块控制方法、可配置逻辑块及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020185984A1 (en) * | 2019-03-13 | 2020-09-17 | Interdigital Vc Holdings, Inc. | In-loop reshaping adaptive reshaper direction |
-
2023
- 2023-12-26 CN CN202311811326.8A patent/CN117634383B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6389579B1 (en) * | 1998-01-26 | 2002-05-14 | Chameleon Systems | Reconfigurable logic for table lookup |
CN101515312A (zh) * | 2008-12-03 | 2009-08-26 | 复旦大学 | 一种现场可编程器件fpga逻辑单元模型及其通用装箱算法 |
JP2013125378A (ja) * | 2011-12-14 | 2013-06-24 | Tokyo Keiki Inc | リコンフィギュラブルプロセッサの制御方法及びリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法及びコンフィギュレーション情報生成ツール |
CN103580678A (zh) * | 2013-11-04 | 2014-02-12 | 复旦大学 | 一种基于fgpa的高性能查找表电路 |
CN107918694A (zh) * | 2016-10-11 | 2018-04-17 | 英特尔公司 | 用于减少集成电路上的延迟的方法 |
CN109800468A (zh) * | 2018-12-25 | 2019-05-24 | 河南工程学院 | 一种基于寄存器重定时的多流水级时序电路装箱操作方法 |
US10943043B1 (en) * | 2020-03-26 | 2021-03-09 | Xilinx, Inc. | Multiple output constrained input lookup table generation |
CN113705135A (zh) * | 2021-07-20 | 2021-11-26 | 深圳市紫光同创电子有限公司 | 基于fpga进位链的电路结构优化方法及*** |
CN116070556A (zh) * | 2021-11-01 | 2023-05-05 | 华为技术有限公司 | 一种多级查找表电路、函数求解方法及相关设备 |
CN116894413A (zh) * | 2023-09-05 | 2023-10-17 | 苏州异格技术有限公司 | 一种基于硬件的逻辑映射方法、装置、设备及存储介质 |
CN117236254A (zh) * | 2023-11-13 | 2023-12-15 | 中科芯磁科技(珠海)有限责任公司 | 可配置逻辑块控制方法、可配置逻辑块及存储介质 |
Non-Patent Citations (3)
Title |
---|
二维阵列结构的流水线可重构路由进化策略;郭志勇;李广军;刘洋;;小型微型计算机***;20110415(04);797-800 * |
可重构计算平台上SHA系列函数的优化实现;席胜鑫;周清雷;斯雪明;李斌;谭健;;计算机应用研究;20170614(07);258-261 * |
基于区域重组的异构FPGA工艺映射算法;路宝珠;杨海钢;郝亚男;张茉莉;崔秀海;;计算机辅助设计与图形学学报;20120815(08);1027-1037 * |
Also Published As
Publication number | Publication date |
---|---|
CN117634383A (zh) | 2024-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117634383B (zh) | 关键路径延时优化方法、装置、计算机设备及存储介质 | |
CN112257364B (zh) | 一种gpu加速计算的集成电路静态时序分析方法 | |
US5734917A (en) | System for producing combination circuit to satisfy prescribed delay time by deleting selected path gate and allowing to perform the permissible function for initial circuit | |
US4967367A (en) | Synthetic netlist system and method | |
US5282147A (en) | Method and apparatus for optimizing a logic network | |
CN112364584B (zh) | 一种基于分布式的静态时序分析方法 | |
CN114861591B (zh) | 一种可微分时序驱动的芯片布局优化方法 | |
CN113779924A (zh) | 超导集成电路的布线优化方法和装置、存储介质和终端 | |
US20230186007A1 (en) | System and method for optimizing integrated circuit layout based on neural network | |
CN111709205A (zh) | Fpga布线方法 | |
US5712792A (en) | Logic circuit sythesizing method utilizing binary decision diagram explored based upon hierarchy of correlation between input variables | |
Chaudhary et al. | Computing the area versus delay trade-off curves in technology mapping | |
CN112183000A (zh) | 一种支持互连约束的超图划分方法 | |
US6502222B1 (en) | Method of clock buffer partitioning to minimize clock skew for an integrated circuit design | |
US7131085B2 (en) | Distributed BDD reordering | |
US20050246667A1 (en) | Bus structure, database and method of designing interface | |
CN112131813A (zh) | 基于端***换技术的用于提升布线速度的fpga布线方法 | |
US7146590B1 (en) | Congestion estimation for programmable logic devices | |
JPH096821A (ja) | 論理回路の合成方法、半導体装置の製造方法および二分決定グラフの最適化方法 | |
CN110543664A (zh) | 一种面向具有特有结构fpga的工艺映射方法 | |
CN117787169B (zh) | 基于fpga的网表优化方法、装置、计算机设备及存储介质 | |
Pedram et al. | Combining technology mapping with layout | |
CN112307700B (zh) | 可编程器件的位流并行生成方法及*** | |
CN114896941B (zh) | 一种时钟树的布局优化方法、优化装置和相关设备 | |
US7143020B1 (en) | Method and system for generic inference of sequential elements |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |