多线程综合方法及装置

文档序号:830065 发布日期:2021-03-30 浏览:24次 >En<

阅读说明:本技术 多线程综合方法及装置 (Multithreading synthesis method and device ) 是由 王宁 李元策 刘奎 张青 于 2020-12-18 设计创作,主要内容包括:本发明公开了一种多线程综合方法及装置,该方法包括:根据确定出的拆分参数拆分原始网表,得到原始网表对应的至少两个子网表;根据拆分得到的所有子网表创建至少两个子线程;启动创建的所有子线程并行对所有子网表执行综合操作,得到每个子网表对应的综合后子网表;合并所有子网表对应的综合后子网表,得到原始网表对应的综合后网表。可见,本发明能够将原始网表拆分成至少两个子网表并通过创建的多个子线程对所有子网表进行并行综合,提高了FPGA综合工具的执行效率,进而有利于提高FPGA的开发设计效率。(The invention discloses a multithreading comprehensive method and a device, wherein the method comprises the following steps: splitting the original netlist according to the determined splitting parameters to obtain at least two sub netlists corresponding to the original netlist; creating at least two sub threads according to all the sub netlists obtained by splitting; starting all the created sub threads and executing comprehensive operation on all the sub netlists in parallel to obtain a comprehensive sub netlist corresponding to each sub netlist; and merging the synthesized sub netlists corresponding to all the sub netlists to obtain the synthesized netlist corresponding to the original netlist. Therefore, the method can split the original netlist into at least two sub-netlists and perform parallel synthesis on all the sub-netlists through the created sub-threads, so that the execution efficiency of the FPGA synthesis tool is improved, and the development and design efficiency of the FPGA is improved.)

多线程综合方法及装置

技术领域

本发明涉及FPGA技术领域,尤其涉及一种多线程综合方法及装置。

背景技术

在FPGA(Field-Programmable Gate Array,现场可编程门阵列)的设计流程中,网表(netlist)是用于描述电路元件间连接关系的一种文本文件,一个复杂的网表可以理解为由若干个具有典型逻辑功能的模块和一个控制电路组成的,其中,常见的模块包括寄存器、计数器、算术和逻辑运算单元、存储器等。

随着FPGA产业的发展,网表的规模变得也越来越大,百万级甚至千万级单位的网表层出不穷。实践发现,FPGA综合工具在综合这些大规模的网表时,需要依赖计算机上的CPU,使用传统的网表综合方法对大规模的网表进行综合时,CPU的运行时间将会非常长,严重影响FPGA综合工具的执行效率。可见,如何在对大规模的网表进行综合时提高FPGA综合工具的执行效率显得尤为重要。

发明内容

本发明所要解决的技术问题在于,提供一种多线程综合方法及装置,能够通过将原始网表拆分成多个子网表进行多线程并行综合的方式提高FPGA综合工具的执行效率。

为了解决上述技术问题,本发明第一方面公开了一种多线程综合方法,所述方法包括:

根据确定出的拆分参数拆分原始网表,得到所述原始网表对应的至少两个子网表;

根据所有所述子网表创建至少两个子线程,并启动创建的所有所述子线程并行对所有所述子网表执行综合操作,得到每个所述子网表对应的综合后子网表;

合并所有所述子网表对应的综合后子网表,得到所述原始网表对应的综合后网表。

作为一种可选的实施方式,在本发明第一方面中,所述拆分参数包括子网表总数量N,N小于等于预先确定出的最大线程数量且N为大于等于2的整数;

其中,所述根据确定出的拆分参数拆分原始网表,得到所述原始网表对应的至少两个子网表,包括:

根据原始网表的资源数量、所述原始网表的内部连接关系,将所述原始网表拆分成N个资源数量相同或资源数量相匹配的子网表;

遍历所述原始网表的边界,并根据所述原始网表的内部连接关系将独立的资源添加至相应的子网表中,得到所述原始网表对应的子网表。

作为一种可选的实施方式,在本发明第一方面中,所述拆分参数包括子网表总数量N,N小于等于预先确定出的最大线程数量且N为大于等于2的整数;

其中,所述根据确定出的拆分参数拆分原始网表,得到所述原始网表对应的至少两个子网表,包括:

查找原始网表的所有输出端口以及所有输入端口,并将所有所述输出端口划分成N个输出端口组;

对于每个所述输出端口组,创建以该输出端口组包括的所有输出端口为起始节点的子网表作为该输出端口组对应的子网表,并以该输出端口组的所有起始节点开始同时向前遍历,当遍历到未被遍历过的新节点时,将该新节点添加至该输出端口组对应的子网表中并继续向前遍历直至遍历到被遍历过的已遍历节点,当遍历到已遍历节点时,基于该已遍历节点创建该输出端口组对应子网表的输入端口;

当所述原始网表的所有输入端口被遍历完毕时,将所有所述输出端口组对应的子网表确定为所述原始网表对应的子网表。

作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:

对于每个所述输出端口组,当遍历到已遍历节点时且在基于该已遍历节点创建该输出端口组对应子网表的输入端口之后,判断该已遍历节点是否存在于其它输出端口组对应的子网表中,当判断结果为是时,创建该输出端口组对应子网表的输入端口与该其它输出端口组对应子网表的输出端口的关联关系,其中,当该已遍历节点存在于该其它输出端口组对应的子网表中时,该已遍历节点为该其它输出端口组对应子网表的输出端口。

作为一种可选的实施方式,在本发明第一方面中,所述合并所有所述子网表对应的综合后子网表,得到所述原始网表对应的综合后网表,包括:

确定每个所述综合后子网表的输入端口及输出端口;

根据预先创建的所有所述关联关系,将每个所述关联关系所关联的输入端口和输出端口连接起来,得到所述原始网表对应的综合后网表。

作为一种可选的实施方式,在本发明第一方面中,所述启动创建的所有所述子线程并行对所有所述子网表执行综合操作,得到每个所述子网表对应的综合后子网表之后,所述方法还包括:

判断当前并行对所有所述子网表执行综合操作对应的目标信息是否满足预先确定出的综合结束条件;

当判断出所述目标信息不满足所述综合结束条件时,调整所述拆分参数,并触发执行所述的根据确定出的拆分参数拆分原始网表,得到所述原始网表对应的至少两个子网表的步骤。

作为一种可选的实施方式,在本发明第一方面中,所述目标信息包括当前并行对所有所述子网表执行所述综合操作对应的运行时长和/或所述综合后网表;

其中,所述判断当前并行对所有所述子网表执行综合操作对应的目标信息是否满足预先确定出的综合结束条件,包括:

当所述目标信息只包括所述运行时长时,判断所述运行时长是否大于预先确定出的最大运行时长,当判断出所述运行时长大于所述最大运行时长时,确定所述目标信息不满足预先确定出的综合结束条件;

当所述目标信息只包括所述综合后网表时,判断所述综合后网表与所述原始网表是否相匹配,当判断出所述综合后网表与所述原始网表不相匹配时,确定所述目标信息不满足预先确定出的综合结束条件;

当所述目标信息包括所述运行时长和所述综合后网表时,判断所述综合后网表与所述原始网表是否相匹配,当判断出所述综合后网表与所述原始网表不相匹配时,确定所述目标信息不满足预先确定出的综合结束条件;当判断出所述综合后网表与所述原始网表相匹配时,判断所述运行时长是否大于预先确定出的最大运行时长,当判断出所述运行时长大于所述最大运行时长时,确定所述目标信息不满足预先确定出的综合结束条件;或者,

当所述目标信息包括所述运行时长和所述综合后网表时,判断所述运行时长是否大于预先确定出的最大运行时长,当判断出所述运行时长大于所述最大运行时长时,确定所述目标信息不满足预先确定出的综合结束条件;当判断出所述运行时长不大于所述最大运行时长时,判断所述综合后网表与所述原始网表是否相匹配,当判断出所述综合后网表与所述原始网表不相匹配时,确定所述目标信息不满足预先确定出的综合结束条件。

作为一种可选的实施方式,在本发明第一方面中,在判断出所述目标信息不满足所述综合结束条件之后,所述方法还包括:

确定所述原始网表的总拆分数据,所述总拆分数据包括所述原始网表的累计拆分次数或者所述原始网表的累计拆分时长;

判断所述总拆分数据是否小于预先确定出的数据阈值;

当判断出所述总拆分数据小于所述数据阈值时,触发执行所述的调整所述拆分参数的步骤;

当判断出所述总拆分数据不小于所述数据阈值时,确定历史拆分所述原始网表后并行对拆分得到的所有所述子网表执行综合操作对应的运行时长中的最短运行时长,并将所述最短运行时长对应的拆分参数确定为最后一次拆分所述原始网表的拆分参数。

作为一种可选的实施方式,在本发明第一方面中,所述合并所有所述子网表对应的综合后子网表,得到所述原始网表对应的综合后网表之后,所述方法还包括:

统计当前并行对拆分得到的所有所述子网表执行综合操作对应的运行时长;

判断当前并行对拆分得到的所有所述子网表执行综合操作对应的运行时长是否小于预先确定出的最短运行时长;

当判断结果为是时,将所述最短运行时长更新为当前并行对拆分得到的所有所述子网表执行综合操作对应的运行时长,并建立更新后的所述最短运行时长与当前拆分所述原始网表所使用的拆分参数的对应关系。

本发明第二方面公开了一种多线程综合装置,所述装置包括:

拆分模块,用于根据确定出的拆分参数拆分原始网表,得到所述原始网表对应的至少两个子网表;

创建模块,用于根据所有所述子网表创建至少两个子线程;

并行综合模块,用于启动创建的所有所述子线程并行对所有所述子网表执行综合操作,得到每个所述子网表对应的综合后子网表;

合并模块,用于合并所有所述子网表对应的综合后子网表,得到所述原始网表对应的综合后网表。

作为一种可选的实施方式,在本发明第二方面中,所述拆分参数包括子网表总数量N,N小于等于预先确定出的最大线程数量且N为大于等于2的整数;

所述拆分模块根据确定出的拆分参数拆分原始网表,得到所述原始网表对应的至少两个子网表的具体方式为:

根据原始网表的资源数量、所述原始网表的内部连接关系,将所述原始网表拆分成N个资源数量相同或资源数量相匹配的子网表;

遍历所述原始网表的边界,并根据所述原始网表的内部连接关系将独立的资源添加至相应的子网表中,得到所述原始网表对应的子网表。

作为一种可选的实施方式,在本发明第二方面中,所述拆分参数包括子网表总数量N,N小于等于预先确定出的最大线程数量且N为大于等于2的整数;

所述拆分模块根据确定出的拆分参数拆分原始网表,得到所述原始网表对应的至少两个子网表的具体方式为:

查找原始网表的所有输出端口以及所有输入端口,并将所有所述输出端口划分成N个输出端口组;

对于每个所述输出端口组,创建以该输出端口组包括的所有输出端口为起始节点的子网表作为该输出端口组对应的子网表,并以该输出端口组的所有起始节点开始同时向前遍历,当遍历到未被遍历过的新节点时,将该新节点添加至该输出端口组对应的子网表中并继续向前遍历直至遍历到被遍历过的已遍历节点,当遍历到已遍历节点时,基于该已遍历节点创建该输出端口组对应子网表的输入端口;

当所述原始网表的所有输入端口被遍历完毕时,将所有所述输出端口组对应的子网表确定为所述原始网表对应的子网表。

作为一种可选的实施方式,在本发明第二方面中,所述装置还包括:

关联模块,用于对于每个所述输出端口组,当遍历到已遍历节点时且在基于该已遍历节点创建该输出端口组对应子网表的输入端口之后,判断该已遍历节点是否存在于其它输出端口组对应的子网表中,当判断结果为是时,创建该输出端口组对应子网表的输入端口与该其它输出端口组对应子网表的输出端口的关联关系,其中,当该已遍历节点存在于该其它输出端口组对应的子网表中时,该已遍历节点为该其它输出端口组对应子网表的输出端口。

作为一种可选的实施方式,在本发明第二方面中,所述合并模块合并所有所述子网表对应的综合后子网表,得到所述原始网表对应的综合后网表的具体方式为:

确定每个所述综合后子网表的输入端口及输出端口;

根据预先创建的所有所述关联关系,将每个所述关联关系所关联的输入端口和输出端口连接起来,得到所述原始网表对应的综合后网表。

作为一种可选的实施方式,在本发明第二方面中,所述装置还包括:

判断模块,用于在所述并行综合模块启动创建的所有所述子线程并行对所有所述子网表执行综合操作,得到每个所述子网表对应的综合后子网表之后,判断当前并行对所有所述子网表执行综合操作对应的目标信息是否满足预先确定出的综合结束条件;

调整模块,用于当所述判断模块判断出所述目标信息不满足所述综合结束条件时,调整所述拆分参数,并触发所述拆分模块执行所述的根据确定出的拆分参数拆分原始网表,得到所述原始网表对应的至少两个子网表的操作。

作为一种可选的实施方式,在本发明第二方面中,所述目标信息包括当前并行对所有所述子网表执行所述综合操作对应的运行时长和/或所述综合后网表;

其中,所述判断模块判断当前并行对所有所述子网表执行综合操作对应的目标信息是否满足预先确定出的综合结束条件的具体方式为:

当所述目标信息只包括所述运行时长时,判断所述运行时长是否大于预先确定出的最大运行时长,当判断出所述运行时长大于所述最大运行时长时,确定所述目标信息不满足预先确定出的综合结束条件;

当所述目标信息只包括所述综合后网表时,判断所述综合后网表与所述原始网表是否相匹配,当判断出所述综合后网表与所述原始网表不相匹配时,确定所述目标信息不满足预先确定出的综合结束条件;

当所述目标信息包括所述运行时长和所述综合后网表时,判断所述综合后网表与所述原始网表是否相匹配,当判断出所述综合后网表与所述原始网表不相匹配时,确定所述目标信息不满足预先确定出的综合结束条件;当判断出所述综合后网表与所述原始网表相匹配时,判断所述运行时长是否大于预先确定出的最大运行时长,当判断出所述运行时长大于所述最大运行时长时,确定所述目标信息不满足预先确定出的综合结束条件;或者,

当所述目标信息包括所述运行时长和所述综合后网表时,判断所述运行时长是否大于预先确定出的最大运行时长,当判断出所述运行时长大于所述最大运行时长时,确定所述目标信息不满足预先确定出的综合结束条件;当判断出所述运行时长不大于所述最大运行时长时,判断所述综合后网表与所述原始网表是否相匹配,当判断出所述综合后网表与所述原始网表不相匹配时,确定所述目标信息不满足预先确定出的综合结束条件。

作为一种可选的实施方式,在本发明第二方面中,所述装置还包括:

确定模块,用于在所述判断模块判断出所述目标信息不满足所述综合结束条件之后,确定所述原始网表的总拆分数据,所述总拆分数据包括所述原始网表的累计拆分次数或者所述原始网表的累计拆分时长;

所述判断模块,还用于判断所述总拆分数据是否小于预先确定出的数据阈值,当判断出所述总拆分数据小于所述数据阈值时,触发所述调整模块执行所述的调整所述拆分参数的操作;

所述确定模块,还用于当所述判断模块判断出所述总拆分数据不小于所述数据阈值时,确定历史拆分所述原始网表后并行对拆分得到的所有所述子网表执行综合操作对应的运行时长中的最短运行时长;以及,将所述最短运行时长对应的拆分参数确定为最后一次拆分所述原始网表的拆分参数。

作为一种可选的实施方式,在本发明第二方面中,所述装置还包括:

统计模块,用于在所述合并模块合并所有所述子网表对应的综合后子网表,得到所述原始网表对应的综合后网表之后,统计当前并行对拆分得到的所有所述子网表执行综合操作对应的运行时长;

所述判断模块,还用于判断当前并行对拆分得到的所有所述子网表执行综合操作对应的运行时长是否小于预先确定出的最短运行时长;

更新模块,用于当所述判断模块判断出当前并行对拆分得到的所有所述子网表执行综合操作对应的运行时长小于所述最短运行时长时,将所述最短运行时长更新为当前并行对拆分得到的所有所述子网表执行综合操作对应的运行时长;

建立模块,用于建立更新后的所述最短运行时长与当前拆分所述原始网表所使用的拆分参数的对应关系。

本发明第三方面公开了另一种多线程综合装置,所述装置包括:

存储有可执行程序代码的存储器;

与所述存储器耦合的处理器;

所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明第一方面公开的多线程综合方法中的部分或全部步骤。

本发明第四方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本发明第一方面公开的多线程综合方法中的部分或全部步骤。

与现有技术相比,本发明实施例具有以下有益效果:

本发明实施例中,在对原始网表进行综合时,将原始网表拆分成多个子网表,并通过创建的多个子线程并行对拆分得到的所有子网表进行综合操作,得到每个子网表对应的综合后子网表,以及合并所有综合后子网表得到原始网表对应的综合后网表。可见,本发明能够通过将原始网表拆分成多个子网表进行多线程并行综合的方式提高FPGA综合工具的执行效率,进而有利于提高FPGA的开发设计效率,有利于改善用户对FPGA综合工具的使用体验。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例公开的一种多线程综合方法的流程示意图;

图2是本发明实施例公开的另一种多线程综合方法的流程示意图;

图3是本发明实施例公开的又一种多线程综合方法的流程示意图;

图4是本发明实施例公开的一种多线程综合装置的结构示意图;

图5是本发明实施例公开的另一种多线程综合装置的结构示意图;

图6是本发明实施例公开的又一种多线程综合装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品、端口或端没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品、端口或端固有的其他步骤或单元。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

本发明公开了一种多线程综合方法及装置,能够将原始网表拆分成至少两个子网表并通过创建的多个子线程对所有子网表进行并行综合,提高了FPGA综合工具的执行效率,进而有利于提高FPGA的开发设计效率,有利于改善用户对FPGA综合工具的使用体验。以下分别进行详细说明。

实施例一

请参阅图1,图1是本发明实施例公开的一种多线程综合方法的流程示意图。其中,图1所描述的方法可以应用于FPGA综合工具中,本发明实施例不作限定。如图1所示,该方法可以包括以下操作:

101、FPGA综合工具根据确定出的拆分参数拆分原始网表,得到原始网表对应的至少两个子网表。

本发明实施例中,原始网表是对RTL设计文件进行解析得到的,其中,该原始网表为电路级网表。可选的,该拆分参数用于实现对原始网表的拆分控制,其可以包括拆分得到的子网表总数量N,也即FPGA综合工具对原始网表进行拆分得到N个子网表,N为大于等于2的整数且N小于等于FPGA综合工具所支持的最大线程数量。又进一步可选的,拆分原始网表得到的子网表为大小或者规模相同或相似的子网表,这样能够使得FPGA综合工具在后续执行创建的多个子线程时所花费的执行时间相差不大。

在一个可选的实施例中,在执行步骤101之前,该方法还可以包括以下操作:

FPGA综合工具确定原始网表的网表大小,并判断原始网表的网表大小是否超过了预先设定的网表大小阈值;当判断结果为是时,触发执行步骤101;当判断结果为否时,FPGA综合工具可以直接执行针对原始网表的综合操作,得到原始网表对应的综合后网表。

可见,该可选的实施例能够在对原始网表进行综合之前根据原始网表的网表大小(如规模量级等)自适应选择相匹配的综合方式,也即能够在确定出原始网表的大小之后适应性选择FPGA综合工具执行效率较高的综合方式,有利于FPGA综合工具的普遍适用性,此外,还能够改善用户使用FPGA综合工具的使用体验。

102、FPGA综合工具根据所有子网表创建至少两个子线程。

本发明实施例中,一个子线程对应至少一个子网表,优选的,一个子线程对应的一个子网表,且子线程之间完全独立,没有数据交互,也即:FPGA综合工具创建的子线程的数量与上述子网表的数量相同,这样能够在后续并行对子网表进行综合操作时使得FPGA综合工具的执行时长取决于执行时间最长的子线程对应的执行时间,有利于节省FPGA综合工具的执行时间,提高FPGA综合工具的综合效率。

103、FPGA综合工具启动创建的所有子线程并行对所有子网表执行综合操作,得到每个子网表对应的综合后子网表。

本发明实施例中,优选的,FPGA综合工具在创建完子线程之后,同时启动所有的子线程并行对相应的子网表执行综合操作,这样能够进一步保证FPGA综合工具的执行时长取决于执行时间最长的子线程对应的执行时间。

104、FPGA综合工具合并所有子网表对应的综合后子网表,得到原始网表对应的综合后网表。

需要说明的是,由于步骤102涉及创建线程的步骤、步骤103涉及综合步骤以及104涉及合并得到综合后网表的步骤,在其它实施例中,FPGA综合工具可以只执行步骤102-步骤104,且步骤101和/或在步骤101之前执行的步骤可以由网表处理装置执行,该网表处理装置可以集成在FPGA综合工具中,也可以独立于FPGA综合工具而存在,当其独立于FPGA综合工具而存在时,网表处理装置主要用于根据确定出的拆分参数对原始网表进行拆分得到至少两个子网表,且拆分得到的所有子网表用于提供给FPGA综合工具执行步骤102-步骤104。

可见,本发明实施例所描述的方法能够将原始网表拆分成至少两个子网表并通过创建的多个子线程对所有子网表进行并行综合,由于多个子线程是并行执行的,因此FPGA综合工具的综合时长取决于执行时长最长的子线程的执行时长,又由于子线程的执行时长取决于相应子网表的大小或者规模且拆分得到的每个子网表的规模均小于原始网表的规模,因此,多线程并行综合的时长不会高于单线程综合整个原始网表的时长,这样提高了FPGA综合工具的执行效率,进而有利于提高FPGA的开发设计效率,有利于改善用户对FPGA综合工具的使用体验。

在一个可选的实施例中,上述拆分参数可以包括子网表总数量N,其中,N小于等于预先确定出的最大线程数量且N为大于等于2的整数。

在该可选的实施例中,作为一种可选的实施方式,FPGA综合工具根据确定出的拆分参数拆分原始网表,得到原始网表对应的至少两个子网表,可以包括:

FPGA综合工具根据原始网表的资源数量、原始网表的内部连接关系,将原始网表拆分成N个资源数量相同或资源数量相匹配(也即资源数量近似)的子网表;

FPGA综合工具遍历原始网表的边界,并根据原始网表的内部连接关系将独立的资源添加至相应的子网表中,得到原始网表对应的子网表。

在该可选的实施方式中,FPGA综合工具根据原始网表的内部连接关系将相对独立的资源分配至同一个子网表中,例如将具有数学等式关系的资源或者多个节点可以映射出1个BSRAM(Burst pipelined synchronous static RAM,突发式管道同步静态存储器)的资源放在同一个子网表中。

可见,该可选的实施方式能够根据原始网表包括的资源数量及内部连接关系均分或近似均分原始网表所包括的资源,使得每个子网表资源相当,这样能够使得通过创建的子线程并行对子网表进行综合时各个子线程的运行时长相当且FPGA综合工具在综合时的最大运行时长取决于运行时长最长的子线程对应的运行时长,实现了对原始网表进行智能化拆分的同时使得FPGA综合工具在综合过程中所使用的CPU资源的最优化。

在该可选的实施例中,作为另一种可选的实施方式,FPGA综合工具根据确定出的拆分参数拆分原始网表,得到原始网表对应的至少两个子网表,可以包括:

FPGA综合工具查找原始网表的所有输出端口以及所有输入端口,并将所有输出端口划分成N个输出端口组,其中,每个输出端口组所包括的输出端口的数量相同或相匹配(也即近似);

对于每个输出端口组,FPGA综合工具创建以该输出端口组包括的所有输出端口为起始节点的子网表作为该输出端口组对应的子网表,并以该输出端口组的所有起始节点开始同时向前遍历,当遍历到未被遍历过的新节点时,将该新节点添加至该输出端口组对应的子网表中并继续向前遍历直至遍历到被遍历过的已遍历节点,当遍历到已遍历节点时,基于该已遍历节点创建该输出端口组对应子网表的输入端口;

当原始网表的所有输入端口被遍历完毕时,FPGA综合工具将所有输出端口组对应的子网表确定为原始网表对应的子网表。

在该可选的实施方式中,进一步可选的,该方法还可以包括以下操作:

对于每个输出端口组,当遍历到已遍历节点时且在基于该已遍历节点创建该输出端口组对应子网表的输入端口之后,FPGA综合工具判断该已遍历节点是否存在于其它输出端口组对应的子网表中,当判断结果为是时,创建该输出端口组对应子网表的输入端口与该其它输出端口组对应子网表的输出端口的关联关系,其中,当该已遍历节点存在于该其它输出端口组对应的子网表中时,该已遍历节点为该其它输出端口组对应子网表的输出端口。

可选的,创建该输出端口组对应子网表的输入端口与该其它输出端口组对应子网表的输出端口的关联关系可以具体是为输入端口和输出端口设定相同且唯一的端口标识(端口名称)。

可见,该可选的实施方式能够将输出端口均分或近似均分成N个输出端口组并以每个输出端口组所包括的输出端口为起始节点向前遍历,进而实现对原始网表的智能化拆分。此外,在向前遍历时,若遍历到已遍历过的节点,还可以智能化建立该已遍历节点作为一个输出端口组的输入端口与该已遍历节点作为另一个输出端口组的输出端口之间的关联关系,能够避免后续再从该已遍历节点继续向前遍历,进而减少对CPU资源的浪费,此外,创建的关联关系还能够用于后续综合后子网表之间的合并,提高了综合后子网表的合并效率及合并准确率。

在另一个可选的实施例中,每个子网表均包括相应的输入端口及输出端口,且对于任一子网表而言,若该子网表的输入端口对应的节点与另一子网表的输出端口对应的节点相同,则FPGA综合工具还创建该子网表的输入端口与另一个子网表的输出端口的关联关系(或对应关系)。其中,FPGA综合工具合并所有子网表对应的综合后子网表,得到原始网表对应的综合后网表,可以包括:

FPGA综合工具确定每个综合后子网表的输入端口及输出端口;

FPGA综合工具根据预先创建的所有关联关系,将每个关联关系所关联的输入端口和输出端口连接起来,得到原始网表对应的综合后网表。

可见,该可选的实施例还能够依据输入端口与输出端口间的关联关系进行综合后子网表的合并,这样能够提高后续对综合后子网表进行合并的准确性及合并效率,进而能够提高得到综合后网表的效率以及与原始网表的匹配度。

以N个子网表且一个子线程对应一个子网表为例,FPGA综合工具进行多线程综合的原理或流程可以如图2所示,图2是本发明实施例公开的另一种多线程综合方法的流程示意图。如图2所示,在解析RTL设计文件得到原始网表之后,将原始网表拆分或分割成N个子网表:子网表[1]~子网表[N],并创建每个子网表对应的综合子线程:综合子线程[1]~综合子线程[N],通过综合子线程[1]~综合子线程[N]并行对子网表[1]~子网表[N]进行综合,得到子网表[1]~子网表[N]分别对应的综合后子网表[1]~综合后子网表[N],最后合并综合后子网表[1]~综合后子网表[N]得到综合后网表。

可见,本发明实施例所描述的多线程综合方法能够将原始网表拆分成至少两个子网表并通过创建的多个子线程对所有子网表进行并行综合,由于多个子线程是并行执行的,因此FPGA综合工具的综合时长取决于执行时长最长的子线程的执行时长,又由于子线程的执行时长取决于相应子网表的大小或者规模且拆分得到的每个子网表的规模均小于原始网表的规模,因此,多线程并行综合的时长不会高于单线程综合整个原始网表的时长,这样提高了FPGA综合工具的执行效率,进而有利于提高FPGA的开发设计效率,有利于改善用户对FPGA综合工具的使用体验。此外,还能够根据以原始网表包括的输出端口的数量或者按照原始网表的资源数量及原始网表的内部连接关系进行原始网表的拆分,使得拆分得到的子网表规模相同或相似,这样能够使得通过创建的子线程并行对子网表进行综合时各个子线程的运行时长相当且FPGA综合工具在综合时的最大运行时长取决于运行时长最长的子线程对应的运行时长,实现了对原始网表进行智能化拆分的同时使得FPGA综合工具在综合过程中所使用的CPU资源的最优化。此外,还能够在以原始网表包括的输出端口的数量为起点通过向前遍历的方式拆分原始网表时,智能化建立已遍历节点作为一个输出端口组的输入端口与该已遍历节点作为另一个输出端口组的输出端口之间的关联关系,能够避免后续再从该已遍历节点继续向前遍历,进而减少对CPU资源的浪费。此外,还能够依据输入端口与输出端口间的关联关系进行综合后子网表的合并,这样能够提高后续对综合后子网表进行合并的准确性及效率,进而能够提高得到综合后网表的效率以及与原始网表的匹配度。

实施例二

请参阅图3,图3是本发明实施例公开的又一种多线程综合方法的流程示意图。其中,图3所描述的方法可以应用于FPGA综合工具中,本发明实施例不作限定。如图3所示,该方法可以包括以下操作:

201、FPGA综合工具根据确定出的拆分参数拆分原始网表,得到原始网表对应的至少两个子网表。

202、FPGA综合工具根据所有子网表创建至少两个子线程,并启动创建的所有子线程并行对所有子网表执行综合操作,得到每个子网表对应的综合后子网表。

203、FPGA综合工具合并所有子网表对应的综合后子网表,得到原始网表对应的综合后网表。

需要说明的是,针对步骤201-步骤203的其它详细描述,请分别参照实施例一中针对步骤101、步骤102-步骤103、步骤104的详细描述,本发明实施例不再赘述。

204、FPGA综合工具判断当前并行对所有子网表执行综合操作对应的目标信息是否满足预先确定出的综合结束条件,当步骤204的判断结果为是时,可以结束本次流程;当步骤204的判断结果为否时,可以触发执行步骤205。

可选的,目标信息包括当前并行对所有子网表执行综合操作对应的运行时长和/或综合后网表。其中,FPGA综合工具判断当前并行对所有子网表执行综合操作对应的目标信息是否满足预先确定出的综合结束条件,可以包括:

当目标信息只包括运行时长时,FPGA综合工具判断运行时长是否大于预先确定出的最大运行时长,当判断出运行时长大于最大运行时长时,确定目标信息不满足预先确定出的综合结束条件;

当目标信息只包括综合后网表时,FPGA综合工具判断综合后网表与原始网表是否相匹配,当判断出综合后网表与原始网表不相匹配时,确定目标信息不满足预先确定出的综合结束条件;

当目标信息包括运行时长和综合后网表时,FPGA综合工具判断综合后网表与原始网表是否相匹配,当判断出综合后网表与原始网表不相匹配时,确定目标信息不满足预先确定出的综合结束条件;当判断出综合后网表与原始网表相匹配时,判断运行时长是否大于预先确定出的最大运行时长,当判断出运行时长大于最大运行时长时,确定目标信息不满足预先确定出的综合结束条件;或者,

当目标信息包括运行时长和综合后网表时,FPGA综合工具判断运行时长是否大于预先确定出的最大运行时长,当判断出运行时长大于最大运行时长时,确定目标信息不满足预先确定出的综合结束条件;当判断出运行时长不大于最大运行时长时,判断综合后网表与原始网表是否相匹配,当判断出综合后网表与原始网表不相匹配时,确定目标信息不满足预先确定出的综合结束条件。

需要说明的是,在其它可选的实施例中,当步骤204的判断结果为否时,也可以直接触发执行步骤207。

205、FPGA综合工具确定原始网表的总拆分数据,总拆分数据包括原始网表的累计拆分次数或者原始网表的累计拆分时长。

本发明实施例中,原始网表的累计拆分时长的起始时刻是初始拆分原始网表的时刻,原始网表的累计拆分时长的截止时刻可以是当前实时时刻,还可以是最近一次合并得到综合后网表的时刻。

206、FPGA综合工具判断总拆分数据是否小于预先确定出的数据阈值,当步骤206的判断结果为是时,触发执行步骤207;当步骤206的判断结果为否时,触发执行步骤208。

207、FPGA综合工具调整拆分参数,并触发执行步骤201。

其中,当执行完毕步骤207之后再触发执行步骤201时,步骤201中确定出的拆分参数即为步骤207中调整后的拆分参数。

208、FPGA综合工具确定历史拆分原始网表后并行对拆分得到的所有子网表执行综合操作对应的运行时长中的最短运行时长。

本发明实施例中,每次拆分原始网表后并行对拆分得到的所有子网表执行综合操作均存在对应的运行时长,且每次拆分原始网表后并行对拆分得到的所有子网表执行综合操作对应的运行时长可以为:并行综合时长;或者,并行综合时长、网表拆分时长以及子线程创建时长之和;或者,并行综合时长、网表拆分时长、线程创建时长以及网表合并时长之和。其中,并行综合时长为启动创建的所有子线程并行对所有子网表执行综合操作的起始时刻到并行对所有所述子网表执行综合操作的截止时刻,并行综合时长也可以直接理解为所有子线程对应的运行时长中的最长运行时长。

最优选的,拆分原始网表后并行对拆分得到的所有子网表执行综合操作对应的运行时长包括并行综合时长、网表拆分时长、线程创建时长以及网表合并时长之和,这样有利于提高确定出的运行时长的精准性,进而有利于提高评估FPGA综合工具的运行效率的准确性。

209、FPGA综合工具将最短运行时长对应的拆分参数确定为最后一次拆分所述原始网表的拆分参数。

本发明实施例中,在执行完毕步骤209之后,可以最后一次触发执行步骤201-步骤203,得到最终的综合后网表。

需要说明的是,在其它实施例中,在步骤209之前所执行的步骤可以理解为确定出最优拆分参数的流程,以便于为最终的多线程综合提供最优拆分参数。且该过程可以为模拟过程,也可以理解为最后一次进行网表拆分、创建子线程、运行子线程并行对子网表进行综合以及合并综合后子网表得到综合后网表的准备过程。

在一个可选的实施例中,在执行完毕步骤203之后,该方法还可以包括以下操作:

FPGA综合工具统计当前并行对拆分得到的所有子网表执行综合操作对应的运行时长;

FPGA综合工具判断当前并行对拆分得到的所有子网表执行综合操作对应的运行时长是否小于预先确定出的最短运行时长;

当判断结果为是时,FPGA综合工具将最短运行时长更新为当前并行对拆分得到的所有所述子网表执行综合操作对应的运行时长,并建立更新后的最短运行时长与当前拆分原始网表所使用的拆分参数的对应关系。

进一步可选的,FPGA综合工具判断当前并行对拆分得到的所有子网表执行综合操作对应的运行时长是否小于预先确定出的最短运行时长之前,该方法还可以包括以下操作:

FPGA综合工具判断当前是否为首次拆分原始网表;当判断结果为是时,直接将当前并行对拆分得到的所有所述子网表执行综合操作对应的运行时长确定为最短运行时长;当判断结果为否时,触发执行上述的判断当前并行对拆分得到的所有子网表执行综合操作对应的运行时长是否小于预先确定出的最短运行时长的操作。

可见,该可选的实施例还能够在多次执行并行综合操作得到综合后网表的过程中,动态更新最短运行时长并建立最短运行时长与相应的拆分参数的对应关系,以便于提高步骤208中确定出最短运行时长的效率以及提高步骤209中确定最短运行时长对应的拆分参数的效率。

在另一个可选的实施例中,在执行步骤204之前,该方法还可以包括以下操作:

FPGA综合工具确定原始网表的当前使用类型;

若当前使用类型为模拟使用类型时,则触发执行步骤204;

若当前使用类型为实际综合使用类型时,则可以结束本次流程。

可见,该可选的实施例能够在合并得到综合后网表之后,智能化的根据原始网表的当前使用类型执行相匹配的操作,拓展了FPGA综合工具进行多线程并行综合的使用场景,也即:在实际综合场景下能够提高FPGA综合工具的运行效率,在模拟使用场景下能够通过反复调整拆分参数拆分原始网表进行多线程并行综合的方式获得最优拆分参数,不仅能够为在实际综合场景下进行实际多线程并行综合提供最优拆分参数,还能够为其它规模相同或近似的网表的拆分提供拆分参数参考依据,进而有利于提高对其它网表进行综合的运行效率。

可见,本发明实施例所描述的方法能够将原始网表拆分成至少两个子网表并通过创建的多个子线程对所有子网表进行并行综合,由于多个子线程是并行执行的,因此FPGA综合工具的综合时长取决于执行时长最长的子线程的执行时长,又由于子线程的执行时长取决于相应子网表的大小或者规模且拆分得到的每个子网表的规模均小于原始网表的规模,因此,多线程并行综合的时长不会高于单线程综合整个原始网表的时长,这样提高了FPGA综合工具的执行效率,进而有利于提高FPGA的开发设计效率,有利于改善用户对FPGA综合工具的使用体验。此外,在合并得到综合后网表之后,还可以判断本次拆分及并行综合对应的信息是否满足综合结束条件,如果满足,则可以结束本次综合流程,若不满足,则可以继续通过调整拆分参数的方式重新拆分网表并执行相应的并行综合流程,有利于提高多线程综合方法的灵活性,且当多线程综合方法应用于模拟场景中时,还能够通过反复拆分以及反复并行综合的方式找到最优拆分参数,进一步的,还能够通过设定相应的控制条件,避免无限制的拆分及并行综合,在控制条件内根据最短运行时长原则智能化确定最优拆分参数,不仅能够为实际综合提供最优拆分参数,还能够为其它规模相同或相似的网表提供拆分参数参考依据,能够进一步提高FPGA综合工具的运行效率。

实施例三

请参阅图4,图4是本发明实施例公开的一种多线程综合装置的结构示意图。其中,图4所描述的多线程综合装置可以应用于FPGA综合工具中,本发明实施例不作限定。如图4所示,该多线程综合装置可以包括:

拆分模块301,用于根据确定出的拆分参数拆分原始网表,得到原始网表对应的至少两个子网表。

创建模块302,用于根据所有子网表创建至少两个子线程。

并行综合模块303,用于启动创建的所有子线程并行对所有子网表执行综合操作,得到每个子网表对应的综合后子网表。

合并模块304,用于合并所有子网表对应的综合后子网表,得到原始网表对应的综合后网表。

需要说明的是,上述拆分模块301为多线程综合装置的可选模块,也即可以由其它装置执行对原始网表的拆分操作,并将拆分得到的所有子网表提供给多线程综合装置。

可见,实施图4所描述的装置能够将原始网表拆分成至少两个子网表并通过创建的多个子线程对所有子网表进行并行综合,由于多个子线程是并行执行的,因此原始网表的综合时长取决于执行时长最长的子线程的执行时长,又由于子线程的执行时长取决于相应子网表的大小或者规模且拆分得到的每个子网表的规模均小于原始网表的规模,因此,多线程并行综合的时长不会高于单线程综合整个原始网表的时长,这样提高了FPGA综合工具的执行效率,进而有利于提高FPGA的开发设计效率,有利于改善用户对FPGA综合工具的使用体验。

在一个可选的实施例中,拆分参数可以包括子网表总数量N,其中,N小于等于预先确定出的最大线程数量且N为大于等于2的整数。

在该可选的实施例中,作为一种可选的实施方式,拆分模块301根据确定出的拆分参数拆分原始网表,得到原始网表对应的至少两个子网表的具体方式为:

拆分模块301根据原始网表的资源数量、原始网表的内部连接关系,将原始网表拆分成N个资源数量相同或资源数量相匹配的子网表;

拆分模块301遍历原始网表的边界,并根据原始网表的内部连接关系将独立的资源添加至相应的子网表中,得到原始网表对应的子网表。

在该可选的实施例中,拆分模块301根据原始网表的内部连接关系将相对独立的资源分配至同一个子网表中,例如将具有数学等式关系的资源或者多个节点可以映射出1个BSRAM的资源放在同一个子网表中。可见,该可选的实施方式能够根据原始网表包括的资源数量及内部连接关系均分或近似均分原始网表所包括的资源,使得每个子网表资源相当,这样能够使得通过创建的子线程并行对子网表进行综合时各个子线程的运行时长相当且FPGA综合工具在综合时的最大运行时长取决于运行时长最长的子线程对应的运行时长,实现了对原始网表进行智能化拆分的同时使得FPGA综合工具在综合过程中所使用的CPU资源的最优化。

作为另一种可选的实施方式,拆分模块301根据确定出的拆分参数拆分原始网表,得到原始网表对应的至少两个子网表的具体方式为:

拆分模块301查找原始网表的所有输出端口以及所有输入端口,并将所有输出端口划分成N个输出端口组,其中,每个输出端口组所包括的输出端口的数量相同或相匹配(也即近似);

对于每个输出端口组,拆分模块301创建以该输出端口组包括的所有输出端口为起始节点的子网表作为该输出端口组对应的子网表,并以该输出端口组的所有起始节点开始同时向前遍历,当遍历到未被遍历过的新节点时,将该新节点添加至该输出端口组对应的子网表中并继续向前遍历直至遍历到被遍历过的已遍历节点,当遍历到已遍历节点时,基于该已遍历节点创建该输出端口组对应子网表的输入端口;

当原始网表的所有输入端口被遍历完毕时,拆分模块301将所有输出端口组对应的子网表确定为原始网表对应的子网表。

在该可选的实施方式中,进一步可选的,如图5所示,该多线程综合装置还可以包括:

关联模块305,对于每个输出端口组,当遍历到已遍历节点时且在基于该已遍历节点创建该输出端口组对应子网表的输入端口之后,判断该已遍历节点是否存在于其它输出端口组对应的子网表中,当判断结果为是时,创建该输出端口组对应子网表的输入端口与该其它输出端口组对应子网表的输出端口的关联关系,其中,当该已遍历节点存在于该其它输出端口组对应的子网表中时,该已遍历节点为该其它输出端口组对应子网表的输出端口。

可见,该可选的实施方式能够将输出端口均分或近似均分成N个输出端口组并以每个输出端口组所包括的输出端口为起始节点向前遍历,进而实现对原始网表的智能化拆分。此外,在向前遍历时,若遍历到已遍历过的节点,还可以智能化建立该已遍历节点作为一个输出端口组的输入端口与该已遍历节点作为另一个输出端口组的输出端口之间的关联关系,能够避免后续再从该已遍历节点继续向前遍历,进而减少对CPU资源的浪费,此外,创建的关联关系还能够用于后续综合后子网表之间的合并,提高了综合后子网表的合并效率及合并准确率。

在另一个可选的实施例中,合并模块304合并所有子网表对应的综合后子网表,得到原始网表对应的综合后网表的具体方式为:

确定每个综合后子网表的输入端口及输出端口;

根据预先创建的所有关联关系,将每个关联关系所关联的输入端口和输出端口连接起来,得到原始网表对应的综合后网表。

可见,该可选的实施例还能够依据输入端口与输出端口间的关联关系进行综合后子网表的合并,这样能够提高后续对综合后子网表进行合并的准确性及合并效率,进而能够提高得到综合后网表的效率以及与原始网表的匹配度。

在又一个可选的实施例中,如图5所示,该多线程综合装置还可以包括:

判断模块306,用于在并行综合模块303启动创建的所有子线程并行对所有子网表执行综合操作,得到每个子网表对应的综合后子网表之后,判断当前并行对所有子网表执行综合操作对应的目标信息是否满足预先确定出的综合结束条件。

调整模块307,用于当判断模块306判断出目标信息不满足综合结束条件时,调整拆分参数,并触发拆分模块301执行上述的根据确定出的拆分参数拆分原始网表,得到原始网表对应的至少两个子网表的操作。

在该可选的实施例中,进一步可选的,目标信息可以包括当前并行对所有子网表执行所述综合操作对应的运行时长和/或综合后网表。

其中,判断模块306判断当前并行对所有子网表执行综合操作对应的目标信息是否满足预先确定出的综合结束条件的具体方式可以为:

当目标信息只包括运行时长时,判断运行时长是否大于预先确定出的最大运行时长,当判断出运行时长大于最大运行时长时,确定目标信息不满足预先确定出的综合结束条件;

当目标信息只包括综合后网表时,判断综合后网表与原始网表是否相匹配,当判断出综合后网表与原始网表不相匹配时,确定目标信息不满足预先确定出的综合结束条件;

当目标信息包括运行时长和综合后网表时,判断综合后网表与原始网表是否相匹配,当判断出综合后网表与原始网表不相匹配时,确定目标信息不满足预先确定出的综合结束条件;当判断出综合后网表与原始网表相匹配时,判断运行时长是否大于预先确定出的最大运行时长,当判断出运行时长大于最大运行时长时,确定目标信息不满足预先确定出的综合结束条件;或者,

当目标信息包括运行时长和综合后网表时,判断运行时长是否大于预先确定出的最大运行时长,当判断出运行时长大于最大运行时长时,确定目标信息不满足预先确定出的综合结束条件;当判断出运行时长不大于最大运行时长时,判断综合后网表与原始网表是否相匹配,当判断出综合后网表与原始网表不相匹配时,确定目标信息不满足预先确定出的综合结束条件。

可见,实施图5所描述的装置还能够在合并综合后子网表得到综合后网表之后,进一步智能化地判断本次执行并行综合操作对应的目标信息(运行时长和/或综合后网表)是否满足要求,若满足,则可以直接结束本次流程,若不满足,则调整拆分参数并重新进行原始网表拆分、创建子线程、并行综合以及合并综合后子网表的操作,进而能够使得得到的综合后网表为最优拆分参数下的综合后网表,以便于为其它原始网表的拆分提供参考依据,进一步优化FPGA综合工具拆分原始网表的拆分参数,进而进一步提高FPGA综合工具多线程并行综合的效率。

在又一个可选的实施例中,如图5所示,该装置还可以包括:

确定模块308,用于在判断模块306判断出目标信息不满足综合结束条件之后,确定原始网表的总拆分数据,总拆分数据包括原始网表的累计拆分次数或者原始网表的累计拆分时长。

判断模块306,还用于判断总拆分数据是否小于预先确定出的数据阈值,当判断出总拆分数据小于数据阈值时,触发调整模块307执行上述的调整拆分参数的操作。

确定模块308,还用于当判断模块306判断出总拆分数据不小于数据阈值时,确定历史拆分原始网表后并行对拆分得到的所有子网表执行综合操作对应的运行时长中的最短运行时长;以及,并将最短运行时长对应的拆分参数确定为最后一次拆分原始网表的拆分参数。

在又一个可选的实施例中,如图5所示,该装置还可以包括:

统计模块309,用于在合并模块304合并所有子网表对应的综合后子网表,得到原始网表对应的综合后网表之后,统计当前并行对拆分得到的所有子网表执行综合操作对应的运行时长。

判断模块306,还可以用于判断当前并行对拆分得到的所有子网表执行综合操作对应的运行时长是否小于预先确定出的最短运行时长。

更新模块310,用于当判断模块306判断出当前并行对拆分得到的所有子网表执行综合操作对应的运行时长小于最短运行时长时,将最短运行时长更新为当前并行对拆分得到的所有子网表执行综合操作对应的运行时长。

建立模块311,用于建立更新后的最短运行时长与当前拆分原始网表所使用的拆分参数的对应关系。

可见,实施图5所描述的装置还能够通过设定相应的控制条件,避免无限制的拆分及并行综合,在控制条件内根据最短运行时长原则智能化确定最优拆分参数,不仅能够为实际综合提供最优拆分参数,还能够为其它规模相同或相似的网表提供拆分参数参考依据,能够进一步提高FPGA综合工具的运行效率。此外,还能够在多次执行并行综合操作得到综合后网表的过程中,动态更新最短运行时长并建立最短运行时长与相应的拆分参数的对应关系,以便于提高确定出最短运行时长的效率以及最短运行时长对应的拆分参数的效率。

实施例四

请参阅图6,图6是本发明实施例公开的又一种多线程综合装置的结构示意图。如图6所示,该多线程综合装置包括:

存储有可执行程序代码的存储器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)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。

最后应说明的是:本发明实施例公开的一种多线程综合方法及装置所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。

26页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种SoPC芯片内嵌FPGA的验证模块

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类