用于电路用户指定局部区域的瞬态灵敏度分析的方法及装置与流程
未命名
09-24
阅读:65
评论:0
用于电路用户指定局部区域的瞬态灵敏度分析的方法及装置
1.相关的交叉引用
2.本技术是于2019年4月11日提交的美国专利申请号16/381,674,“瞬态灵敏度分析”的部分继续申请,前述美国专利申请通过引用以其全部内容结合在本文中。
技术领域
3.本发明涉及电子设计自动化工具的领域。具体地,本发明涉及集成电路的用户指定局部区域的瞬态灵敏度分析。
背景技术:
4.集成电路是诸如电阻器、电容器、电感器、互感器、传输线、二极管、双极结型晶体管(bjt)、结型场效应晶体管(jfet)、金属氧化物半导体场效应晶体管(mosfet)、金属半导体场效应晶体管(mesfet)、薄膜晶体管(tft)等电路元件的网络。
5.复杂的集成电路的开发通常需要使用强大的数字仿真程序。例如,电路仿真在集成电路的设计流程中是重要部分,帮助电路设计者在不经过昂贵的制造过程的情况下验证其设计的功能和性能。随着半导体处理技术迁移到纳米尺度,需要新的仿真方法来解决具有纳米特征的电路设计中固有存在的新问题。现代集成电路在新技术代的发展中不断地挑战电路仿真算法和实现方式。半导体工业需要eda软件,其具有分析纳米效应(如耦合噪声、地面反弹、传输线波传播、动态泄漏电流、供电电压降以及非线性设备和电路行为,其全部与动态电流相关)的能力。因此,详细的电路仿真和晶体管级仿真已成为研究和解决纳米设计问题的最有效方法之一。
6.电子电路仿真器的实例包括在加利福尼亚大学伯克利分校(uc berkeley)开发的集成电路重点仿真程序(spice),以及spice的各种增强版本或派生版本。spice及其派生版本或增强版本在下文中将被称为spice电路仿真器或spice。spice方法将电路视为非划分对象。
7.spice类仿真可以提供对应电路在实际构建时将如何表现的相当准确的预测。优选地,不仅对单独的子电路,而且对整个系统(例如,整个集成电路)进行预测,使得可以发现和处理与噪声等相关的系统范围的问题。在spice类仿真的一般处理流程中,处于仿真中的模拟集成电路经常以网表描述的形式来表示。网表是用spice类语言编写的待仿真的模拟电路的电路描述。spice网表是具有仿真控制语句的纯的结构语言。像verilog-a
tm
的其他语言具有包括行为构建体的能力。spice的结构网表与模拟集成电路的电路组件的预定义集可以根据某些电路建模方法(这不是本公开的关注点)以矩阵的形式来表示。非线性微分方程的数目范围从1到n。存在由线性方程操作的对应数量的输入向量。输入向量集合示出为{i1,i2,..in}。接下来,利用输入向量集合计算线性矩阵以生成解向量集合{v1,v2,..vn}。重复该计算直到该组解收敛。然后该组解可以在计算机屏幕上以波形、测量或检查的形式显示,以便工程师检查仿真结果。
8.然而,随着行业继续不断地缩小到越来越小的设备几何形状,并且将更多互连组
件挤入系统中,整个系统的spice类仿真变得更加困难和有问题。这种缩小的实例是最近从微米尺寸的沟道向深亚微米尺寸的晶体管沟道长度的转变。由于较小的设备几何形状,电路设计者能够将电路组件(例如,晶体管、二极管、电容器)以指数方式蔓延到给定集成电路(ic)中,并且因此将矩阵大小增加到在所期望的时间范围内可能无法解决的复杂度。
9.电路可以被表示为大的数字离散非线性矩阵,用于分析瞬态电流。矩阵维度具有与电路中节点的数目相同的次序。对于瞬态分析,这种巨大的非线性系统需要求解几十万次,从而限制了spice方法的容量和性能。spice方法通常可以仿真高达约50,000个节点的电路。因此,在全芯片设计中使用spice方法是不实际的。它广泛用于电池设计、文库构建和准确度验证。
10.由于某些精度损失,在20世纪90年代早期开发的快速spice方法提供比spice方法大约两个数量级的容量和速度。通过采用简化的模型、电路分区方法和事件驱动算法,并且通过利用电路延时,进行性能增益。
11.spice以节点/元件方式对电路建模,即,电路被视为在节点处连接的各种电路元件的集合。spice的核心是所谓的节点分析,其通过以矩阵格式公式化节点方程(或电路方程)以表示电路并且通过求解这些节点方程来实现。电路元件由设备模型建模,其产生在电路等式中表示为矩阵的模型结果。
12.用于对电路元件进行建模的设备模型(诸如,由加州大学伯克利分校开发的用于对mosfet设备进行建模的spice模型)通常包括模型方程和在各种偏置条件下数学地表示电路元件的特性的一组模型参数。例如,具有n个端子的电路元件可以通过以下电流-电压关系来建模:
13.ii=fi(v1,...,vn,t)对于i=1,
…
,,n,
14.其中,ii表示进入端子i的电流;vj(j=1,
…
,n)表示跨端子j和参考端子(诸如,地)的电压或端子偏置;并且t表示时间。基尔霍夫电流定律意味着进入端子n的电流由给出。电路元件的电导矩阵由以下定义:
[0015][0016]
为了对在交流(ac)操作下的电路元件建模,设备模型还考虑节点电荷与端子偏置之间的关系:
[0017]
qi=qi(v1,...,vn,t)对于i=1,
…
,n。
[0018]
其中,qi表示在端子i处的节点电荷。因此,n-端子电路元件的电容矩阵由以下定义:
[0019][0020]
对于亚微米设计,变化参数越来越多。如何计算这些参数的效果或灵敏度变得越来越重要。设计者需要知道这些变化参数的灵敏度以优化电路行为。
[0021]
在正常瞬态灵敏度分析中,总仿真时间随着变化参数数量的增加而线性增加。随着变化参数的数量增加,例如从100至10,000,正常的瞬态灵敏度分析变得不切实际,因为总仿真时间对于产品开发周期而言可能太长。
[0022]
因此,需要解决上述集成电路的传统瞬态灵敏度分析问题的方法和系统。此外,需要确定电路的局部区域的瞬态行为,并且需要有效地访问和执行电路的这种局部区域的瞬态灵敏度分析。
技术实现要素:
[0023]
公开了与集成电路的瞬态灵敏度分析相关的方法和系统。在一种实施方式中,一种计算机实现的方法包括:接收电路的描述,其中,电路的描述包括与多个电路部件互连的多个节点,并且还包括多个电路部件的参数;使用时间步长和多个电路参数来执行电路的第一遍瞬态仿真,还包括基于第一遍次瞬态仿真和多个电路部件的参数的变化来确定用于执行电路的灵敏度分析的时间步长;基于第一遍瞬态仿真在第一数据库中记录电路的每个节点在每个时间步长处的电路状态,其中,电路状态包括第一组电路解;使用时间步长、多个电路参数的变化和第一数据库来执行电路的第二遍灵敏度仿真;根据电路的第二遍灵敏度仿真来记录由于多个电路参数的变化而引起的第二组电路解;以及确定第一组电路解与所述第二组电路解之间的偏差。
[0024]
在另一实施方式中,一种被配置为执行集成电路的瞬态灵敏度分析的装置包括:一个或多个处理器和由一个或多个处理器控制的瞬态灵敏度分析模块;瞬态灵敏度分析模块包括被配置为以下的逻辑:接收电路的描述,其中,电路的描述包括与多个电路部件互连的多个节点,并且还包括多个电路部件的参数;确定用于相对于多个电路部件的参数的变化执行电路的灵敏度分析的时间步长;使用时间步长和多个电路参数来执行电路的第一遍瞬态仿真;基于第一遍瞬态仿真在第一数据库中记录电路的每个节点在每个时间步长处的第一组电路解;使用时间步长、多个电路参数的变化和第一数据库来执行电路的第二遍灵敏度仿真;根据电路的第二遍灵敏度仿真来记录电路的第二遍灵敏度仿真的第二组电路解;以及确定第一组电路解与第二组电路解之间的偏差。
[0025]
在又一实施方式中,一种用于执行电路的瞬态灵敏度分析的计算机实现的方法,包括接收电路的描述,其中,电路的描述包括与多个电路部件互连的多个节点,并且还包括多个电路部件的参数;使用时间步长和多个电路参数来执行电路的第一遍瞬态仿真,还包括基于第一遍瞬态仿真和多个电路部件的参数的变化来确定用于执行电路的灵敏度分析的时间步长;基于第一遍瞬态仿真在第一数据库中记录电路的每个节点在每个时间步长处的电路状态,其中,电路状态包括第一组电路解;接收由于多个电路参数的变化而在电路的
用户指定局部区域中的瞬态灵敏度的查询;基于用户指定局部区域和多个电路参数的变化来确定待分析的电路节点的数量和时间步长的数量;构建表示电路节点的数量和待分析的时间步长的数量的局部区域向量;使用局部区域向量、多个电路参数的变化以及第一数据库来执行电路的第二遍灵敏度仿真;根据电路的第二遍灵敏度仿真来记录由于多个电路参数的变化而引起的第二组电路解;以及确定第一组电路解与第二组电路解之间的偏差。
[0026]
在又一实施方式中,一种被配置为执行集成电路的瞬态灵敏度分析的装置包括:至少一个处理单元,用于执行计算机程序;存储器,用于存储电路的信息;以及瞬态灵敏度分析模块。该瞬态灵敏度分析模块和至少一个处理单元包括被配置为接收电路的描述的逻辑,其中,电路的描述包括与多个电路部件互连的多个节点,并且还包括多个电路部件的参数;使用时间步长和多个电路参数来执行电路的第一遍瞬态仿真,还包括基于第一遍瞬态仿真和多个电路部件的参数的变化来确定用于执行电路的灵敏度分析的时间步长;基于第一遍瞬态仿真在第一数据库中记录电路的每个节点在每个时间步长处的电路状态,其中,电路状态包括第一组电路解;接收由于多个电路参数的变化而在电路的用户指定局部区域中的瞬态灵敏度的查询;基于用户指定局部区域和多个电路参数的变化来确定待分析的电路节点的数量和时间步长的数量;构建表示电路节点的数量和待分析的时间步长的数量的局部区域向量;使用局部区域向量、多个电路参数的变化以及第一数据库来执行电路的第二遍灵敏度仿真;根据电路的第二遍灵敏度仿真,记录由于多个电路参数的变化而引起的第二组电路解;以及确定第一组电路解与第二组电路解之间的偏差。
附图说明
[0027]
在结合附图阅读本发明的实施方式的详细描述之后,本发明的上述特征和优点以及其附加特征和优点将更加清楚地理解。
[0028]
图1示出了根据本公开的各方面的用于实现集成电路的瞬态灵敏度分析方法的系统。
[0029]
图2示出了根据本公开的各方面的实现集成电路的瞬态灵敏度分析的示例性方法。
[0030]
图3a示出了根据本公开的各方面的执行标称瞬态仿真的示例性实现方式。
[0031]
图3b示出了根据本公开的各方面的执行标称瞬态仿真的另一示例性实现方式。
[0032]
图4a示出了根据本公开的各方面的执行瞬态灵敏度分析的示例性正向方法。
[0033]
图4b示出了根据本公开的各方面的求解电路解的示例性方法。
[0034]
图4c示出了根据本公开的各方面的求解电路解的另一示例性方法。
[0035]
图5a示出了根据本公开的各方面的执行瞬态灵敏度分析的示例性反向方法。
[0036]
图5b示出了根据本公开的各方面的求解电路解的示例性方法。
[0037]
图5c示出了根据本公开的各方面的求解电路解的另一示例性方法。
[0038]
图5d示出了根据本公开的各方面的执行反向瞬态灵敏度分析方法的示例性流程图。
[0039]
图6示出了根据本公开的各方面的多核处理器单元的示例性架构。
[0040]
图7示出了根据本公开的各方面的实现集成电路的瞬态灵敏度分析的另一示例性方法。
[0041]
在全部附图中使用相同的附图标记。
具体实施方式
[0042]
提供了用于电路的瞬态灵敏度分析的方法和系统。呈现以下描述以使得所属领域的技术人员能够制作和使用本发明。具体实施方式和应用的描述仅作为实例提供。对于本领域的技术人员,在本文中所描述的实例的各种修改和组合将是显而易见的,并且在不背离本发明的范围的情况下,在本文中定义的一般原理可以应用于其他实例和应用。由此,本发明并不旨在限于所描述和示出的实例,而是要符合与本文所公开的原理和特征一致的范围。
[0043]
以下详细描述的一些部分以流程图、逻辑框和可以在计算机系统上执行的对信息的操作的其他符号表示的形式呈现。程序、计算机执行的步骤、逻辑框、过程等在这里被认为是导致期望结果的一个或多个步骤或指令的自一致序列。这些步骤是利用物理量的物理操纵的步骤。这些量可以采取能够被存储、传送、组合、比较和以其他方式在计算机系统中操纵的电、磁或无线电信号的形式。这些信号有时可以被称为位、值、元素、符号、字符、项、数字等。每个步骤可以由硬件、软件、固件或其组合来执行。
[0044]
图1示出了根据本公开的实施方式的用于实现执行电路的瞬态灵敏度分析的方法的系统。在一种实施方式中,用于执行电路的瞬态灵敏度分析的方法可以使用计算机系统来实现。计算机系统可以包括一个或多个图形处理单元(gpu)和/或中央处理单元(cpu)100(以下简称处理器)、用于显示计算结果和波形的至少用户接口102、存储器设备104、系统总线106、以及用于将gpu/cpu、用户接口、存储器设备和系统总线连接在一起的一个或多个总线接口。计算机系统还包括用于与计算机网络上的其他设备105通信的至少一个网络接口103。在替代实施方式中,方法和系统的某些功能可以在一个或多个专用集成电路(asic)或现场可编程门阵列(fpga)中实现,由此降低gpu/cpu的作用。
[0045]
存储器设备104可以包括高速随机存取存储器,并且还可以包括非易失性存储器(诸如,一个或多个磁盘存储设备)。存储器设备还可以包括远离gpu/cpu定位的大容量存储设备。存储器设备优选地存储:
[0046]
·
操作系统108,包括用于处理不同基本系统服务和用于执行硬件相关任务的过程;
[0047]
·
应用程序110,用于执行其他用户定义的应用和任务(诸如,电路仿真和设备评估);
[0048]
·
数据库112,用于存储集成电路的信息,数据库包括数据结构、设备模型和矩阵;
[0049]
·
瞬态灵敏度分析模块114被配置为提高电路仿真的效率。
[0050]
用于实现执行电路瞬态灵敏度分析的方法的数据库、应用程序和程序可以包括可执行程序、子模块、表和其他数据结构。在其他实施方式中,可以使用附加的或不同的模块和数据结构,并且可以不使用上面列出的模块和/或数据结构中的一些。
[0051]
图2示出了根据本公开的各方面的实现集成电路的瞬态灵敏度分析的示例性方法。在图2所示的实例中,在框202中,该方法接收电路的描述,其中,该电路的描述包括与多个电路部件(也简称为电路设备或设备)互连的多个节点,并且还包括多个电路部件的参数。在框204中,该方法使用时间步长和多个电路参数来执行电路的第一遍瞬态仿真,还包
括基于第一遍瞬态仿真和多个电路部件的参数的变化来确定用于执行电路的灵敏度分析的时间步长。在框206中,该方法基于第一数据库中的第一遍瞬态仿真来记录电路的每个节点在每个时间步长处的电路状态,其中,这些电路状态包括第一组电路解。在框208中,该方法使用时间步长、多个电路参数的变化和第一数据库来执行电路的第二遍灵敏度仿真。在框210中,该方法根据电路的第二遍灵敏度仿真来记录由于多个电路参数的变化而引起的第二组电路解。在框212中,该方法确定第一组电路解与第二组电路解之间的偏差。
[0052]
根据本公开的各方面,多个电路部件的参数的变化包括以下中的至少一项或多项:1)由于制造工艺中的偏差引起的变化;2)由于电路元件几何形状的变化而引起的变化;3)由于电路的操作温度的波动而引起的变化;或4)由于电路的操作电压的波动引起的变化。在一些实施方式中,记录所述电路的每个节点在每个时间步长处的电路状态包括以下中的至少一项:1)存储解向量;2)存储因子化的雅可比矩阵;或3)以电流和电荷的形式存储电路残差。
[0053]
根据本公开的各方面,由于用于基于第一遍瞬态仿真和多个电路部件的参数的变化来执行电路的灵敏度分析的时间步长,所以电路的第二遍灵敏度仿真可以利用在电路的第一遍瞬态仿真中确定的时间步长、多个电路参数的变化和电路状态。这种方法的一个益处在于,在第二遍灵敏度仿真中,该方法可以求解由于所有电路参数在每个时间步长的变化引起的电路解,并且重新使用在第一遍瞬态仿真中创建的资源,诸如电路状态、在每个时间步长和每个节点的雅可比矩阵、以及lu(下和上)因子化的雅可比矩阵。因此,所公开的方法更高效,因为其节省了时间以及计算和存储资源。
[0054]
根据本公开的各方面,电路方程可以写为:
[0055][0056]
在这个实例中,λ是变化参数的向量;q是电荷;i是电流;u是输入电压源。获得作为λ的函数的电路解可以被实现为两步过程。首先,执行第一遍瞬态仿真以获得标称情况电路解,也被称为标称瞬态仿真。第二步骤是在标称情况下获得作为扰动的电路解,也被称为电路参数的变化。因此,使
[0057]
λ=λ0+δλ,v(t,λ)=v0(t)+δv(t,λ)并且
[0058][0059]
接下来,在δλ,δv的泰勒级数中展开电流(i)和电荷(q)函数。一阶扰动扩展的等式可以如下获得。
[0060][0061]
在此实例中,电荷(q)和电流(i)与等式(1)中的相同。是电荷相对于电压变化的变化。是电流相对于电压变化的变化。是电荷相对于参数变化的变化。是电流相对于参数变化的变化。在一些实现方式中,从等式中计算电路灵敏度的一种方式是针对每个参数一次求解一次,如下所示:
[0062]
对于每个i:
[0063]
[0064]
在此,i是一个参数并且参数的总数是p。这给出了表达式
[0065][0066]
假设标称系统已经被离散化为m个时间点并且已经计算出操作点v0(t),引入电容和电导矩阵c、g如下:
[0067]
其中,k表示第k个时间点。
[0068]
类似地,定义电路残差函数r为
[0069]
并且
[0070]
在一种方法中,可以应用背欧拉方法:
[0071][0072][0073]
在此并且并且
[0074]
根据本公开的各方面,正向方法和第一遍正常瞬态仿真之间存在相似性,因为它使用上述等式为每个参数l依次求解χ1…
χk。
[0075][0076]
根据本公开的各方面,尽管反向方法和正向方法具有相似性,但是反向方法可以被配置为并行解决多个参数变化。用于反向方法的数学推导如下所示。在此,n是从1至m。建立整个矩阵。
[0077][0078]
定义向量向量r
l
可以用于形成矩阵s的p列(每个参数一列)。s=[r1…rp
].
[0079]
为了计算电路对于参数λ
l
的灵敏度,求解以下等式:
[0080]
(c+g)χ
l
=se
l
ꢀꢀ
(7)
[0081]
其中,e
l
表示第i个单位向量(注意,该向量在除了条目i之外的所有条目中具有零,其中,该向量被设置为一)。
[0082]
为了计算时间点j和节点q处的灵敏度,向量e如下构造:
[0083][0084]
其中,向量ei由ei=ek,i=jei=0,i≠j给出。然后,在特定时间点j和节点q,所计算的灵敏度是使用(5)重写矩阵格式
[0085]
然后,求解方程(c+g)
t
u=e(6),得到u。
[0086]
表示所有参数的灵敏度向量
[0087]
η=u
t
s(8)
[0088]
图3a示出了根据本公开的各方面的执行标称瞬态仿真的示例性实现方式。在图3a所示的实例中,到电路仿真器304的输入302包括电路网表,该电路网表由处于仿真下的电路的连通性、实例和拓扑的描述组成。输入302还包括对电路的刺激以及信号活动的特性。到仿真器304的附加输入306包括先前仿真的历史记录、电路参数和/或电路参数的变化。先前仿真的历史记录可以由仿真器304俘获且用于后续仿真。注意,存在两种类型的统计参数。一种类型是诸如晶体管模型的阈值电压等的模型参数。第二种类型是即时参数,诸如沟道宽度和长度、温度、供电电压等。为了简单起见,在本公开中,这两种类型的参数通常被称为统计参数。
[0089]
根据本公开的实施方式,可以捕获先前仿真306的历史记录达一时间段,并且该时间段可以是单个时间步长、多个时间步长或整个仿真时间窗口。例如,该方法可以仿真第一电路分区达一个时间步骤;并且所有其他电路分区的仿真可以从在运行中仿真第一电路分区的历史记录中学习。以此方式,可以减小仿真的存储开销,因为用于仿真后续电路分区所需的信息可以重新使用,因为它们仍可在存储器中。因此,可以存储第一电路分区的多个时间步长的仿真历史记录或整个仿真时间窗口以用于重新用于仿真后续电路分区。
[0090]
图3b示出了根据本公开的各方面的执行标称瞬态仿真的另一示例性实现方式。图3b中示出了由仿真器304执行的示例性仿真流程和仿真器的关键框。例如,一些关键框包括解析和细化312、设置时间步骤314、标记矩阵316、求解318、校验收敛320。在框322中,作出关于仿真是否通过的第一确定。如果没有通过仿真(322_否),则方法移动到框324,其中修改时间步长;接着框326,在框326中,可以修改算法。在框326之后,重复框316、318、320和322。如果通过仿真(322_是),则方法移动到框328,其中作出关于是否存在下一时间步骤的第二确定。如果存在下一时间步骤(328_是),则方法移动到框314以设置时间步骤,并且在314之后重复框。如果不存在下一时间步骤(328_否),则该方法移动到框330。在框330,作出关于是否完成了所有仿真种子的第三确定。如果有更多种子要仿真(330_否),则该方法移动到框332以得到下一种子。在框332之后,该方法重复从框312到框330的流程图。如果完成了所有仿真种子(330_是),则该方法在框334结束。
[0091]
要注意的是,在图3b中的箭头表示在仿真器的输入与关键框之间的通信。在本公开的以下部分中,进一步描述使用先前仿真的历史记录和参数随仿真器的关键框的变化的应用。
[0092]
根据本公开的实施方式,求解器(由框318表示)可以被配置为考虑电路分析的性
质。在复杂集成电路的典型多遍仿真中,仅有限数量的电路变量被改变,而电路的拓扑和刺激保持基本相同。在这样的情况下,电路矩阵结构对于每个种子不改变,因为电路矩阵结构由电路拓扑和刺激确定,并且其不受统计参数的变化的影响。虽然电路矩阵结构不改变,但是某些矩阵分量的值可能受到统计参数的变化的影响。在传统仿真器中,存在花费在电路仿真上的两个主要部分的时间。首先,电路矩阵在很大程度上是稀疏的,但仿真器仍然花费大量时间来重构矩阵的每个部分。这个过程被称为标记,其成本可以高达解决时间的70%。根据本公开的实施例方式,在电路的第一遍仿真之后,向求解器提供涉及电路矩阵的哪些部分需要被修改并且电路矩阵的哪些部分保持相同的信息,因此,求解器可以被简化为执行部分标记和求解,而不是全lu求解,这导致仿真效率的显著改进。
[0093]
通过这种方法,仅解决电路的一小部分,而电路的其余部分可以保持完整。结果,与电路矩阵的计算部分相关联的处理器对仿真数据的高速缓存可以更有效,并且并行求解可以扩展到多个处理器(cpu/gpu)。换句话说,电路仿真器可以被配置为更好地使用多个处理器来并行地进行仿真以获得效率。
[0094]
存在利用处理器的并行性和任务映射能力的许多方式。对于小矩阵,一种方式是直接将整个矩阵加载到处理器中,并且在处理器内部拆分作业以进行并行处理。另一种方式是将矩阵划分为可以并行处理的块矩阵。然后将这些块矩阵移入处理器,并行求解。在本部分中,作为实例给出了一种将矩阵划分为块矩阵的方法。
[0095]
对于大矩阵,为了改进并行处理的级别,大矩阵可以被拆分成许多更小的矩阵(也称为块矩阵)。然后,较小的矩阵被加载到处理器中,并且较小的矩阵被并行求解。在求解出较小的矩阵之后,组合结果并将其存储为大矩阵的结果。通过这种方法,实现并行处理的一种方式是分配线程块来处理要在多处理器中执行的一个较小矩阵。此外,在一个线程块内,可使用以下部分中描述的数据结构和方法并行求解较小矩阵。根据本公开的实施方式,大矩阵可以使用以下描述的方法被划分成更小的矩阵。首先,通过改变行/列的排序,大矩阵可以以等式1中示出的形式表示,并且然后等式1可以进一步转换成等式2。
[0096][0097][0098]
根据等式2,可以在逐块的基础上以自下而上的方式求解块矩阵。在此实例中,该方案可以将大矩阵划分成3个较小矩阵,即a1、a2和a3。这些较小矩阵的处理可以并行进行。
[0099]
通过应用相同的技术,可以将每个较小矩阵(块矩阵)划分成另一组块矩阵。结果,可以形成多级块矩阵的分层布置。例如,根块矩阵表示大矩阵。在每一级,块可以表示从根块矩阵导出的块矩阵。通过此布置,因为每一级处的块矩阵彼此独立,所以可以使用处理器
及其相关联处理器和线程块来并行地求解它们。
[0100]
在常规仿真器中,问题之一是当处理器被分配任务时,在执行任务之后,处理器不再保留该任务的信息,当其继续处理新任务,关于先前任务的信息丢失。这被称为“数据缓存丢失”,即当处理器正在求解下一块时,电路矩阵的前一块的状态不再可用,因为传统仿真器已将前一个状态从其高速缓存存储器中清除。因此,处理器花费时间来刷新其高速缓存,并且还花费时间来建立用于计算下一块的其高速缓存存储器。另一方面,本公开的方法可以被配置为使用多个处理器用于仿真,因为仅电路的小部分已经被改变;电路的大部分可以在仿真期间被高速缓存在存储器中。这可以导致仿真效率的数量级的改进。例如,如果求解器快10倍并且并行性快20倍,则组合的改进快200倍,因为两个改进彼此正交。
[0101]
根据本公开的实施方式,所公开的时间步长控制逻辑可以通过使用先前仿真的历史记录来指导时间步长的选择来减少每个时间步长的迭代总数。如图3b所示,仿真器循环以确定要使用的最佳时间步长,有时甚至必须在迭代之间改变算法。通常,时间步长的数量与仿真中花费的时间量直接相关,例如,如果时间步长的数量可以减少到一半,则通常的仿真时间也可以减少到一半。
[0102]
图4a示出了根据本公开的各方面的执行瞬态灵敏度分析的示例性正向方法。在图4所示的实例中,在框402中,该方法存储由多个电路参数的变化引起的第一数据库的改变。在框404中,该方法在每个时间步长都以正向方式从t0循环至t
结束
。在框406中,该方法循环参数的每个变化。在框408中,该方法使用如图3a和图3b中所描述的电路残差和第一遍仿真的结果来求解电路解。
[0103]
图4b示出了根据本公开的各方面的求解电路解的示例性方法。在图4b所示的示例性方法中,在框412中,该方法从第一数据库中加载对应的解向量和因子化的雅克比矩阵,其中,对来自第一编瞬态仿真的预定雅克比矩阵执行lu因子化,以形成因子化的雅克比矩阵。在框416中,该方法计算由于由参数的每个变化引起的电流和电荷的变化而引起的更新电路残差。在框418中,该方法使用因子化的雅克比矩阵和更新电路残差来计算更新电路解。
[0104]
图4c示出了根据本公开的各方面的求解电路解的另一示例性方法。如图4c所示,在框422中,该方法从第一数据库加载对应的解向量。在框424中,该方法基于解向量建立雅克比矩阵。在框426,该方法对雅克比矩阵执行lu因子化以形成因子化的雅克比矩阵。在框428中,该方法执行对由参数的每个变化引起的受影响的设备的评估。在框430中,该方法计算由于由参数的每个变化引起的电流和电荷的变化而引起的更新电路残差。在框432中,该方法使用因子化的雅克比矩阵和更新电路残差来计算更新电路解。
[0105]
根据本公开的各方面,正向瞬态灵敏度分析方法可以包括以下步骤:
[0106]
·
运行正常瞬态分析,将解向量和从t0到t
结束
在每个时间点处的时间点存储在第一数据库中,该第一数据库可以用存储器映射文件来实现。
[0107]
·
对于从1到p的每个参数i,创建参数的重复数据库,这允许在不同参数的重复数据库之间切换。
[0108]
·
对于从1至p的每个参数i,
[0109]
·
对于从t_0到t_n的每个时间点,以正向方式:
[0110]
1.从文件中加载t_k的解向量
[0111]
2.进行设备矩阵评估并且将标称电路残差保存到局部矩阵中
[0112]
3.积分雅可比(g_k+c_k/h_k)
[0113]
4.将雅克比矩阵因子化为l_ku_k=g_k+c_k/h_k
[0114]
5.获得电路残差_k=(δi_k+δq_k/h_k)+kesai_(k-1)*c_(k-1)/h_k根据第i个时间点的lt_kut_k*kesai_k=电路残差_k来计算kesai_k。(更多细节请参考等式(6)、(7)、(8)及其对应的描述)。
[0115]
根据本公开的各方面,图4a至图4c中所示的正向方法的一个益处是电路的第二遍灵敏度仿真可以利用在电路的第一遍瞬态仿真中确定的时间步长、多个电路参数的变化和电路状态。换句话说,正向方法可以求解由于所有电路参数在每个时间步长的变化引起的电路解,并且重新使用在第一遍瞬态模仿真中创建的资源,诸如电路状态、在每个时间步长和每个节点的雅可比矩阵、以及lu(下和上)因子化的雅可比矩阵。因此,所公开的方法更高效,因为其节省了时间以及计算和存储资源。
[0116]
图5a示出了根据本公开的各方面的执行瞬态灵敏度分析的示例性反向方法。在图5a的实例中,在框502中,该方法存储由多个电路参数的变化引起的第一数据库的改变。在框504中,以反向方式从感兴趣的时间步长到开始时间步长,该方法循环每个时间步长。在框506中,该方法循环通过多个参数中的每个参数变化。在框508中,该方法基于参数的每个变化来求解第二组电路解中的更新电路解。
[0117]
图5b示出了根据本公开的各方面的求解电路解的示例性方法。如图5b的示例性方法中所示,在框510中,该方法从第一数据库加载对应的解向量和因子化的雅克比矩阵,其中,在来自第一遍瞬态仿真的预定雅克比矩阵上执行lu因子化,以形成因子化的雅克比矩阵。在框512中,该方法执行对由参数的每个变化引起的受影响的设备的评估。在框514中,该方法求解因子化的雅克比矩阵的转置以识别感兴趣的时间步长和感兴趣的节点。在框516中,该方法使用因子化的雅克比矩阵的转置来计算归一化敏感度向量。在框518中,该方法计算由于由参数的每个变化引起的电流和电荷的变化而引起的归一化电路残差。在框520中,该方法使用归一化灵敏度向量和归一化电路残差来计算更新电路解。
[0118]
图5c示出了根据本公开的各方面的求解电路解的另一示例性方法。如图5c所示,在框522中,该方法从第一数据库加载感兴趣的时间步长的解向量。在框524中,该方法基于感兴趣的时间步长的解向量建立雅克比矩阵。在框526,该方法对雅克比矩阵执行lu因子化以形成因子化的雅克比矩阵。在框528中,该方法执行对由参数的每个变化引起的受影响的设备的评估。在框530中,该方法求解因子化的雅克比矩阵的转置以识别感兴趣的时间步长和感兴趣的节点。在框532中,该方法使用因子化的雅克比矩阵的转置来计算归一化敏感度向量。在框534中,该方法计算由于由参数的每个变化引起的电流和电荷的变化而引起的归一化电路残差。在框536中,该方法使用归一化灵敏度向量和归一化电路残差来计算更新电路解。
[0119]
图5d示出了根据本公开的各方面的执行反向瞬态灵敏度分析方法的示例性流程图。如图5d所示,在框540中,该方法执行标称瞬态分析并且存储所有时间点解。例如,该方法运行标称瞬态分析(也称为第一遍瞬态仿真),并且将解向量和从t0至t
结束
在每个时间点处的时间点存储在存储器映射文件中。
[0120]
在框542中,该方法接收对用户指定局部区域的瞬态分析的查询,并且基于该查询
来构建局部区域向量。例如,该方法基于电路的测量类型构建局部区域向量(也称为e向量)。
[0121]
在框544中,使用标称瞬态分析的结果,该方法创建单独的数据库以用于分析由于电路参数的变化而引起的用户指定局部区域。在一种方法中,对于从1到p的每个参数k,创建单独的数据库以包括参数k对数据库的影响,这意味着来自参数k的改变的更新设备参数。可以对不同的参数切换数据库。换句化说,可以创建参数的重复数据库,该数据库可以被配置为允许在用于不同参数的重复数据库之间切换。然后,该方法以反向方式循环通过每个时间点,例如从tn到t0。
[0122]
在框546中,该方法执行设备评估。在一些实施方式中,该方法从由标称瞬态分析创建的存储器映射文件加载时间步长tk的解向量。基于解向量,该方法执行设备模型评估并且计算设备输出电流和电荷到标称rhs中(也称为电路残差)。将设备g和c存储到g_k矩阵和c_k矩阵中以用于下一步骤。然后,该方法使用反向方法对雅克比(g_k+c_k/h_k)进行积分,并且计算雅克比jt=j的转置。此后,该方法将转置因子化为lt_k*ut_k=jt。根据测量结果,该方法得到e,并且使用电路残差_k=e+u_(k+1)*c_k/h(k-1)。然后,该方法根据第k个时间点的lt_k*ut_k*u_k=电路残差_k计算u_k。(更多细节请参考等式(6)、(7)、(8)及其对应的描述)。
[0123]
在框548中,该方法循环通过从1至p的参数变化中的每一个。在框550中,该方法根据正被评估的相应参数来切换/更新数据库。在框552中,该方法计算由于正被评估的参数的变化而引起的电流和电荷的变化。例如,该方法计算δ_i和δ_q,并且获得yeta_k_l=u_k*(δ_i+dt(δ_q))。(更多细节请参考等式(6)、(7)、(8)及其对应的描述)。
[0124]
在框554中,作出是否已达到参数循环的结束的第一确定。如果没有达到参数循环的结束(554_否),则方法返回到框548并且继续评估由其他电路参数引起的瞬态灵敏度变化。如果已经达到参数查看的结束(554_是),则方法前进到框556。在框556中,该方法累积在所有时间点观察到的瞬态灵敏度。
[0125]
在框558中,作出是否已达到时间点的结束的第二确定。如果没有达到时间点的结束,则方法返回到框544。如果已经达到时间点的结束,则该方法结束。
[0126]
根据本公开的各方面,类似于正向方法,图5a至图5d中所示的正向方法的一个益处是电路的第二遍灵敏度仿真可以利用在电路的第一遍瞬态仿真中确定的时间步长、多个电路参数的变化和电路状态。换句话说,正向方法可以求解由于所有电路参数在每个时间步长的变化引起的电路解,并且重新使用在第一遍瞬态模仿真中创建的资源,诸如电路状态、在每个时间步长和每个节点的雅可比矩阵、以及lu(下和上)因子化的雅可比矩阵。此外,反向方法使得能够计算可以由用户指定的感兴趣的特定时间点/步骤和电路的部分节点处的电路解。反向方法不需要逐步遍历所有的时间步骤,相反,反向方法可以从感兴趣的时间点开始,并且以反向方式循环时间步骤。因此,所公开的方法更高效,因为其节省了时间以及计算和存储资源。
[0127]
图6示出了根据本公开的一些方面的多核处理器(或图形处理器)单元的示例性架构。如图6所示,每个gpu 602包括n个多处理器。每个多处理器604还包括m个处理器606和指令单元607。每个处理器具有其自己的寄存器608。一个多处理器604中的所有处理器606共享共享存储器610的框。所有处理器共享同一组恒定高速缓存612和纹理高速缓存614存储
器。它们还可以访问设备存储器616(也称为全局存储器)中的数据。
[0128]
在此实例中,每个多处理器604具有共享存储器块。访问来自共享存储器610的数据比访问来自设备(全局)存储器616的数据快得多。为此,提高计算效率的一种方法是将数据从全局存储器616加载到共享存储器610,使用共享存储器610执行许多计算/操作,然后将结果从共享存储器610写回全局存储器616。
[0129]
根据本发明的各方面,公开了改进的瞬态失配计算方法。所公开的方法可以将灵敏度分析时间减少数量级。有两种灵敏度分析方法,一种称为正向方法,另一种称为反向方法。
[0130]
在所公开的瞬态灵敏度分析方法中提供了许多优点。首先,两种方法的性能改进可通过以下实例示出。例如,变化参数的数量是p。对于瞬态灵敏度分析,平均迭代次数被定义为每个时间步长的n次迭代,并且总时间步长被定义为n_t,并且对于所有变化瞬态仿真,那些值的变化可以是可忽略的。
[0131]
对于每次迭代,仿真时间可以包括模型评估时间(m)和矩阵求解时间(s)。正常的瞬态灵敏度分析需要完成p次瞬态仿真,可以进行p*(m+s)*n_t*n次迭代。α定义为一个参数的平均影响设备数目与总设备数目的比率。
[0132]
利用上述术语,前向方法的总仿真时间近似为(m+s)*n_t*n迭代+p*(m+s)*n_t+p*α*m*n_t。反向方法的总仿真时间近似为(m+s)*n_t*n迭代+(m+s)*n_t+p*a*m*n_t。
[0133]
此外,可以为每个时间步骤保存lu因子结果。这可以进一步减少总仿真时间。实际上,大多数参数变化的影响是局部的。换句话说,一个参数变化通常影响几个设备,并且α远小于1。对于反向方法,当变化数量大(例如大于1000)时,它可以将总运行时间减少几个数量级。
[0134]
根据本公开的各方面,在正向方法中,可以检索所有时间点(也称为时间步长)和电压节点的灵敏度。实际上,许多应用在特定时间点仅关心一些节点,因为电路的性能仅与某些电压和某些时间点相关,并且大多数参数变化的影响是局部的。对于这种类型的应用,可以采用反向方法。在反向方法中,预先构建e向量(也称为局部区域向量),其大小为n*m,其中n为受电路参数变化影响的电路的局部区域中的节点数,并且m为局部区域中的瞬态灵敏度分析的时间点数。该e向量取决于如上所描述的瞬态灵敏度分析需要求解的时间点和节点(例如,时间点j和节点q)。
[0135]
图7示出了根据本公开的各方面的实现集成电路的瞬态灵敏度分析的另一示例性方法。在图7所示的实例中,在框702中,该方法接收电路的描述,其中,该电路的描述包括与多个电路部件(也简称为电路设备或设备)互连的多个节点,并且还包括多个电路部件的参数。在框704中,该方法使用时间步长和多个电路参数来执行电路的第一遍瞬态仿真,还包括基于第一遍瞬态仿真和多个电路部件的参数的变化来确定用于执行电路的灵敏度分析的时间步长。在框706中,该方法基于第一数据库中的第一遍瞬态仿真来记录电路的每个节点在每个时间步长处的电路状态,其中,这些电路状态包括第一组电路解。
[0136]
在框708中,该方法接收由于多个电路参数的变化而在电路的用户指定局部区域中的瞬态灵敏度的查询。在框710中,该方法基于用户指定局部区域和多个电路参数的变化来确定电路节点的数量和待分析的时间步长的数量。在框712中,该方法构建表示电路节点的数量和待分析的时间步长的数量的局部区域向量(也称为e向量)。
[0137]
在一些应用中,瞬态灵敏度的查询可以包括在用户指定局部区域中的第一用户指定节点处和在第一用户指定时间步长处的电压灵敏度的第一查询。该方法以电路节点的数量乘以待分析的时间步长的数量的维度确定局部区域向量的第一大小,并且构建局部区域向量以在用户指定局部区域中包括第一用户指定节点和第一用户指定时间步长。例如,为了构建局部区域向量,如果电压节点的数量是3并且时间步长的总数是4,则局部区域向量的尺寸是12。如果期望第三节点在第四时间点的灵敏度,则局部区域向量可以被设置为:
[0138]
t1 t2 t3 t4
[0139]
[0 0 0 0 0 0 0 0 0 0 0 0 1]^t
[0140]
在一些应用中,瞬态灵敏度的查询包括在多个时间步长中在用户指定局部区域中的第二用户指定节点处的平均电压灵敏度的第二查询。该方法以电路节点的数量乘以待分析的时间步长的数量的维度确定局部区域向量的第二大小,并且构建局部区域向量以在用户指定局部区域中包括第二用户指定节点和多个时间步长。例如,如果期望从0ns到4ns的平均电压灵敏度,为了构建局部区域向量,如果电压节点的数量是3并且时间步长的总数是4,则局部区域向量的尺寸是12。如果期望所有4个时间点的第三节点的平均灵敏度,则局部区域向量可以设置为:
[0141][0142]
在又一些其他应用中,瞬态灵敏度的查询包括当第三用户指定节点达到第一预定电压值时在用户指定局部区域中的第三用户指定节点处的电压灵敏度的第三查询。该方法以电路节点的数量乘以待分析的时间步长的数量的维度确定局部区域向量的第三大小,并且构建局部区域向量以在用户指定局部区域中包括第三用户指定节点和待分析的时间步长的数量。例如,为了在v(a)=0.5上升=1时计算在节点a处测量的瞬态延迟,即为了计算当节点相对于输入参数的变化(例如,v(a)=0.5上升=1)达到某个电压时的灵敏度,在时间t的灵敏度可以表示为sens(t)=sens(v|t0)/(dv/dt)。假设电路相对于时间的导数保持大致不变,则对时间的导数被用于将电压的灵敏度转换成时间延迟的灵敏度。在这个实例中,电压相对于时间的导数是dv/dt可以从标称瞬态分析中获得。
[0143]
在又一些其他应用中,瞬态灵敏度的查询包括所述用户指定局部区域中的两个不同节点之间的延迟量达到第二预定电压值的第四查询。该方法以电路节点的数量乘以待分析的时间步长的数量的维度确定局部区域向量的第四大小,并且构建局部区域向量以包括用户指定局部区域中的两个不同节点。在一种方法中,为了计算两个不同时间点(例如,meas tran trigl trig v(in)val=0.5rise=1targ v(out)val=0.5drop=1)处两个电压的灵敏度,t1与t2之间的灵敏度差异可以表达如下:
[0144]
sens(t1
–
t2)=sens(t1)
–
sens(t2)=sens(v1|t1)/(dv1/dt)
–
sens(v2|t2)/dv2/dt
[0145]
根据本公开的各方面,当通过电压对时间的推导而与时间相关时的任何测量的灵敏度。灵敏度集合可以从在某个时间点的所有电压节点导出,并且局部区域向量(其中α,β,
…
x表示来自不同时间点的加权灵敏度贡献)可以如下构建:
[0146]
sens(测量)=≥α*sens(v1|t1)+β*sens(v2|t2)+...x*sens(vi|ti);
[0147]
t1 v1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
t2 v2
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
ti vi
[0148]
[0 α]
ꢀꢀꢀꢀꢀꢀꢀ
0β
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(x 0]^t
[0149]
在一些实施方式中,当不能获得电压节点的灵敏度的线性集合时,则可以采用多次迭代计算。例如,该方法可以首先计算所有相关电压节点在某个时间点的灵敏度。在这种情况下,每个电压灵敏度可以由一个局部区域向量(也称为e向量)表示。然后,该方法可以组合结果以计算最终灵敏度。
[0150]
sens(测量)=f(sens(v1|t1),,sens(v2|t2),....)
[0151]
在框714中,该方法使用局部区域向量、多个电路参数的变化和第一数据库来执行电路的第二遍灵敏度仿真。在框716中,该方法根据电路的第二遍灵敏度仿真来记录由于多个电路参数的变化而引起的第二组电路解。在框718中,该方法确定第一组电路解与第二组电路解之间的偏差。
[0152]
应当理解,为了清楚起见,以上描述已经参考不同功能单元和处理器描述了本发明的实施方式。然而,将显而易见的是,可以在不背离本公开的情况下使用不同功能单元或处理器之间的任何合适的功能分布。例如,被示为由单独的处理器或控制器执行的功能可以由相同的处理器或控制器来执行。因此,对特定功能单元的引用将被视为对用于提供所描述的功能的合适手段的引用,而不是指示严格的逻辑或物理结构或组织。
[0153]
本发明可以以任何合适的形式实现,包括硬件、软件、固件或这些的任何组合。本发明可以任选地部分地实现为在一个或多个数据处理器和/或数字信号处理器上运行的计算机软件。本发明的实施方式的元件和组件可以以任何合适的方式在物理上、功能上和逻辑上实现。实际上,该功能可以在单个单元中、在多个单元中、或作为其他功能单元的一部分来实现。照此,本发明可以在单个单元中实现,或可以在物理上和功能上分布在不同单元与处理器之间。
[0154]
相关领域的技术人员将认识到,可以使用所公开的实施方式的许多可能的修改和组合,同时仍然采用相同的基本基础机制和方法。出于解释的目的,已经参考特定实施方式编写了上述描述。然而,以上说明性讨论并不旨在是详尽的或将本发明限于所公开的精确形式。鉴于上述教导,许多修改和变化是可能的。选择和描述实施方式以解释本发明的原理及其实际应用,并且使本领域的其他技术人员能够最好地利用本发明和具有适合于预期的特定用途的各种修改的各种实施方式。
技术特征:
1.一种用于执行电路的瞬态灵敏度分析的计算机实现的方法,包括:接收所述电路的描述,其中,所述电路的描述包括与多个电路部件互连的多个节点,并且还包括所述多个电路部件的参数;使用所述时间步长和所述多个电路参数来执行所述电路的第一遍瞬态仿真,还包括基于所述第一遍瞬态仿真和所述多个电路部件的参数的变化来确定用于执行所述电路的灵敏度分析的时间步长;基于所述第一遍瞬态仿真在第一数据库中记录所述电路的每个节点在每个时间步长处的电路状态,其中,所述电路状态包括第一组电路解;接收由于所述多个电路参数的变化而在所述电路的用户指定局部区域中的瞬态灵敏度的查询;基于所述用户指定局部区域和所述多个电路参数的变化来确定待分析的电路节点的数量和时间步长的数量;构建表示电路节点的数量和待分析的时间步长的数量的局部区域向量;使用所述局部区域向量、所述多个电路参数的变化以及所述第一数据库来执行所述电路的第二遍灵敏度仿真;根据所述电路的第二遍灵敏度仿真来记录由于所述多个电路参数的变化而引起的第二组电路解;以及确定所述第一组电路解与所述第二组电路解之间的偏差。2.根据权利要求1所述的计算机实现的方法,其中,记录所述电路的每个节点在每个时间步长处的电路状态包括以下中的至少一项:存储解向量;存储因子化的雅可比矩阵;或以电流和电荷的形式存储电路残差。3.根据权利要求1所述的计算机实现的方法,其中,所述瞬态灵敏度的查询包括在所述用户指定局部区域中的第一用户指定节点处和在第一用户指定时间步长处的电压灵敏度的第一查询,还包括:确定所述局部区域向量的第一大小,其中,所述电路节点的数量的维度乘以待分析的时间步长的数量;以及构建所述局部区域向量以包括所述用户指定局部区域中的所述第一用户指定节点和所述第一用户指定时间步长。4.根据权利要求1所述的计算机实现的方法,其中,所述瞬态灵敏度的查询包括在多个时间步长中在所述用户指定局部区域中的第二用户指定节点处的平均电压灵敏度的第二查询,还包括:确定所述局部区域向量的第二大小,其中,所述电路节点的数量的维度乘以待分析的时间步长的数量;以及构建所述局部区域向量以包括所述用户指定局部区域中的所述第二用户指定节点和所述多个时间步长。5.根据权利要求1所述的计算机实现的方法,其中,所述瞬态灵敏度的查询包括当所述第三用户指定节点达到第一预定电压值时在所述用户指定局部区域中的第三用户指定节
点处的电压灵敏度的第三查询,还包括:确定所述局部区域向量的第三大小,其中,所述电路节点的数量的维度乘以待分析的时间步长的数量;并且构建所述局部区域向量以包括所述用户指定局部区域中的所述第三用户指定节点和所述待分析的时间步长的数量。6.根据权利要求1所述的计算机实现的方法,其中,所述瞬态灵敏度的查询包括所述用户指定局部区域中的两个不同节点之间的延迟量达到第二预定电压值的第四查询,还包括:确定所述局部区域向量的第四大小,其中,所述电路节点的数量的维度乘以待分析的时间步长的数量;以及构建所述局部区域向量以包括所述用户指定局部区域中的所述两个不同的节点。7.根据权利要求1所述的计算机实现的方法,其中,执行所述电路的第二遍灵敏度仿真还包括:存储由所述多个电路参数的变化引起的对所述第一数据库的变化;以反向方式从感兴趣的时间步长到开始时间步长,循环每个时间步长;在每个时间步骤,循环通过所述多个参数中的每个参数变化;以及基于所述参数的每个变化来求解所述第二组电路解中的更新电路解。8.根据权利要求7所述的计算机实现的方法,其中,求解更新电路解决方案包括:从所述第一数据库加载对应的解向量和因子化的雅克比矩阵,其中,对来自所述第一编瞬态仿真的预定雅克比矩阵执行lu因子化,以形成所述因子化的雅克比矩阵;对由所述参数的每个变化引起的所述用户指定局部区域中的受影响设备进行评估;求解所述因子化的雅克比矩阵的转置以识别所述感兴趣的时间步长和感兴趣的节点;使用所述因子化的雅克比矩阵的转置计算归一化敏感度向量;计算由于由所述参数的每个变化引起的电流和电荷的变化而引起的归一化电路残差;以及使用所述归一化灵敏度向量和所述归一化电路残差来计算所述更新电路解。9.根据权利要求8所述的计算机实现的方法,其中,求解更新电路解决方案还包括:从所述第一数据库加载所述感兴趣的时间步长的解向量;基于所述感兴趣的时间步长的解向量建立雅克比矩阵;对所述雅克比矩阵执行lu因子化以形成因子化的雅克比矩阵;对由所述参数的每个变化引起的所述用户指定局部区域中的受影响设备进行评估;求解所述因子化的雅克比矩阵的转置以识别所述感兴趣的时间步长和感兴趣的节点;使用所述因子化的雅克比矩阵的转置计算归一化敏感度向量;计算由于由所述参数的每个变化引起的电流和电荷的变化而引起的归一化电路残差;以及使用所述归一化灵敏度向量和所述归一化电路残差来计算所述更新电路解。10.根据权利要求1所述的计算机实现的方法,其中,执行所述电路的第二遍灵敏度仿真还包括:存储由所述多个电路参数的变化引起的对所述第一数据库的变化;对于所述多个时间步长中的每个时间步长,以反向方式,
循环通过所述多个参数中的每个参数变化;以及基于所述参数的每个变化来求解所述第二组电路解中的更新电路解。11.一种用于执行电路的瞬态灵敏度分析的装置,包括:至少一个处理单元,用于执行计算机程序;存储器,用于存储所述电路的信息;瞬态灵敏度分析模块,其中,所述瞬态灵敏度分析模块和所述至少一个处理单元包括被配置为以下的逻辑:接收所述电路的描述,其中,所述电路的描述包括与多个电路部件互连的多个节点,并且还包括所述多个电路部件的参数;使用所述时间步长和所述多个电路参数来执行所述电路的第一遍瞬态仿真,还包括基于所述第一遍瞬态仿真和所述多个电路部件的参数的变化来确定用于执行所述电路的灵敏度分析的时间步长;基于所述第一遍瞬态仿真在第一数据库中记录所述电路的每个节点在每个时间步长处的电路状态,其中,所述电路状态包括第一组电路解;接收由于所述多个电路参数的变化而在所述电路的用户指定局部区域中的瞬态灵敏度的查询;基于所述用户指定局部区域和所述多个电路参数的变化来确定待分析的电路节点的数量和时间步长的数量;构建表示电路节点的数量和待分析的时间步长的数量的局部区域向量;使用所述局部区域向量、所述多个电路参数的变化以及所述第一数据库来执行所述电路的第二遍灵敏度仿真;根据所述电路的第二遍灵敏度仿真,记录由于所述多个电路参数的变化而引起的第二组电路解;以及确定所述第一组电路解与所述第二组电路解之间的偏差。12.根据权利要求11所述的装置,其中,所述瞬态灵敏度分析模块被进一步配置为:存储解向量;存储因子雅可比矩阵;或以电流和电荷的形式存储电路残差。13.根据权利要求11所述的装置,其中,所述瞬态灵敏度的查询包括在所述用户指定局部区域中的第一用户指定节点处和在第一用户指定时间步长处的电压灵敏度的第一查询,所述瞬态灵敏度分析模块被进一步配置为:确定所述局部区域向量的第一大小,其中,所述电路节点的数量的维度乘以待分析的时间步长的数量;并且构建所述局部区域向量以包括所述用户指定局部区域中的所述第一用户指定节点和所述第一用户指定时间步长。14.根据权利要求11所述的装置,其中,所述瞬态灵敏度的查询包括在多个时间步长中在所述用户指定局部区域中的第二用户指定节点处的平均电压灵敏度的第二查询,所述瞬态灵敏度分析模块被进一步配置为:确定所述局部区域向量的第二大小,其中,所述电路节点的数量的维度乘以待分析的
时间步长的数量;并且构建所述局部区域向量以包括所述用户指定局部区域中的所述第二用户指定节点和所述多个时间步长。15.根据权利要求11所述的装置,其中,所述瞬态灵敏度的查询包括当所述第三用户指定节点达到第一预定电压值时在所述用户指定局部区域中的第三用户指定节点处的电压灵敏度的第三查询,所述瞬态灵敏度分析模块被进一步配置为:确定所述局部区域向量的第三大小,其中,所述电路节点的数量的维度乘以待分析的时间步长的数量;并且构建所述局部区域向量以包括所述用户指定局部区域中的所述第三用户指定节点和所述待分析的时间步长的数量。16.根据权利要求11所述的装置,其中,所述瞬态灵敏度的查询包括所述用户指定局部区域中的两个不同节点之间的延迟量达到第二预定电压值的第四查询,所述瞬态灵敏度分析模块被进一步配置为:确定所述局部区域向量的第四大小,其中,所述电路节点的数量的维度乘以待分析的时间步长的数量;并且构建所述局部区域向量以包括所述用户指定局部区域中的所述两个不同的节点。17.根据权利要求11所述的装置,其中,所述瞬态灵敏度分析模块被进一步配置为:存储由所述多个电路参数的变化引起的对所述第一数据库的变化;以反向方式从感兴趣的时间步长到开始时间步长,循环每个时间步长;在每个时间步骤,循环通过所述多个参数中的每个参数变化;并且基于所述参数的每个变化来求解所述第二组电路解中的更新电路解。18.根据权利要求17所述的装置,其中,所述瞬态灵敏度分析模块被进一步配置为:从所述第一数据库加载对应的解向量和因子化的雅克比矩阵,其中,对来自所述第一编瞬态仿真的预定雅克比矩阵执行lu因子化,以形成所述因子化的雅克比矩阵;对由所述参数的每个变化引起的所述用户指定局部区域中的受影响设备进行评估;求解所述因子化的雅克比矩阵的转置以识别所述感兴趣的时间步长和感兴趣的节点;使用所述因子化的雅克比矩阵的转置计算归一化敏感度向量;计算由于由所述参数的每个变化引起的电流和电荷的变化而引起的归一化电路残差;并且使用所述归一化灵敏度向量和所述归一化电路残差来计算所述更新电路解。19.根据权利要求18所述的装置,其中,所述瞬态灵敏度分析模块被进一步配置为:从所述第一数据库加载所述感兴趣的时间步长的解向量;基于所述感兴趣的时间步长的解向量建立雅克比矩阵;对所述雅克比矩阵执行lu因子化以形成因子化的雅克比矩阵;对由所述参数的每个变化引起的所述用户指定局部区域中的受影响设备进行评估;求解所述因子化的雅克比矩阵的转置以识别所述感兴趣的时间步长和感兴趣的节点;使用所述因子化的雅克比矩阵的转置计算归一化敏感度向量;计算由于由所述参数的每个变化引起的电流和电荷的变化而引起的归一化电路残差;并且
使用所述归一化灵敏度向量和所述归一化电路残差来计算所述更新电路解。20.根据权利要求11所述的装置,其中,所述瞬态灵敏度分析模块被进一步配置为:存储由所述多个电路参数的变化引起的对所述第一数据库的变化;对于所述多个时间步长中的每个时间步长,以反向方式,循环每个时间步长:在每个时间步长,循环通过所述多个参数中的每个参数变化;并且基于所述参数的每个变化来求解所述第二组电路解中的更新电路解。
技术总结
本公开涉及瞬态灵敏度分析。一种计算机实现的方法包括:接收由于多个电路参数的变化而引起的电路的用户指定局部区域中的瞬态灵敏度的查询;确定电路节点的数量和待分析的时间步长的数量;构建表示电路节点的数量和待分析的时间步长的数量的局部区域向量;使用局部区域向量、多个电路参数的变化和通过第一遍瞬态仿真获得的第一数据库来执行电路的第二遍灵敏度仿真;根据电路的第二遍灵敏度仿真记录由于多个电路参数的变化而引起的第二组电路解;以及确定第一组电路解与第二组电路解之间的偏差。偏差。偏差。
技术研发人员:马玉涛 张振中
受保护的技术使用者:上海概伦电子股份有限公司
技术研发日:2022.12.13
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种保温隔热型聚氨酯塑料的制作方法 下一篇:检测装置的安装座及检测装置的制作方法