CN117217136A - 一种基于rtl设计的fpga资源消耗估计方法 - Google Patents
一种基于rtl设计的fpga资源消耗估计方法 Download PDFInfo
- Publication number
- CN117217136A CN117217136A CN202311256083.6A CN202311256083A CN117217136A CN 117217136 A CN117217136 A CN 117217136A CN 202311256083 A CN202311256083 A CN 202311256083A CN 117217136 A CN117217136 A CN 117217136A
- Authority
- CN
- China
- Prior art keywords
- resource
- resource consumption
- target expression
- input
- expression logic
- 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.)
- Pending
Links
- 238000013461 design Methods 0.000 title claims abstract description 90
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000004891 communication Methods 0.000 claims description 19
- 238000010801 machine learning Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 10
- 238000012549 training Methods 0.000 claims description 10
- 238000009826 distribution Methods 0.000 claims description 7
- 230000009977 dual effect Effects 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 claims description 2
- 238000012795 verification Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 238000013507 mapping Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000007637 random forest analysis Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000007670 refining Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 229920001971 elastomer Polymers 0.000 description 1
- 239000000806 elastomer Substances 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种基于RTL设计的FPGA资源消耗估计方法,包括:解析原始RTL设计并进行细化编译得到RTL设计文件;对RTL设计文件进行层次化遍历得到标准单元网络结构集合;通过遍历标准单元网络结构集合,识别出标准单元网络结构集合包含的至少一个目标表达式逻辑;针对每个目标表达式逻辑,根据其输入类型选用对应的资源估计模型估计其资源消耗量;统计所有目标表达式逻辑的资源消耗量,得到FPGA资源消耗估计结果。本发明在提供准确的资源消耗估算结果的同时能够减少耗时,提高了在设计划分阶段对RTL设计资源消耗估算的效率和准确性。
Description
技术领域
本发明属于FPGA原型验证领域,具体涉及一种基于RTL(Register TransferLevel,寄存器传输级)设计的FPGA(Field-Programmable Gate Array,现场可编程门阵列)资源消耗估计方法。
背景技术
FPGA原型验证是一种基于FPGA的验证技术,它通过将RTL设计转换成Bitfile移植到FPGA中,以此来验证芯片功能和时序的正确性。FPGA原型验证流程如图1所示,其中在RTL设计划分阶段(Partition)、对FPGA资源消耗进行估算(Resource Estimate)可以最大化利用FPGA资源,防止设计过大导致的FPGA资源超限。
现有原型验证流程在设计划分阶段进行资源消耗估算时,采用技术映射和逻辑覆盖的方案。该方案对细化编译后的网络结构进行展平操作,在展平的网络结构与现有的器件库进行匹配,完成对整个设计的逻辑覆盖,进而对整个设计的资源消耗进行估算。但是,由于器件库的多样性,同时编译器的算法黑盒会对RTL设计采用多种优化策略,因此在设计划分阶段进行表达式逻辑层级的资源估算时,上述现有资源估算方案存在资源估算结果不准确、资源估算流程耗时长等问题。
因此,急需一种新的资源消耗估算方案,从而在提供准确的资源消耗估算结果的同时能够减少耗时,提高在设计划分阶段对RTL设计资源消耗估算的效率和准确性,以便更好地支持原型验证流程,从而更好地指导后续的设计划分流程。
发明内容
为了解决现有技术中所存在的上述问题,本发明提供了一种基于RTL设计的FPGA资源估计方法。
本发明要解决的技术问题通过以下技术方案实现:
第一方面,本发明提供了一种基于RTL设计的FPGA资源消耗估计方法,包括:
解析FPGA的原始RTL设计并进行细化编译,得到符合Verilog HDL设计规范的RTL设计文件;
对所述RTL设计文件进行层次化遍历,得到标准单元网络结构集合;
通过遍历所述标准单元网络结构集合,识别出所述标准单元网络结构集合包含的至少一个目标表达式逻辑;所述至少一个目标表达式逻辑为进行FPGA RTL设计所可能用到的15种表达式逻辑中的一种或多种;
针对每个目标表达式逻辑,根据其输入类型选用对应的资源估计模型估计其资源消耗量;所有资源估计模型均用于根据目标表达式逻辑的输入位宽直接得到目标表达式逻辑的资源消耗量;
统计所有目标表达式逻辑的资源消耗量,得到FPGA资源消耗估计结果。
在一个实施例中,针对每个目标表达式逻辑,根据其输入类型选用对应的资源估计模型估计其资源消耗量,包括:
针对每个目标表达式逻辑,若其输入类型为单输入或者具有相同位宽的双输入,选用第一资源估计模型估计其资源消耗量;若其输入类型为单输入组合,选用第二资源估计模型估计其资源消耗量;若其输入类型为不同位宽的双输入,选用第三资源估计模型估计其资源消耗量。
在一个实施例中,针对每个目标表达式逻辑,若其输入类型为单输入或者具有相同位宽的双输入,选用第一资源估计模型估计其资源消耗量,包括:
根该目标表达式逻辑对应的器件类型获取对应的位宽-资源拟合曲线;其中,任一种类型的器件对应的位宽-资源拟合曲线均是预先根据该器件在不同输入位宽下所消耗的资源量进行曲线拟合得到的;
根据目标表达式逻辑的输入位宽,利用所述位宽-资源拟合曲线确定该输入位宽对应的资源消耗量。
在一个实施例中,在根据目标表达式逻辑对应的器件类型获取对应的位宽-资源拟合曲线之前,所述方法还包括:
判断该目标表达式逻辑的输入位宽是否低于其器件类型对应的低位宽;
若低于,根据该目标表达式逻辑对应的器件类型获取对应的第一查找表;从所述第一查找表中查找该目标表达式逻辑的输入位宽对应的资源消耗量;其中,任一种类型的器件对应的第一查找表均是预先对该器件在不同的低输入位宽下所消耗的资源量进行记录得到的;
若不低于,继续执行所述根据目标表达式逻辑对应的器件类型获取对应的位宽-资源拟合曲线的步骤。
在一个实施例中,全加器对应的位宽-资源拟合曲线是采用分段线性拟合方式得到的、服从阶跃函数分布的曲线;非全加器的器件对应的位宽-资源拟合曲线是采用线性拟合方式得到的曲线。
在一个实施例中,针对每个目标表达式逻辑,若其输入类型为单输入组合,选用第二资源估计模型估计其资源消耗量,包括:
根据该目标表达式逻辑对应的器件类型获取对应的第二查找表;其中,任一种类型的器件对应的第二查找表均是预先对该器件在不同的输入位宽下所消耗的资源量进行记录得到的;
从所述第二查找表中查找该目标表达式逻辑的输入位宽对应的资源消耗量。
在一个实施例中,针对每个目标表达式逻辑,若其输入类型为不同位宽的双输入,选用第三资源估计模型估计其资源消耗量,包括:
根据该目标表达式逻辑对应的器件类型获取对应的机器学习模型;其中,任一种类型的器件对应的机器学习模型均是预先基于该器件在不同的输入位宽下所消耗的资源量进行训练得到的;
根据该目标表达式逻辑的双输入位宽构建二维特征向量,并将该二维特征向量输入至所述机器学习模型,以使所述机器学习模型输出该目标表达式逻辑的资源消耗量。
第二方面,本发明提供了一种基于RTL设计的FPGA资源消耗估计装置,包括:
解析编译模块,用于解析FPGA的原始RTL设计并进行细化编译,得到符合VerilogHDL设计规范的RTL设计文件;
第一遍历模块,用于对所述RTL设计文件进行层次化遍历,得到标准单元网络结构集合;
第二遍历模块,用于通过遍历所述标准单元网络结构集合,识别出所述标准单元网络结构集合包含的至少一个目标表达式逻辑;所述至少一个目标表达式逻辑为进行FPGARTL设计所可能用到的15种表达式逻辑中的一种或多种;
估计模块,用于针对每个目标表达式逻辑,根据其输入类型选用对应的资源估计模型估计其资源消耗量;所有资源估计模型均用于根据目标表达式逻辑的输入位宽直接得到目标表达式逻辑的资源消耗量;
统计模块,用于统计所有目标表达式逻辑的资源消耗量,得到FPGA资源消耗估计结果。
在一个实施例中,所述估计模块,具体用于:
针对每个目标表达式逻辑,若其输入类型为单输入或者具有相同位宽的双输入,选用第一资源估计模型估计其资源消耗量;若其输入类型为单输入组合,选用第二资源估计模型估计其资源消耗量;若其输入类型为不同位宽的双输入,选用第三资源估计模型估计其资源消耗量。
第三方面,本发明提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线;
其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的计算机程序时,实现上述任一种基于RTL设计的FPGA资源消耗估计方法所述的方法步骤。
本发明提供的基于RTL设计的FPGA资源估计方法中,针对每个目标表达式逻辑,根据其输入类型选用对应的资源估计模型估计其资源消耗量;这些资源估计模型均用于根据目标表达式逻辑的输入位宽直接得到目标表达式逻辑的资源消耗量;因此,本发明在提供准确的资源消耗估算结果的同时能够减少耗时,提高了在设计划分阶段对RTL设计资源消耗估算的效率和准确性,从而更好地支持原型验证流程。
以下将结合附图及对本发明做进一步详细说明。
附图说明
图1是FPGA原型验证的流程图;
图2是本发明实施例提供的一种基于RTL设计的FPGA资源消耗估计方法的流程图;
图3是图2所示方法流程的另一种简化描述;
图4中示出了细化编译前后的RTL设计;
图5中示出了部分表达式逻辑对应的RTL级伪器件;
图6是本发明实施例提供的一种基于RTL设计的FPGA资源消耗估计装置的结构框图;
图7是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
为了在提供准确的资源消耗估算结果的同时能够减少耗时,提高在设计划分阶段对RTL设计资源消耗估算的效率和准确性,本发明实施例提供了一种基于RTL设计的FPGA资源消耗估计方法,参见图2和图3所示,该方法包括以下步骤:
S10:解析FPGA的原始RTL设计并进行细化编译,得到符合Verilog HDL设计规范的RTL设计文件。
具体的,将原始RTL设计使用RTL解析器的接口进行设计读入(Read Verilog),并进行文件正确性校验,若校验失败则报错。其中,输入到RTL解析器的文件可以包括.sv\.v\.vh\.svh等多种文件类型。在实际应用中,原始RTL设计的读入方式存在多种,例如可以通过文件路径进行原始RTL设计的读入。或者,考虑到多种用户输入情况,可以优先考虑使用常见的通过Filelist进行读入的方式来读入原始RTL设计。
读入原始RTL设计后,在RTL解析器中对获得的原始RTL设计进行进一步的细化编译操作(Elaborate),生成以Cell构成的标准单元网络结构,形成符合Verilog HDL设计规范的RTL设计文件,如图4所示。细化编译操作将RTL级代码进行逻辑展开,细化成能够符合原有电路逻辑功能的门级器件与伪器件的网络结构RTL表述,为下一步的表达式逻辑表达式逻辑识别做好基础工作。
S20:对RTL设计文件进行层次化遍历,得到标准单元网络结构集合。
具体的,进入RTL解析器,从RTL设计文件的Parse Tree中获取原始设计顶模块名称对应的标准单元网络结构(Get Top Netlist),对该标准单元网络结构进行层次化遍历(Hierarchy);通过遍历Parse Tree的层级(Traverse Parse Tree),返回每一个子节点的指针,这些指针指分别指向被例化的标准单元网络结构,因此最终会返回一个指向标准单元网络结构的指针的集合,也即上述标准单元网络结构集合。
S30:通过遍历标准单元网络结构集合,识别出标准单元网络结构集合包含的至少一个目标表达式逻辑。
具体的,通过遍历标准单元网络结构集合进行Parse Operator(解析运算符),识别出进行FPGA RTL设计所可能用到的15种表达式逻辑中的一种或多种。实际中进行FPGARTL设计所可能用到的15种表达式逻辑包括:全加器、逻辑与、逻辑与非、逻辑或、逻辑或非、逻辑异或、逻辑异或费、比较器、选择器、译码器、多路选择器、带符号乘法器、无符号乘法器、左移寄存器以及右移寄存器,其中的部分表达式逻辑种类如图5所示。
该步骤S30中,识别出的至少一个目标表达式逻辑可以是上述15种表达式逻辑中的一种或多种。
S40:针对每个目标表达式逻辑,根据其输入类型选用对应的资源估计模型估计其资源消耗量;所有资源估计数学模型均用于根据目标表达式逻辑的输入位宽直接得到目标表达式逻辑的资源消耗量。
具体的,使用业界常见的RTL设计逻辑综合工具在若干FPGA平台对原始设计进行逻辑综合得到的资源报告作为FPGA资源消耗的参考基准,从而基于不同输入位宽配置的表达式逻辑RTL代码构建数据集,并使用统计学的方法建立起从输入位宽到最终FPGA片上资源消耗的一一映射,然后基于得到的映射关系来构建资源估计模型。通过使用对位宽-资源映射关系进行分析后发现,不同的表达式逻辑服从不尽相同的统计学分布,因此可以根据每种表达式逻辑的具体分布情况,构建对应的资源估计模型。
下面对资源估计模型以及使用资源估计模型来估计资源消耗量的具体实现方式(Estimate Method)进行举例说明。
针对每个目标表达式逻辑,若其输入类型为单输入或者具有相同位宽的双输入,选用第一资源估计模型估计其资源消耗量。
在实际应用中,输入类型为单输入或者相同位宽的双输入的表达式逻辑类型包括:全加器、逻辑运算器件、比较器以及选择器,其中逻辑运算器件包括逻辑与、逻辑与非、逻辑或、逻辑或非、逻辑异或、逻辑异或非。可以理解的是,无论是这里的单输入还是相同位宽的双输入,本质上都相当于是可变位宽单输入,且在一般情况下,此类表达式逻辑的输入位宽不存在上限,因此选用曲线拟合的方式构建资源估计模型。
具体而言,针对上述几种器件中的每一种器件,预先根据该器件在不同输入位宽下所消耗的资源量拟合二维曲线,得到位宽-资源拟合曲线,作为第一资源估计模型。
相应的,针对每个目标表达式逻辑,若其输入类型为单输入或者具有相同位宽的双输入,选用第一资源估计模型估计其资源消耗量,包括:
(1-1)根该目标表达式逻辑对应的器件类型获取对应的位宽-资源拟合曲线;
(1-2)根据目标表达式逻辑的输入位宽,利用位宽-资源拟合曲线确定该输入位宽对应的资源消耗量。
可以理解的是,上述位宽-资源拟合曲线即是第一资源估计模型。
其中,对于除全加器外的单输入表达式逻辑而言,输入位宽和资源消耗量服从明显的线性分布,因此可以用线性拟合得到精度较高的拟合曲线,也即非全加器的器件对应的位宽-资源拟合曲线是采用线性拟合方式得到的曲线。而对于全加器表达式逻辑而言,其输入位宽和资源消耗量的曲线服从阶跃函数分布,因此可以采用分段线性拟合策略来进行曲线的拟合,也即全加器对应的位宽-资源拟合曲线是采用分段线性拟合方式得到的、服从阶跃函数分布的曲线。
在一个实施例中,在根据目标表达式逻辑对应的器件类型获取对应的位宽-资源拟合曲线之前,本发明实施例提供的基于RTL设计的FPGA资源消耗估计方法还可以包括以下步骤:
(a)判断该目标表达式逻辑的输入位宽是否低于其器件类型对应的低位宽;
(b)若低于,根据该目标表达式逻辑对应的器件类型获取对应的第一查找表;从第一查找表中查找该目标表达式逻辑的输入位宽对应的资源消耗量;其中,任一种类型的器件对应的第一查找表均是预先对该器件在不同的低输入位宽下所消耗的资源量进行记录得到的;
(b‘)若不低于,继续执行所述根据目标表达式逻辑对应的器件类型获取对应的位宽-资源拟合曲线的步骤。
具体而言,实际中通过对位宽-资源映射关系进行分析发现,对于所有适用第一资源估计模型的表达式逻辑,在低位宽的情况下,由于综合器的优化策略,其输入位宽和资源消耗量的分布会显示出更为明显的非线性,不利于进行曲线拟合,因此针对低位宽区间,可以对表达式逻辑在不同的输入位宽下所消耗的资源量进行记录,从而形成第一查找表,以便后续通过查找表的方式进行资源量的估计。
可以理解的是,该实施例中,第一查找表和位宽-资源拟合曲线共同构成了第一资源估计模型。
在执行步骤S40的过程中,若目标表达式逻辑的输入类型为单输入组合,则选用第二资源估计模型估计其资源消耗量。
其中,输入类型为单输入组合的目标表达式逻辑包括:多路选择器和译码器。此类器件的输入也是可变位宽单输入,但与适用第一资源估计模型的目标表达式逻辑不同的是,该种类表达式逻辑的输入位宽与表达式逻辑功能强相关,输入位宽是输入信号总线规模的体现,由于考虑到实际物理层面的限制,期间输入总线设计规模不可能是无穷大,这意味着表达式逻辑的输入位宽在绝大多数场景下是存在一个较低的上限的。因此,可以采用查找表覆盖此类表达式逻辑的大部分应用场景。
具体而言,针对多路选择器和译码器,预先对该器件在不同的输入位宽下所消耗的资源量进行记录,形成第二查找表,作为第二资源估计模型。
相应的,针对每个目标表达式逻辑,若其输入类型为单输入组合,选用第二资源估计模型估计其资源消耗量,包括:
(2-1)根据该目标表达式逻辑对应的器件类型获取对应的第二查找表;
(2-2)从第二查找表中查找该目标表达式逻辑的输入位宽对应的资源消耗量。
当然,对于某些极端情况,例如输入总线的位宽超过第二查找表所支持的最大位宽、以及输入总线位宽小于最大位宽但无法与第二查找表项匹配的情况,也可以配合使用线性拟合的方式来共同构建第二资源估计模型。
在执行步骤S40的过程中,若目标表达式逻辑的输入类型为不同位宽的双输入,选用第三资源估计模型估计其资源消耗量。
其中,输入类型为不同位宽的双输入的表达式逻辑包括:无符号乘法器、有符号乘法器,左移位器以及右移位器。此类器件相当于多输入位宽组合与FPGA资源的映射,且一般情况下,其输入位宽不存在上限,故曲线拟合和查找表的方式均不适合处理此类非线性问题。因此,本发明实施例中使用机器学习的方式构建第三资源估计模型。
具体而言,针对无符号乘法器、有符号乘法器,左移位器以及右移位器中的每一类器件,预先对该器件在不同的输入位宽下所消耗的资源量进行记录。由于这些器件是双输入器件,故而每次的输入位宽组合可以表示为二维特征向量x=[x1,x2,…]T,每个二维特征向量及其对应的资源消耗量均可以作为一个训练样本,对应的资源消耗量为训练样本的标签真值,由此可以得到大量的训练样本。然后,抽样20%的样本构成验证集,剩余80%作为训练集来对机器学习模型进行训练;训练过程中通过计算模型预测的资源消耗量与标签标注的资源消耗量之间的RMSE(均方根误差)作为模型损失来评估训练效果;此外,为保证训练及验证的全面覆盖,还可以采用5折交叉验证的方案对模型进行预测验证,从而得到训练好的机器学习模型,作为第三资源估计模型。
示例性的,上述机器学习模型可以是单任务回归、多项式回归、最小二乘多项式拟合、决策树或者随机森林等非线性模型中的任一种。实际中通过测试发现随机森林模型具有最好的预测性能,因此优选基于随机森林模型来构建第三资源估计模型。
相应的,针对每个目标表达式逻辑,若其输入类型为不同位宽的双输入,选用第三资源估计模型估计其资源消耗量,包括:
(1)根据该目标表达式逻辑对应的器件类型获取对应的机器学习模型;
(2)根据该目标表达式逻辑的双输入位宽构建二维特征向量,并将该二维特征向量输入至预先训练好的机器学习模型,以使该机器学习模型输出该目标表达式逻辑的资源消耗量。
S50:统计所有目标表达式逻辑的资源消耗量,得到FPGA资源消耗估计结果。
具体的,将所有目标表达式逻辑的资源消耗量进行相加,得到FPGA资源消耗估计结果。
本发明实施例提供的基于RTL设计的FPGA资源估计方法中,针对每个目标表达式逻辑,根据其输入类型选用对应的资源估计模型估计其资源消耗量;这些资源估计模型均用于根据目标表达式逻辑的输入位宽直接得到目标表达式逻辑的资源消耗量;因此,本发明实施例在提供准确的资源消耗估算结果的同时能够减少耗时,提高了在设计划分阶段对RTL设计资源消耗估算的效率和准确性,从而更好地支持原型验证流程。
在一个实施例中,为了进一步提高计算速度,从而缩短整个估算流程的耗时,可以将本发明的资源消耗估计方法安排在计算机集群上运行。例如,可以将步骤S10的解析编译、步骤S20的层次化遍历、步骤S30的遍历标准单元网络结构集合以及步骤S40的资源消耗估计分别安排在计算机集群的不同计算机上运行。或者,将步骤S40中的不同资源估计模型部署在计算机集群的不同计算机上,从而针对不同输入类型的目标表达式逻辑并行执行资源消耗估计任务,提高估计速度。
在实际应用中,本发明实施例的发明人通过选择多个中大型RTL设计作为测试样例,分别使用本发明实施例的方法以及现有的基于技术映射的估算方法进行资源消耗估计;对比结果表明,相较于现有的基于技术映射的估算方法,本发明实施例在运行时间与估算精度上都有了较大的提升。
本发明实施例提供的方法可以应用于电子设备。具体的,该电子设备可以为:台式计算机、便携式计算机、智能移动终端、服务器等。在此不作限定,任何可以实现本发明的电子设备,均属于本发明的保护范围。
基于相同的发明构思,本发明实施例还提供了一种基于RTL设计的FPGA资源消耗估计装置,如图6所示,包括:
解析编译模块501,用于解析FPGA的原始RTL设计并进行细化编译,得到符合Verilog HDL设计规范的RTL设计文件;
第一遍历模块502,用于对RTL设计文件进行层次化遍历,得到标准单元网络结构集合;
第二遍历模块503,用于通过遍历标准单元网络结构集合,识别出标准单元网络结构集合包含的至少一个目标表达式逻辑;该至少一个目标表达式逻辑为进行FPGA RTL设计所可能用到的15种表达式逻辑中的一种或多种;
估计模块504,用于针对每个目标表达式逻辑,根据其输入类型选用对应的资源估计模型估计其资源消耗量;资源估计模型用于根据目标表达式逻辑的输入位宽直接得到目标表达式逻辑的资源消耗量;
统计模块505,用于统计所有目标表达式逻辑的资源消耗量,得到FPGA资源消耗估计结果。
本发明实施例还提供了一种电子设备,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,
存储器703,用于存放计算机程序;
处理器701,用于执行存储器703上所存放的程序时,实现上述任一种基于RTL设计的FPGA资源消耗估计方法所述的方法步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表征,图中仅用一条粗线表征,但并不表征仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
需要说明的是,对于装置/电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与本公开的一些方面相一致的装置和方法的例子。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。此外,本领域的技术人员可以将本说明书中描述的不同实施例或示例进行接合和组合。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图以及公开内容,可理解并实现所述公开实施例的其他变化。在本发明的描述中,“包括”一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况,“多个”的含义是两个或两个以上,除非另有明确具体的限定。此外,相互不同的实施例中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
本领域技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式,这里将它们都统称为“模块”或“系统”。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过Internet或其它有线或无线电信系统。
本申请是参照本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种基于RTL设计的FPGA资源消耗估计方法,其特征在于,包括:
解析FPGA的原始RTL设计并进行细化编译,得到符合Verilog HDL设计规范的RTL设计文件;
对所述RTL设计文件进行层次化遍历,得到标准单元网络结构集合;
通过遍历所述标准单元网络结构集合,识别出所述标准单元网络结构集合包含的至少一个目标表达式逻辑;所述至少一个目标表达式逻辑为进行FPGA RTL设计所可能用到的15种表达式逻辑中的一种或多种;
针对每个目标表达式逻辑,根据其输入类型选用对应的资源估计模型估计其资源消耗量;所有资源估计模型均用于根据目标表达式逻辑的输入位宽直接得到目标表达式逻辑的资源消耗量;
统计所有目标表达式逻辑的资源消耗量,得到FPGA资源消耗估计结果。
2.根据权利要求1所述的基于RTL设计的FPGA资源消耗估计方法,其特征在于,针对每个目标表达式逻辑,根据其输入类型选用对应的资源估计模型估计其资源消耗量,包括:
针对每个目标表达式逻辑,若其输入类型为单输入或者具有相同位宽的双输入,选用第一资源估计模型估计其资源消耗量;若其输入类型为单输入组合,选用第二资源估计模型估计其资源消耗量;若其输入类型为不同位宽的双输入,选用第三资源估计模型估计其资源消耗量。
3.根据权利要求2所述的基于RTL设计的FPGA资源消耗估计方法,其特征在于,针对每个目标表达式逻辑,若其输入类型为单输入或者具有相同位宽的双输入,选用第一资源估计模型估计其资源消耗量,包括:
根该目标表达式逻辑对应的器件类型获取对应的位宽-资源拟合曲线;其中,任一种类型的器件对应的位宽-资源拟合曲线均是预先根据该器件在不同输入位宽下所消耗的资源量进行曲线拟合得到的;
根据目标表达式逻辑的输入位宽,利用所述位宽-资源拟合曲线确定该输入位宽对应的资源消耗量。
4.根据权利要求3所述的基于RTL设计的FPGA资源消耗估计方法,其特征在于,在根据目标表达式逻辑对应的器件类型获取对应的位宽-资源拟合曲线之前,所述方法还包括:
判断该目标表达式逻辑的输入位宽是否低于其器件类型对应的低位宽;
若低于,根据该目标表达式逻辑对应的器件类型获取对应的第一查找表;从所述第一查找表中查找该目标表达式逻辑的输入位宽对应的资源消耗量;其中,任一种类型的器件对应的第一查找表均是预先对该器件在不同的低输入位宽下所消耗的资源量进行记录得到的;
若不低于,继续执行所述根据目标表达式逻辑对应的器件类型获取对应的位宽-资源拟合曲线的步骤。
5.根据权利要求3所述的基于RTL设计的FPGA资源消耗估计方法,其特征在于,全加器对应的位宽-资源拟合曲线是采用分段线性拟合方式得到的、服从阶跃函数分布的曲线;非全加器的器件对应的位宽-资源拟合曲线是采用线性拟合方式得到的曲线。
6.根据权利要求2所述的基于RTL设计的FPGA资源消耗估计方法,其特征在于,针对每个目标表达式逻辑,若其输入类型为单输入组合,选用第二资源估计模型估计其资源消耗量,包括:
根据该目标表达式逻辑对应的器件类型获取对应的第二查找表;其中,任一种类型的器件对应的第二查找表均是预先对该器件在不同的输入位宽下所消耗的资源量进行记录得到的;
从所述第二查找表中查找该目标表达式逻辑的输入位宽对应的资源消耗量。
7.根据权利要求2所述的基于RTL设计的FPGA资源消耗估计方法,其特征在于,针对每个目标表达式逻辑,若其输入类型为不同位宽的双输入,选用第三资源估计模型估计其资源消耗量,包括:
根据该目标表达式逻辑对应的器件类型获取对应的机器学习模型;其中,任一种类型的器件对应的机器学习模型均是预先基于该器件在不同的输入位宽下所消耗的资源量进行训练得到的;
根据该目标表达式逻辑的双输入位宽构建二维特征向量,并将该二维特征向量输入至所述机器学习模型,以使所述机器学习模型输出该目标表达式逻辑的资源消耗量。
8.一种基于RTL设计的FPGA资源消耗估计装置,其特征在于,包括:
解析编译模块,用于解析FPGA的原始RTL设计并进行细化编译,得到符合Verilog HDL设计规范的RTL设计文件;
第一遍历模块,用于对所述RTL设计文件进行层次化遍历,得到标准单元网络结构集合;
第二遍历模块,用于通过遍历所述标准单元网络结构集合,识别出所述标准单元网络结构集合包含的至少一个目标表达式逻辑;所述至少一个目标表达式逻辑为进行FPGA RTL设计所可能用到的15种表达式逻辑中的一种或多种;
估计模块,用于针对每个目标表达式逻辑,根据其输入类型选用对应的资源估计模型估计其资源消耗量;所有资源估计模型均用于根据目标表达式逻辑的输入位宽直接得到目标表达式逻辑的资源消耗量;
统计模块,用于统计所有目标表达式逻辑的资源消耗量,得到FPGA资源消耗估计结果。
9.根据权利要求8所述的基于RTL设计的FPGA资源消耗估计装置,其特征在于,所述估计模块,具体用于:
针对每个目标表达式逻辑,若其输入类型为单输入或者具有相同位宽的双输入,选用第一资源估计模型估计其资源消耗量;若其输入类型为单输入组合,选用第二资源估计模型估计其资源消耗量;若其输入类型为不同位宽的双输入,选用第三资源估计模型估计其资源消耗量。
10.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线;
其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的计算机程序时,实现权利要求1~7任一项所述的基于RTL设计的FPGA资源消耗估计方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311256083.6A CN117217136A (zh) | 2023-09-26 | 2023-09-26 | 一种基于rtl设计的fpga资源消耗估计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311256083.6A CN117217136A (zh) | 2023-09-26 | 2023-09-26 | 一种基于rtl设计的fpga资源消耗估计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117217136A true CN117217136A (zh) | 2023-12-12 |
Family
ID=89040479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311256083.6A Pending CN117217136A (zh) | 2023-09-26 | 2023-09-26 | 一种基于rtl设计的fpga资源消耗估计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117217136A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117793106A (zh) * | 2024-02-27 | 2024-03-29 | 广东云百科技有限公司 | 一种智能网关、物联网数据采集方法及物联网系统 |
-
2023
- 2023-09-26 CN CN202311256083.6A patent/CN117217136A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117793106A (zh) * | 2024-02-27 | 2024-03-29 | 广东云百科技有限公司 | 一种智能网关、物联网数据采集方法及物联网系统 |
CN117793106B (zh) * | 2024-02-27 | 2024-05-28 | 广东云百科技有限公司 | 一种智能网关、物联网数据采集方法及物联网系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110515739B (zh) | 深度学习神经网络模型负载计算方法、装置、设备及介质 | |
US7324363B2 (en) | SPICE optimized for arrays | |
US8271252B2 (en) | Automatic verification of device models | |
CN111881023B (zh) | 一种基于多模型对比的软件老化预测方法及装置 | |
CN117217136A (zh) | 一种基于rtl设计的fpga资源消耗估计方法 | |
CN109670255B (zh) | 一种时序参数聚类的典型仿真条件推荐方法 | |
CN112181430B (zh) | 代码变更统计方法、装置、电子设备及存储介质 | |
Chaudhuri et al. | Functional criticality classification of structural faults in AI accelerators | |
US10628543B1 (en) | Systems and methods for estimating a power consumption of a register-transfer level circuit design | |
CN115686961A (zh) | 处理器测试方法、装置及电子设备 | |
US20070180411A1 (en) | Method and apparatus for comparing semiconductor-related technical systems characterized by statistical data | |
CN109389215B (zh) | 一种深度学习网络的网络结构确定方法及装置 | |
CN116204396A (zh) | 一种针对分析型数据库性能的测试方法和装置 | |
CN116149917A (zh) | 评估处理器性能的方法及装置、计算设备、可读存储介质 | |
CN115033434B (zh) | 一种内核性能理论值计算方法、装置及存储介质 | |
CN109696614B (zh) | 电路测试优化方法及装置 | |
CN115203556A (zh) | 一种评分预测模型训练方法、装置、电子设备及存储介质 | |
CN109933948B (zh) | 一种形式验证方法、装置、形式验证平台及可读存储介质 | |
CN114021514A (zh) | 一种spice电压或温度扫描仿真筛选瓶颈单元的方法 | |
CN114238106A (zh) | 测试时间预测方法及装置、电子设备、存储介质 | |
US7650579B2 (en) | Model correspondence method and device | |
CN114282586A (zh) | 一种数据标注方法、系统和电子设备 | |
US10437716B2 (en) | Method and apparatus for coverage analysis of SRT look-up table | |
US9633147B1 (en) | Power state coverage metric and method for estimating the same | |
US20130332142A1 (en) | Methods and appartus for performing power estimation in circuits |
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 |