CN117272894A - 用于电路设计调试的机器学习技术方法、装置及系统 - Google Patents

用于电路设计调试的机器学习技术方法、装置及系统 Download PDF

Info

Publication number
CN117272894A
CN117272894A CN202310762294.0A CN202310762294A CN117272894A CN 117272894 A CN117272894 A CN 117272894A CN 202310762294 A CN202310762294 A CN 202310762294A CN 117272894 A CN117272894 A CN 117272894A
Authority
CN
China
Prior art keywords
signal values
machine learning
integrated circuit
learning model
model
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.)
Pending
Application number
CN202310762294.0A
Other languages
English (en)
Inventor
V·帕德马纳班
G·拉克什马南
K·S·沙阿
I·阿劳丁·纳德拉
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of CN117272894A publication Critical patent/CN117272894A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • 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/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • 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
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/38Circuit design at the mixed level of analogue and digital signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • 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
    • 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/084Backpropagation, e.g. using gradient descent
    • 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
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/16Equivalence checking

Landscapes

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

Abstract

本申请实施例涉及用于电路设计调试的机器学习技术方法、装置及系统。一种方法包括:从集成电路获得(702)输入信号值和输出信号值;以及将所获得的输入信号值和输出信号值提供(704)给机器学习模型。该方法进一步包括:从该机器学习模型获得(706)一组预测的信号值,其中,该组预测的信号值对应于该集成电路内部的信号;以及将该组预测的信号值与一个或多个预期信号值进行比较(708),以调试该集成电路。

Description

用于电路设计调试的机器学习技术方法、装置及系统
相关申请的交叉引用
本申请是于2022年6月21日提交的名称为“Machine Learning Techniques forCircuit Design Verification[用于电路设计验证的机器学习技术]”的美国申请号17/845,784的继续申请,该美国申请通过援引并入本文。
技术领域
本申请实施例涉及集成电路。
背景技术
现代集成电路(IC)、包括模拟的和数字的集成电路,都非常复杂,单个IC上有数万个部件至数十亿个部件。这样的IC通常是通过多步骤设计周期来设计的,这可能花费大量的时间,通常是几年。作为这个IC设计周期的一部分,可以创建原型IC,以便对照预期的设计/规格进行测试和表征。
这种测试和表征通常包括等效性检查,它将被测的模拟或模拟/数字混合IC响应于外部刺激而产生的模拟波形与预期的模拟波形进行比较。这些预期的模拟波形可以例如由仿真生成。为了生成这些预期的波形,针对被测IC可以接收输入的每个时间尺度对该IC进行详细建模。例如,如果IC能以稳态并且以100MHz的速率接收输入,则可以在1Hz到1+GHz的频率范围上对该IC进行建模,以获得足够的时间尺度来检测例如模拟波形中可能有问题的瞬时尖峰或骤降,这是因为该模拟波形是连续信号。另外,由于模拟功能通常被指定为极限值而不是严格意义上的二进制值,因此对于单个输入而言,可能有许多输出是有效的。进一步地,这些模型很难在这些时间尺度上都与被测IC准确同步,或者要利用需要耗费很多时间才能生成的详细建模。预测IC在任何时间尺度上的输出波形值的技术可能是有用的。此外,这种技术对于被测IC的表征和验证以及在IC的设计期间可能是有用的。
发明内容
在一个示例中,一种方法包括:从集成电路获得输入信号值和输出信号值;以及将所获得的输入信号值和输出信号值提供给机器学习模型。该方法进一步包括从该机器学习模型获得一组预测的信号值,其中,该组预测的信号值对应于该集成电路内部的信号。该方法包括将该组预测的信号值与一个或多个预期信号值进行比较,以调试该集成电路。
在另一个示例中,一种非暂态程序存储设备包括存储在其上的指令,这些指令用于使一个或多个处理器:从集成电路获得输入信号值和输出信号值;将所获得的输入信号值和输出信号值提供给机器学习模型;以及从该机器学习模型获得一组预测的信号值。该组预测的信号值对应于集成电路内部的信号。该一个或多个处理器还被配置为将该组预测的信号值与一个或多个预期信号值进行比较,以调试该集成电路。
在又另一个示例中,一种用于调试集成电路的系统包括存储器以及操作性地耦合到该存储器的一个或多个处理器。该一个或多个处理器被配置为执行指令以使该一个或多个处理器:从集成电路获得输入信号值和输出信号值;将所获得的输入信号值和输出信号值提供给机器学习模型;以及从该机器学习模型获得一组预测的信号值。该组预测的信号值对应于该集成电路内部的信号。该一个或多个处理器还被配置为将该组预测的信号值与一个或多个预期信号值进行比较,以调试该集成电路。
附图说明
为了详细描述各种示例,现在将参考附图,在附图中:
图1A是图示了根据本披露的各方面的电路仿真模型的输出的示例可视化的信号图。
图1B图示了根据本披露的各方面的示例FSM模型和对应的电路。
图2是图示了根据本披露的各方面的用于选择信号值数据和权重的技术的流程图。
图3A是图示了根据本披露的各方面的IC的示例ML模型的框图。
图3B是图示了根据本披露的各方面的ML模型的层的示例结构的框图。
图4是图示了根据本披露的各方面的IC的级联ML模型的框图。
图5是根据本披露的各方面的示例电路块级级联ML模型的框图。
图6是图示了根据本披露的各方面的使用IC的反演模型进行调试的框图。
图7是图示了根据本披露的各方面的用于调试集成电路的技术的流程图。
图8是图示了根据本披露的各方面的用于验证IC的技术的流程图。
图9是根据本披露的各方面的示例计算设备的框图。
附图中使用相同的附图标号或其他附图标记来指代(在功能和/或结构方面)相同或相似的特征。
具体实施方式
一般来说,设计模拟电路首先要有一套电路应该支持的规格和/或特征。根据这些规格和/或特征,可以创建电路设计,从而描述电路的电气部件的物理参数。基于该设计,可以为电路和/或电路的子部分创建一个或多个模型。例如,可以例如用硬件描述语言(HDL)对电路进行建模,并且可以在电路仿真软件(比如集成电路专用仿真程序(SPICE)建模软件)上对电路进行仿真,并对照IC规格对其进行建模。这些仿真可以生成详细的日志和其他信息。
图1A是图示了根据本披露的各方面的电路仿真模型的输出的示例可视化的信号图100。在信号图100所示的示例中,电路可以具有N个输入和输出信号102A...102N。这些信号可以包括去往电路的输入信号和来自电路的输出信号,以及电路内部的信号。每个信号都具有可以变化的连续值。例如,来自电路的输出信号值可能会随着一个或多个输入信号值的变化而发生变化。电路仿真软件对这些信号值和对应的变化建模,以生成对应的预期信号值的日志。这些信号值在信号图100中以图形方式示出。
另外,可以为电路开发有限状态机(FSM)模型。作为示例,可以基于管理电路的逻辑来创建Verilog FSM模型。FSM模型描述了电路可能处于的状态以及管理状态之间的转变的逻辑。图1B图示了根据本披露的各方面的示例FSM模型150和对应的电路160。在这个示例中,FSM模型150包括四种状态152A、152B、152C和152D,以及可能导致状态之间的转变的条件。可以理解,虽然FSM模型150是FSM的图形表示,但FSM模型150也可以比如通过使用二进制、格雷、独热、独冷等编码方案被编码为一组值。
在IC设计期间,可以在电路仿真模型上仿真输入/输出信号的多种不同组合,例如以验证IC的设计是否对应于规格和/或特征。可以基于用于验证设计的一组测试用例来定义这些不同组合。作为测试IC设计的一部分,可以使用电路仿真器的覆盖率工具来确定测试用例对IC设计的锻炼程度。覆盖率工具可以返回测试用例对IC设计和/或FSM状态转变的覆盖程度的指示。另外,代码覆盖率工具可以被配置为生成按照每个测试用例对IC设计和/或FSM状态转变的覆盖程度进行排名的测试用例列表。
这种每个测试用例的覆盖率度量可以用于识别出可以从中提取预期信号值的较高优先级的测试用例。例如,覆盖率工具可以能够确定覆盖IC设计和/或FSM状态转变的一组优化的测试用例。可以以各种方式选择多个测试用例,例如,基于由覆盖率工具确定的优化的测试用例组、覆盖率阈值目标、设定数量的测试用例、或从测试用例生成的目标量的测试数据、其一些组合等。可以存储从对测试用例的仿真中得到的预期信号值数据,并将其用于训练IC的机器学习(ML)模型。
因为仿真可以几乎以任何时间步长运行,因此从仿真生成的该组预期信号值可能非常广泛,所以并非使用所有测试用例,而是可以使用从对测试用例的子集的仿真得到的预期信号值数据来训练IC的ML模型。还可以对仿真使用多个时间步长(因为模拟IC本质上是连续的,而不是离散的(比如数字信号)),并且多个时间步长实现了仿真的准确性与仿真的速度之间的平衡。在多个时间步长上执行所有这些测试用例可能会为预期信号值生成大量数据,并且这些数据可能过于广泛,而无法用作IC的机器学习(ML)模型的训练数据。另外,完整的测试用例集可能是相对不平衡的数据集,因为完整的测试套件可能包括例如错误用例、开机自检、重置操作、回归测试用例等,这些用例可能对训练ML模型没有用处。选择较少的测试用例还有助于将生成的数据量减少到更容易管理的水平。基于测试用例对IC设计/FSM状态的覆盖程度来选择测试用例有助于在限制测试用例的数量和冗余的同时最大限度地覆盖IC设计,同时有助于保持平衡的数据集。
在一些情况下,可以基于IC的输出信号来选择用于训练IC的ML模型的预期信号值数据。图2是图示了根据本披露的各方面的用于选择信号值数据和权重的技术的流程图200。如上文所指示的,可以在正在开发的IC上仿真完整的测试用例集,以生成预期信号值的测试数据集202。该测试数据集包括预期的顶层信号值(例如,输入到/输出自IC的信号)以及内部信号值(例如,IC内部的电路的信号值)。在框204,从预期信号值中随机选择一定百分比的信号值数据。例如,从所有预期信号值(顶层信号和内部信号二者)中随机选择这些预期信号值中百分之四十的信号值数据。通过随机选择信号值数据的子集,大大减少了所有信号的所有数据值的集合,同时仍保留了一组相对具有代表性的数据值。
在框206,选择用于建模的目标输出信号。例如,选择IC中的所关注的特定输出信号作为初始输出信号。在框208,基于重要性对候选内部信号进行加权。可以基于候选内部信号被认为对于确定在框206选择的输出信号的重要性来选择候选内部信号,并且为这些选择的内部信号设置权重。例如,设计者认为对于确定输出信号可能更重要的内部信号可以被指派更重的权重。假设内部信号的重要性可以是一种性能增强,有助于指导该技术来确定与确定输出信号值最相关的内部信号。例如,也可以使用随机选择一组内部信号和/或尝试内部信号的所有组合的方式,但计算成本可能更高。在框210,创建输出信号的线性回归模型。在一些情况下,可以使用标准的线性回归算法来基于该组内部信号得出输出信号。例如,线性回归方程可以是Y=a+b1X1+b2X2…,其中,Y是输出信号值,X是随时间推移而变化的信号值,a是常数,并且b是斜率(例如,权重)。这种等式的系数(b)可以使用如等线性拟合公式来确定。对确定输出信号贡献较小的内部信号可以具有更接近于零的系数,并且这样的信号可以在框212被丢弃。在一些情况下,可以丢弃系数低于阈值的内部信号。
在框214,基于剩余内部信号创建非线性回归模型。例如,可以使用标准的非线性回归算法来将输出信号映射到剩余的内部信号。例如,可以应用等式Y=f(X11)+f(X22)……+ε,其中,Y是输出信号值,β1是b1的成本函数或最佳拟合非线性模型,β2是b2的成本函数或最佳拟合非线性模型,并且X是随时间推移而变化的内部信号值。在框216,将非线性回归模型的系数与指派给候选内部信号的权重进行比较。将剩余内部信号的系数分布与指派给候选内部信号的权重进行比较。例如,与内部信号相关联的以百分比表示的系数可以指示该信号对输出信号的贡献程度,并且可以将该百分比与指派给该信号的权重进行比较。如果系数与指派的权重相匹配,则执行进行到框218。在框218,如果有附加的输出信号,则选择下一个输出信号,并且执行返回到框208以处理该下一个输出信号。否则,如果所有的输出信号都已被建模,则执行结束。如果在框216系数与所指派的权重不匹配,则执行返回到框208,在此处可以基于非线性回归的系数重新指派权重。这个循环可以重复直到系数与所指派的权重相匹配为止。这些权重可以与随机选择的信号值数据一起存储。权重可以与来自框204的随机选择的信号值数据一起用于训练IC的ML模型。
根据本披露的各方面,可以训练IC的ML模型以基于数据信号值来预测IC的FSM状态。图3A图示了根据本披露的各方面的IC的示例ML模型300。示例ML模型300是神经网络(NN)ML模型的简化示例,呈现其是为了帮助理解可以如何构造IC的NN ML模型(比如卷积NN)。NN ML模型的示例可以包括VGG、MobileNet、ResNet、EfficientNet、RegNet等。可以理解的是,ML模型的每个实施方式可以执行一种或多种ML算法,并且可以根据各种因素以不同的方式训练或调整ML模型,这些因素包括但不限于所使用的ML模型的类型、用于ML模型的参数、参数之间的关系、期望的训练速度等。在这个简化的示例中,在输入特征值模块302中收集和准备特征值。作为示例,可以通过由输入特征值模块302将从仿真得到的数据信号值(其是如上文所讨论的那样来自选择的测试用例或者是随机选择的)放在例如向量或矩阵中作为输入特征值而将这些数据信号值输入到ML模型中。一般来说,参数可以指数学函数的方面,这些数学函数可以被NN ML模型300的层应用于特征,这些特征是数据点或变量。
每个层(例如,第一层304....第N层306)可以包括多个模块(例如,节点),并且通常表示可以对特征值执行的一组运算,比如一组矩阵乘法、卷积、去卷积等。例如,每个层可以包括一个或多个数学函数,这些数学函数采用来自前一层的输出特征值作为输入(除第一层304以外)。ML模型从最后一层(例如,第N层306)输出输出值308。输入到每个层的模块中的权重可以在ML模型训练期间进行调整,并在ML模型训练后固定。在一些情况下,初始权重可以基于经由图2中讨论的用于选择信号值数据和权重的技术所确定的权重。在其他情况下,初始权重可以是随机指派的、经由模式来设置的,等等。ML模型可以包括任意数量的层。一般来说,每个层将M个输入特征转换为N个输出特征。
在一些情况下,可以基于经标注的输入来训练ML模型。可以用初始权重启动ML模型300,并将代表性的输入传递到ML模型300中以生成预测。代表性的输入(比如从对IC的仿真得到的信号值数据)可以包括标识要预测的数据的标注。例如,ML模型可以被训练为基于从对IC的仿真得到的信号值数据来预测FSM状态。可以用对应编码的FSM状态和转变条件信息来标注该信号数据值数据集,如上文结合图1B讨论的那样。
可以基于预测与标注相比的准确程度来调整节点的权重。由节点应用的权重可以在训练期间基于以下各项进行调整:损失函数,其是描述神经网络的预测与预期结果(例如,标注)相比的准确程度的函数;优化算法,其有助于基于损失函数确定权重设置调整;和/或误差反向传播算法,其将权重调整反向应用于神经网络的各个层。在本披露的范围内可以使用任何优化算法(例如,梯度下降、小批量梯度下降、随机梯度下降、自适应优化器、动量等)、损失函数(例如均方误差、交叉熵、最大似然等)和误差反向传播算法(例如静态或递归反向传播)。
图3B图示了根据本披露的各方面的ML模型300的层350的示例结构。在一些情况下,来自前一层352的输入特征值(或者对于第一层304,来自输入特征值模块302的输入特征值)的一个或多个部分可以被输入到一组模块中。一般来说,该组模块中的模块可以表示要对特征值执行的一组或多组数学运算,并且每个模块可以接受一组权重、缩放值和/或偏置作为输入。例如,第一1×1卷积模块354可以对输入特征值的一个或多个部分和一组权重(和/或偏置/缩放值)执行1×1卷积运算。要注意,该一组或多组模块中的各组模块可以包括不同数量的模块。因此,来自第一1×1卷积模块354的输出可以被输入到串接(concatenation)模块356。作为另一个示例,来自前一层352的输入特征值的一个或多个部分也可以被输入到3×3卷积模块358,该卷积模块358输出到第二1×1卷积模块360,卷积模块360然后输出到串接模块356。该一组或多组模块中的各组模块也可以执行不同的运算。在这个示例中,来自第三1×1卷积模块362的输出可以被输入到池化模块364以进行池化运算。来自池化模块364的输出可以被输入到串接模块356。串接模块356可以接收来自该一组或多组模块中的每一组模块的输出,并将这些输出串接在一起作为输出特征值。这些输出特征值可以被输入到ML模型300的下一层。
根据本披露的各方面,多个ML模型(比如ML模型300)可以被级联,例如,以进行多个预测。图4是图示了根据本披露的各方面的IC的级联ML模型400的框图。在这个示例中,第一ML模型402可以采用如顶层信号值以及内部信号值等信号值数据404(其是如上文所讨论的那样来自选择的测试用例或者是随机选择的)作为输入。第一ML模型402使用信号值数据404预测IC的FSM状态406。然后,IC的该预测FSM状态406可以被输入到第二ML模型408。第二ML模型408可以将IC的预测FSM状态406与所建模IC的输入信号值数据(例如,来自信号值数据404的被输入到IC的信号值)一起作为输入,并预测来自所建模IC的模拟信号值输出410(例如,由IC输出的信号值)。通过级联多个ML模型,与不考虑FSM状态的单个ML模型相比,可以获得对输出信号值的更准确预测。例如,IC的特定内部信号值在一个FSM状态下可能被约束在某个电压范围内,但在另一个FSM状态下则不被约束在该电压范围内。作为另一示例,某个信号的电压可能在某个FSM状态下先迅速增加再达到峰值然后才安定下来,但这个信号在另一个FSM状态下可能更加稳定。将FSM状态纳入考虑有助于整个ML模型考虑信号值的特定于状态的行为,从而对输出信号值做出更好的预测。
在一些情况下,可以使用被建模的IC的电路块级级联ML模型。该电路块级级联ML模型可以用于代替使用所建模IC的FSM状态的ML模型来预测IC的输出信号值,例如在FSM模型可能不可用或在其他方面不理想的情况下。在一些情况下,整个IC可能包括许多电路块。图5是根据本披露的各方面的示例电路块级级联ML模型500的框图。一般来说,电路块是IC的子集,为IC提供某些功能、调节、接口等。电路块的示例包括但不限于低压差稳压器、升压转换器、降压转换器块,模数转换器等。在一些情况下,IC可以包括集成在一起的多个电路块。
电路块级级联ML模型包括被建模的整个IC的一个或多个电路块的ML子模型。在这个示例中,电路块级级联ML模型500包括IC的电路块的四个子模型:电路块1子模型502、电路块2子模型504、电路块3子模型506以及输出电路块子模型508。如同ML模型300一样,电路块级级联ML模型500获取到所建模IC的输入信号值510A-510G,并预测IC的输出信号值512A-512C。
使用从仿真得到的、被输入到IC的所建模电路块的数据信号值(其是如上文所讨论的那样来自选择的测试用例或者是随机选择的)来训练每个电路块子模型,以预测所建模电路块的输出。在这个示例中,所建模电路块的电路块子模型502可以采用作为顶层输入信号的IC输入信号1 510A和输入信号3-7 510C-510G、以及IC的被输入到所建模电路块的(多个)内部信号514。然后,电路块子模型502预测电路块子模型502的(多个)输出516。电路块的输出可以用作另一个电路块的输入(例如,作为内部输入信号)。在此,电路块子模型502的输出516被输入到输出电路块子模型508。
在一些情况下,IC的内部信号可能不可用。例如,可能没有方便的方法来访问硅内IC的内部信号。因此,在调试制造的IC时,可能无法访问内部信号值以供在调试时提供帮助。在这种情况下,可以使用IC的反演模型以基于输入信号值和输出信号值生成内部信号值。
图6是图示了根据本披露的各方面的使用IC的反演模型进行调试的框图600。在这个示例中,可以监测IC的输入信号值602和输出信号值604。然后,这些输入信号值602和输出信号值604可以作为输入传递给IC的反演模型606。IC的反演模型606基于输入信号值602和输出信号值604来预测IC的内部信号值608。在一些情况下,IC可以包括不同级别的内部信号值608。这些级别可以对应于例如IC的不同组织级别。作为示例,内部信号的第一级别可以对应于电路块之间的内部信号,而第二级别可以对应于输入到某些电路块和从其输出的内部信号,第三级别可以对应于某些电路块内的内部信号,等等。
IC的反演模型606可以基于任何ML模型,包括上文结合图3A/3B、图4和图5所讨论的那些。IC的反演模型606与上文讨论的ML模型的不同之处在于IC的反演模型606获取所建模IC的顶层信号(例如,输入信号值602和输出信号值604)并预测内部信号值608。可以使用从仿真得到的一组数据信号值(其是如上文所讨论的那样来自选择的测试用例或者是随机选择的)来训练IC的反演模型606。例如,针对来自该组数据信号值的内部数据信号值训练来自该组数据信号值的顶层数据信号值。在一些情况下,内部数据信号值对应于内部信号的特定级别。在一些情况下,例如,也可以使用IC的FSM状态信息来训练级联ML模型。例如,可以训练第一ML模型以基于输入顶层数据信号值来预测FSM状态,并且该预测的FSM状态可以与顶层数据信号值一起被输入到第二ML模型中,以预测IC的内部数据信号值608。在一些情况下,可以输出所预测的FSM状态。
然后,可以将所预测的内部数据信号值608与从对IC的仿真得到的该组数据信号值612进行比较610,以确定所预测的内部信号与在IC的开发期间看到的各种条件的一致性程度,以便进行调试。作为示例,通过使用低压差稳压器(LDO),电路的输出电压可以跟随(track)从偏置生成电路生成的内部参考信号。然而,这个内部参考信号值在LDO的输入/输出引脚上是不可用的。通过基于在LDO的输入/输出引脚上可用的信号值来预测内部参考值,可以将所预测的内部参考值与在对LDO电路的仿真期间获得的参考值进行比较,以查看是否存在对应的信号值。如果没有这样的对应信号值,那么可能是电路存在内部故障。在步骤614,可以执行统计分析,以识别出要进一步调试的问题。在一些情况下,IC的反演模型606可以是可分发的或以其他方式可共享的,例如以供IC的客户进行基于客户的调试。例如,IC的反演模型606可以被包装在可以从如MATLAB、Octave、Python等各种诊断工具平台获得的模块中。在一些情况下,IC的反演模型606和/或从仿真得到的该组数据信号值在交付给IC的客户时可以是加密的。
图7是图示了根据本披露的各方面的用于调试集成电路的技术的流程图700。在框702,从集成电路获得输入信号值和输出信号值。例如,当调试集成电路(比如模拟电路或混合模拟/数字电路)时,可以从被调试的IC测量输入信号值(例如,应用到IC的输入上的电压值)和输出信号值(例如,IC的输出上的电压值),并将其输入到调试设备。
在框704,将所获得的输入信号值和输出信号值提供给机器学习模型,并且在框706,从ML模型中获得一组预测的信号值。例如,调试设备可以包括基于输入信号值和输出信号值来预测IC的内部信号值的ML模型。该ML模型可以是如上文关于图3A/3B、图4、和图5所讨论的ML模型。在一些情况下,ML模型可以基于所提供的输入信号值和输出信号值来预测FSM状态。在一些情况下,ML模型可以输出所预测的FSM状态。该FSM状态可以用于调试IC。在一些情况下,ML模型可以包括一个或多个子模型。在一些情况下,该一个或多个子模型中的子模型可以预测IC的电路块的输出。然后,多个电路块的预测输出可以用于预测IC的输出。在一些情况下,子模型可以预测IC的FSM状态。
可以基于通过对IC的仿真而生成的IC的数据信号值来训练ML模型。在一些情况下,仿真信号值是基于集成电路的一组测试用例生成的。可以基于覆盖率度量来例如从一套测试用例中确定这些测试用例,以作为最相关的测试用例。在一些情况下,仿真信号值与基于线性回归模型和非线性回归模型而确定的内部信号相关联。在一些情况下,在应用线性回归模型或非线性回归模型之前,仿真信号值可以随机减少一定数量或百分比。该组预测的信号值对应于集成电路内部的信号。
在框708,将该组预测的信号值与一个或多个预期信号值进行比较,以调试集成电路。例如,可以在该组预测的信号值与从对IC的仿真中获得的数据信号值之间执行统计分析以调试IC,例如通过确定该组预测的信号值是否偏离从仿真中获得的数据信号值以及这种偏离是如何随时间发生的。
图8是图示了根据本披露的各方面的用于验证IC的技术的流程图800。在框802,获得集成电路的一组仿真信号值。例如,在IC开发期间,可以创建ML模型,将其作为例如在原型IC的验证和等效性检查期间用于验证IC操作的参考模型。可以基于(例如使用SPICE模型并且可能利用IC的FSM模型)对IC的仿真来训练ML模型。在一些情况下,仿真信号值是基于集成电路的一组测试用例生成的。可以基于覆盖率度量来例如从一套测试用例中确定这些测试用例,以作为最相关的测试用例。在一些情况下,仿真信号值与基于线性回归模型和非线性回归模型而确定的内部信号相关联。在一些情况下,在应用线性回归模型或非线性回归模型之前,仿真信号值可以随机减少一定数量或百分比。
在框804,将所获得的该组信号值提供给ML模型。例如,可以训练ML模型以基于输入到ML模型的顶层数据信号值和可能地内部数据信号值(如果可用)来预测IC的输出数据信号值。ML模型可以是如上文关于图3A/3B、图4、和图5所讨论的ML模型。在一些情况下,ML模型可以基于所提供的输入信号值和输出信号值来预测FSM状态。在一些情况下,ML模型可以输出所预测的FSM状态。该FSM状态可以用于调试IC。在一些情况下,ML模型可以包括一个或多个子模型。在一些情况下,该一个或多个子模型中的子模型可以预测IC的电路块的输出。然后,多个电路块的预测输出可以用于预测IC的输出。在一些情况下,子模型可以预测IC的FSM状态。在框806,从机器学习模型中获得集成电路的一个或多个预测输出信号值。
在框808,将所预测的输出信号值与集成电路的实际输出信号值进行比较,以验证集成电路。
如图9所图示的,设备900包括处理电路系统,比如包含一个或多个硬件处理器的处理器905,其中,每个硬件处理器可以具有单个或多个处理器核。处理器的示例包括但不限于中央处理单元(CPU)、图像处理器、微控制器(MCU)微处理器(MPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等。虽然在图5中没有图示,但构成处理器905的处理电路系统也可以包括一个或多个其他类型的硬件处理部件,比如图形处理单元(GPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和/或数字信号处理器(DSP)。在某些情况下,处理器905可以被配置为执行结合图7和图8中描述的技术来描述的任务。在一些情况下,处理器905可以被配置为选择信号值数据和/或训练图2、图3A/3B、图4、图5和图6中所描述的ML模型。
图9图示了存储器910可以操作性地和通信地耦合到处理器905。存储器910可以是被配置为存储各种类型的数据的非暂态计算机可读存储介质。例如,存储器910可以包括一个或多个易失性设备,比如随机存取存储器(RAM)、寄存器等。非易失性存储设备920可以包括一个或多个磁盘驱动器、光驱、固态驱动器(SSD)、磁带驱动器、闪存、电可擦除可编程只读存储器(EEPROM)和/或被设计为在断电或关闭操作后的一定持续时间内保持数据的任何其他类型的存储器。非易失性存储设备920也可以用于存储程序,这些程序在执行时被加载到RAM中。在一些情况下,存储在非易失性存储设备920中的程序可以直接从非易失性存储设备920中执行。本领域普通技术人员认识到软件程序可以用各种计算语言针对各种软件平台和/或操作系统进行开发、编码和编译,并随后由处理器905加载和执行。在一个实施例中,软件程序的编译过程可以将用一种编程语言编写的程序代码转换为另一种计算机语言,使得处理器905能够执行编程代码。例如,软件程序的编译过程可以生成可执行程序,其为处理器905提供编码指令(例如,机器代码指令)以完成具体的、非通用的特定计算功能。
在编译过程之后,编码指令然后可以作为计算机可执行指令或处理步骤从存储设备920、从存储器910加载到处理器905中,和/或可以嵌入处理器905内(例如,经由高速缓存或板载ROM)。处理器905可以被配置为执行所存储的指令或处理步骤以执行指令或处理步骤,从而将计算设备转换为非通用的、特定的、专门编程的机器或装置。存储的数据(例如由存储设备920存储的数据)可以由处理器905在执行计算机可执行指令或处理步骤期间访问,以指示计算设备900内的一个或多个部件。存储设备920可以被划分或分割成可由不同的软件程序访问的多个分区。例如,存储设备920可以包括指定用于特定目的(比如存储用于更新计算设备900的软件的程序指令或数据)的分区。在一个实施例中,要更新的软件包括计算设备的ROM或固件。在某些情况下,计算设备900可以包括多个操作系统。例如,计算设备900可以包括用于正常操作的通用操作系统。计算设备900还可以包括另一个操作系统(比如引导加载程序),其用于执行如升级和恢复通用操作系统等特定任务,并允许以通过通用操作系统通常无法实现的级别来访问计算设备900。通用操作系统和另一操作系统二者都可以访问存储设备920的指定用于特定目的的分区。
一个或多个通信接口925可以包括用于与一个或多个无线电通信设备(比如AP(在图9中未示出))进行接口连接的无线电通信接口。在某些情况下,耦合到处理器的元件可以包括在与处理器共享的硬件上。例如,通信接口925、存储设备920和存储器910可以与其他元件(比如数字无线电)一起被包括在单个芯片或封装件中,比如包括在片上系统(SOC)中。计算设备900还可以包括输入设备930和/或输出设备(未示出),其示例包括传感器、相机、人类输入设备(比如鼠标、键盘、触摸屏)、监视器、显示屏幕、触觉或运动发生器、扬声器、灯等。经处理的输入(例如来自图像传感器)可以从计算设备900经由通信接口925输出到一个或多个其他设备。
在本说明书中,术语“耦合”可以涵盖能够实现与本说明书一致的功能关系的连接、通信或信号路径。例如,如果设备A生成信号来控制设备B执行动作,则:(a)在第一示例中,设备A通过直接连接耦合到设备B;或者(b)在第二示例中,设备A通过中间部件C耦合到设备B,条件是中间部件C没有改变设备A与设备B之间的功能关系,因此设备B由设备A经由设备A生成的控制信号来控制。
“被配置为”执行任务或功能的设备可以在制造时由制造商配置(例如,编程和/或硬连线)以执行所述功能,和/或可以在制造之后可由用户配置(或可重新配置)以执行所述功能和/或其他附加或替代的功能。所述配置可以通过对设备进行固件和/或软件编程、通过对设备的硬件部件和互连进行构造和/或布局、或其组合来进行。
虽然所描述示例的某些元件被包括在集成电路中并且其他元件在集成电路外部,但是在其他示例实施例中,集成电路中可以包含附加的或更少的特征。另外,被图示为在集成电路外部的特征中的一些或全部可以被包括在集成电路中,和/或被图示为在集成电路内部的一些特征可以被并入集成电路外部。如本文所使用的,术语“集成电路”是指以下一个或多个电路:(i)包含在半导体衬底中/之上;(ii)包含在单个半导体封装中;(iii)包含在同一模块中;和/或(iv)包含在同一印刷电路板中/上。
在权利要求的范围内,对所描述的实施例进行修改是可能的,并且其他实施例也是可能的。

Claims (20)

1.一种方法,包括:
从集成电路获得输入信号值和输出信号值;
将所获得的输入信号值和输出信号值提供给机器学习模型;
从所述机器学习模型获得一组预测的信号值,其中,所述一组预测的信号值对应于所述集成电路内部的信号;
将所述一组预测的信号值与一个或多个预期信号值进行比较,以调试所述集成电路。
2.根据权利要求1所述的方法,其中,所述机器学习模型基于所提供的输入信号值和输出信号值来预测有限状态机FSM状态。
3.根据权利要求2所述的方法,进一步包括从所述机器学习模型中获得所述集成电路的预测有限状态机状态。
4.根据权利要求1所述的方法,其中,所述机器学习模型包括一个或多个子模型。
5.根据权利要求4所述的方法,其中,所述机器学习模型的所述一个或多个子模型预测所述集成电路的电路块的输出。
6.根据权利要求4所述的方法,其中,所述机器学习模型的所述一个或多个子模型预测有限状态机FSM状态。
7.根据权利要求1所述的方法,其中,基于所述集成电路的仿真获得预期信号值。
8.一种非暂态程序存储设备,包括存储在其上的指令,所述指令用于使一个或多个处理器:
从集成电路获得输入信号值和输出信号值;
将所获得的输入信号值和输出信号值提供给机器学习模型;
从所述机器学习模型获得一组预测的信号值,其中,所述一组预测的信号值对应于所述集成电路内部的信号;
将所述一组预测的信号值与一个或多个预期信号值进行比较,以调试所述集成电路。
9.根据权利要求8所述的非暂态程序存储设备,其中,所述机器学习模型基于所提供的输入信号值和输出信号值来预测有限状态机FSM状态。
10.根据权利要求9所述的非暂态程序存储设备,其中,所述指令进一步使所述一个或多个处理器从所述机器学习模型中获得所述集成电路的预测有限状态机状态。
11.根据权利要求8所述的非暂态程序存储设备,其中,所述机器学习模型包括一个或多个子模型。
12.根据权利要求11所述的非暂态程序存储设备,其中,所述机器学习模型的所述一个或多个子模型预测所述集成电路的电路块的输出。
13.根据权利要求11所述的非暂态程序存储设备,其中,所述机器学习模型的所述一个或多个子模型预测有限状态机FSM状态。
14.根据权利要求8所述的非暂态程序存储设备,其中,基于所述集成电路的仿真获得预期信号值。
15.一种用于调试集成电路的系统,所述系统包括:
存储器;以及
操作性地耦合到所述存储器的一个或多个处理器,其中,所述一个或多个处理器被配置为执行指令,所述指令使所述一个或多个处理器:
从集成电路获得输入信号值和输出信号值;
将所获得的输入信号值和输出信号值提供给机器学习模型;
从所述机器学习模型获得一组预测的信号值,其中,所述一组预测的信号值对应于所述集成电路内部的信号;
将所述一组预测的信号值与一个或多个预期信号值进行比较,以调试所述集成电路。
16.根据权利要求15所述的系统,其中,所述机器学习模型基于所提供的输入信号值和输出信号值来预测有限状态机FSM状态。
17.根据权利要求16所述的系统,其中,所述指令进一步使所述一个或多个处理器从所述机器学习模型中获得所述集成电路的预测有限状态机状态。
18.根据权利要求15所述的系统,其中,所述机器学习模型包括一个或多个子模型。
19.根据权利要求18所述的系统,其中,所述机器学习模型的所述一个或多个子模型预测所述集成电路的电路块的输出。
20.根据权利要求18所述的系统,其中,所述机器学习模型的所述一个或多个子模型预测有限状态机FSM状态。
CN202310762294.0A 2022-06-21 2023-06-26 用于电路设计调试的机器学习技术方法、装置及系统 Pending CN117272894A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/845,784 US20230409789A1 (en) 2022-06-21 2022-06-21 Machine learning techniques for circuit design verification
US17/846,181 2022-06-22
US17/846,181 US20230409790A1 (en) 2022-06-21 2022-06-22 Machine learning techniques for circuit design debugging

Publications (1)

Publication Number Publication Date
CN117272894A true CN117272894A (zh) 2023-12-22

Family

ID=89168958

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202310710508.XA Pending CN117272896A (zh) 2022-06-21 2023-06-15 用于电路设计验证的机器学习技术
CN202310762294.0A Pending CN117272894A (zh) 2022-06-21 2023-06-26 用于电路设计调试的机器学习技术方法、装置及系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202310710508.XA Pending CN117272896A (zh) 2022-06-21 2023-06-15 用于电路设计验证的机器学习技术

Country Status (2)

Country Link
US (2) US20230409789A1 (zh)
CN (2) CN117272896A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117709256B (zh) * 2024-02-04 2024-04-26 北京壁仞科技开发有限公司 一种验证信息的生成方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
US20230409790A1 (en) 2023-12-21
CN117272896A (zh) 2023-12-22
US20230409789A1 (en) 2023-12-21

Similar Documents

Publication Publication Date Title
US6321186B1 (en) Method and apparatus for integrated circuit design verification
CN113343630B (zh) 建模方法及建模装置、电子设备及存储介质
US10867098B1 (en) System and method for ESL modeling of machine learning
US10354028B2 (en) Formal verification driven power modeling and design verification
US10268787B2 (en) Hybrid timing analysis method and associated system and non-transitory computer readable medium
US20210295167A1 (en) Generative networks for physics based simulations
US11853662B2 (en) Machine-learning enhanced compiler
CN115315702A (zh) 早期阶段电路设计中基于机器学习的度量的预测
CN117272894A (zh) 用于电路设计调试的机器学习技术方法、装置及系统
US11829694B2 (en) Verification of hardware design for component that evaluates an algebraic expression using decomposition and recombination
Cruz et al. Automated functional test generation for digital systems through a compact binary differential evolution algorithm
US10803218B1 (en) Processor-implemented systems using neural networks for simulating high quantile behaviors in physical systems
US8881075B2 (en) Method for measuring assertion density in a system of verifying integrated circuit design
US9977417B2 (en) Method for optimizing utilization of programmable logic elements in control units for vehicles
Stratigopoulos et al. Multidimensional analog test metrics estimation using extreme value theory and statistical blockade
US11636244B1 (en) Performance tuning of a hardware description language simulator
US8676547B2 (en) Parameter extraction method
US8301431B2 (en) Apparatus and method for accelerating simulations and designing integrated circuits and other systems
CN114115887A (zh) 具有用于快速分区编译的动态分区负载均衡的自适应调度
Bahnsen et al. Effect analysis of low-level hardware faults on neural networks using emulated inference
Khalil-Hani et al. Co-simulation methodology for improved design and verification of hardware neural networks
US20220253579A1 (en) Hardware and Software Product Development Using Supervised Learning
GB2572633A (en) Verification of hardware design for data transformation pipeline
US20240169135A1 (en) Reinforcement learning (rl) based chip design optimization using trained graph convolutional networks (gcn) for ultra-fast cost function calculation
GB2400677A (en) Checking an integrated circuit using pre-production simulation and post-production tests

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication