分割时钟筛选方法、装置、计算机设备和存储介质转让专利
申请号 : CN202110867351.2
文献号 : CN113312865B
文献日 : 2021-11-02
发明人 : 万鹭 , 张吉锋 , 邵中尉
申请人 : 上海国微思尔芯技术股份有限公司
摘要 :
权利要求 :
1.一种分割时钟筛选方法,其特征在于,包括:解析可编程逻辑验证阵列的设计文件,得到语法树结构的语法节点及语法节点信息,所述语法节点信息至少包括与关联节点之间的连线权重值、与所述语法节点对应的节点时钟;
获取最小分割时钟数量以及预设时钟切割列表;
根据所述语法节点信息确定第一分割时钟,删除所述语法节点信息中的所述第一分割时钟,并重新设定该语法节点与关联节点之间的连线权重值;
根据更新后的语法节点信息,对所有语法节点进行聚类合并;
根据合并后的所述语法节点信息中各节点时钟出现的次数从所述预设时钟切割列表筛选第二分割时钟,删除所述语法节点信息中的所述第二分割时钟,再次重新设定该语法节点与关联节点之间的连线权重值,所述连线权重值的设定均遵循预定规则,该预定规则为当被删除的时钟不存在预设时钟切割列表时,则提高该语法节点与关联节点之间的连线权重值;当被删除的时钟不存在预设时钟切割列表时,则维持当前的连线权重值;
根据最小分割时钟数量以及所述连线权重值将所述语法树结构分配到可编程逻辑阵列上,得到与所述可编程逻辑阵列对应的第三分割时钟;
根据所述第一分割时钟、所述第二分割时钟和所述第三分割时钟生成分割时钟列表。
2.根据权利要求1所述的分割时钟筛选方法,其特征在于,所述根据合并后的所述语法节点信息中各节点时钟出现的次数从所述预设时钟切割列表筛选第二分割时钟,包括:根据合并后的所述语法节点信息中各节点时钟出现的次数,对所述预设时钟切割列表中的所述节点时钟进行排序,得到当前时钟排序列表;
从所述当前时钟排序列表中筛选出现次数最高的节点时钟作为第二分割时钟。
3.根据权利要求1所述的分割时钟筛选方法,其特征在于,所述根据最小分割时钟数量以及所述连线权重值将所述语法树结构分配到可编程逻辑阵列上,得到与所述可编程逻辑阵列对应的第三分割时钟,包括:
根据所述连线权重值对所述语法树结构将所述语法树结构分配到可编程逻辑阵列上,得到与所述可编程逻辑阵列对应的待分割时钟;
当判定所述待分割时钟不与所述第一分割时钟、所述第二分割时钟重叠时,设定所述待分割时钟为第三分割时钟;
删除所述语法节点信息中的所述第三分割时钟,再次设定该语法节点与关联节点之间的连线权重值,直至所述第一分割时钟、所述第二分割时钟和所述第三分割时钟的数量达到最小分割时钟数量。
4.根据权利要求3所述的分割时钟筛选方法,其特征在于,所述当判定所述待分割时钟与所述第一分割时钟、所述第二分割时钟重叠时,方法还包括:将聚类合并的语法节点进行还原;
判断将还原后的语法节点移动到另一块可编程逻辑阵列上是否存在减少切割连线的条数且不新增切割的节点时钟;
当判定结果为肯定时,则设定该语法节点对应的节点时钟为第四分割时钟;
根据所述第一分割时钟、所述第二分割时钟、所述第三分割时钟和第四分割时钟生成分割时钟列表。
5.根据权利要求1所述的分割时钟筛选方法,其特征在于,所述重新设定该语法节点与关联节点之间的连线权重值,包括:判断所述关联节点的节点时钟是否存在所述预设时钟切割列表;
当判定所述关联节点的节点时钟不存在所述预设时钟切割列表时,则提高该语法节点与关联节点之间的连线权重值;当判定所述关联节点的节点时钟存在所述预设时钟切割列表时,则维持该语法节点与关联节点之间的连线权重值。
6.一种分割时钟筛选装置,其特征在于,所述装置包括:文件解析模块,用于解析可编程逻辑验证阵列的设计文件,得到语法树结构的语法节点及语法节点信息,所述语法节点信息至少包括与关联节点之间的连线权重值、与所述语法节点对应的节点时钟;
预设信息获取模块,用于获取最小分割时钟数量以及预设时钟切割列表;
第一时钟筛选模块,用于根据所述语法节点信息确定第一分割时钟,删除所述语法节点信息中的所述第一分割时钟,并重新设定该语法节点与关联节点之间的连线权重值;
节点聚类模块,用于根据更新后的语法节点信息,对所有语法节点进行聚类合并;
第二时钟筛选模块,用于根据合并后的所述语法节点信息中各节点时钟出现的次数从所述预设时钟切割列表筛选第二分割时钟,删除所述语法节点信息中的所述第二分割时钟,再次重新设定该语法节点与关联节点之间的连线权重值,所述连线权重值的设定均遵循预定规则,该预定规则为当被删除的时钟不存在预设时钟切割列表时,则提高该语法节点与关联节点之间的连线权重值;当被删除的时钟不存在预设时钟切割列表时,则维持当前的连线权重值;
第三时钟筛选模块,用于根据最小分割时钟数量以及所述连线权重值将所述语法树结构分配到可编程逻辑阵列上,得到与所述可编程逻辑阵列对应的第三分割时钟;
列表生成模块,用于根据所述第一分割时钟、所述第二分割时钟和所述第三分割时钟生成分割时钟列表。
7.根据权利要求6所述的分割时钟筛选装置,其特征在于,所述第二时钟筛选模块包括:
排序单元,用于根据合并后的所述语法节点信息中各节点时钟出现的次数,对所述预设时钟切割列表中的所述节点时钟进行排序,得到当前时钟排序列表;
第二时钟筛选单元,用于从所述当前时钟排序列表中筛选出现次数最高的节点时钟作为第二分割时钟。
8.根据权利要求6所述的分割时钟筛选装置,其特征在于,所述第三时钟筛选模块包括:
分配单元,用于根据所述连线权重值对所述语法树结构将所述语法树结构分配到可编程逻辑阵列上,得到与所述可编程逻辑阵列对应的待分割时钟;
第三时钟筛选单元,用于当判定所述待分割时钟不与所述第一分割时钟、所述第二分割时钟重叠时,设定所述待分割时钟为第三分割时钟;
重复单元,用于删除所述语法节点信息中的所述第三分割时钟,再次设定该语法节点与关联节点之间的连线权重值,直至所述第一分割时钟、所述第二分割时钟和所述第三分割时钟的数量达到最小分割时钟数量。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
说明书 :
分割时钟筛选方法、装置、计算机设备和存储介质
技术领域
背景技术
跨FPGA信号传递的时延远大于FPGA内部信号传递的时延。当时钟信号需要跨FPGA传递,跨
FPGA信号传递的时延会导致时钟相位偏移,通常FPGA验证系统采用将跨FPGA的时钟在每块
FPGA上复制、降低用户时钟频率等方法,避免时钟相位偏移带来的问题,但这增加了时序分
析和TDM插入的难度,而且大大降低了系统运行的性能。具体原因如下:
的时钟信号需要跨FPGA传递时,时序分析器需要纳入分析的变量也越多,难度也越大。
发明内容
装置、计算机设备和存储介质。
包括与关联节点之间的连线权重值、与所述语法节点对应的节点时钟;获取最小分割时钟
数量以及预设时钟切割列表;根据所述语法节点信息确定第一分割时钟,删除所述语法节
点信息中的所述第一分割时钟,并重新设定该语法节点与关联节点之间的连线权重值;根
据更新后的语法节点信息,对所有语法节点进行聚类合并;根据合并后的所述语法节点信
息中各节点时钟出现的次数从所述预设时钟切割列表筛选第二分割时钟,删除所述语法节
点信息中的所述第二分割时钟,再次设定该语法节点与关联节点之间的连线权重值;根据
最小分割时钟数量以及所述连线权重值将所述语法树结构分配到可编程逻辑阵列上,得到
与所述可编程逻辑阵列对应的第三分割时钟;根据所述第一分割时钟、所述第二分割时钟
和所述第三分割时钟生成分割时钟列表。
中各节点时钟出现的次数,对所述预设时钟切割列表中的所述节点时钟进行排序,得到当
前时钟排序列表;从所述当前时钟排序列表中筛选出现次数最高的节点时钟作为第二分割
时钟。
括:根据所述连线权重值对所述语法树结构将所述语法树结构分配到可编程逻辑阵列上,
得到与所述可编程逻辑阵列对应的待分割时钟;当判定所述待分割时钟不与所述第一分割
时钟、所述第二分割时钟重叠时,设定所述待分割时钟为第三分割时钟;删除所述语法节点
信息中的所述第三分割时钟,再次设定该语法节点与关联节点之间的连线权重值,直至所
述第一分割时钟、所述第二分割时钟和所述第三分割时钟的数量达到最小分割时钟数量。
点移动到另一块可编程逻辑阵列上是否存在减少切割连线的条数且不新增切割的节点时
钟;当判定结果为肯定时,则设定该语法节点对应的节点时钟为第四分割时钟;根据所述第
一分割时钟、所述第二分割时钟、所述第三分割时钟和第四分割时钟生成分割时钟列表。
点的节点时钟不存在所述预设时钟切割列表时,则提高该语法节点与关联节点之间的连线
权重值;当判定所述关联节点的节点时钟存在所述预设时钟切割列表时,则维持该语法节
点与关联节点之间的连线权重值。
信息至少包括与关联节点之间的连线权重值、与所述语法节点对应的节点时钟;预设信息
获取模块,用于获取最小分割时钟数量以及预设时钟切割列表;第一时钟筛选模块,用于根
据所述语法节点信息确定第一分割时钟,删除所述语法节点信息中的所述第一分割时钟,
并重新设定该语法节点与关联节点之间的连线权重值;节点聚类模块,用于根据更新后的
语法节点信息,对所有语法节点进行聚类合并;第二时钟筛选模块,用于根据合并后的所述
语法节点信息中各节点时钟出现的次数从所述预设时钟切割列表筛选第二分割时钟,删除
所述语法节点信息中的所述第二分割时钟,再次设定该语法节点与关联节点之间的连线权
重值;第三时钟筛选模块,用于根据最小分割时钟数量以及所述连线权重值将所述语法树
结构分配到可编程逻辑阵列上,得到与所述可编程逻辑阵列对应的第三分割时钟;列表生
成模块,用于根据所述第一分割时钟、所述第二分割时钟和所述第三分割时钟生成分割时
钟列表。
进行排序,得到当前时钟排序列表;第二时钟筛选单元,用于从所述当前时钟排序列表中筛
选出现次数最高的节点时钟作为第二分割时钟。
逻辑阵列对应的待分割时钟;第三时钟筛选单元,用于当判定所述待分割时钟不与所述第
一分割时钟、所述第二分割时钟重叠时,设定所述待分割时钟为第三分割时钟;重复单元,
用于删除所述语法节点信息中的所述第三分割时钟,再次设定该语法节点与关联节点之间
的连线权重值,直至所述第一分割时钟、所述第二分割时钟和所述第三分割时钟的数量达
到最小分割时钟数量。
时序分析、逻辑验证和TDM插入的难度,提高了系统运行的性能与准确率。
附图说明
普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
具体实施方式
一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实
施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神
下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可
以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下
所获得的所有其他实施例,都属于本申请保护的范围。
或功能仅为说明性的。基于本申请,所属领域的技术人员应了解,本文中所描述的一个方面
可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例
来说,可使用本文中所阐述的任何数目和方面来实施设备及/或实践方法。另外,可使用除
了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践
此方法。
制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可
能更为复杂。
设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现,方法包括
以下步骤:
点时钟。
辑程序块与电路系统的各电路节点对应。电路节点可以是一个或多个电子元件。可编程逻
辑验证阵列是由多个可编程逻辑器件组成的元件阵列。在一个实施例中,可编程逻辑器件
可以是FPGA。设计文件可以包含模块名设定文件、模块划分文件和语法节点信息文件。模块
名设定文件包含每个语法节点所对应的原设计模块名信息,通过模块名设定文件可以知道
与各个语法节点对应的原设计模块名信息。模块划分文件包含事先指定的划分标准信息。
语法节点信息文件包含语法节点信息。
连的节点时钟名、节点之间的线网连接信息等。资源数是每个语法节点在每块FPGA运行需
要承载的节点资源总数,不能超过该FPGA的资源总数。节点时钟名是该节点所属的时钟域,
可以用clk表示,一个时钟域可以对应多个语法节点的节点时钟,并为多个语法节点提供统
一的时钟信号。线网连接信息是各节点之间的连接关系,可以包含连线权重值。划分标准信
息是用户提前将某些节点固定到某块FPGA板上的信息。服务器对应用在可编程逻辑验证阵
列的设计文件进行解析,得到语法树结构的语法节点及语法节点信息。
户设置的。预设时钟切割列表可以是用户指定的时钟列表。
法节点信息中的第一分割时钟,并重新设定该语法节点与关联节点之间的连线权重值。服
务器根据语法节点信息确定一定会被切割的时钟,该时钟为第一分割时钟。设第一分割时
钟有m个,第一分割时钟列表为cut_clk_list。服务器检索所有语法节点带有的节点时钟,
当判断节点时钟存在时钟在cut_clk_list中,则删除该语法节点的该时钟;检索该语法节
点的所有连线(net)连接的关联节点,若关联节点带有不在clk_list中的时钟,则赋予该
net更高的权重值。
并,减少分割的数量级即可。
联节点之间的连线权重值。
节点之间的连线权重值。步骤103和步骤105中连线权重值的设定均遵循预定规则,该预定
规则为当被删除的时钟不存在预设时钟切割列表时,则提高该语法节点与关联节点之间的
连线权重值;当被删除的时钟不存在预设时钟切割列表时,则维持当前的连线权重值。但两
个步骤中,权重值的提高范围可以存在差异。
逻辑验证和TDM插入的难度,提高了系统运行的性能与准确率。
时钟出现的次数,对预设时钟切割列表中的节点时钟进行排序,得到当前时钟排序列表;从
当前时钟排序列表中筛选出现次数最高的节点时钟作为第二分割时钟。
语法节点中所有节点时钟出现的次数,将clk_list中的时钟按照出现次数从高到低排序。
服务器从当前时钟排序列表中筛选出现次数最高的节点时钟作为第二分割时钟。
Instance内含了逻辑功能,Instance之间存在连线关系。每个Instance唯一对应了一个
Module,Module之间的嵌套关系形成了语法树结构中节点之间的连接关系,各节点中的逻
辑关系中也包含与关联节点之间的连线权重值。服务器可以采用现有的各种分割算法对所
有语法节点进行分割,确定与语法节点对应的可编程逻辑阵列,进而确定与可编程逻辑阵
列对应的待分割时钟。
割时钟数量。
时钟数量。服务器循环的次数为N‑m次。
另一块可编程逻辑阵列上是否存在减少切割连线的条数且不新增切割的节点时钟;当判定
结果为肯定时,则设定该语法节点对应的节点时钟为第四分割时钟;根据第一分割时钟、第
二分割时钟、第三分割时钟和第四分割时钟生成分割时钟列表。
语法节点,一个个尝试移动到另一块FPGA上实现节点的还原。服务器判断将还原后的语法
节点移动到另一块可编程逻辑阵列上是否存在减少切割连线的条数且不新增切割的节点
时钟。当判定结果为肯定时,则设定该语法节点对应的节点时钟为第四分割时钟。服务器根
据第一分割时钟、第二分割时钟、第三分割时钟和第四分割时钟生成分割时钟列表。
点时钟是否存在预设时钟切割列表;当判定关联节点的节点时钟不存在预设时钟切割列表
时,则提高该语法节点与关联节点之间的连线权重值;当判定关联节点的节点时钟存在预
设时钟切割列表时,则维持该语法节点与关联节点之间的连线权重值。
重值;当服务器判定关联节点的节点时钟存在预设时钟切割列表时,则维持该语法节点与
关联节点之间的连线权重值。
模块305、第三时钟筛选模块306和列表生成模块307:
节点对应的节点时钟。
定该语法节点与关联节点之间的连线权重值。
最小分割时钟数量。
钟切割列表时,则维持该语法节点与关联节点之间的连线权重值。
组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以
以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的
操作。
数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包
括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据
库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算
机设备的数据库用于存储分割时钟筛选数据。该计算机设备的网络接口用于与外部的终端
通过网络连接通信。该计算机程序被处理器执行时以实现一种分割时钟筛选方法。
文件,得到语法树结构的语法节点及语法节点信息,语法节点信息至少包括与关联节点之
间的连线权重值、与语法节点对应的节点时钟;获取最小分割时钟数量以及预设时钟切割
列表;根据语法节点信息确定第一分割时钟,删除语法节点信息中的第一分割时钟,并重新
设定该语法节点与关联节点之间的连线权重值;根据更新后的语法节点信息,对所有语法
节点进行聚类合并;根据合并后的语法节点信息中各节点时钟出现的次数从预设时钟切割
列表筛选第二分割时钟,删除语法节点信息中的第二分割时钟,再次设定该语法节点与关
联节点之间的连线权重值;根据最小分割时钟数量以及连线权重值将语法树结构分配到可
编程逻辑阵列上,得到与可编程逻辑阵列对应的第三分割时钟;根据第一分割时钟、第二分
割时钟和第三分割时钟生成分割时钟列表。
节点信息中各节点时钟出现的次数,对预设时钟切割列表中的节点时钟进行排序,得到当
前时钟排序列表;从当前时钟排序列表中筛选出现次数最高的节点时钟作为第二分割时
钟。
时钟,包括:根据连线权重值对语法树结构将语法树结构分配到可编程逻辑阵列上,得到与
可编程逻辑阵列对应的待分割时钟;当判定待分割时钟不与第一分割时钟、第二分割时钟
重叠时,设定待分割时钟为第三分割时钟;删除语法节点信息中的第三分割时钟,再次设定
该语法节点与关联节点之间的连线权重值,直至第一分割时钟、第二分割时钟和第三分割
时钟的数量达到最小分割时钟数量。
的语法节点移动到另一块可编程逻辑阵列上是否存在减少切割连线的条数且不新增切割
的节点时钟;当判定结果为肯定时,则设定该语法节点对应的节点时钟为第四分割时钟;根
据第一分割时钟、第二分割时钟、第三分割时钟和第四分割时钟生成分割时钟列表。
关联节点的节点时钟不存在预设时钟切割列表时,则提高该语法节点与关联节点之间的连
线权重值;当判定关联节点的节点时钟存在预设时钟切割列表时,则维持该语法节点与关
联节点之间的连线权重值。
结构的语法节点及语法节点信息,语法节点信息至少包括与关联节点之间的连线权重值、
与语法节点对应的节点时钟;获取最小分割时钟数量以及预设时钟切割列表;根据语法节
点信息确定第一分割时钟,删除语法节点信息中的第一分割时钟,并重新设定该语法节点
与关联节点之间的连线权重值;根据更新后的语法节点信息,对所有语法节点进行聚类合
并;根据合并后的语法节点信息中各节点时钟出现的次数从预设时钟切割列表筛选第二分
割时钟,删除语法节点信息中的第二分割时钟,再次设定该语法节点与关联节点之间的连
线权重值;根据最小分割时钟数量以及连线权重值将语法树结构分配到可编程逻辑阵列
上,得到与可编程逻辑阵列对应的第三分割时钟;根据第一分割时钟、第二分割时钟和第三
分割时钟生成分割时钟列表。
法节点信息中各节点时钟出现的次数,对预设时钟切割列表中的节点时钟进行排序,得到
当前时钟排序列表;从当前时钟排序列表中筛选出现次数最高的节点时钟作为第二分割时
钟。
割时钟,包括:根据连线权重值对语法树结构将语法树结构分配到可编程逻辑阵列上,得到
与可编程逻辑阵列对应的待分割时钟;当判定待分割时钟不与第一分割时钟、第二分割时
钟重叠时,设定待分割时钟为第三分割时钟;删除语法节点信息中的第三分割时钟,再次设
定该语法节点与关联节点之间的连线权重值,直至第一分割时钟、第二分割时钟和第三分
割时钟的数量达到最小分割时钟数量。
后的语法节点移动到另一块可编程逻辑阵列上是否存在减少切割连线的条数且不新增切
割的节点时钟;当判定结果为肯定时,则设定该语法节点对应的节点时钟为第四分割时钟;
根据第一分割时钟、第二分割时钟、第三分割时钟和第四分割时钟生成分割时钟列表。
定关联节点的节点时钟不存在预设时钟切割列表时,则提高该语法节点与关联节点之间的
连线权重值;当判定关联节点的节点时钟存在预设时钟切割列表时,则维持该语法节点与
关联节点之间的连线权重值。
在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。