CN112527505B - 多线程综合的控制方法及装置 - Google Patents
多线程综合的控制方法及装置 Download PDFInfo
- Publication number
- CN112527505B CN112527505B CN202011503742.8A CN202011503742A CN112527505B CN 112527505 B CN112527505 B CN 112527505B CN 202011503742 A CN202011503742 A CN 202011503742A CN 112527505 B CN112527505 B CN 112527505B
- Authority
- CN
- China
- Prior art keywords
- logic
- netlist
- original
- synthesis
- type
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000015572 biosynthetic process Effects 0.000 claims abstract description 259
- 238000003786 synthesis reaction Methods 0.000 claims abstract description 259
- 238000013461 design Methods 0.000 claims abstract description 26
- 230000015654 memory Effects 0.000 claims description 19
- 238000012545 processing Methods 0.000 abstract description 31
- 238000010586 diagram Methods 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了多线程综合的控制方法及装置,包括:在解析RTL设计文件得到原始网表后,判断原始网表包括的所有类型的逻辑器件中是否存在满足预设器件分组条件的目标类型的逻辑器件;若是,则根据确定出的器件分组参数将目标类型的所有逻辑器件拆分成多个逻辑器件组;当需要对目标类型的所有逻辑器件进行逻辑综合时,启动预先为所有逻辑器件组创建的所有子线程并行执行对所有逻辑器件组的逻辑综合操作。可见,本发明能够在原始网表包括的逻辑器件中存在需要拆分的逻辑器件时,将其拆分成多个逻辑器件组并进行并行逻辑综合,有利于减少逻辑综合时间,提高逻辑综合效率,还能够提高CPU处理资源的利用率。
Description
技术领域
本发明涉及FPGA技术领域,尤其涉及一种多线程综合的控制方法及装置。
背景技术
在FPGA(Field-Programmable Gate Array,现场可编程门阵列)的设计流程中,相关人员需要使用EDA开发工具对使用Verilog或VHDL语言编写的RTL设计文件执行逻辑综合操作,以完成RTL设计文件到综合后网表的转化。其中,对RTL设计文件执行逻辑综合操作主要包括RTL设计文件的解析、逻辑综合、逻辑推导、逻辑映射等处理流程,每个处理流程的处理对象一般包括基本逻辑门等非时序器件、时序器件、存储器、逻辑运算单元等等。
然而,实践发现,面对结构复杂多变的RTL设计文件,RTL设计文件中会存在一些特殊的逻辑器件,在处理这类特殊的逻辑器件时的执行时间较长,例如:RTL设计文件中存在某一种逻辑器件在全部逻辑器件中数量占比较大,也即器件资源分布极不平衡,这使得处理这类逻辑器件时的执行时间较长,导致逻辑综合效率低的问题。可见,如何提高逻辑综合效率显得尤为重要。
发明内容
本发明提供了一种多线程综合的控制方法及装置,能够减少对解析RTL设计文件得到的原始网表包括的逻辑器件的逻辑综合时间,提高逻辑综合效率。
本发明第一方面公开了一种多线程综合的控制方法,所述方法包括:
在解析RTL设计文件得到原始网表之后,判断所述原始网表包括的所有类型的逻辑器件中是否存在满足预设器件分组条件的目标类型的逻辑器件;
当判断出存在所述目标类型的逻辑器件时,根据确定出的器件分组参数将所述目标类型的所有逻辑器件划分成多个逻辑器件组;
当需要对所述目标类型的所有逻辑器件进行逻辑综合时,启动预先为所有所述逻辑器件组创建的所有子线程并行执行对所有所述逻辑器件组的逻辑综合操作。
作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
在对所述原始网表包括的所有类型的逻辑器件逻辑综合完毕之后,判断所述原始网表的逻辑综合结果是否满足预先确定出的逻辑综合结果条件;
当判断出所述原始网表的逻辑综合结果不满足所述逻辑综合结果条件时,调整所述器件分组参数,并重新执行所述的根据确定出的器件分组参数将所述目标类型的所有逻辑器件划分成多个逻辑器件组的步骤。
作为一种可选的实施方式,在本发明第一方面中,所述判断所述原始网表的逻辑综合结果是否满足预先确定出的逻辑综合结果条件,包括:
判断所述原始网表的逻辑综合结果是否与所述原始网表相匹配,当判断出不相匹配时,确定所述原始网表的逻辑综合结果不满足预先确定出的逻辑综合结果条件。
作为一种可选的实施方式,在本发明第一方面中,所述判断所述原始网表包括的所有类型的逻辑器件中是否存在满足预设器件分组条件的目标类型的逻辑器件,包括:
分析所述原始网表包括的所有逻辑器件的所有类型,并分析所述原始网表包括的每种类型的逻辑器件的器件数量;
根据所述原始网表包括的每种类型的逻辑器件的器件数量,判断所述原始网表包括的所有类型的逻辑器件中是否存在器件数量满足预设数量条件的至少一种类型的逻辑器件,若是,则确定所述原始网表包括的所有类型的逻辑器件中存在满足预设器件分组条件的目标类型的逻辑器件;
其中,所述目标类型包括器件数量满足所述预设数量条件的逻辑器件所对应的类型。
作为一种可选的实施方式,在本发明第一方面中,所述器件分组参数包括所述目标类型的逻辑器件对应的划分组数N,N为大于等于2且小于等于预先确定出的最大子线程数量M的整数;
以及,所述根据确定出的器件分组参数将所述目标类型的所有逻辑器件划分成多个逻辑器件组之后,所述方法还包括:
为每个所述逻辑器件组创建与之唯一对应的子线程。
作为一种可选的实施方式,在本发明第一方面中,所述根据所述原始网表包括的每种类型的逻辑器件的器件数量,判断所述原始网表包括的所有类型的逻辑器件中是否存在器件数量满足预设数量条件的至少一种类型的逻辑器件,包括:
根据所述原始网表包括的每种类型的逻辑器件的器件数量,计算所述原始网表包括的每种类型的逻辑器件的器件数量占比,每种类型的逻辑器件的器件数量占比等于所述原始网表包括的该类型的所有逻辑器件的器件数量与所述原始网表包括的所有类型的逻辑器件的总器件数量的比值;
判断所述原始网表包括的所有类型的逻辑器件中是否存在器件数量占比大于等于预先确定出的数量占比阈值的至少一种类型的逻辑器件,当判断结果为是时,确定所述原始网表包括的所有类型的逻辑器件中存在器件数量满足预设数量条件的至少一种类型的逻辑器件。
作为一种可选的实施方式,在本发明第一方面中,所述判断所述原始网表包括的所有类型的逻辑器件中是否存在满足预设器件分组条件的目标类型的逻辑器件,包括:
根据预先确定出的网表拆分参数,将所述原始网表拆分成多个原始子网表;
对于每个所述原始子网表,分析该原始子网表包括的每种类型的逻辑器件的器件数量,根据该原始子网表包括的每种类型的逻辑器件的器件数量判断该原始子网表包括的所有类型的逻辑器件中是否存在器件数量满足预设数量条件的至少一种类型的逻辑器件,若是,则确定该原始子网表包括的所有类型的逻辑器件中存在满足预设器件分组条件的目标类型的逻辑器件;
当至少一个所述原始子网表包括的所有类型的逻辑器件中存在器件数量满足预设数量条件的至少一种类型的逻辑器件时,确定所述原始网表包括的所有类型的逻辑器件中存在满足预设器件分组条件的目标类型的逻辑器件。
本发明第二方面公开了一种多线程综合的控制装置,所述装置包括:
第一判断模块,用于在解析RTL设计文件得到原始网表之后,判断所述原始网表包括的所有类型的逻辑器件中是否存在满足预设器件分组条件的目标类型的逻辑器件;
器件分组模块,用于当所述第一判断模块判断出存在所述目标类型的逻辑器件时,根据确定出的器件分组参数将所述目标类型的所有逻辑器件划分成多个逻辑器件组;
并行综合模块,用于当需要对所述目标类型的所有逻辑器件进行逻辑综合时,启动预先为所有所述逻辑器件组创建的所有子线程并行执行对所有所述逻辑器件组的逻辑综合操作。
作为一种可选的实施方式,在本发明第二方面中,所述装置还包括:
第二判断模块,用于在对所述原始网表包括的所有类型的逻辑器件逻辑综合完毕之后,判断所述原始网表的逻辑综合结果是否满足预先确定出的逻辑综合结果条件;
参数调整模块,用于当所述第二判断模块判断出所述原始网表的逻辑综合结果不满足所述逻辑综合结果条件时,调整所述器件分组参数,并触发所述器件分组模块所述执行所述的根据确定出的器件分组参数将所述目标类型的所有逻辑器件划分成多个逻辑器件组的操作。
作为一种可选的实施方式,在本发明第二方面中,所述第二判断模块判断所述原始网表的逻辑综合结果是否满足预先确定出的逻辑综合结果条件的具体方式为:
判断所述原始网表的逻辑综合结果是否与所述原始网表相匹配,当判断出不相匹配时,确定所述原始网表的逻辑综合结果不满足预先确定出的逻辑综合结果条件。
作为一种可选的实施方式,在本发明第二方面中,所述第一判断模块,包括:
第一分析子模块,用于分析所述原始网表包括的所有逻辑器件的所有类型,并分析所述原始网表包括的每种类型的逻辑器件的器件数量;
第一判断子模块,用于根据所述原始网表包括的每种类型的逻辑器件的器件数量,判断所述原始网表包括的所有类型的逻辑器件中是否存在器件数量满足预设数量条件的至少一种类型的逻辑器件;
第一确定子模块,用于当所述第一判断子模块的判断结果为是时,确定所述原始网表包括的所有类型的逻辑器件中存在满足预设器件分组条件的目标类型的逻辑器件;
其中,所述目标类型包括器件数量满足所述预设数量条件的逻辑器件所对应的类型。
作为一种可选的实施方式,在本发明第二方面中,所述器件分组参数包括所述目标类型的逻辑器件对应的划分组数N,N为大于等于2且小于等于预先确定出的最大子线程数量M的整数;
其中,所述装置还包括:
创建模块,用于在所述器件分组模块根据确定出的器件分组参数将所述目标类型的所有逻辑器件划分成多个逻辑器件组之后,为每个所述逻辑器件组创建与之唯一对应的子线程。
作为一种可选的实施方式,在本发明第二方面中,所述第一判断子模块根据所述原始网表包括的每种类型的逻辑器件的器件数量,判断所述原始网表包括的所有类型的逻辑器件中是否存在器件数量满足预设数量条件的至少一种类型的逻辑器件的具体方式为:
根据所述原始网表包括的每种类型的逻辑器件的器件数量,计算所述原始网表包括的每种类型的逻辑器件的器件数量占比,每种类型的逻辑器件的器件数量占比等于所述原始网表包括的该类型的所有逻辑器件的器件数量与所述原始网表包括的所有类型的逻辑器件的总器件数量的比值;
判断所述原始网表包括的所有类型的逻辑器件中是否存在器件数量占比大于等于预先确定出的数量占比阈值的至少一种类型的逻辑器件,当判断结果为是时,确定所述原始网表包括的所有类型的逻辑器件中存在器件数量满足预设数量条件的至少一种类型的逻辑器件。
作为一种可选的实施方式,在本发明第二方面中,所述第一判断模块,包括:
拆分子模块,用于根据预先确定出的网表拆分参数,将所述原始网表拆分成多个原始子网表;
第二分析子模块,用于对于每个所述原始子网表,分析该原始子网表包括的每种类型的逻辑器件的器件数量;
第二判断子模块,用于对于每个所述原始子网表,根据该原始子网表包括的每种类型的逻辑器件的器件数量判断该原始子网表包括的所有类型的逻辑器件中是否存在器件数量满足预设数量条件的至少一种类型的逻辑器件;
第二确定子模块,用于对于任一所述原始子网表,当所述第二判断子模块的判断结果为是时,确定该原始子网表包括的所有类型的逻辑器件中存在满足预设器件分组条件的目标类型的逻辑器件;
所述第二确定子模块,还用于当至少一个所述原始子网表包括的所有类型的逻辑器件中存在器件数量满足预设数量条件的至少一种类型的逻辑器件时,确定所述原始网表包括的所有类型的逻辑器件中存在满足预设器件分组条件的目标类型的逻辑器件。
本发明第三方面公开了另一种多线程综合的控制装置,所述装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明第一方面公开的多线程综合的控制方法中的部分或全部步骤。
本发明第四方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本发明第一方面公开的多线程综合的控制方法中的部分或全部步骤。
与现有技术相比,本发明实施例具有以下有益效果:
本发明实施例中,在解析RTL设计文件得到原始网表后,判断原始网表包括的所有类型的逻辑器件中是否存在满足预设器件分组条件的目标类型的逻辑器件;若是,则根据确定出的器件分组参数将目标类型的所有逻辑器件拆分成多个逻辑器件组;当需要对目标类型的所有逻辑器件进行逻辑综合时,启动预先为所有逻辑器件组创建的所有子线程并行执行对所有逻辑器件组的逻辑综合。可见,本发明能够在解析RTL设计文件得到的原始网表包括的逻辑器件中存在需要拆分的逻辑器件(如器件数量占比较大的逻辑器件)时,将其拆分成多个逻辑器件组并进行并行逻辑综合,减少了对逻辑器件的逻辑综合时间,提高逻辑综合效率,还能够提高CPU处理资源的利用率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种多线程综合的控制方法的流程示意图;
图2是本发明实施例公开的另一种多线程综合的控制方法的流程示意图;
图3是本发明实施例公开的一种对目标类型的逻辑器件进行并行逻辑优化的流程示意图;
图4是本发明实施例公开的一种多线程综合的控制装置的结构示意图;
图5是本发明实施例公开的另一种多线程综合的控制装置的结构示意图;
图6是本发明实施例公开的一种第一判断模块的结构示意图;
图7是本发明实施例公开的另一种第一判断模块的结构示意图;
图8是本发明实施例公开的又一种多线程综合的控制装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品、端口或端没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品、端口或端固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明公开了一种多线程综合的控制方法及装置,能够在解析RTL设计文件得到的原始网表包括的逻辑器件中存在需要拆分的逻辑器件(如器件数量占比较大的逻辑器件)时,将其拆分成多个逻辑器件组并进行并行逻辑综合,减少了对逻辑器件的逻辑综合时间,提高逻辑综合效率,还能够提高CPU处理资源的利用率。以下分别进行详细说明。
实施例一
请参阅图1,图1是本发明实施例公开的一种多线程综合的控制方法的流程示意图。其中,图1所描述的方法可以应用于FPGA逻辑综合工具中,本发明实施例不作限定。如图1所示,该多线程综合的控制方法可以包括以下操作:
101、在解析RTL设计文件得到原始网表之后,FPGA逻辑综合工具判断该原始网表包括的所有类型的逻辑器件中是否存在满足预设器件分组条件的目标类型的逻辑器件,当步骤101的判断结果为是时,触发执行步骤102;当步骤101的判断结果为否时,可以按照现有的逻辑综合流程处理原始网表包括的所有逻辑器件。
本发明实施例中,原始网表包括的所有逻辑器件具体可由多种类型的逻辑器件组成,如逻辑门等非时序逻辑器件、时序逻辑器件、存储器、逻辑运算单元等等,且判断出的目标类型可以有一种,也可以有多种,本发明实施例不作限定。需要说明的是,满足预设器件分组条件的目标类型的逻辑器件可以理解为在处理目标类型的逻辑器件时所花费的处理时长较长的逻辑器件。
102、当判断出存在目标类型的逻辑器件时,FPGA逻辑综合工具根据确定出的器件分组参数将目标类型的所有逻辑器件划分成多个逻辑器件组。
本发明实施例中,当目标类型有多种时,FPGA逻辑综合工具需要按照确定出的器件分组参数将每种目标类型的所有逻辑器件均划分成多个逻辑器件组,得到每种目标类型对应的多个逻辑器件组,且每种目标类型对应的所有逻辑器件组的数量均大于等于2且小于等于预先确定出的最大数量阈值,该最大数量阈值是根据CPU所能支持的最大线程数量确定的。可选的,不同的目标类型可以对应不同的器件分组参数,以实现对不同目标类型的逻辑器件的个性化、差异化分组,提高了对逻辑器件分组的灵活性。
进一步可选的,在对目标类型的逻辑器件进行分组时,FPGA逻辑综合工具可以根据对应的器件分组参数将目标类型的逻辑器件划分为器件数量相同或器件数量近似相同的多个逻辑器件组,这样有利于实现后续并行逻辑综合时对每个逻辑器件组进行逻辑综合所花费的处理时长相差不大,减少因某一或多个逻辑器件组包括的器件数量较多而导致对应的处理时长相对较长的情况发生,有利于提高通过本发明实施例所描述的方法进行逻辑综合以减少逻辑综合时长的可靠性。
103、当需要对目标类型的所有逻辑器件进行逻辑综合时,FPGA逻辑综合工具启动预先为所有逻辑器件组创建的所有子线程并行执行对所有逻辑器件组的逻辑综合操作。
本发明实施例中,在目标类型有多种的情况下,当需要对任意一种目标类型的所有逻辑器件进行逻辑综合时,FPGA逻辑综合工具启动预先为该目标类型的所有逻辑器件创建的所有子线程并行执行逻辑综合。具体的,每种目标类型的逻辑器件均存在与之对应的操作函数,通过子线程并行执行逻辑综合具体是通过子线程调用对应的操作函数并行对目标类型对应的逻辑器件组执行逻辑综合。优选的,对于任一目标类型而言,预先为该目标类型对应的每个逻辑器件组创建对应的子线程,一个逻辑器件组对应一个子线程,也即:对于任意一种目标类型,预先为该目标类型对应的所有逻辑器件组创建的所有子线程的数量等于该目标类型对应的所有逻辑器件组的数量,这样能够在后续并行对逻辑器件组进行逻辑综合时使得FPGA逻辑综合工具的执行时长取决于执行时间最长的子线程对应的执行时间,有利于节省FPGA逻辑综合工具的执行时间,提高FPGA逻辑综合工具的执行效率。
可见,本发明实施例所描述的方法能够在解析RTL设计文件得到的原始网表包括的逻辑器件中存在需要拆分的逻辑器件(如器件数量占比较大的逻辑器件)时,将其拆分成多个逻辑器件组并进行并行逻辑综合,减少了对逻辑器件的逻辑综合时间,提高逻辑综合效率,还能够提高CPU处理资源的利用率。
在一个可选的实施例中,在执行完毕步骤103之后,该方法还可以包括以下操作:
在对原始网表包括的所有类型的逻辑器件逻辑综合完毕之后,FPGA逻辑综合工具判断原始网表的逻辑综合结果是否满足预先确定出的逻辑综合结果条件;
当判断出原始网表的逻辑综合结果不满足逻辑综合结果条件时,FPGA逻辑综合工具调整器件分组参数,并重新执行上述的根据确定出的器件分组参数将目标类型的所有逻辑器件划分成多个逻辑器件组的步骤;或者,
在对目标类型的逻辑器件逻辑综合完毕之后,FPGA逻辑综合工具判断对目标类型的逻辑器件的逻辑综合结果是否满足预先确定出的逻辑综合结果条件;
当判断出目标类型的逻辑器件的逻辑综合结果不满足逻辑综合结果条件时,FPGA逻辑综合工具调整目标类型的逻辑器件对应的器件分组参数,并重新执行上述的根据确定出的器件分组参数将目标类型的所有逻辑器件划分成多个逻辑器件组的步骤。
需要说明的是,在重新执行上述的根据确定出的器件分组参数将目标类型的所有逻辑器件划分成多个逻辑器件组的步骤时,所用到的器件分组参数为调整后的器件分组参数。例如,当器件分组参数为划分组数N时,调整后的器件分组参数可以为N-1。
可见,该可选的实施例还能够在并行执行逻辑综合之后,对逻辑综合结果进行判断,若逻辑综合结果不满足逻辑综合结果条件,则可调整器件分组参数重新对相应的逻辑器件进行分组,这样能够提高逻辑综合结果的准确性与可靠性。
在该可选的实施例中,进一步可选的,FPGA逻辑综合工具判断逻辑综合结果是否满足预先确定出的逻辑综合结果条件,可以包括:
FPGA逻辑综合工具判断逻辑综合结果是否与原始网表相匹配,当判断出不相匹配时,确定逻辑综合结果不满足预先确定出的逻辑综合结果条件。
其中,该逻辑综合结果可以为原始网表的逻辑综合结果,也可以为目标类型的逻辑器件的逻辑综合结果。
可见,该可选的实施例还能够通过判断逻辑综合结果是否与原始网表相匹配的方式确定是否需要调整器件分组参数,有利于提高逻辑综合结果与原始网表的匹配度,也即能够提高逻辑综合结果的准确性及可靠性。
在该可选的实施例中,又进一步可选的,在确定逻辑综合结果不满足预先确定出的逻辑综合结果条件之后,以及调整器件分组参数之前,该方法还可以包括以下操作:
FPGA逻辑综合工具统计逻辑综合累计时长,并判断逻辑综合累计时长是否超过预先确定出的最大逻辑综合时长,当判断结果为否时,执行上述的调整器件分组参数的步骤;当判断结果为是时,将历史执行逻辑综合对应的最优逻辑综合结果确定为最终的逻辑综合结果。
可选的,最优逻辑综合结果为与原始网表的匹配度最高的历史逻辑综合结果。
可见,该可选的实施例还能够在逻辑综合结果不满足预先确定出的逻辑综合结果条件的情况下进一步结合逻辑综合累计时长确定是否需要调整器件分组参数,这样能够在保证逻辑综合结果的情况下减少逻辑综合时长。
其中,以器件分组参数为划分组数N为例进行说明,对目标类型的逻辑器件执行并行逻辑优化操作的流程可以如图3所示,图3是本发明实施例公开的一种对目标类型的逻辑器件进行并行逻辑优化的流程示意图。如图3所示,在确定出划分组数N之后,将目标类型的所有逻辑器件划分成N个逻辑器件组,包括逻辑器件组1至逻辑器件组N(如图3中的数组1至数组N),在划分成N个逻辑器件组之后,为每个逻辑器件组创建与之唯一对应的子线程,也即逻辑器件组1对应创建的子线程1,逻辑器件组2对应创建的子线程2,以此类推。在创建每个逻辑器件组对应的子线程之后,若需要对目标类型的逻辑器件进行逻辑优化,则同时启动子线程1至子线程N对相应的逻辑器件组并行执行逻辑优化操作。进一步的,在对原始网表包括的所有逻辑器件进行逻辑综合之后,判断原始网表的逻辑综合结果是否与原始网表等价,如果是,则完成对目标类型的逻辑器件的逻辑综合,若否,则调整划分组数N的值,并重新执行对目标类型的逻辑器件的分组操作。其中,调整后的划分组数小于调整前的划分组数。
可见,本发明实施例所描述的方法能够在解析RTL设计文件得到的原始网表包括的逻辑器件中存在需要拆分的逻辑器件(如器件数量占比较大的逻辑器件)时,将其拆分成多个逻辑器件组并进行并行逻辑综合,减少了对逻辑器件的逻辑综合时间,提高逻辑综合效率,还能够提高CPU处理资源的利用率。此外,还能够在并行执行逻辑综合之后,对逻辑综合结果进行判断,若逻辑综合结果不满足逻辑综合结果条件,则可调整器件分组参数重新对相应的逻辑器件进行分组,这样能够提高逻辑综合结果的准确性与可靠性。此外,还能够通过判断逻辑综合结果是否与原始网表相匹配的方式确定是否需要调整器件分组参数,有利于提高逻辑综合结果与原始网表的匹配度,也即能够提高逻辑综合结果的准确性及可靠性。此外,还能够在逻辑综合结果不满足预先确定出的逻辑综合结果条件的情况下进一步结合逻辑综合累计时长确定是否需要调整器件分组参数,这样能够在保证逻辑综合结果的情况下减少逻辑综合时长。
实施例二
请参阅图2,图2是本发明实施例公开的另一种多线程综合的控制方法的流程示意图。其中,图2所描述的方法可以应用于FPGA逻辑综合工具中,本发明实施例不作限定。如图2所示,该多线程综合的控制方法可以包括以下操作:
201、在解析RTL设计文件得到原始网表之后,FPGA逻辑综合工具分析原始网表包括的所有逻辑器件的所有类型,并分析原始网表包括的每种类型的逻辑器件的器件数量。
202、FPGA逻辑综合工具根据原始网表包括的每种类型的逻辑器件的器件数量,计算原始网表包括的每种类型的逻辑器件的器件数量占比。
其中,每种类型的逻辑器件的器件数量占比等于原始网表包括的该类型的所有逻辑器件的器件数量与原始网表包括的所有类型的逻辑器件的总器件数量的比值。进一步的,在计算出原始网表包括的每种类型的逻辑器件的器件数量占比之后,FPGA逻辑综合工具还可以进一步按照确定出的排列顺序、根据器件数量占比的大小对所有类型的逻辑器件进行排序,确定出的排列顺序可以为器件数量占比由大到小的顺序,也可以是器件数量占比由小到达的顺序,本发明实施例不作限定,这样能够提高步骤203中的判断效率。
203、FPGA逻辑综合工具判断原始网表包括的所有类型的逻辑器件中是否存在器件数量占比大于等于预先确定出的数量占比阈值的至少一种类型的逻辑器件,当步骤203的判断结果为是时,执行步骤204;当步骤203的判断结果为否时,可以结束本次流程。
204、FPGA逻辑综合工具确定原始网表包括的所有类型的逻辑器件中存在器件数量满足预设数量条件的目标类型的逻辑器件。
其中,目标类型包括器件数量满足预设数量条件的逻辑器件所对应的类型,且目标类型可以为一种,也可以为多种。
205、FPGA逻辑综合工具根据确定出的器件分组参数将目标类型的所有逻辑器件划分成多个逻辑器件组。
206、FPGA逻辑综合工具为每个逻辑器件组创建与之唯一对应的子线程。
207、当需要对目标类型的所有逻辑器件进行逻辑综合时,FPGA逻辑综合工具启动预先为所有逻辑器件组创建的所有子线程并行执行对所有逻辑器件组的逻辑综合。
举例来说,假设解析RTL设计文件得到的原始网表中包括1000万个逻辑器件,其中,器件类型为“逻辑与”门的逻辑器件的器件数量包括900万个,对于该原始网表,“逻辑与”门的资源数量占到了全部资源的90%,所以,当FPGA逻辑综合工具在对该原始网表执行逻辑综合操作时,处理时间主要花费在处理“逻辑与”门的逻辑器件的所有操作上,导致逻辑综合时长较长,可通过本发明实施例所描述的多线程综合的控制方法减少逻辑综合时长,提高逻辑综合效率。具体包括:
FPGA逻辑综合工具统计用于处理所有“逻辑与”门的逻辑器件的操作函数;
在每个操作函数执行前,FPGA逻辑综合工具将900万个“逻辑与”门的逻辑器件平均或近似平均划分成N个逻辑器件组,并将每个逻辑器件组包括的逻辑器件存储至相应的数组中,得到N个数组;
创建N个子线程,并为每个数组分配一个子线程;
同时启动创建的N个子线程并行对N个数组包括的逻辑器件执行逻辑综合。
其中,待N个子线程中最后一个子线程执行结束后,意味着900万个“逻辑与”门的逻辑器件都被处理完毕,主线程可以继续执行后面的操作,也即执行对其它逻辑器件的逻辑处理操作。由此可见,对于900万个“逻辑与”门的逻辑器件,单线程操作的总处理时长为串行处理每个“逻辑与”门的逻辑器件的处理时长之和,而本发明实施例所描述的多线程操作的总处理时长仅为处理单个数组N包括的“逻辑与”门的逻辑器件的最长处理时长,相较于单线程操作的总处理时长,本发明实施例所描述的多线程操作的总处理时长快了N倍。
可选的,在执行完毕步骤207之后,该方法还可以包括:
208、在对原始网表包括的所有类型的逻辑器件逻辑综合完毕之后,FPGA逻辑综合工具判断原始网表的逻辑综合结果是否满足预先确定出的逻辑综合结果条件;当步骤208的判断结果为是时,可以结束本次流程,当步骤208的判断结果为否时,可以触发执行步骤209。
209、FPGA逻辑综合工具调整器件分组参数,并重新触发执行步骤205。
需要说明的是,步骤201-步骤204也即是“判断原始网表包括的所有类型的逻辑器件中是否存在满足预设器件分组条件的目标类型的逻辑器件”的一种具体实现流程,在其它可选的实施例中,步骤201-步骤204也可以被以下操作替代:
在解析RTL设计文件得到原始网表之后,FPGA逻辑综合工具根据预先确定出的网表拆分参数,将原始网表拆分成多个原始子网表;
对于每个原始子网表,FPGA逻辑综合工具分析该原始子网表包括的每种类型的逻辑器件的器件数量,根据该原始子网表包括的每种类型的逻辑器件的器件数量判断该原始子网表包括的所有类型的逻辑器件中是否存在器件数量满足预设数量条件的至少一种类型的逻辑器件,若是,则确定该原始子网表包括的所有类型的逻辑器件中存在满足预设器件分组条件的目标类型的逻辑器件;
当至少一个原始子网表包括的所有类型的逻辑器件中存在器件数量满足预设数量条件的至少一种类型的逻辑器件时,FPGA逻辑综合工具确定原始网表包括的所有类型的逻辑器件中存在满足预设器件分组条件的目标类型的逻辑器件。
其中,FPGA逻辑综合工具根据预先确定出的网表拆分参数,将原始网表拆分成多个原始子网表,可以包括:
FPGA逻辑综合工具根据原始网表的资源数量、原始网表的内部连接关系,将原始网表拆分成L个资源数量相同或资源数量相匹配(也即资源数量近似)的原始子网表;
FPGA逻辑综合工具遍历原始网表的边界,并根据原始网表的内部连接关系将独立的资源添加至相应的原始子网表中,得到原始网表对应的原始子网表;或者,
FPGA逻辑综合工具查找原始网表的所有输出端口以及所有输入端口,并将所有输出端口划分成L个输出端口组,其中,每个输出端口组所包括的输出端口的数量相同或相匹配(也即近似);
对于每个输出端口组,FPGA逻辑综合工具创建以该输出端口组包括的所有输出端口为起始节点的原始子网表作为该输出端口组对应的原始子网表,并以该输出端口组的所有起始节点开始同时向前遍历,当遍历到未被遍历过的新节点时,将该新节点添加至该输出端口组对应的原始子网表中并继续向前遍历直至遍历到被遍历过的已遍历节点,当遍历到已遍历节点时,基于该已遍历节点创建该输出端口组对应原始子网表的输入端口;
当原始网表的所有输入端口被遍历完毕时,FPGA逻辑综合工具将所有输出端口组对应的原始子网表确定为原始网表对应的原始子网表。
可见,该其它可选的实施例能够在实现原始网表的拆分并对多个原始子网表进行并行逻辑综合的情况下,将每个原始子网表中器件数量满足预设数量条件(器件数量占比较大)的目标类型的逻辑器件进行分组实现对分组得到的逻辑器件组的并行综合,也即在实现多个原始子网表进行并行逻辑综合的同时实现对单个子网表中包括的目标类型的逻辑器件对应的所有逻辑器件组的并行处理,进一步提高了FPGA逻辑综合工具的处理效率。
可见,本发明实施例所描述的方法能够在解析RTL设计文件得到的原始网表包括的逻辑器件中存在器件数量占比较大的逻辑器件时,将其拆分成多个逻辑器件组并进行并行逻辑综合,减少了对逻辑器件的逻辑综合时间,提高逻辑综合效率,还能够提高CPU处理资源的利用率。此外,还能够在并行执行逻辑综合之后,对逻辑综合结果进行判断,若逻辑综合结果不满足逻辑综合结果条件,则可调整器件分组参数重新对相应的逻辑器件进行分组,这样能够提高逻辑综合结果的准确性与可靠性。此外,在分组之后,创建每个逻辑器件组对应的子线程,有利于提高创建的子线程的准确性,还能够在后续并行对逻辑器件组进行逻辑综合时使得FPGA逻辑综合工具的执行时长取决于执行时间最长的子线程对应的执行时间,有利于节省FPGA逻辑综合工具的执行时间,提高FPGA逻辑综合工具的执行效率。
实施例三
请参阅图4,图4是本发明实施例公开的一种多线程综合的控制装置的结构示意图。其中,图4所描述的装置可以应用于FPGA逻辑综合工具中,本发明实施例不作限定。如图4所示,该装置可以包括:
第一判断模块301,用于在解析RTL设计文件得到原始网表之后,判断原始网表包括的所有类型的逻辑器件中是否存在满足预设器件分组条件的目标类型的逻辑器件。
器件分组模块302,用于当第一判断模块301判断出存在目标类型的逻辑器件时,根据确定出的器件分组参数将目标类型的所有逻辑器件划分成多个逻辑器件组。
可选的,器件分组参数包括目标类型的逻辑器件对应的划分组数N,N为大于等于2且小于等于预先确定出的最大子线程数量M的整数。
并行综合模块303,用于当需要对目标类型的所有逻辑器件进行逻辑综合时,启动预先为所有逻辑器件组创建的所有子线程并行执行对所有逻辑器件组的逻辑综合操作。
可见,实施图4所描述的装置能够在解析RTL设计文件得到的原始网表包括的逻辑器件中存在需要拆分的逻辑器件(如器件数量占比较大的逻辑器件)时,将其拆分成多个逻辑器件组并进行并行逻辑综合,减少了对逻辑器件的逻辑综合时间,提高逻辑综合效率,还能够提高CPU处理资源的利用率。
在一个可选的实施例中,如图5所示,该装置还可以包括:
第二判断模块304,用于在对原始网表包括的所有类型的逻辑器件逻辑综合完毕之后,判断原始网表的逻辑综合结果是否满足预先确定出的逻辑综合结果条件。
参数调整模块305,用于当第二判断模块304判断出原始网表的逻辑综合结果不满足逻辑综合结果条件时,调整器件分组参数,并触发器件分组模块302执行上述的根据确定出的器件分组参数将目标类型的所有逻辑器件划分成多个逻辑器件组的操作。
在该可选的实施例中,进一步可选的,第二判断模块304判断原始网表的逻辑综合结果是否满足预先确定出的逻辑综合结果条件的具体方式可以为:
判断原始网表的逻辑综合结果是否与原始网表相匹配,当判断出不相匹配时,确定原始网表的逻辑综合结果不满足预先确定出的逻辑综合结果条件。
可见,实施图5所描述的装置还能够在并行执行逻辑综合之后,对逻辑综合结果进行判断,若逻辑综合结果不满足逻辑综合结果条件,则可调整器件分组参数重新对相应的逻辑器件进行分组,这样能够提高逻辑综合结果的准确性与可靠性。此外,还能够通过判断逻辑综合结果是否与原始网表相匹配的方式确定是否需要调整器件分组参数,有利于提高逻辑综合结果与原始网表的匹配度,也即能够提高逻辑综合结果的准确性及可靠性。
在另一个可选的实施例中,如图5所示,该装置还可以包括:
创建模块306,用于在器件分组模块302根据确定出的器件分组参数将目标类型的所有逻辑器件划分成多个逻辑器件组之后,为每个逻辑器件组创建与之唯一对应的子线程。
可见,图5所描述的装置还能够在分组之后,创建每个逻辑器件组对应的子线程,有利于提高创建的子线程的准确性,还能够在后续并行对逻辑器件组进行逻辑综合时使得FPGA逻辑综合工具的执行时长取决于执行时间最长的子线程对应的执行时间,有利于节省FPGA逻辑综合工具的执行时间,提高FPGA逻辑综合工具的执行效率。
在又一个可选的实施例中,上述第一判断模块301的结构可以如图6所示,图6是本发明实施例公开的一种第一判断模块的结构示意图。如图6所示,第一判断模块301可以包括:
第一分析子模块3011,用于分析原始网表包括的所有逻辑器件的所有类型,并分析原始网表包括的每种类型的逻辑器件的器件数量;
第一判断子模块3012,用于根据原始网表包括的每种类型的逻辑器件的器件数量,判断原始网表包括的所有类型的逻辑器件中是否存在器件数量满足预设数量条件的至少一种类型的逻辑器件;
第一确定子模块3013,用于当第一判断子模块3012的判断结果为是时,确定原始网表包括的所有类型的逻辑器件中存在满足预设器件分组条件的目标类型的逻辑器件。
其中,目标类型包括器件数量满足预设数量条件的逻辑器件所对应的类型。
进一步可选的,第一判断子模块3012根据原始网表包括的每种类型的逻辑器件的器件数量,判断原始网表包括的所有类型的逻辑器件中是否存在器件数量满足预设数量条件的至少一种类型的逻辑器件的具体方式可以为:
计算原始网表包括的每种类型的逻辑器件的器件数量占比,每种类型的逻辑器件的器件数量占比等于原始网表包括的该类型的所有逻辑器件的器件数量与原始网表包括的所有类型的逻辑器件的总器件数量的比值;
判断原始网表包括的所有类型的逻辑器件中是否存在器件数量占比大于等于预先确定出的数量占比阈值的至少一种类型的逻辑器件,当判断结果为是时,确定原始网表包括的所有类型的逻辑器件中存在器件数量满足预设数量条件的至少一种类型的逻辑器件。
可见,该可选的实施例能够在解析RTL设计文件得到的原始网表包括的逻辑器件中存在器件数量占比较大的逻辑器件时,将其拆分成多个逻辑器件组并进行并行逻辑综合,减少了对逻辑器件的逻辑综合时间,提高逻辑综合效率,还能够提高CPU处理资源的利用率。
在又一个可选的实施例中,上述第一判断模块301的结构也可以如图7所示,图7是本发明实施例公开的另一种第一判断模块的结构示意图。如图7所示,第一判断模块301可以包括:
拆分子模块3014,用于根据预先确定出的网表拆分参数,将原始网表拆分成多个原始子网表;
第二分析子模块3015,用于对于每个原始子网表,分析该原始子网表包括的每种类型的逻辑器件的器件数量;
第二判断子模块3016,用于对于每个原始子网表,根据该原始子网表包括的每种类型的逻辑器件的器件数量判断该原始子网表包括的所有类型的逻辑器件中是否存在器件数量满足预设数量条件的至少一种类型的逻辑器件;
第二确定子模块3017,用于对于任一原始子网表,当第二判断子模块3016的判断结果为是时,确定该原始子网表包括的所有类型的逻辑器件中存在满足预设器件分组条件的目标类型的逻辑器件;
第二确定子模块3017,还用于当至少一个原始子网表包括的所有类型的逻辑器件中存在器件数量满足预设数量条件的至少一种类型的逻辑器件时,确定原始网表包括的所有类型的逻辑器件中存在满足预设器件分组条件的目标类型的逻辑器件。
可见,该可选的实施例还能够在实现原始网表的拆分并对多个原始子网表进行并行逻辑综合的情况下,将每个原始子网表中器件数量满足预设数量条件(器件数量占比较大)的目标类型的逻辑器件进行分组实现对分组得到的逻辑器件组的并行综合,也即在实现多个原始子网表进行并行逻辑综合的同时实现对单个子网表中包括的目标类型的逻辑器件对应的所有逻辑器件组的并行处理,进一步提高了FPGA逻辑综合工具的处理效率。
实施例四
本发明实施例公开了一种FPGA逻辑综合工具,该FPGA逻辑综合工具用于执行实施例一或实施例二中所描述的多线程综合的控制方法中的部分或全部步骤,或者,该FPGA逻辑综合工具的结构可以包括图4或图5所描述的多线程综合的控制装置,本发明实施例不作限定。且对于FPGA逻辑综合工具的其它详细描述,请参照前述实施例中的详细描述,本发明实施例不再赘述。
实施例五
请参阅图8,图8是本发明实施例公开的又一种多线程综合的控制装置的结构示意图。如图8所示,该多线程综合的控制装置可以应用于FPGA逻辑综合工具中,且该装置可以包括:
存储有可执行程序代码的存储器401;
与存储器401耦合的处理器402;
处理器402调用存储器401中存储的可执行程序代码,执行本发明实施例一或实施例二公开的多线程综合的控制方法中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)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
最后应说明的是:本发明实施例公开的一种多线程综合的控制方法及装置所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。
Claims (10)
1.一种多线程综合的控制方法,其特征在于,所述方法包括:
在解析RTL设计文件得到原始网表之后,判断所述原始网表包括的所有类型的逻辑器件中是否存在满足预设器件分组条件的目标类型的逻辑器件;
当判断出存在所述目标类型的逻辑器件时,根据确定出的器件分组参数将所述目标类型的所有逻辑器件划分成多个逻辑器件组;
当需要对所述目标类型的所有逻辑器件进行逻辑综合时,启动预先为所有所述逻辑器件组创建的所有子线程并行执行对所有所述逻辑器件组的逻辑综合操作。
2.根据权利要求1所述的多线程综合的控制方法,其特征在于,所述方法还包括:
在对所述原始网表包括的所有类型的逻辑器件逻辑综合完毕之后,判断所述原始网表的逻辑综合结果是否满足预先确定出的逻辑综合结果条件;
当判断出所述原始网表的逻辑综合结果不满足所述逻辑综合结果条件时,调整所述器件分组参数,并重新执行所述的根据确定出的器件分组参数将所述目标类型的所有逻辑器件划分成多个逻辑器件组的步骤。
3.根据权利要求2所述的多线程综合的控制方法,其特征在于,所述判断所述原始网表的逻辑综合结果是否满足预先确定出的逻辑综合结果条件,包括:
判断所述原始网表的逻辑综合结果是否与所述原始网表相匹配,当判断出不相匹配时,确定所述原始网表的逻辑综合结果不满足预先确定出的逻辑综合结果条件。
4.根据权利要求1-3任一项所述的多线程综合的控制方法,其特征在于,所述判断所述原始网表包括的所有类型的逻辑器件中是否存在满足预设器件分组条件的目标类型的逻辑器件,包括:
分析所述原始网表包括的所有逻辑器件的所有类型,并分析所述原始网表包括的每种类型的逻辑器件的器件数量;
根据所述原始网表包括的每种类型的逻辑器件的器件数量,判断所述原始网表包括的所有类型的逻辑器件中是否存在器件数量满足预设数量条件的至少一种类型的逻辑器件,若是,则确定所述原始网表包括的所有类型的逻辑器件中存在满足预设器件分组条件的目标类型的逻辑器件;
其中,所述目标类型包括器件数量满足所述预设数量条件的逻辑器件所对应的类型。
5.根据权利要求4所述的多线程综合的控制方法,其特征在于,所述器件分组参数包括所述目标类型的逻辑器件对应的划分组数N,N为大于等于2且小于等于预先确定出的最大子线程数量M的整数;
以及,所述根据确定出的器件分组参数将所述目标类型的所有逻辑器件划分成多个逻辑器件组之后,所述方法还包括:
为每个所述逻辑器件组创建与之唯一对应的子线程。
6.根据权利要求4所述的多线程综合的控制方法,其特征在于,所述根据所述原始网表包括的每种类型的逻辑器件的器件数量,判断所述原始网表包括的所有类型的逻辑器件中是否存在器件数量满足预设数量条件的至少一种类型的逻辑器件,包括:
根据所述原始网表包括的每种类型的逻辑器件的器件数量,计算所述原始网表包括的每种类型的逻辑器件的器件数量占比,每种类型的逻辑器件的器件数量占比等于所述原始网表包括的该类型的所有逻辑器件的器件数量与所述原始网表包括的所有类型的逻辑器件的总器件数量的比值;
判断所述原始网表包括的所有类型的逻辑器件中是否存在器件数量占比大于等于预先确定出的数量占比阈值的至少一种类型的逻辑器件,当判断结果为是时,确定所述原始网表包括的所有类型的逻辑器件中存在器件数量满足预设数量条件的至少一种类型的逻辑器件。
7.根据权利要求1-3任一项所述的多线程综合的控制方法,其特征在于,所述判断所述原始网表包括的所有类型的逻辑器件中是否存在满足预设器件分组条件的目标类型的逻辑器件,包括:
根据预先确定出的网表拆分参数,将所述原始网表拆分成多个原始子网表;
对于每个所述原始子网表,分析该原始子网表包括的每种类型的逻辑器件的器件数量,根据该原始子网表包括的每种类型的逻辑器件的器件数量判断该原始子网表包括的所有类型的逻辑器件中是否存在器件数量满足预设数量条件的至少一种类型的逻辑器件,若是,则确定该原始子网表包括的所有类型的逻辑器件中存在满足预设器件分组条件的目标类型的逻辑器件;
当至少一个所述原始子网表包括的所有类型的逻辑器件中存在器件数量满足预设数量条件的至少一种类型的逻辑器件时,确定所述原始网表包括的所有类型的逻辑器件中存在满足预设器件分组条件的目标类型的逻辑器件。
8.一种多线程综合的控制装置,其特征在于,所述装置包括:
第一判断模块,用于在解析RTL设计文件得到原始网表之后,判断所述原始网表包括的所有类型的逻辑器件中是否存在满足预设器件分组条件的目标类型的逻辑器件;
器件分组模块,用于当所述第一判断模块判断出存在所述目标类型的逻辑器件时,根据确定出的器件分组参数将所述目标类型的所有逻辑器件划分成多个逻辑器件组;
并行综合模块,用于当需要对所述目标类型的所有逻辑器件进行逻辑综合时,启动预先为所有所述逻辑器件组创建的所有子线程并行执行对所有所述逻辑器件组的逻辑综合操作。
9.一种多线程综合的控制装置,其特征在于,所述装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行如权利要求1-7任一项所述的多线程综合的控制方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行如权利要求1-7任一项所述的多线程综合的控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011503742.8A CN112527505B (zh) | 2020-12-18 | 2020-12-18 | 多线程综合的控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011503742.8A CN112527505B (zh) | 2020-12-18 | 2020-12-18 | 多线程综合的控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112527505A CN112527505A (zh) | 2021-03-19 |
CN112527505B true CN112527505B (zh) | 2021-11-26 |
Family
ID=75001521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011503742.8A Active CN112527505B (zh) | 2020-12-18 | 2020-12-18 | 多线程综合的控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112527505B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115879400B (zh) * | 2022-12-21 | 2024-07-23 | 广东高云半导体科技股份有限公司 | 实现网表文件处理的方法、装置、计算机存储介质及终端 |
CN115859886B (zh) * | 2023-02-16 | 2023-05-09 | 山东启芯软件科技有限公司 | 一种基于多fanout逻辑的高效率低耦合的设计拆分方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103886137A (zh) * | 2014-03-03 | 2014-06-25 | 西安电子科技大学 | 一种实现现场可编程门阵列快速布局布线的方法 |
CN105589736A (zh) * | 2015-12-21 | 2016-05-18 | 西安电子科技大学 | 基于网表分割和多线程并行的硬件描述语言仿真加速方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8738349B2 (en) * | 2010-04-20 | 2014-05-27 | The Regents Of The University Of Michigan | Gate-level logic simulator using multiple processor architectures |
US10579762B2 (en) * | 2017-05-15 | 2020-03-03 | LegUp Computing Inc. | High-level synthesis (HLS) method and apparatus to specify pipeline and spatial parallelism in computer hardware |
CN110704364A (zh) * | 2019-06-18 | 2020-01-17 | 中国科学院电子学研究所 | 基于现场可编程门阵列的自动化动态重构方法及系统 |
-
2020
- 2020-12-18 CN CN202011503742.8A patent/CN112527505B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103886137A (zh) * | 2014-03-03 | 2014-06-25 | 西安电子科技大学 | 一种实现现场可编程门阵列快速布局布线的方法 |
CN105589736A (zh) * | 2015-12-21 | 2016-05-18 | 西安电子科技大学 | 基于网表分割和多线程并行的硬件描述语言仿真加速方法 |
Non-Patent Citations (2)
Title |
---|
"FPGA布局布线算法的研究与优化";谢志宏;《中国优秀硕士学位论文全文数据库 信息科技辑》;20130315(第03期);第I135-408页 * |
"RTL C-based methodology for designing and verifying a multi-threaded processor";L. Semeria等;《Proceedings 2002 Design Automation Conference》;20020807;第123-128页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112527505A (zh) | 2021-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112527505B (zh) | 多线程综合的控制方法及装置 | |
US9898266B2 (en) | Loop vectorization methods and apparatus | |
US11003826B1 (en) | Automated analysis and optimization of circuit designs | |
CN111352950B (zh) | 数据库表等值连接的优化方法、装置、服务器及存储介质 | |
CN109815267A (zh) | 数据建模中特征的分箱优化方法及系统、存储介质及终端 | |
US7401313B2 (en) | Method and apparatus for controlling congestion during integrated circuit design resynthesis | |
CN112463189B (zh) | 基于通信操作稀疏化的分布式深度学习多步延迟更新方法 | |
CN107644063A (zh) | 基于数据并行的时间序列分析方法与系统 | |
CN112580286B (zh) | 多线程综合方法及装置 | |
CN115794393A (zh) | 业务模型的执行方法、装置、服务器及存储介质 | |
CN108875914A (zh) | 对神经网络数据进行预处理和后处理的方法和装置 | |
US20240303277A1 (en) | Graph data processing | |
US8006215B1 (en) | Circuit clustering during placement | |
CN108009111B (zh) | 数据流连接方法及装置 | |
CN112541309B (zh) | 逻辑综合的实现控制方法及装置 | |
US20220414438A1 (en) | Neural network acceleration via graph partition | |
CN114169275A (zh) | 可编程逻辑器件布线拥塞冲突优化方法、装置及相关设备 | |
CN113221501A (zh) | 用于平衡电路不同划分间互联数的方法及可读存储介质 | |
CN114037054A (zh) | 一种数据处理方法、装置、芯片、设备及介质 | |
CN112561029A (zh) | 一种多线程数据处理方法、加速器及系统 | |
CN113360527A (zh) | 缓冲区尺寸处理方法、装置、计算机设备 | |
CN112860597A (zh) | 一种神经网络运算的系统、方法、装置及存储介质 | |
CN114817311B (zh) | 应用于GaussDB数据库存储过程的并行计算方法 | |
WO2024125340A1 (zh) | 时钟树闸延时优化方法、系统、设备及计算机存储介质 | |
CN110825343B (zh) | 一种快速数据筛选方法及系统 |
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 | ||
GR01 | Patent grant |