本发明涉及数字电路异常处理,具体涉及一种基于逻辑结构图聚类的数字电路模块划分方法及系统。
背景技术:
1、在摩尔定律的引领下,大规模数字电路中的元件和元件间的连接关系难以计数。与此同时,大规模数字电路中的故障检测与故障修复仍旧是无法避免的问题。传统的故障定位方法中一般通过手工分析,层次化划分结合故障分析手段等方法来进行故障定位,在大规模的电路中这些方法的可用性都需要依赖于模块划分的合理性,合理的模块划分可以有效的提高故障定位以及修复的效率。
2、在过去的研究中,针对故障检测中的模块划分问题有以下几种情况,首先是实验电路规模局限于几十到几百门之间,这类电路由于对整体进行检测修复的代价也是可接受的所以无需模块划分。其次是基于规则的手动划分方法,提出关于模块划分的基本原则,如基于电路功能的模块划分原则,将模拟电路划分为具有特定独立功能的模块,使其成为由不同层次的功能模块组合而成的系统。但这一模块划分方法十分依赖于执行划分原则的人员或者划分程序编写人员的经验水平。而近来大热的机器学习方法为大规模数字电路的自动划分提供了新的视角,但目前机器学习方法在大规模数字电路划分这一问题上的研究较为不足。从机器学习的基本原理角度上分析,机器学习的底层逻辑大约可以分为分类方法和聚类方法两种。分类方法高度依赖于数据集进行监督学习,而针对数字电路模块划分问题的高质量数据集是缺乏的,同时使用聚类方法进行无监督学习,虽然对高质量的数据集的需求没有那么强烈,但如何能够将实际电路映射为可以被聚类算法进行运算分析的抽象模型,同时保存节点的逻辑信息和节点间的连接关系,这一问题也有待解决。
技术实现思路
1、本发明的目的在于,提供一种基于逻辑结构图聚类的数字电路模块划分方法及系统,为数字电路的抽象图建模提供可行途径,并在建模结果的基础上实现数字电路的自动模块划分。
2、为实现上述目的,本申请提出一种基于逻辑结构图聚类的数字电路模块划分方法,包括:
3、将实际功能电路在fpga上实现得到结果中的比特流文件,依据所述比特流文件反编译出fpga底层实现在可编程逻辑块上的电路详细配置,形成对应的verilog hdl语言文件;
4、分析所述verilog hdl语言文件,确定每个可编程逻辑块的类型、初始化参数、输入接口、输出接口信息,记录汇总为配置信息表;
5、根据配置信息表中的信息生成图模型中的节点;
6、通过节点属性构建出图模型;
7、遍历所述图模型,使用基于布尔敏感度的逻辑结构图聚类方法识别图模型中模块划分的核心节点,并以该核心节点为基础,得到邻接节点是否具有逻辑相关性,将具有逻辑相关性的节点作为当前核心节点的从属节点,形成电路的模块划分。
8、进一步的,所述节点属性包括节点编号、节点对应可编程逻辑块的布尔函数、节点的输入来源信号、节点输出的接受信号。
9、进一步的,构建图模型方式为:将节点的输入来源信号、节点输出的接受信号与其他节点进行匹配,确定节点间的连接关系,得到图模型。
10、进一步的,基于布尔敏感度的逻辑结构图聚类方法是计算两个节点间的布尔敏感度是否达到聚类算法设定的目标值,进而确定两个节点是否应该划分为一个簇,以实现将图中节点和边聚类为簇的图聚类方法。
11、进一步的,核心节点的确定方式为:节点的邻接节点中和该节点具有逻辑相关性的节点数量达到所述聚类算法设定目标数量的节点。
12、进一步的,确定节点间具有逻辑相关性方式为:将两个节点合并为一个整体模块时,该整体模块的块布尔敏感度大于或等于原节点各自的块布尔敏感度,则两个节点间具有逻辑相关性。
13、根据本公开实施例的第二个方面,提供了一种基于逻辑结构图聚类的数字电路模块划分系统,包括:
14、语言文件获取模块,将实际功能电路在fpga上实现得到结果中的比特流文件,依据所述比特流文件反编译出fpga底层实现在可编程逻辑块上的电路详细配置,形成对应的verilog hdl语言文件;
15、配置信息表获取模块,分析所述verilog hdl语言文件,确定每个可编程逻辑块的类型、初始化参数、输入接口、输出接口信息,记录汇总为配置信息表;
16、节点生成模块,根据配置信息表中的信息生成图模型中的节点,其节点属性包括节点编号、节点对应可编程逻辑块的布尔函数、节点的输入来源信号、节点输出的接受信号;
17、模型构建模块,将节点的输入来源信号、节点输出的接受信号与其他节点进行匹配,确定节点间的连接关系,构建出图模型;
18、划分模块,遍历所述图模型,使用基于布尔敏感度的逻辑结构图聚类方法识别图模型中模块划分的核心节点,并以该核心节点为基础,得到邻接节点是否具有逻辑相关性,将具有逻辑相关性的节点作为当前核心节点的从属节点,形成电路的模块划分。
19、根据本公开实施例的第三个方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上运行的计算机程序,所述处理器执行所述程序时实现所述的一种基于逻辑结构图聚类的数字电路模块划分方法。
20、根据本公开实施例的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述的一种基于逻辑结构图聚类的数字电路模块划分方法。
21、本发明采用的以上技术方案,与现有的技术相比,具有的优点是:采用图聚类思想进行数字电路的模块划分,有效降低了模块划分工作对于个人经验的依赖,提高划分工作的效率和可靠性。在一般结构性图聚类方法仅在结构角度对图进行分析的基础上,融合布尔敏感度对实际电路中的逻辑关系进行分析,提高了对图中信息的利用率,使得划分结果更加准确且合理。提出了在可编程逻辑块基础上将电路建模为图模型的方法,凸显出了电路中的逻辑信息和结构信息,有效提高了模块划分的效率。
1.一种基于逻辑结构图聚类的数字电路模块划分方法,其特征在于,包括:
2.根据权利要求1所述一种基于逻辑结构图聚类的数字电路模块划分方法,其特征在于,所述节点属性包括节点编号、节点对应可编程逻辑块的布尔函数、节点的输入来源信号、节点输出的接受信号。
3.根据权利要求1所述一种基于逻辑结构图聚类的数字电路模块划分方法,其特征在于,构建图模型方式为:将节点的输入来源信号、节点输出的接受信号与其他节点进行匹配,确定节点间的连接关系,得到图模型。
4.根据权利要求1所述一种基于逻辑结构图聚类的数字电路模块划分方法,其特征在于,基于布尔敏感度的逻辑结构图聚类方法是计算两个节点间的布尔敏感度是否达到聚类算法设定的目标值,进而确定两个节点是否应该划分为一个簇,以实现将图中节点和边聚类为簇的图聚类方法。
5.根据权利要求1所述一种基于逻辑结构图聚类的数字电路模块划分方法,其特征在于,核心节点的确定方式为:节点的邻接节点中和该节点具有逻辑相关性的节点数量达到所述聚类算法设定目标数量的节点。
6.根据权利要求1所述一种基于逻辑结构图聚类的数字电路模块划分方法,其特征在于,确定节点间具有逻辑相关性方式为:将两个节点合并为一个整体模块时,该整体模块的块布尔敏感度大于或等于原节点各自的块布尔敏感度,则两个节点间具有逻辑相关性。
7.一种基于逻辑结构图聚类的数字电路模块划分系统,其特征在于,包括:
