分割时钟筛选方法、装置、计算机设备和存储介质转让专利

申请号 : CN202110867351.2

文献号 : CN113312865B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 万鹭张吉锋邵中尉

申请人 : 上海国微思尔芯技术股份有限公司

摘要 :

本发明提供了一种分割时钟筛选方法、装置、计算机设备和存储介质,属于芯片设计领域,具体包括解析可编程逻辑验证阵列的设计文件,得到语法节点及语法节点信息;获取最小分割时钟数量以及预设时钟切割列表;根据语法节点信息确定第一分割时钟;对所有语法节点进行聚类合并;根据合并后的语法节点信息中各节点时钟出现的次数从预设时钟切割列表筛选第二分割时钟;根据最小分割时钟数量以及连线权重值将语法树结构分配到可编程逻辑阵列上,得到与可编程逻辑阵列对应的第三分割时钟;根据第一分割时钟、第二分割时钟和第三分割时钟生成分割时钟列表。通过本申请的处理方案,不仅减轻时序分析和TDM插入的难度,还能提高系统运行的性能与准确率。

权利要求 :

1.一种分割时钟筛选方法,其特征在于,包括:解析可编程逻辑验证阵列的设计文件,得到语法树结构的语法节点及语法节点信息,所述语法节点信息至少包括与关联节点之间的连线权重值、与所述语法节点对应的节点时钟;

获取最小分割时钟数量以及预设时钟切割列表;

根据所述语法节点信息确定第一分割时钟,删除所述语法节点信息中的所述第一分割时钟,并重新设定该语法节点与关联节点之间的连线权重值;

根据更新后的语法节点信息,对所有语法节点进行聚类合并;

根据合并后的所述语法节点信息中各节点时钟出现的次数从所述预设时钟切割列表筛选第二分割时钟,删除所述语法节点信息中的所述第二分割时钟,再次重新设定该语法节点与关联节点之间的连线权重值,所述连线权重值的设定均遵循预定规则,该预定规则为当被删除的时钟不存在预设时钟切割列表时,则提高该语法节点与关联节点之间的连线权重值;当被删除的时钟不存在预设时钟切割列表时,则维持当前的连线权重值;

根据最小分割时钟数量以及所述连线权重值将所述语法树结构分配到可编程逻辑阵列上,得到与所述可编程逻辑阵列对应的第三分割时钟;

根据所述第一分割时钟、所述第二分割时钟和所述第三分割时钟生成分割时钟列表。

2.根据权利要求1所述的分割时钟筛选方法,其特征在于,所述根据合并后的所述语法节点信息中各节点时钟出现的次数从所述预设时钟切割列表筛选第二分割时钟,包括:根据合并后的所述语法节点信息中各节点时钟出现的次数,对所述预设时钟切割列表中的所述节点时钟进行排序,得到当前时钟排序列表;

从所述当前时钟排序列表中筛选出现次数最高的节点时钟作为第二分割时钟。

3.根据权利要求1所述的分割时钟筛选方法,其特征在于,所述根据最小分割时钟数量以及所述连线权重值将所述语法树结构分配到可编程逻辑阵列上,得到与所述可编程逻辑阵列对应的第三分割时钟,包括:

根据所述连线权重值对所述语法树结构将所述语法树结构分配到可编程逻辑阵列上,得到与所述可编程逻辑阵列对应的待分割时钟;

当判定所述待分割时钟不与所述第一分割时钟、所述第二分割时钟重叠时,设定所述待分割时钟为第三分割时钟;

删除所述语法节点信息中的所述第三分割时钟,再次设定该语法节点与关联节点之间的连线权重值,直至所述第一分割时钟、所述第二分割时钟和所述第三分割时钟的数量达到最小分割时钟数量。

4.根据权利要求3所述的分割时钟筛选方法,其特征在于,所述当判定所述待分割时钟与所述第一分割时钟、所述第二分割时钟重叠时,方法还包括:将聚类合并的语法节点进行还原;

判断将还原后的语法节点移动到另一块可编程逻辑阵列上是否存在减少切割连线的条数且不新增切割的节点时钟;

当判定结果为肯定时,则设定该语法节点对应的节点时钟为第四分割时钟;

根据所述第一分割时钟、所述第二分割时钟、所述第三分割时钟和第四分割时钟生成分割时钟列表。

5.根据权利要求1所述的分割时钟筛选方法,其特征在于,所述重新设定该语法节点与关联节点之间的连线权重值,包括:判断所述关联节点的节点时钟是否存在所述预设时钟切割列表;

当判定所述关联节点的节点时钟不存在所述预设时钟切割列表时,则提高该语法节点与关联节点之间的连线权重值;当判定所述关联节点的节点时钟存在所述预设时钟切割列表时,则维持该语法节点与关联节点之间的连线权重值。

6.一种分割时钟筛选装置,其特征在于,所述装置包括:文件解析模块,用于解析可编程逻辑验证阵列的设计文件,得到语法树结构的语法节点及语法节点信息,所述语法节点信息至少包括与关联节点之间的连线权重值、与所述语法节点对应的节点时钟;

预设信息获取模块,用于获取最小分割时钟数量以及预设时钟切割列表;

第一时钟筛选模块,用于根据所述语法节点信息确定第一分割时钟,删除所述语法节点信息中的所述第一分割时钟,并重新设定该语法节点与关联节点之间的连线权重值;

节点聚类模块,用于根据更新后的语法节点信息,对所有语法节点进行聚类合并;

第二时钟筛选模块,用于根据合并后的所述语法节点信息中各节点时钟出现的次数从所述预设时钟切割列表筛选第二分割时钟,删除所述语法节点信息中的所述第二分割时钟,再次重新设定该语法节点与关联节点之间的连线权重值,所述连线权重值的设定均遵循预定规则,该预定规则为当被删除的时钟不存在预设时钟切割列表时,则提高该语法节点与关联节点之间的连线权重值;当被删除的时钟不存在预设时钟切割列表时,则维持当前的连线权重值;

第三时钟筛选模块,用于根据最小分割时钟数量以及所述连线权重值将所述语法树结构分配到可编程逻辑阵列上,得到与所述可编程逻辑阵列对应的第三分割时钟;

列表生成模块,用于根据所述第一分割时钟、所述第二分割时钟和所述第三分割时钟生成分割时钟列表。

7.根据权利要求6所述的分割时钟筛选装置,其特征在于,所述第二时钟筛选模块包括:

排序单元,用于根据合并后的所述语法节点信息中各节点时钟出现的次数,对所述预设时钟切割列表中的所述节点时钟进行排序,得到当前时钟排序列表;

第二时钟筛选单元,用于从所述当前时钟排序列表中筛选出现次数最高的节点时钟作为第二分割时钟。

8.根据权利要求6所述的分割时钟筛选装置,其特征在于,所述第三时钟筛选模块包括:

分配单元,用于根据所述连线权重值对所述语法树结构将所述语法树结构分配到可编程逻辑阵列上,得到与所述可编程逻辑阵列对应的待分割时钟;

第三时钟筛选单元,用于当判定所述待分割时钟不与所述第一分割时钟、所述第二分割时钟重叠时,设定所述待分割时钟为第三分割时钟;

重复单元,用于删除所述语法节点信息中的所述第三分割时钟,再次设定该语法节点与关联节点之间的连线权重值,直至所述第一分割时钟、所述第二分割时钟和所述第三分割时钟的数量达到最小分割时钟数量。

9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。

说明书 :

分割时钟筛选方法、装置、计算机设备和存储介质

技术领域

[0001] 本发明涉及芯片设计领域,具体涉及一种分割时钟筛选方法、装置、计算机设备和存储介质。

背景技术

[0002] 设计文件需要多块可编程逻辑阵列互联才能容纳并验证。可编程逻辑阵列可以是FPGA。通常技术采用FPGA验证系统对大型设计文件进行分割并验证,但在FPGA验证系统中,
跨FPGA信号传递的时延远大于FPGA内部信号传递的时延。当时钟信号需要跨FPGA传递,跨
FPGA信号传递的时延会导致时钟相位偏移,通常FPGA验证系统采用将跨FPGA的时钟在每块
FPGA上复制、降低用户时钟频率等方法,避免时钟相位偏移带来的问题,但这增加了时序分
析和TDM插入的难度,而且大大降低了系统运行的性能。具体原因如下:
[0003] 1. 时序分析:每块FPGA上均有时序分析器,结合该FPGA上的工程与输入、输出的时钟信号进行分析,确保能够满足建立时间和保持时间,以保证设计的功能与性能。当越多
的时钟信号需要跨FPGA传递时,时序分析器需要纳入分析的变量也越多,难度也越大。
[0004] 2. TDM插入:每个FPGA上需要跨FPGA传递的时钟信号,均对应一个TDM分组。当越多的时钟信号需要跨FPGA传递时,TDM需要插入的分组也就越多。
[0005] 因此,现在急需一种可以筛选切割次数低、扇出少的时钟的时钟筛选方法。

发明内容

[0006] 因此,为了克服上述现有技术的缺点,本发明提供一种切割指定数量的时钟,不仅减轻时序分析和TDM插入的难度,还能提高系统运行的性能与准确率的分割时钟筛选方法、
装置、计算机设备和存储介质。
[0007] 为了实现上述目的,本发明提供一种分割时钟筛选方法,包括:解析可编程逻辑验证阵列的设计文件,得到语法树结构的语法节点及语法节点信息,所述语法节点信息至少
包括与关联节点之间的连线权重值、与所述语法节点对应的节点时钟;获取最小分割时钟
数量以及预设时钟切割列表;根据所述语法节点信息确定第一分割时钟,删除所述语法节
点信息中的所述第一分割时钟,并重新设定该语法节点与关联节点之间的连线权重值;根
据更新后的语法节点信息,对所有语法节点进行聚类合并;根据合并后的所述语法节点信
息中各节点时钟出现的次数从所述预设时钟切割列表筛选第二分割时钟,删除所述语法节
点信息中的所述第二分割时钟,再次设定该语法节点与关联节点之间的连线权重值;根据
最小分割时钟数量以及所述连线权重值将所述语法树结构分配到可编程逻辑阵列上,得到
与所述可编程逻辑阵列对应的第三分割时钟;根据所述第一分割时钟、所述第二分割时钟
和所述第三分割时钟生成分割时钟列表。
[0008] 在其中一个实施例中,所述根据合并后的所述语法节点信息中各节点时钟出现的次数从所述预设时钟切割列表筛选第二分割时钟,包括:根据合并后的所述语法节点信息
中各节点时钟出现的次数,对所述预设时钟切割列表中的所述节点时钟进行排序,得到当
前时钟排序列表;从所述当前时钟排序列表中筛选出现次数最高的节点时钟作为第二分割
时钟。
[0009] 在其中一个实施例中,所述根据最小分割时钟数量以及所述连线权重值将所述语法树结构分配到可编程逻辑阵列上,得到与所述可编程逻辑阵列对应的第三分割时钟,包
括:根据所述连线权重值对所述语法树结构将所述语法树结构分配到可编程逻辑阵列上,
得到与所述可编程逻辑阵列对应的待分割时钟;当判定所述待分割时钟不与所述第一分割
时钟、所述第二分割时钟重叠时,设定所述待分割时钟为第三分割时钟;删除所述语法节点
信息中的所述第三分割时钟,再次设定该语法节点与关联节点之间的连线权重值,直至所
述第一分割时钟、所述第二分割时钟和所述第三分割时钟的数量达到最小分割时钟数量。
[0010] 在其中一个实施例中,所述当判定所述待分割时钟与所述第一分割时钟、所述第二分割时钟重叠时,方法还包括:将聚类合并的语法节点进行还原;判断将还原后的语法节
点移动到另一块可编程逻辑阵列上是否存在减少切割连线的条数且不新增切割的节点时
钟;当判定结果为肯定时,则设定该语法节点对应的节点时钟为第四分割时钟;根据所述第
一分割时钟、所述第二分割时钟、所述第三分割时钟和第四分割时钟生成分割时钟列表。
[0011] 在其中一个实施例中,所述重新设定该语法节点与关联节点之间的连线权重值,包括:判断所述关联节点的节点时钟是否存在所述预设时钟切割列表;当判定所述关联节
点的节点时钟不存在所述预设时钟切割列表时,则提高该语法节点与关联节点之间的连线
权重值;当判定所述关联节点的节点时钟存在所述预设时钟切割列表时,则维持该语法节
点与关联节点之间的连线权重值。
[0012] 本发明提供一种分割时钟筛选装置,所述装置包括:文件解析模块,用于解析可编程逻辑验证阵列的设计文件,得到语法树结构的语法节点及语法节点信息,所述语法节点
信息至少包括与关联节点之间的连线权重值、与所述语法节点对应的节点时钟;预设信息
获取模块,用于获取最小分割时钟数量以及预设时钟切割列表;第一时钟筛选模块,用于根
据所述语法节点信息确定第一分割时钟,删除所述语法节点信息中的所述第一分割时钟,
并重新设定该语法节点与关联节点之间的连线权重值;节点聚类模块,用于根据更新后的
语法节点信息,对所有语法节点进行聚类合并;第二时钟筛选模块,用于根据合并后的所述
语法节点信息中各节点时钟出现的次数从所述预设时钟切割列表筛选第二分割时钟,删除
所述语法节点信息中的所述第二分割时钟,再次设定该语法节点与关联节点之间的连线权
重值;第三时钟筛选模块,用于根据最小分割时钟数量以及所述连线权重值将所述语法树
结构分配到可编程逻辑阵列上,得到与所述可编程逻辑阵列对应的第三分割时钟;列表生
成模块,用于根据所述第一分割时钟、所述第二分割时钟和所述第三分割时钟生成分割时
钟列表。
[0013] 在其中一个实施例中,所述第二时钟筛选模块包括:排序单元,用于根据合并后的所述语法节点信息中各节点时钟出现的次数,对所述预设时钟切割列表中的所述节点时钟
进行排序,得到当前时钟排序列表;第二时钟筛选单元,用于从所述当前时钟排序列表中筛
选出现次数最高的节点时钟作为第二分割时钟。
[0014] 在其中一个实施例中,所述第三时钟筛选模块包括:分配单元,用于根据所述连线权重值对所述语法树结构将所述语法树结构分配到可编程逻辑阵列上,得到与所述可编程
逻辑阵列对应的待分割时钟;第三时钟筛选单元,用于当判定所述待分割时钟不与所述第
一分割时钟、所述第二分割时钟重叠时,设定所述待分割时钟为第三分割时钟;重复单元,
用于删除所述语法节点信息中的所述第三分割时钟,再次设定该语法节点与关联节点之间
的连线权重值,直至所述第一分割时钟、所述第二分割时钟和所述第三分割时钟的数量达
到最小分割时钟数量。
[0015] 一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
[0016] 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
[0017] 与现有技术相比,本发明的优点在于:可以根据用户设置的分割时钟数目、优先切割的时钟列表对设计进行次数低、扇出少的时钟分割,在满足了用户实际需求,同时减轻了
时序分析、逻辑验证和TDM插入的难度,提高了系统运行的性能与准确率。

附图说明

[0018] 为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域
普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0019] 图1是本发明的一个实施例中分割时钟筛选方法的示意图;
[0020] 图2是本发明的一个实施例中分割时钟筛选步骤的示意图;
[0021] 图3是本发明的一个实施例中分割时钟筛选装置的结构框图;
[0022] 图4为本发明的一个实施例中计算机设备的内部结构图。

具体实施方式

[0023] 下面结合附图对本申请实施例进行详细描述。
[0024] 以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请
一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实
施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神
下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可
以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下
所获得的所有其他实施例,都属于本申请保护的范围。
[0025] 要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/
或功能仅为说明性的。基于本申请,所属领域的技术人员应了解,本文中所描述的一个方面
可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例
来说,可使用本文中所阐述的任何数目和方面来实施设备及/或实践方法。另外,可使用除
了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践
此方法。
[0026] 还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘
制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可
能更为复杂。
[0027] 另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践方面。
[0028] 如图1所示,本申请实施例提供一种分割时钟筛选方法,可以应用在终端或服务器上,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式智能
设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现,方法包括
以下步骤:
[0029] 步骤101,解析可编程逻辑验证阵列的设计文件,得到语法树结构的语法节点及语法节点信息,语法节点信息至少包括与关联节点之间的连线权重值、与语法节点对应的节
点时钟。
[0030] 设计文件用于描述电路系统的各电路节点的结构以及电路节点之间的连接关系。设计文件中包含很多逻辑程序块(module),逻辑程序块间存在嵌套或并列等关系,每个逻
辑程序块与电路系统的各电路节点对应。电路节点可以是一个或多个电子元件。可编程逻
辑验证阵列是由多个可编程逻辑器件组成的元件阵列。在一个实施例中,可编程逻辑器件
可以是FPGA。设计文件可以包含模块名设定文件、模块划分文件和语法节点信息文件。模块
名设定文件包含每个语法节点所对应的原设计模块名信息,通过模块名设定文件可以知道
与各个语法节点对应的原设计模块名信息。模块划分文件包含事先指定的划分标准信息。
语法节点信息文件包含语法节点信息。
[0031] 语法节点信息至少包括与关联节点之间的连线权重值、与语法节点对应的节点时钟。语法节点信息可以包含每个语法节点占用的资源数、与该语法节点的时钟输入管脚直
连的节点时钟名、节点之间的线网连接信息等。资源数是每个语法节点在每块FPGA运行需
要承载的节点资源总数,不能超过该FPGA的资源总数。节点时钟名是该节点所属的时钟域,
可以用clk表示,一个时钟域可以对应多个语法节点的节点时钟,并为多个语法节点提供统
一的时钟信号。线网连接信息是各节点之间的连接关系,可以包含连线权重值。划分标准信
息是用户提前将某些节点固定到某块FPGA板上的信息。服务器对应用在可编程逻辑验证阵
列的设计文件进行解析,得到语法树结构的语法节点及语法节点信息。
[0032] 步骤102,获取最小分割时钟数量以及预设时钟切割列表。
[0033] 服务器获取最小分割时钟数量N以及预设时钟切割列表clk_list。N表示可分割时钟数目的最小值(当N=0时,表示对可切割的时钟数无限制)。最小分割时钟数量N可以是用
户设置的。预设时钟切割列表可以是用户指定的时钟列表。
[0034] 步骤103,根据语法节点信息确定第一分割时钟,删除语法节点信息中的第一分割时钟,并重新设定该语法节点与关联节点之间的连线权重值。
[0035] 关联节点是与语法节点通过连线连接的驱动节点(drive node),可以向语法节点输入数据或接收语法节点输出数据。服务器根据语法节点信息确定第一分割时钟,删除语
法节点信息中的第一分割时钟,并重新设定该语法节点与关联节点之间的连线权重值。服
务器根据语法节点信息确定一定会被切割的时钟,该时钟为第一分割时钟。设第一分割时
钟有m个,第一分割时钟列表为cut_clk_list。服务器检索所有语法节点带有的节点时钟,
当判断节点时钟存在时钟在cut_clk_list中,则删除该语法节点的该时钟;检索该语法节
点的所有连线(net)连接的关联节点,若关联节点带有不在clk_list中的时钟,则赋予该
net更高的权重值。
[0036] 步骤104,根据更新后的语法节点信息,对所有语法节点进行聚类合并。
[0037] 服务器根据更新后的语法节点信息,对所有语法节点进行聚类合并。聚类合并算法可以是现有常见的聚类算法,只要可以根据更新后的语法节点信息将语法节点部分合
并,减少分割的数量级即可。
[0038] 步骤105,根据合并后的语法节点信息中各节点时钟出现的次数从预设时钟切割列表筛选第二分割时钟,删除语法节点信息中的第二分割时钟,再次设定该语法节点与关
联节点之间的连线权重值。
[0039] 服务器根据合并后的语法节点信息中各节点时钟出现的次数从预设时钟切割列表筛选第二分割时钟,删除语法节点信息中的第二分割时钟,再次设定该语法节点与关联
节点之间的连线权重值。步骤103和步骤105中连线权重值的设定均遵循预定规则,该预定
规则为当被删除的时钟不存在预设时钟切割列表时,则提高该语法节点与关联节点之间的
连线权重值;当被删除的时钟不存在预设时钟切割列表时,则维持当前的连线权重值。但两
个步骤中,权重值的提高范围可以存在差异。
[0040] 步骤106,根据最小分割时钟数量以及连线权重值将语法树结构分配到可编程逻辑阵列上,得到与可编程逻辑阵列对应的第三分割时钟。
[0041] 服务器根据最小分割时钟数量以及连线权重值将语法树结构分配到可编程逻辑阵列上,得到与可编程逻辑阵列对应的第三分割时钟。
[0042] 步骤107,根据第一分割时钟、第二分割时钟和第三分割时钟生成分割时钟列表。
[0043] 服务器根据第一分割时钟、第二分割时钟和第三分割时钟生成分割时钟列表。
[0044] 上述分割时钟筛选方法,可以根据用户设置的分割时钟数目、优先切割的时钟列表对设计进行次数低、扇出少的时钟分割,在满足了用户实际需求,同时减轻了时序分析、
逻辑验证和TDM插入的难度,提高了系统运行的性能与准确率。
[0045] 在其中一个实施例中,根据合并后的语法节点信息中各节点时钟出现的次数从预设时钟切割列表筛选第二分割时钟,包括以下步骤:根据合并后的语法节点信息中各节点
时钟出现的次数,对预设时钟切割列表中的节点时钟进行排序,得到当前时钟排序列表;从
当前时钟排序列表中筛选出现次数最高的节点时钟作为第二分割时钟。
[0046] 服务器根据合并后的语法节点信息中各节点时钟出现的次数,对预设时钟切割列表中的节点时钟进行排序,得到当前时钟排序列表。服务器检索删除第一分割时钟后,所有
语法节点中所有节点时钟出现的次数,将clk_list中的时钟按照出现次数从高到低排序。
服务器从当前时钟排序列表中筛选出现次数最高的节点时钟作为第二分割时钟。
[0047] 如图2所示,在一个实施例中,根据最小分割时钟数量以及连线权重值将语法树结构分配到可编程逻辑阵列上,得到与可编程逻辑阵列对应的第三分割时钟,包括以下步骤:
[0048] 步骤201,根据连线权重值对语法树结构将语法树结构分配到可编程逻辑阵列上,得到与可编程逻辑阵列对应的待分割时钟。
[0049] 服务器在对设计文件进行解析(Parse)过程中,module可以被实例化为逻辑实例(Instance)并形成有层次关系的语法树结构,Instance就是实例树图中的节点(Node)。
Instance内含了逻辑功能,Instance之间存在连线关系。每个Instance唯一对应了一个
Module,Module之间的嵌套关系形成了语法树结构中节点之间的连接关系,各节点中的逻
辑关系中也包含与关联节点之间的连线权重值。服务器可以采用现有的各种分割算法对所
有语法节点进行分割,确定与语法节点对应的可编程逻辑阵列,进而确定与可编程逻辑阵
列对应的待分割时钟。
[0050] 步骤202,当判定待分割时钟不与第一分割时钟、第二分割时钟重叠时,设定待分割时钟为第三分割时钟。
[0051] 当判定待分割时钟不与第一分割时钟、第二分割时钟重叠时,服务器设定待分割时钟为第三分割时钟。
[0052] 步骤203,删除语法节点信息中的第三分割时钟,再次设定该语法节点与关联节点之间的连线权重值,直至第一分割时钟、第二分割时钟和第三分割时钟的数量达到最小分
割时钟数量。
[0053] 服务器删除语法节点信息中的第三分割时钟,再次设定该语法节点与关联节点之间的连线权重值,直至第一分割时钟、第二分割时钟和第三分割时钟的数量达到最小分割
时钟数量。服务器循环的次数为N‑m次。
[0054] 在其中一个实施例中,当判定待分割时钟与第一分割时钟、第二分割时钟重叠时,方法还包括以下步骤:将聚类合并的语法节点进行还原;判断将还原后的语法节点移动到
另一块可编程逻辑阵列上是否存在减少切割连线的条数且不新增切割的节点时钟;当判定
结果为肯定时,则设定该语法节点对应的节点时钟为第四分割时钟;根据第一分割时钟、第
二分割时钟、第三分割时钟和第四分割时钟生成分割时钟列表。
[0055] 当判定待分割时钟与第一分割时钟、第二分割时钟重叠时,服务器判定分割的数量级过细,服务器将步骤104中聚类合并的语法节点进行还原。服务器通过将聚合在一起的
语法节点,一个个尝试移动到另一块FPGA上实现节点的还原。服务器判断将还原后的语法
节点移动到另一块可编程逻辑阵列上是否存在减少切割连线的条数且不新增切割的节点
时钟。当判定结果为肯定时,则设定该语法节点对应的节点时钟为第四分割时钟。服务器根
据第一分割时钟、第二分割时钟、第三分割时钟和第四分割时钟生成分割时钟列表。
[0056] 在其中一个实施例中,删除第一分割时钟、第二分割时钟或第三分割时钟后,重新设定该语法节点与关联节点之间的连线权重值,均可以包括以下步骤:判断关联节点的节
点时钟是否存在预设时钟切割列表;当判定关联节点的节点时钟不存在预设时钟切割列表
时,则提高该语法节点与关联节点之间的连线权重值;当判定关联节点的节点时钟存在预
设时钟切割列表时,则维持该语法节点与关联节点之间的连线权重值。
[0057] 服务器判断关联节点的节点时钟是否存在预设时钟切割列表。当服务器判定关联节点的节点时钟不存在预设时钟切割列表时,则提高该语法节点与关联节点之间的连线权
重值;当服务器判定关联节点的节点时钟存在预设时钟切割列表时,则维持该语法节点与
关联节点之间的连线权重值。
[0058] 在一个实施例中,如图3所示,提供了一种分割时钟筛选装置,装置包括文件解析模块301、预设信息获取模块302、第一时钟筛选模块303、节点聚类模块304、第二时钟筛选
模块305、第三时钟筛选模块306和列表生成模块307:
[0059] 文件解析模块301,用于解析可编程逻辑验证阵列的设计文件,得到语法树结构的语法节点及语法节点信息,语法节点信息至少包括与关联节点之间的连线权重值、与语法
节点对应的节点时钟。
[0060] 预设信息获取模块302,用于获取最小分割时钟数量以及预设时钟切割列表。
[0061] 第一时钟筛选模块303,用于根据语法节点信息确定第一分割时钟,删除语法节点信息中的第一分割时钟,并重新设定该语法节点与关联节点之间的连线权重值。
[0062] 节点聚类模块304,用于根据更新后的语法节点信息,对所有语法节点进行聚类合并。
[0063] 第二时钟筛选模块305,用于根据合并后的语法节点信息中各节点时钟出现的次数从预设时钟切割列表筛选第二分割时钟,删除语法节点信息中的第二分割时钟,再次设
定该语法节点与关联节点之间的连线权重值。
[0064] 第三时钟筛选模块306,用于根据最小分割时钟数量以及连线权重值将语法树结构分配到可编程逻辑阵列上,得到与可编程逻辑阵列对应的第三分割时钟。
[0065] 列表生成模块307,用于根据第一分割时钟、第二分割时钟和第三分割时钟生成分割时钟列表。
[0066] 在其中一个实施例中,第二时钟筛选模块包括:
[0067] 排序单元,用于根据合并后的语法节点信息中各节点时钟出现的次数,对预设时钟切割列表中的节点时钟进行排序,得到当前时钟排序列表。
[0068] 第二时钟筛选单元,用于从当前时钟排序列表中筛选出现次数最高的节点时钟作为第二分割时钟。
[0069] 在其中一个实施例中,第三时钟筛选模块包括:
[0070] 分配单元,用于根据连线权重值对语法树结构将语法树结构分配到可编程逻辑阵列上,得到与可编程逻辑阵列对应的待分割时钟。
[0071] 第三时钟筛选单元,用于当判定待分割时钟不与第一分割时钟、第二分割时钟重叠时,设定待分割时钟为第三分割时钟。
[0072] 重复单元,用于删除语法节点信息中的第三分割时钟,再次设定该语法节点与关联节点之间的连线权重值,直至第一分割时钟、第二分割时钟和第三分割时钟的数量达到
最小分割时钟数量。
[0073] 在其中一个实施例中,装置还包括:
[0074] 还原模块,用于将聚类合并的语法节点进行还原。
[0075] 时钟修改模块,用于判断将还原后的语法节点移动到另一块可编程逻辑阵列上是否存在减少切割连线的条数且不新增切割的节点时钟。
[0076] 第四时钟设定模块,用于当判定结果为肯定时,则设定该语法节点对应的节点时钟为第四分割时钟。
[0077] 列表生成模块,用于根据第一分割时钟、第二分割时钟、第三分割时钟和第四分割时钟生成分割时钟列表。
[0078] 在其中一个实施例中,第一时钟筛选模块、第二时钟筛选模块、第三时钟筛选模块均包括:
[0079] 时钟判断单元,用于判断关联节点的节点时钟是否存在预设时钟切割列表。
[0080] 权重值设定单元,用于当判定关联节点的节点时钟不存在预设时钟切割列表时,则提高该语法节点与关联节点之间的连线权重值;当判定关联节点的节点时钟存在预设时
钟切割列表时,则维持该语法节点与关联节点之间的连线权重值。
[0081] 关于分割时钟筛选装置的具体限定可以参见上文中对于分割时钟筛选方法的限定,在此不再赘述。上述分割时钟筛选装置中的各个模块可全部或部分通过软件、硬件及其
组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以
以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的
操作。
[0082] 在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和
数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包
括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据
库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算
机设备的数据库用于存储分割时钟筛选数据。该计算机设备的网络接口用于与外部的终端
通过网络连接通信。该计算机程序被处理器执行时以实现一种分割时钟筛选方法。
[0083] 在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:解析可编程逻辑验证阵列的设计
文件,得到语法树结构的语法节点及语法节点信息,语法节点信息至少包括与关联节点之
间的连线权重值、与语法节点对应的节点时钟;获取最小分割时钟数量以及预设时钟切割
列表;根据语法节点信息确定第一分割时钟,删除语法节点信息中的第一分割时钟,并重新
设定该语法节点与关联节点之间的连线权重值;根据更新后的语法节点信息,对所有语法
节点进行聚类合并;根据合并后的语法节点信息中各节点时钟出现的次数从预设时钟切割
列表筛选第二分割时钟,删除语法节点信息中的第二分割时钟,再次设定该语法节点与关
联节点之间的连线权重值;根据最小分割时钟数量以及连线权重值将语法树结构分配到可
编程逻辑阵列上,得到与可编程逻辑阵列对应的第三分割时钟;根据第一分割时钟、第二分
割时钟和第三分割时钟生成分割时钟列表。
[0084] 在一个实施例中,处理器执行计算机程序时实现的根据合并后的语法节点信息中各节点时钟出现的次数从预设时钟切割列表筛选第二分割时钟,包括:根据合并后的语法
节点信息中各节点时钟出现的次数,对预设时钟切割列表中的节点时钟进行排序,得到当
前时钟排序列表;从当前时钟排序列表中筛选出现次数最高的节点时钟作为第二分割时
钟。
[0085] 在一个实施例中,处理器执行计算机程序时实现的根据最小分割时钟数量以及连线权重值将语法树结构分配到可编程逻辑阵列上,得到与可编程逻辑阵列对应的第三分割
时钟,包括:根据连线权重值对语法树结构将语法树结构分配到可编程逻辑阵列上,得到与
可编程逻辑阵列对应的待分割时钟;当判定待分割时钟不与第一分割时钟、第二分割时钟
重叠时,设定待分割时钟为第三分割时钟;删除语法节点信息中的第三分割时钟,再次设定
该语法节点与关联节点之间的连线权重值,直至第一分割时钟、第二分割时钟和第三分割
时钟的数量达到最小分割时钟数量。
[0086] 在一个实施例中,处理器执行计算机程序时实现的当判定待分割时钟与第一分割时钟、第二分割时钟重叠时,方法还包括:将聚类合并的语法节点进行还原;判断将还原后
的语法节点移动到另一块可编程逻辑阵列上是否存在减少切割连线的条数且不新增切割
的节点时钟;当判定结果为肯定时,则设定该语法节点对应的节点时钟为第四分割时钟;根
据第一分割时钟、第二分割时钟、第三分割时钟和第四分割时钟生成分割时钟列表。
[0087] 在一个实施例中,处理器执行计算机程序时实现的重新设定该语法节点与关联节点之间的连线权重值,包括:判断关联节点的节点时钟是否存在预设时钟切割列表;当判定
关联节点的节点时钟不存在预设时钟切割列表时,则提高该语法节点与关联节点之间的连
线权重值;当判定关联节点的节点时钟存在预设时钟切割列表时,则维持该语法节点与关
联节点之间的连线权重值。
[0088] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:解析可编程逻辑验证阵列的设计文件,得到语法树
结构的语法节点及语法节点信息,语法节点信息至少包括与关联节点之间的连线权重值、
与语法节点对应的节点时钟;获取最小分割时钟数量以及预设时钟切割列表;根据语法节
点信息确定第一分割时钟,删除语法节点信息中的第一分割时钟,并重新设定该语法节点
与关联节点之间的连线权重值;根据更新后的语法节点信息,对所有语法节点进行聚类合
并;根据合并后的语法节点信息中各节点时钟出现的次数从预设时钟切割列表筛选第二分
割时钟,删除语法节点信息中的第二分割时钟,再次设定该语法节点与关联节点之间的连
线权重值;根据最小分割时钟数量以及连线权重值将语法树结构分配到可编程逻辑阵列
上,得到与可编程逻辑阵列对应的第三分割时钟;根据第一分割时钟、第二分割时钟和第三
分割时钟生成分割时钟列表。
[0089] 在一个实施例中,计算机程序被处理器执行时实现的根据合并后的语法节点信息中各节点时钟出现的次数从预设时钟切割列表筛选第二分割时钟,包括:根据合并后的语
法节点信息中各节点时钟出现的次数,对预设时钟切割列表中的节点时钟进行排序,得到
当前时钟排序列表;从当前时钟排序列表中筛选出现次数最高的节点时钟作为第二分割时
钟。
[0090] 在一个实施例中,计算机程序被处理器执行时实现的根据最小分割时钟数量以及连线权重值将语法树结构分配到可编程逻辑阵列上,得到与可编程逻辑阵列对应的第三分
割时钟,包括:根据连线权重值对语法树结构将语法树结构分配到可编程逻辑阵列上,得到
与可编程逻辑阵列对应的待分割时钟;当判定待分割时钟不与第一分割时钟、第二分割时
钟重叠时,设定待分割时钟为第三分割时钟;删除语法节点信息中的第三分割时钟,再次设
定该语法节点与关联节点之间的连线权重值,直至第一分割时钟、第二分割时钟和第三分
割时钟的数量达到最小分割时钟数量。
[0091] 在一个实施例中,计算机程序被处理器执行时实现的当判定待分割时钟与第一分割时钟、第二分割时钟重叠时,方法还包括:将聚类合并的语法节点进行还原;判断将还原
后的语法节点移动到另一块可编程逻辑阵列上是否存在减少切割连线的条数且不新增切
割的节点时钟;当判定结果为肯定时,则设定该语法节点对应的节点时钟为第四分割时钟;
根据第一分割时钟、第二分割时钟、第三分割时钟和第四分割时钟生成分割时钟列表。
[0092] 在一个实施例中,计算机程序被处理器执行时实现的重新设定该语法节点与关联节点之间的连线权重值,包括:判断关联节点的节点时钟是否存在预设时钟切割列表;当判
定关联节点的节点时钟不存在预设时钟切割列表时,则提高该语法节点与关联节点之间的
连线权重值;当判定关联节点的节点时钟存在预设时钟切割列表时,则维持该语法节点与
关联节点之间的连线权重值。
[0093] 以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖
在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。