CN114510866B - 用于追踪逻辑系统设计的错误的方法及相关设备 - Google Patents

用于追踪逻辑系统设计的错误的方法及相关设备 Download PDF

Info

Publication number
CN114510866B
CN114510866B CN202111491365.5A CN202111491365A CN114510866B CN 114510866 B CN114510866 B CN 114510866B CN 202111491365 A CN202111491365 A CN 202111491365A CN 114510866 B CN114510866 B CN 114510866B
Authority
CN
China
Prior art keywords
sub
cone
cones
current
output
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
Application number
CN202111491365.5A
Other languages
English (en)
Other versions
CN114510866A (zh
Inventor
林扬淳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xinhuazhang Technology Co ltd
Original Assignee
Xinhuazhang Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xinhuazhang Technology Co ltd filed Critical Xinhuazhang Technology Co ltd
Priority to CN202111491365.5A priority Critical patent/CN114510866B/zh
Priority to US17/559,032 priority patent/US11841761B2/en
Publication of CN114510866A publication Critical patent/CN114510866A/zh
Application granted granted Critical
Publication of CN114510866B publication Critical patent/CN114510866B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1608Error detection by comparing the output signals of redundant hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Geometry (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本申请提供一种用于追踪逻辑系统设计的错误的方法及相关设备。该方法包括:获得所述逻辑系统设计的组合锥的断言失败,所述组合锥包括多个子锥,每个子锥表示所述逻辑系统设计的子电路并且具有一个或多个输入信号和输出信号,并且所述断言失败指示所述组合锥在当前时钟周期处的实际信号值不同于所述当前时钟周期处的预期信号值;获得所述多个子锥的机器学习(ML)模型;根据所述断言失败、所述多个子锥的机器学习模型和对应于所述多个子锥的动态回溯灵敏度(DBS)在所述多个子锥上执行回溯以获得回溯结果;以及根据所述回溯结果输出一个或多个目标子锥作为所述断言失败的候选根本原因。

Description

用于追踪逻辑系统设计的错误的方法及相关设备
技术领域
本申请涉及集成电路领域,并且更具体地,涉及用于追踪逻辑系统设计的错误的方法及相关设备。
背景技术
随着现今集成电路(IC)设计的尺寸增加,识别在给定电路节点处的不正确值的根本原因花费更长的时间。不正确值可以由IC的任何子电路导致,并引入到给定电路节点,并且潜在的错误功能子电路的数量可能很大,使得更难以识别错误的根本原因。现有的电路错误追踪方法需要对电路的每个节点进行逻辑建模,诸如库单元或子电路之类。
发明内容
有鉴于此,本申请提出了一种用于追踪逻辑系统设计的错误的方法及相关设备。
本申请第一方面,提供了一种用于追踪逻辑系统设计的错误的方法,包括:获得所述逻辑系统设计的组合锥的断言失败,所述组合锥包括多个子锥,每个子锥表示所述逻辑系统设计的子电路并且具有一个或多个输入信号和输出信号,并且所述断言失败指示所述组合锥在当前时钟周期处的实际信号值不同于所述当前时钟周期处的预期信号值;获得所述多个子锥的机器学习(ML)模型,每个子锥具有相应的ML模型,所述ML模型被训练为根据所述子锥的所述一个或多个输入信号的值来预测所述子锥的输出信号的值;根据所述断言失败、所述多个子锥的机器学习模型和对应于所述多个子锥的动态回溯灵敏度(DBS)在所述多个子锥上执行回溯以获得回溯结果;以及根据所述回溯结果输出一个或多个目标子锥作为所述断言失败的候选根本原因。
本申请第二方面,提供了一种用于追踪逻辑系统设计的错误的计算系统,包括:存储器,用于存储一组计算机指令;以及至少一个处理器,用于执行所述计算机指令以使得所述计算系统进行如第一方面所述的方法。
本申请第三方面,提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储电子装置的一组指令,该组指令用于使所述电子装置执行第一方面所述的方法。
本申请提供的用于追踪逻辑系统设计的错误的方法及相关设备,通过子锥的机器学习模型来判断错误信号的根本原因。由于本申请的实施例无需仿真设计,诊断过程是自动的并且被极大地简化,因此有效地减少人工并且仅提供具有其优先级的少量的候选根本原因,提高了调试逻辑系统设计的效率。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请的一些实施例的示例性计算系统的框图。
图2是根据本申请的一些实施例的用于追踪逻辑系统设计的错误的过程的流程图。
图3是示出根据本申请的一些实施例的组合锥的示意图。
图4是示出根据本申请的一些实施例的逻辑锥的人工神经网络(NN)模型的示意图。
图5A是示出根据本申请的一些实施例的单输入逻辑门的NN模型的示意图。
图5B是示出根据本申请的一些实施例的两输入逻辑门的NN模型的示意图。
图5C是示出根据本申请的一些实施例的另一两输入逻辑门的NN模型的示意图。
图5D是示出根据本申请的一些实施例的又一两输入逻辑门的NN模型的示意图。
图6是示出根据本申请的一些实施例的回溯原理的示意图。
图7A是示出根据本申请的一些实施例的逻辑门的回溯场景的示意图。
图7B是示出根据本申请的一些实施例的两个连接的逻辑门的回溯场景的示意图。
图8是示出根据本申请的一些实施例的组合锥的通用回溯场景的示意图。
图9A和图9B示出了根据本申请的一些实施例的回溯过程的示意性流程图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
本申请提供了一种电路错误追踪方法和装置。图1是根据本申请的一些实施例的示例性计算系统100的框图。如图1所示,计算系统100可以包括处理器102和存储介质104。根据某些实施例,计算系统100还可以包括显示器106、通信模块108、数据库110、额外的外围设备112和用于将多个设备耦合在一起的一个或多个总线114。某些设备可以省略,并且可以包括其他设备。
处理器102可以包括任何适当的处理器。在某些实施例中,处理器102可以包括用于多线程或并行处理的多个核和/或图形处理单元(GPU)。处理器102可以执行计算机程序指令的序列以执行各种过程,诸如执行用于逻辑系统设计的电路错误回溯、用于子电路的训练机器学习模型等。存储介质104可以是非暂时性计算机可读存储介质,并且可以包括存储器模块,诸如ROM、RAM、闪存模块和可擦除和可重写存储器,以及大容量存储装置,诸如CD-ROM、U-磁盘和硬盘等。存储介质104可以存储用于在由处理器102执行时实现各种过程的计算机程序。存储介质104还可以包括一个或多个数据库,用于存储某些数据,诸如逻辑锥的操作数据、对应于子电路的经训练的ML模型、对应于逻辑系统设计的有向图,并且可以对所存储的数据执行某些操作,诸如数据库搜索和数据检索。
通信模块108可以包括用于通过网络建立连接的网络设备。显示器106可以包括任何适当类型的计算机显示设备或电子设备显示器。外围设备112可以包括附加的I/O设备,诸如控制器、键盘等。
在操作中,处理器102可以被配置为执行存储在存储介质104上的指令并且执行与以下描述中详述的电路错误追踪方法相关的各种操作。
电路被设计为在给定多个输入信号时产生预期输出信号。当电路中的元件发生故障时,由故障元件引起的错误可以沿着源自该元件并且在电路的输出节点处结束的路径传播,使得该电路在某个时钟周期的实际输出信号的值不同于基于电路设计的预期输出信号。常规地,需要调试团队手动检查可能与错误相关的输入节点和输出节点的所有波形,从而导致调试团队的大量工作负荷。可以理解,在本申请的实施例中讨论的时钟周期处的任何信号的值是0或1。本申请提供了一种在给出被建模为有向图的电路设计以及有向图中的节点的经训练的机器学习模型时识别电路错误的根本原因的方法。通过将机器学习技术引入到逻辑设计的验证和调试中,本申请的方法可以通过将机器学习技术引入到逻辑系统设计的验证和调试中来将电路错误的可能的根本原因显著地缩小到有限范围
图2是根据本申请实施例的用于追踪逻辑系统设计的错误的方法的示意性流程图。该方法可以由任何合适的计算设备实现,诸如图1中所示的系统100。该方法可以包括如下步骤。
在S202,可以获得逻辑系统设计的组合锥的断言失败。组合锥包括多个子锥,每个子锥表示逻辑系统设计的子电路并且具有一个或多个输入信号和输出信号。逻辑系统设计的有向图可以用于将子锥描述为节点并且将子锥之间的连接关系描述为节点连接。断言失败指示在当前时钟周期的组合锥的实际信号值不同于当前时钟周期的预期信号值。例如,输出断言失败指示在一个时钟周期的组合锥的实际输出值不同于在该时钟周期的预期输出值。示例断言失败可以被表示为失败。此外,获得对应于该时钟周期的每个子锥的一个或多个输入信号和输出信号的值。在一些实施例中,逻辑系统设计的错误可以是引入到测试设计(DUT)或测试台(TB)中的设计错误。在一些实施例中,有向图是从逻辑设计的寄存器传输级(RTL)和/或网表导出的。
图3是示出根据本申请实施例的组合锥300的示意图。组合锥300可以是逻辑系统设计(未示出)的一部分。逻辑系统设计可以表示软件设计或硬件设计,诸如集成电路(IC)。如图3所示,组合锥300包括多个连接的子锥,例如302A至302F。图中未示出子锥之间的连接关系。每个子锥表示逻辑系统设计300的子电路,并且还可以被称为逻辑锥。子锥可以包括一个或多个逻辑门。逻辑系统设计300可以由具有多个节点的有向图描述和建模,有向图的每个节点表示子锥中的一个,并且节点根据子锥之间的连接关系连接。因此,子锥也可以被称为节点。逻辑系统设计300的主输入信号304表示为PI1,…PIi,…,PIm。对应于逻辑系统设计300的寄存器信号306表示为X1,…Xj,…,Xn。每个寄存器输出在先前时钟周期存储的值。寄存器可以是触发器或记录先前时钟周期的值的其他电路元件
逻辑系统设计300的输出信号308表示为Yk,其中k指示输出信号的值是输出矢量的第k位。Yk(t)表示在时钟周期t时,输出矢量的第k位的值。在硬件仿真或软件仿真期间,可以记录逻辑系统设计300的输入信号和输出信号的值。这里,待诊断的组合锥的输出向量的第3位可以按时间序列表示为Y3=1000100。这给出了具有7个时钟周期的第3位的输出,即,从最旧(最右边)到最近(最左边)的输出Y3(t-3)=0,Y3(t-2)=0,Y3(t-1)=1,Y3(t)=0,Y3(t+1)=0,Y3(t+2)=0,Y3(t+3)=1。在时钟周期t-3到t+3的主要输入信号PI1的示例值是0001101,在时钟周期t-3到t+3的寄存器信号X1的示例值是0110011。基于逻辑系统设计300的功能和预期目的,时钟周期处的输出信号的预期值是1,即,
Figure BDA0003399498550000051
而当执行逻辑系统设计300时,时钟周期t处的输出信号Y3的实际值是0,这指示已经发生错误。
所公开的方法和装置涉及执行电路诊断并识别输出错误(例如,时钟周期t-3处的第3位的错误)的单错误根本原因(例如,子锥302d)。可以基于子锥的机器学习模型和回溯原理来执行逻辑系统设计的诊断。
此外,输出向量的每个输出位(即,Yk)的故障可以被单独追踪和处理。可能存在输出向量在当前时钟周期中存在多个具有断言失败的位的情况。断言失败可以指示与期望值不同的位的值。所公开的错误追踪过程被指定用于输出向量的一个位,并且可以基于输出的位长度多次执行(即,k在1到输出向量的位长度的范围内)。应了解,可分别在单独错误追踪过程中追踪相同输出向量的各个位。
回到图2,在步骤S204,可以获得多个子锥的机器学习(ML)模型。每个子锥具有相应的ML模型,该ML模型被训练以根据子锥的一个或多个输入信号的值预测该子锥的输出信号的值。
子锥(也称为逻辑锥)的ML模型的训练和使用不需要逻辑锥的内部结构的先验知识。当逻辑锥包括多个逻辑门(诸如逻辑锥的网表)时,逻辑锥的内部结构可以指逻辑锥中包含的逻辑门以及逻辑门之间的连接关系。换句话说,逻辑锥可以被认为是黑盒。在记录的操作(也称为波形数据)中,根据逻辑锥的输入和输出信号的已知值执行ML模型的训练,以获得ML模型中的参数(诸如权重)。例如,波形数据可以从FSDB(快速信号数据库)文件获得。当训练完成时,ML模型可以基于逻辑锥的输入信号的当前值来预测输出值。经训练的机器学习模型还可以被称为经验。在一些实施例中,ML模型还可以提供预测值的置信水平。置信水平可以例如在50%到100%的范围内。
在一些实施例中,逻辑锥的ML模型可以是人工神经网络(NN)模型,诸如图神经网络(GNN)模型。NN模型可以包括具有多个变量和多个权重的激活函数,每个变量具有对应的权重。多个变量至少包括电路锥的输入信号。在训练过程中,输入信号的已知值和对应的正确输出值被输入到NN模型中以确定多个权重。在训练过程完成之后,权重可以是固定的。
在一些实施例中,当使用经训练的ML模型时,输入信号的当前值被输入到ML模型中(例如,具有确定的权重的激活函数),使得ML模型可以预测与输入信号的当前值对应的输出值。在一些实施例中,经训练ML模型包含预测与电路锥的输入信号的值对应的输出值的假设函数,且假设函数被表示为Hθ(…,xj,…)。经训练的机器学习模型还可以被称为经验。
图4是示出根据本申请的实施例的逻辑锥的人工神经网络(NN)模型的示意图。逻辑锥可以具有一个或多个输入信号和输出信号。NN模型可以包括包含一个或多个输入神经元4022的输入层402和包含输出神经元4042的输出层404。输入层402也可以被称为第一层,并且输出层404也可以被称为NN模型的第n层,n是大于1的整数。逻辑锥的输出信号对应于输出神经元4042。逻辑锥的每个输入信号对应于输入神经元4022中的一个。在一些实施例中,输入神经元4022还可以包括偏置神经元。在一些实施例中,逻辑锥的NN模型还可以包括一个或多个隐藏层406。隐藏层可以是NN模型的第二层到n-1层。可以根据逻辑锥的不同结构来确定隐藏层的数量以及每个隐藏层中神经元的数量。
此外,第i层的一个或多个神经元在第(i+1)层连接到神经元,i是范围从1到n-1的整数。第i层的神经元与第(i+1)层的神经元之间的每个连接对应于权重。可以根据第i层的一个或多个神经元的值与对应权重的线性组合来计算第(i+1)层的神经元的值。输出神经元的幅度由激活函数控制。在一些实施例中,激活函数可以是表示为g()的S形(逻辑)函数。
在逻辑锥的NN模型的训练过程中,从训练样本获得输入神经元4022和输出神经元406的值,以训练与NN模型中的连接相对应的权重。在训练完成之后,确定与NN模型中的连接相对应的权重,并且NN模型可以根据输入神经元4022的值、NN模型的结构和权重来预测输出神经元406的输出值。
图5A是示出根据本申请实施例的单输入逻辑门的NN模型的示意图。输入层包括表示为x的一个输入神经元和表示为(+1)的偏置神经元。与单输入门相对应的示例的训练后的假设函数可以是:
Hθ(x)=g((+1)×10+x×(-20))
这里,对应于x的示例训练权重是-20,并且偏置项的示例训练权重是10。表1列出了单输入门的训练的ML模型的所有可能的输入值和对应的输出值。表1中列出的值与NOT门的真值表一致。
表1:NOT门的经训练ML模型的输入值和对应的输出值
x <![CDATA[H<sub>θ</sub>(x)]]>
0 g(10)≈1
1 g(-10)≈0
图5B是示出根据本申请实施例的两输入逻辑门的NN模型的示意图。输入层包括分别表示为x1和x2的两个输入神经元和表示为(+1)的偏置神经元。对应于两输入门的示例性训练的假设函数可以是:
Hθ(x1,x2)=g((+1)×(-30)+x1×20+x2×20)
这里,示对应于x1和x2的例性的训练权重分别是20,并且偏置项的示例性训练权重是-30。表2列出两输入门的经训练ML模型的输入值和对应输出值的每个组合。表2中列出的值与AND门的真值表一致。
表2:AND门的经训练ML模型的输入值和输出值的组合
x1 x2 <![CDATA[H<sub>θ</sub>(x1,x2)]]>
0 0 g(-30)≈0
0 1 g(-10)≈0
1 0 g(-10)≈0
1 1 g(10)≈1
图5C是示出根据本申请实施例的两输入逻辑门的机器学习模型的示意图。输入层包括分别表示为x1和x2的两个输入神经元和表示为(+1)的偏置神经元。对应于两输入门的示例性经训练的假设函数可以是:
Hθ(x1,x2)=g((+1)×(-10)+x1×20+x2×20)
这里,分别对应于x1和x2的示例性训练的权重是20,并且偏置项的示例训练权重是-10。表3列出两输入门的经训练ML模型的输入值和对应输出值的每个组合。表3中列出的值与OR门的真值表一致。
表3:OR门的经训练ML模型的输入值和输出值的组合
x1 x2 <![CDATA[H<sub>θ</sub>(x1,x2)]]>
0 0 g(-10)≈0
0 1 g(10)≈1
1 0 g(10)≈1
1 1 g(30)≈1
图5D是示出根据本申请实施例的另一两输入逻辑门的机器学习模型的示意图。输入层包括表示为x1和x2的两个输入神经元,以及表示为(+1)的偏置神经元。隐藏层包括被表示为a1和a2的两个隐藏神经元,以及被表示为(+1’)的隐藏偏置神经元。隐藏偏置神经元不具有传入连接。与两个隐藏神经元相对应的示例训练假设函数可以是:
a1(x1,x2)=g((+1)×(-30)+x1×20)+x2×20);
a2(x1,x2)=g((+1)×10+x1×(-20)+x2×(-20))
与输出神经元相对应的示例性的经训练的假设函数可以是:
Hθ(a1,a2)=g((+1)×(-10)+a1×20+a2×20)
表4列出两输入门的经训练ML模型的输入值和对应输出值的每个组合。表4中列出的值与异或非(XNOR)门的真值表一致。
表4:XNOR门的经训练ML模型的输入值与输出值的组合
x1 x2 a1 a2 <![CDATA[H<sub>θ</sub>(x1,x2)]]>
0 0 0 1 g(10)≈1
0 1 0 0 g(-10)≈0
1 0 0 0 g(-10)≈0
1 1 1 0 g(10)≈1
可以理解,在以上示例中示出的任何假设函数中的经训练的权重的集合可以不是权重的唯一集合。假设函数可以应用生成相同结果的权重的其他集合。
除了在图5A-5D中示出的是逻辑门的NN模型的示例之外,还可以训练除了门级别之外的粒度的逻辑锥的NN模型。ML模型的粒度是相当灵活的。例如,可以训练门的NN模型,并且可以训练包含至少两个或更多个连接逻辑门(例如,2位加法器)的逻辑锥的NN模型。在粒度频谱的另一端,组合锥的整个电路可以被作为单个ML模型,训练可能更费力。将粒度设置在基于有向图的ML模型覆盖之间的某处的共同实践类似于逻辑合成中的技术映射。在一些实施例中,可以独立于逻辑系统设计而预先完成库单元(例如,诸如AND、OR、INVERT、NAND、触发器、锁存器和缓冲器之类的电子逻辑功能)的训练。
此外,所公开的方法不需要100%的经训练的模型的准确度。换句话说,逻辑锥的经训练的NN模型可能不总是预测与逻辑锥的设计功能一致的预期结果。如果预测准确度高于准确度阈值(例如,90%),则可以完成NN模型的训练。可以理解,更高的准确度阈值需要更多的训练数据和/或更长的训练时间。
返回到图2,在步骤S206,根据输出断言失败、多个子锥的机器学习模型和对应于多个子锥的动态回溯灵敏度可以在多个子锥上执行回溯,以获得回溯结果。对应于子锥的信号的动态回溯敏感度(dynamic backtracing sensitivity,DBS)指示在逻辑系统设计的一个敏感路径上一个信号的错误值引起了一个子锥的错误输出的可能性,该敏感路径将该信号引入该子锥。
图6是示出根据本申请实施例的回溯原理的示意图。如图6所示,信号r表示逻辑系统设计(例如,锥300)的错误的根本原因,信号y表示逻辑系统设计的输出信号,并且pk表示从r到y的路径上的信号。布尔差(BD)用于描述根本原因和输出信号之间的关系,如下:
Figure BDA0003399498550000101
这里,
Figure BDA0003399498550000102
指示r的错误值在y处是可观察/可检测的,并且
Figure BDA0003399498550000103
指示逻辑XOR关系。与BD表示相关的前提是从r到y存在敏感路径。换言之,信号r的错误可以通过该路径传播并引起y的错误。
BD遵循链规则
Figure BDA0003399498550000104
也就是说,在从r到y的敏感路径上在信号pk处可检测到r的错误值,且在敏感路径上的y信号处可以检测到错误值pk
此外,下面列出了与BD相关的基本公式,其中f和g每个表示一个信号,
Figure BDA0003399498550000109
表示信号f的逻辑否定,·表示逻辑和关系,并且+表示逻辑或关系。
Figure BDA0003399498550000105
Figure BDA0003399498550000106
Figure BDA0003399498550000107
Figure BDA0003399498550000108
在示例实施例中,通过逻辑锥的回溯可以用一个假设来执行:存在导致错误的单个根本原因。给定一个或多个输入信号的值和对应于错误输出发生的时钟周期的逻辑锥的输出信号,可以分别确定每个输入信号导致错误输出的概率。目标信号导致逻辑锥的输出信号的错误值的概率被称为与逻辑锥相对应的目标信号的动态回溯灵敏度(DBS),或者被称为与输出信号相对应的目标信号的DBS。可以理解,目标信号是输出信号的上游信号。例如,具有指示逻辑锥的输出信号的错误的DBS的逻辑锥的目标信号可能由目标信号作为其DBS而引起。回溯可以继续到相应地输出目标信号的另一逻辑锥。
在示例实施例中,DBS指示贝叶斯定理的根本原因的概率,并且符合守恒定律。例如,如果神经网络模型是100%准确,则对应于相同逻辑锥的所有输入信号的DBS的总和可以是100%。
在一些实施例中,输入信号的DBS可以由针对特定逻辑锥训练的神经网络模型来确定。
本文基于BD表示来描述回溯示例。图7A是示出根据本申请实施例的逻辑门的回溯场景的示意图。如图7A所示,逻辑AND门具有两个输入信号x1和x2以及输出信号y。在实际操作期间,两个输入信号的值在一个时钟周期分别为1和0,输出信号的期望值为1,并且输出信号的错误值为0。换句话说,断言“y=1”在该时钟周期发生故障。在AND门处的错误的BD表示可以被描述为:
Figure BDA0003399498550000111
在此实例中,导致y的不正确值的x1的不正确值的概率(即,与y对应的x1的DBS)为约0,即,DBS(x1)=0%。因为在该时钟周期x2的值是0,所以不管x1的值如何,预期输出都是0。也就是说,x1的错误在y处不可检测。因此,回溯过程无法通过x1继续。导致y的不正确值的x2的的不正确值的概率(即,与y对应的x2的DBS)为约1,即,DBS(x2)=100%。因此,回溯过程通过x2继续以追踪上游逻辑锥直到达到根本原因。
图7B是示出根据示例实施例的两个连接逻辑门的回溯场景的示意图。图7B中所示的电路组件包括图7A中所示的AND门和对应于信号x2的上游XNOR门。如先前所确定,回溯过程不追踪对应于信号x1的上游锥,因为对应的DBS为约0%,但是追踪对应于信号x2的上游锥(即,XNOR门)。XNOR门的输入信号的值在该时钟周期分别x3=1和x4=0,输出信号x2的值是0。错误和根本原因的BD表示可以被描述为:
Figure BDA0003399498550000112
在此示例中,导致x2的值x3的不正确值的概率(即,对应于x2的x3的DBS)为约50%,即,DBS(x3)=50%。类似地,可以确定DBS(x4)=50%。回溯可以分别继续评估x3和x4的上游信号。
从图7A和图7B中所示的示例,可以理解,DBS测量由上游信号(例如,图中的x1、x2、x3或x4)引起错误信号(例如,图中的y)的可能性。
应当注意,尽管出于解释的目的在图7A和图7B中示出了电路门类型,但是在示例性实施例中确定对应于逻辑锥的信号的DBS的过程不需要识别特定的门类型并且不需要知道BD表示。根据逻辑锥的经训练ML模型和逻辑锥的输入信号和输出信号的值确定对应于逻辑锥的目标信号的DBS。经训练的ML模型可以包括列出对应于输入值的每个组合的输入值和输出值的所有组合的真值表。例如,可以根据对应于时钟周期的输入信号(例如,x1=1和x2=0)、对应于时钟周期的输出信号的实际值(例如,y=0)以及如表2中所示的门的输入值和输出值的组合来确定DBS(x1)和DBS(x2)。可以根据对应于时钟周期的输入信号(例如,x1=3和x4=0)、对应于时钟周期的输出信号的实际值(例如,x2=0)以及如表4中所示的门的输入值和输出值的组合来确定DBS(x1)和DBS(x2)。
图8是示出根据本申请实施例的组合锥的通用回溯场景的示意图。如图8所示,组合锥具有多个输入信号(x1,…,xj,…,xn)和输出信号y。在时钟周期t处,每个输入信号具有对应的值,例如,(x1=0,…,xj=1,…,xn=0),并且输出信号具有错误的值,例如,y=0。换句话说,根据组合锥的设计目的或设计的功能,输出信号预期具有值1,而不是错误值0。因此,这可以被描述为在时钟周期t处的断言失败。
通过组合锥的回溯过程可以包括基于经验(即,经训练的机器学习模型)遍历xj以及在当前场景(x1=0,…,xj=1,…,xn=0)下回溯相应概率(即,DBS)。此外,可以在存在产生y的错误值的单个根本原因的假设的基础上执行通过组合锥的回溯过程。
返回到图3中所示的示例,组合图6中所示的回溯原理和上述ML模型,每个子锥具有对应的经训练的ML模型,并且图3中的信号的输出错误的回溯可以从其输出信号是图6中的组合锥300的输出信号的子锥302F开始。对应于时钟周期t的子锥302F的输入信号的值被输入到对应于子锥302F的经训练的ML模型以预测输出信号的值。当预测值与时钟周期t处的信号y的实际输出值一致时,可以假设子锥302F的功能是正常的,并且可以执行回溯以在从根本原因r到输出信号y的路径上定位上游信号p1。在此回溯期间,逐一评估子锥302F的输入信号以确定其对应于输出信号y的相应DBS。
在一些实施例中,可以将具有高于给定阈值的DBS的所有输入信号推送到AF优先级队列中,该AF优先级队列可以自动地按照优先级排序队列中的输入信号。因此,可以首先确定和分析子锥302F的所有输入信号中具有最高DBS的信号p1。信号p1可以是子锥302E的输出信号。回溯然后移动以评估子锥302E。当根据子锥302E的输入信号的值使用子锥302E的经训练ML模型的预测值与信号p1的值一致时,子锥302E的输入信号被逐一评估以确定其对应于信号p1的相应DBS。在子锥302E的所有输入信号中具有最高DBS的信号p2可以用优先级来确定和分析。信号p2可以是子锥302D的输出信号。当根据子锥302D的输入信号的值使用子锥302D的经训练的ML模型的预测值与信号p2的值不一致时,可以确定在子锥302D处发生错误,即,候选根本原因r是由子锥302D产生的信号p2。子锥302D可以被添加到回溯结果。
返回参考图2,在步骤S208处,回溯过程可以产生回溯结果,该回溯结果包括被标识为输出断言失败的候选根本原因的一个或多个目标子锥。在一些实施例中,每个目标子锥对应于故障概率。较高的故障概率指示在相应的目标子锥中出现根本原因的较大机会。
图9A和图9B示出了根据本申请实施例的回溯过程900的示意性流程图。回溯过程900可以由例如图1的计算系统100执行。并且过程900可以包括如下步骤。
在步骤S902处,当断言(例如,“Y(t)==1”)在时钟周期t失败时,计算系统100可以通过将输出断言失败推送到断言失败(AF)优先级队列中来开始回溯过程。
应当理解,在步骤S902之前,计算系统100可以获得逻辑系统设计的组合锥(例如,图3的300)的断言失败。组合锥可以包括多个子锥(例如,图3的302A-302F)。每个子锥可以表示逻辑设计系统的子电路并且具有一个或多个输入信号和输出信号。例如,如图4所示,图4的逻辑锥具有输入信号x1到xn和输出信号y。
断言失败可以指示在当前时钟周期的组合锥的实际信号值不同于当前时钟周期的预期信号值。预期信号可以由用户例如在断言中设置。
当锥的输出信号被断言时,断言失败可以是步骤S902的输出断言失败。应当理解,当锥的输入信号被断言时,断言失败也可以是输入断言失败。
断言失败可以被包括在具有一个或多个断言失败的AF优先级队列中。可以在回溯过程中维持AF优先级队列。每个断言失败识别子锥中的一个和所识别的子锥的预期输出值。断言失败还与对应于失败的时钟周期相关联。子锥标识符指示在该时钟周期的输出信号的值不等于期望值的子锥。因为每个子锥对应于机器学习模型,所以子锥标识符也被认为是ML模型标识符,并且可以表示为θ。组合锥中包括的子锥的总数可以表示为SQ(子锥量)。因此,θ可以在1至SQ的范围内。期望值是0或1。时钟周期可以是t。时钟周期“t-1”指示在时钟周期“t”之前一个周期的时钟周期。
每个断言失败具有对应的优先级。一个断言失败的优先级由该失败与当前子锥相关的概率来评估,并且可以在0到100%的范围内。在示例实施例中,根据下游子锥的输入信号的DBS确定上游子锥的断言失败的优先级,下游子锥的输入信号是上游子锥的输出信号。应当理解,当队列中的第一断言失败是输出断言失败时,被推入AF优先级队列中的断言失败是输出断言失败。
对应于输出断言失败的子锥标识符是组合锥中的最后子锥的标识符,即SQ。输出断言失败的对应优先级可以被设置为100%。
在一些实施例中,可以是输出向量的一个位的输出信号可以包括与在多个时钟周期的对应预期值不同的多个值。例如,Y3是1000100,但是期望值是1000010。在这种情况下,实际输出向量的两个位不同于预期值。即,可以生成两个断言失败。两个断言失败被单独地且独立地分析和诊断,尽管对时域中较早的断言失败的诊断可能更快地找到根本原因。
在步骤S904,计算系统100可以确定AF优先级队列是否为空(S904)。
在步骤S906处,如果AF优先级队列不为空(S904:否),则将断言失败Y弹出AF优先级队列以进行评估。在一些实施例中,断言失败Y对应于当前时钟周期t处的当前子锥的输出信号Y。在一些实施例中,如果AF优先级队列包括具有相同最高优先级值和不同子锥标识符的多个断言失败,则首先弹出对应于较少上游的子锥(即,更靠近输出的子锥)的断言失败。如果不同的子锥标识符指示处于相同级别的子锥,则可以随机地弹出断言失败。
首先,AF优先级队列可以仅包括与逻辑系统设计的最后子锥相对应的断言。当传播发生时,与其他子锥相关的其他断言可以被推入和弹出,从而实现回溯。
通过评估从逻辑系统设计的末尾开始的AF优先级队列中的每个断言失败,算法在组合锥中向后传播,以基于ML模型评估的概率找到输出错误的根本原因。记录在AF优先级队列中的断言失败使得这种传播的方向向前(即,要分析的敏感子锥),直到在这个方向上找到错误的根本原因为止。
评估当前子锥的断言失败通常可导致两种可能的根本原因,即,错误的子锥或错误的输入信号导致当前子锥的输出故障。
过程900的步骤S908-S918涉及探索可能的错误输入信号,并且过程900的步骤S920-S926涉及探索可能的错误子锥。
为了探索引起当前子锥的输出信号的输出故障的可能输入信号,回溯过程可以遍历与输出信号相关联的所有输入信号。在图9A和图9B中,关联输入信号表示为xj
在步骤S908处,计算系统100可以确定当前时钟周期t处的当前子锥的关联输入信号是否是寄存器的输出。
在此上下文中,寄存器可指代响应于在前一个时钟周期处接收的输入而输出信号的电路。如果关联输入信号xj是寄存器的输出,则其指示寄存器在前一个时钟周期的寄存器输入可能引起输出断言失败。因此,计算系统100可以向上前进以评估寄存器的寄存器输入,而不是评估作为寄存器的输出的关联输入信号。
因此,在步骤S910处,响应于关联输入信号xj是寄存器的输出,计算系统100可以在当前时钟周期t前一个周期的第一时钟周期(t-1)处确定寄存器的寄存器输入(图9B的xjil(t-1))的第一DBS。如上所述,子锥的输入的DBS指示一个信号的错误值引起在逻辑系统设计的敏感路径上的子锥的错误输出的可能性。在一些实施例中,信号(例如,关联输入信号)的DBS可以由对应于该子锥的ML模型(例如,图4的NN模型)确定。
然后,在步骤S911,计算系统100可以确定第一DBS是否大于或等于第一阈值(例如,图9B中的ε1)。并且响应于第一DB大于或等于第一阈值,计算系统100在步骤S912可以将寄存器输入(图9B的xjil(t-1))以及第一DBS推入到AF优先级队列。应当理解,如果第一DBS小于第一阈值,则寄存器输入(即,xjil(t-1))不太可能是输出断言失败的根本原因,并且计算系统100可以评估另一个寄存器输入,或者当对应于关联输入信号xj的所有寄存器输入被处理时,返回到步骤S908。
另一方面,如果关联输入信号不是寄存器的输出,则计算系统100可以在步骤S914处确定在当前时钟周期t处的关联输入信号xj的第二DBS。类似地,计算系统100可以在步骤S916确定第二DBS是否大于或等于第一阈值(例如,图9B中的ε1)。类似地,如果第二DBS小于第一阈值(例如,图9B中的ε1),则关联输入信号xj不太可能是输出断言失败的根本原因,并且计算系统100可以评估另一输入信号(即,返回到步骤S908),或者当所有关联输入信号被处理时,返回到步骤S904。
在步骤S918处,计算系统100可以将当前时钟周期处的关联输入信号连同DBS一起推入到AF优先级队列。
从上面可以看出,通过向上游追踪输出断言失败,可以识别错误输入信号并将其推入到AF优先级队列以用于额外评估。
在一些实施例中,具有关联输入信号的当前子锥可以是重收敛阱。这里,其输出信号具有两个以上分支并且该两个以上分支在逻辑系统设计中合并为单一子锥的一个子锥被称为重收敛源,并且逻辑系统设计中的该单一子锥被称为重收敛阱。在一些实施例中,计算系统100可以获得表示逻辑系统设计的子锥的连接关系的有向图,并且根据有向图确定当前子锥是否是重收敛阱。
当当前子锥被确定为重收敛阱时,分析额外的伪子锥(步骤S908-S926)。将当前子锥扩展到伪子锥,并且利用重收敛源更新伪子锥的输入。换句话说,重新收敛源的信号被认为是伪子锥的输入信号,并且分别被评估以确定可能的错误信号。在一些实施例中,当当前子锥不是重收敛阱并且针对当前子锥完成步骤S908-S926时,计算系统100可以返回到步骤S904以继续回溯过程。
当回溯过程900识别可能的错误输入信号时,回溯过程900还可以确定错误是否源自于错误的子锥。
在步骤S920处,使用当前子锥的ML模型,计算系统100可以根据当前时钟周期处的当前子锥的一个或多个输入信号的实际值来预测输出信号的值,并且根据当前时钟周期处的当前子锥的输出信号的期望值和当前时钟周期处的预测值来确定当前子锥的正常操作概率(即,图9A中的函数Y(t))。预期值可以是断言失败中的断言值。
在一些实施例中,当前子锥的正常操作概率由当前子锥的ML模型确定。可以根据子锥的训练数据来训练子锥的ML模型。从该子锥的多个成功操作中记录训练数据。子锥的训练数据包括子锥的一个或多个输入信号的输入值和子锥的输出信号的对应输出值。
然后,计算系统100可以根据正常操作概率Y(t)来确定当前子锥是否发生故障。
更具体地,在步骤S922,计算系统100可以确定正常操作概率Y(t)是否小于或等于第二阈值(例如,ε2)。如果正常操作概率Y(t)小于或等于ε2,则其指示断言失败的根本原因非常可能是子锥的设计。即,当前子锥发生故障。
因此,响应于当前子锥发生故障,计算系统100可以在步骤S924处使用下面的等式来确定故障函数PMal(Y(t))的值,也就是故障率。
PMal(Y(t))=(1-P(Y(t)))·DBS(Y(t))
如以上所讨论的,可以通过与特定子锥相对应的经训练的神经网络(即,ML模型)来确定P(Y(t)))和DBS(Y(t))。
在步骤S926,计算系统100可以将该子锥以及PMal(Y(t))推入到锥优先级队列中。锥优先级队列可以用于存储可能的错误子锥,并且可以进一步分析锥优先级队列中的子锥以确定断言失败的根本原因。PMal(Y(t))可指示对应子锥是错误的可能性。
返回到步骤S904,如果AF优先级队列为空,则回溯过程900可以转到步骤S928。在步骤S928处,响应于AF优先级队列为空,计算系统100可以根据回溯结果将一个或多个目标子锥的输出为断言失败的候选根本原因。
本申请的各种实施例提供了一种用于在不运行电路仿真或形式验证的情况下基于有向图中的节点的有向图和经训练的机器学习模型来识别逻辑设计中的错误的根本原因的方法和装置。与现有调试机制相比,诊断过程是自动的并且被极大地简化。代替在数百或数千个可能的原因上使用传统的错误诊断技术,锥优先级队列可以有效地减少人的努力并且仅提供具有其优先级的少数目的候选。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是用于执行上述方法的计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述对本申请特定实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (11)

1.一种用于追踪逻辑系统设计的错误的方法,包括:
获得所述逻辑系统设计的组合锥的断言失败,所述组合锥包括多个子锥,每个子锥表示所述逻辑系统设计的子电路并且具有一个或多个输入信号和输出信号,并且所述断言失败指示所述组合锥在当前时钟周期处的实际信号值不同于所述当前时钟周期处的预期信号值;
获得所述多个子锥的机器学习模型,每个子锥具有相应的机器学习模型,所述机器学习模型被训练为根据所述子锥的所述一个或多个输入信号的值来预测所述子锥的输出信号的值;
根据所述断言失败、所述多个子锥的机器学习模型和对应于所述多个子锥的动态回溯灵敏度在所述多个子锥上执行回溯以获得回溯结果;以及
根据所述回溯结果输出一个或多个目标子锥作为所述断言失败的候选根本原因。
2.如权利要求1所述的方法,其中,所述断言失败被包括在具有一个或多个断言失败的断言失败优先级队列中,并且在所述多个子锥上执行回溯进一步包括:
响应于所述断言失败优先级队列不为空,将所述断言失败从所述断言失败优先级队列弹出,所述断言失败对应于所述当前时钟周期处的当前子锥的输出信号;
根据当前子锥的机器学习模型,根据当前子锥在当前时钟周期的一个或多个输入信号的实际值来预测输出信号的值;
根据所述当前子锥在所述当前时钟周期的所述输出信号的期望值和在所述当前时钟周期的预测的输出信号的值,确定所述当前子锥的正常操作概率;
根据所述正常操作概率来确定所述当前子锥是否存在故障;以及
响应于所述当前子锥存在故障,将所述当前子锥推入到锥优先级队列。
3.根据权利要求2所述的方法,其中,在所述多个子锥上执行回溯进一步包括:确定所述当前子锥的一个或多个关联输入信号是否错误,并且确定所述当前子锥的所述一个或多个关联输入信号是否错误进一步包括:
确定在所述当前时钟周期的所述当前子锥的关联输入信号是否是寄存器的输出;
响应于所述关联输入信号是所述寄存器的输出,在所述当前时钟周期前一个周期的第一时钟周期处确定所述寄存器的寄存器输入的第一动态回溯灵敏度,其中,一个子锥的信号的动态回溯灵敏度指示所述信号的错误值导致所述逻辑系统设计中的敏感路径上的所述子锥的错误输出的可能性,并且所述信号的动态回溯灵敏度由对应于所述子锥的机器学习模型确定;
确定所述第一动态回溯灵敏度是否大于或等于第一阈值;以及
响应于所述第一动态回溯灵敏度大于或等于所述第一阈值,将在所述寄存器的所述第一时钟周期处的所述寄存器输入连同所述第一动态回溯灵敏度一起推入到所述断言失败优先级队列作为断言失败。
4.根据权利要求3所述的方法,其中,确定所述当前子锥的所述一个或多个关联输入信号是否错误还包括:
响应于所述关联输入信号不是寄存器的输出,确定所述关联输入信号的第二动态回溯灵敏度;
确定所述第二动态回溯灵敏度是否大于或等于所述第一阈值;以及
响应于所述第二动态回溯灵敏度大于或等于所述第一阈值,将在当前时钟周期处的所述关联输入信号连同所述第二动态回溯灵敏度一起推入到断言失败优先级队列作为断言失败。
5.如权利要求3所述的方法,还包括:
确定具有所述关联输入信号的所述当前子锥是否是重收敛阱,其中具有两个或更多个分支并且所述两个或更多个分支合并到所述逻辑系统设计中的单一子锥中的输出信号的子锥被称为重新收敛源,并且所述逻辑系统设计中的所述单一子锥被称为所述重收敛阱;
响应于确定所述当前子锥是所述重收敛阱,将所述当前子锥扩展到伪子锥,并且用所述重新收敛源更新所述伪子锥的输入,并且返回以通过所述重新收敛源执行回溯;以及
响应于确定所述当前子锥不是所述重收敛阱,如果所述断言失败优先级队列不为空,则将具有最高优先级的另一断言失败弹出所述断言失败优先级队列。
6.根据权利要求4所述的方法,其中,确定所述当前子锥是否是重收敛阱包括:
获得表示所述逻辑系统设计的子锥的连接关系的有向图;以及
根据所述有向图确定所述当前子锥是否是重收敛阱。
7.如权利要求1所述的方法,还包括:
获得从多个子锥的多个成功操作中记录的训练数据,子锥的训练数据包括所述子锥的一个或多个输入信号的输入值和所述子锥的输出信号的对应输出值;以及
根据所述子锥的训练数据训练所述子锥的机器学习模型。
8.根据权利要求2的方法,其中,
所述当前子锥的正常操作概率由所述当前子锥的机器学习模型确定。
9.如权利要求2所述的方法,还包括:
响应于所述断言失败优先级队列为空,根据所述回溯结果将所述锥优先级队列中的一个或多个目标子锥输出为所述断言失败的候选根本原因。
10.一种计算系统,包括:
存储器,用于存储一组计算机指令;以及
至少一个处理器,用于执行所述计算机指令以使得所述计算系统进行如权利要求1-9的任一项所述的方法。
11.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储电子装置的一组指令,该组指令用于使所述电子装置执行权利要求1至9任一项所述方法。
CN202111491365.5A 2021-12-08 2021-12-08 用于追踪逻辑系统设计的错误的方法及相关设备 Active CN114510866B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111491365.5A CN114510866B (zh) 2021-12-08 2021-12-08 用于追踪逻辑系统设计的错误的方法及相关设备
US17/559,032 US11841761B2 (en) 2021-12-08 2021-12-22 Method and system for tracing error of logic system design

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111491365.5A CN114510866B (zh) 2021-12-08 2021-12-08 用于追踪逻辑系统设计的错误的方法及相关设备

Publications (2)

Publication Number Publication Date
CN114510866A CN114510866A (zh) 2022-05-17
CN114510866B true CN114510866B (zh) 2023-04-18

Family

ID=81548447

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111491365.5A Active CN114510866B (zh) 2021-12-08 2021-12-08 用于追踪逻辑系统设计的错误的方法及相关设备

Country Status (2)

Country Link
US (1) US11841761B2 (zh)
CN (1) CN114510866B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11934258B1 (en) * 2022-12-08 2024-03-19 GM Global Technology Operations LLC Vehicle data analytics system for multi-layer control software architecture

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467583A (zh) * 2010-10-29 2012-05-23 国际商业机器公司 追踪不确定信号的方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100088257A1 (en) * 2006-02-09 2010-04-08 Yuan Lu Systems and Methods for Generating Predicates and Assertions
US20200394576A1 (en) * 2019-06-11 2020-12-17 At&T Intellectual Property I, L.P. Machine Learning-Enabled Event Tree for Rapid and Accurate Customer Problem Resolution
CN111709133A (zh) * 2020-06-11 2020-09-25 南京航空航天大学 一种基于模型故障树自动生成的系统安全性评估方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467583A (zh) * 2010-10-29 2012-05-23 国际商业机器公司 追踪不确定信号的方法和装置

Also Published As

Publication number Publication date
CN114510866A (zh) 2022-05-17
US20230176941A1 (en) 2023-06-08
US11841761B2 (en) 2023-12-12

Similar Documents

Publication Publication Date Title
US11361248B2 (en) Multi-stage machine learning-based chain diagnosis
US9569345B2 (en) Architectural failure analysis
US7861116B2 (en) Device, system, and method for optimized concurrent error detection
US11416662B1 (en) Estimating diagnostic coverage in IC design based on static COI analysis of gate-level netlist and RTL fault simulation
US11829694B2 (en) Verification of hardware design for component that evaluates an algebraic expression using decomposition and recombination
Gaur et al. Efficient hardware verification using machine learning approach
CN114510866B (zh) 用于追踪逻辑系统设计的错误的方法及相关设备
Pradhan et al. Predicting ${X} $-Sensitivity of circuit-inputs on test-coverage: a machine-learning approach
Goldstein et al. A lightweight error-resiliency mechanism for deep neural networks
US11681843B2 (en) Input data compression for machine learning-based chain diagnosis
Motaman et al. A perspective on test methodologies for supervised machine learning accelerators
Veronesi et al. Exploring software models for the resilience analysis of deep learning accelerators: the nvdla case study
Ahmadilivani et al. A systematic literature review on hardware reliability assessment methods for deep neural networks
US9404972B2 (en) Diagnosis and debug with truncated simulation
Devadze et al. Vector-Deductive Memory-Based Transactions for Fault-As-Address Simulation
CN106886487A (zh) 用于评价fpga软件可靠性的方法
Radecka et al. Design verification by test vectors and arithmetic transform universal test set
US11227090B2 (en) System and method for achieving functional coverage closure for electronic system verification
Ubar et al. True path tracing in structurally synthesized BDDs for testability analysis of digital circuits
Biswal et al. A discrete event system approach to on-line testing of digital circuits with measurement limitation
US7650579B2 (en) Model correspondence method and device
Oyeniran et al. Mixed-level identification of fault redundancy in microprocessors
Oyeniran et al. High-Level Fault Diagnosis in RISC Processors with Implementation-Independent Functional Test
Dave Application of machine learning in digital logic circuit design verification and testing
Krishnaswamy et al. Probabilistic Transfer Matrices

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