CN116227400A - 用于瞬态行为分析的系统和方法 - Google Patents
用于瞬态行为分析的系统和方法 Download PDFInfo
- Publication number
- CN116227400A CN116227400A CN202211594575.1A CN202211594575A CN116227400A CN 116227400 A CN116227400 A CN 116227400A CN 202211594575 A CN202211594575 A CN 202211594575A CN 116227400 A CN116227400 A CN 116227400A
- Authority
- CN
- China
- Prior art keywords
- transient
- devices
- global
- map
- behavior
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
- G06F30/367—Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
Abstract
本公开涉及在电路仿真中分析多个器件的瞬态行为。一种用于在电路仿真中分析多个器件的瞬态行为的系统,包括:存储器,被配置为存储要在多个器件之间共享的全局瞬态映射和一个或多个局部瞬态映射;以及一个或多个处理器,被配置为:将全局瞬态映射分割成多个区域,其中,多个区域中的每个区域支持多个器件的一个或多个瞬态行为分析;将一个或多个瞬态行为分析分配到相应的一个或多个计算线程中,其中,每个计算线程包括一个或多个计算任务;处理一个或多个计算线程以确定多个器件的瞬态行为;以及使用多个器件的瞬态行为来更新全局瞬态映射。
Description
技术领域
本发明涉及电子设计自动化工具的领域。具体地,本发明涉及集成电路的瞬态行为分析。
背景技术
集成电路是诸如电阻器、电容器、电感器、互感器、传输线、二极管、双极结型晶体管(BJT)、结型场效应晶体管(JFET)、金属氧化物半导体场效应晶体管(MOSFET)、金属半导体场效应晶体管(MESFET)、薄膜晶体管(TFT)等电路元件的网络。
复杂的集成电路的开发通常需要使用强大的数字仿真程序。例如,电路仿真在集成电路的设计流程中是重要部分,帮助电路设计者在不经过昂贵的制造过程的情况下验证其设计的功能和性能。随着半导体处理技术迁移到纳米尺度,需要新的仿真方法来解决具有纳米特征的电路设计中固有存在的新问题。现代集成电路在新技术代的发展中不断地挑战电路仿真算法和实现方式。半导体工业需要EDA软件,其具有分析纳米效应(如耦合噪声、地面反弹、传输线波传播、动态泄漏电流、供电电压降以及非线性器件和电路行为,其全部与动态电流相关)的能力。因此,详细的电路仿真和晶体管级仿真已成为研究和解决纳米设计问题的最有效方法之一。
电子电路仿真器的实例包括在加利福尼亚大学伯克利分校(UC Berkeley)开发的集成电路重点仿真程序(SPICE),以及SPICE的各种增强版本或派生版本。SPICE及其派生版本或增强版本在下文中将被称为SPICE电路仿真器或SPICE。SPICE方法将电路视为非划分对象。
SPICE类仿真可以提供对应电路在实际构建时将如何表现的相当准确的预测。优选地,不仅对单独的子电路,而且对整个系统(例如,整个集成电路)进行预测,使得可以发现和处理与噪声等相关的系统范围的问题。在SPICE类仿真的一般处理流程中,处于仿真中的模拟集成电路经常以网表描述的形式来表示。网表是用SPICE类语言编写的待仿真的模拟电路的电路描述。SPICE网表是具有仿真控制语句的纯的结构语言。像Verilog-ATM的其他语言具有包括行为构建体的能力。SPICE的结构网表与模拟集成电路的电路组件的预定义集可以根据某些电路建模方法(这不是本公开的关注点)以矩阵的形式来表示。非线性微分方程的数目范围从1到n。存在由线性方程操作的对应数量的输入向量。输入向量集合示出为{I1,I2,..In}。接下来,利用输入矢量集合计算线性矩阵以生成解矢量集合{V1,V2,..Vn}。重复该计算直到该组解收敛。然后该组解可以在计算机屏幕上以波形、测量或检查的形式显示,以便工程师检查仿真结果。
然而,随着行业继续不断地缩小到越来越小的器件几何形状,并且将更多互连组件挤入系统中,整个系统的SPICE类仿真变得更加困难和有问题。这种缩小的实例是最近从微米尺寸的沟道向深亚微米尺寸的晶体管沟道长度的转变。由于较小的器件几何形状,电路设计者能够将电路组件(例如,晶体管、二极管、电容器)以指数方式蔓延到给定集成电路(IC)中,并且因此将矩阵大小增加到在所期望的时间范围内可能无法解决的复杂度。
电路可以被表示为大的数字离散非线性矩阵,用于分析瞬态电流。矩阵维度具有与电路中节点的数目相同的次序。对于瞬态分析,这种巨大的非线性系统需要求解几十万次,从而限制了SPICE方法的容量和性能。SPICE方法通常可以模拟高达约50,000个节点的电路。因此,在全芯片设计中使用SPICE方法是不实际的。它广泛用于电池设计、文库构建和准确度验证。
由于某些精度损失,在20世纪90年代早期开发的快速SPICE方法提供比SPICE方法大约两个数量级的容量和速度。通过采用简化的模型、电路分区方法和事件驱动算法,并且通过利用电路延时,进行性能增益。
SPICE以节点/元件方式对电路建模,即,电路被视为在节点处连接的各种电路元件的集合。SPICE的核心是所谓的节点分析,其通过以矩阵格式公式化节点方程(或电路方程)以表示电路并且通过求解这些节点方程来实现。电路元件由器件模型建模,其产生在电路等式中表示为矩阵的模型结果。
用于对电路元件进行建模的器件模型(诸如,由加州大学伯克利分校开发的用于对MOSFET器件进行建模的SPICE模型)通常包括模型方程和在各种偏置条件下数学地表示电路元件的特性的一组模型参数。例如,具有n个端子的电路元件可以通过以下电流-电压关系来建模:
Ii=fi(V1,...,Vn,t)对于i=1,…,,n,
为了对在交流(AC)操作下的电路元件建模,器件模型还考虑节点电荷与端子偏置之间的关系:
Qi=qi(V1,...,Vn,t)对于i=1,…,n.
其中,Qi表示在端子i处的节点电荷。因此,n-端子电路元件的电容矩阵由以下定义:
对于亚微米设计,变化参数越来越多。如何计算这些参数的效果或灵敏度变得越来越重要。设计者需要知道这些变化参数的灵敏度以优化电路行为。在正常瞬态行为分析中,总仿真时间随着变化参数数量的增加而线性增加。随着变化参数的数量增加,例如从100至10,000,正常的瞬态行为分析变得不切实际,因为总模拟时间对于产品开发周期而言可能太长。
此外,对于大规模集成电路设计,传统的用于电路仿真的SPICE器件模型虽然能够保证高仿真精度,但是其计算密集,并且会消耗大量的计算资源。在进行大规模集成电路仿真时,传统的方法经常使用SPICE器件建模进行模型计算,这可能需要很长时间并消耗大量计算资源,尤其是在大规模数字集成电路的仿真中。
因此,需要解决集成电路的传统仿真方法的问题的方法和系统。
发明内容
公开了与集成电路的瞬态行为分析相关的方法和系统。根据本公开的各方面,所公开的系统能够被配置为在电路仿真中动态地生成分段线性化模型。随着仿真的进行,由全局瞬态映射和局部瞬态映射表示的分段线性化模型能够以分段的方式建立。随着全局瞬态映射和局部瞬态映射的越来越多的部分被建立,仅需要使用经由表格查找从全局瞬态映射和局部瞬态映射中获得的信息来执行少量的内插操作。所公开的方法能够实现传统SPICE器件模型的基本功能,其中可以获得半导体器件的瞬态行为和电特性的仿真结果。利用所公开的方法,在维持仿真精度的同时,电路仿真的速度已经大大提高。在动态生成瞬态映射的过程中,采用器件共享来减少SPICE器件模型的使用,不同线程被共享和同步,以减少仿真冗余并且提高整体仿真效率。
在一种实施方式中,一种在电路仿真中分析多个器件的瞬态行为的计算机实现的方法,包括:在存储器中建立要在多个器件之间共享的全局瞬态映射和一个或多个局部瞬态映射;由一个或多个处理器将全局瞬态映射分割成多个区域,其中,多个区域中的每个区域支持多个器件的一个或多个瞬态行为分析;由一个或多个处理器将一个或多个瞬态行为分析分配到相应的一个或多个计算线程中,其中,每个计算线程包括一个或多个计算任务;由一个或多个处理器处理一个或多个计算线程以确定多个器件的瞬态行为;以及由一个或多个处理器使用多个器件的瞬态行为来更新全局瞬态映射。
在一种实施方式中,一种用于在电路仿真中分析多个器件的瞬态行为的系统,包括:存储器,被配置为存储要在多个器件之间共享的全局瞬态映射和一个或多个局部瞬态映射;以及一个或多个处理器,被配置为:将全局瞬态映射分割成多个区域,其中,多个区域中的每个区域支持多个器件的一个或多个瞬态行为分析;将一个或多个瞬态行为分析分配到相应的一个或多个计算线程中,其中,每个计算线程包括一个或多个计算任务;处理一个或多个计算线程以确定多个器件的瞬态行为;以及使用多个器件的瞬态行为来更新全局瞬态映射。
附图说明
在结合附图阅读本发明的实施方式的详细描述之后,本发明的上述特征和优点以及其附加特征和优点将更加清楚地理解。
图1示出了根据本公开的各方面的用于在电路仿真中分析多个器件的瞬态行为的系统。
图2示出了根据本公开的各方面的在电路仿真中分析多个器件的瞬态行为的示例性方法。
图3A示出了根据本公开的各方面的将全局瞬态映射分割成器件的多个区域的示例性实现方式。
图3B示出了根据本公开的各方面的将全局瞬态映射分割成图3A的器件的多个区域的图形表示。
图3C示出了根据本公开的各方面的将全局瞬态映射划分割成另一器件的多个区域的示例性实现方式。
图3D示出了根据本公开的各方面将全局瞬态映射分割成图3C的器件的多个区域的图形表示。
图4示出了根据本公开的各方面的将一个或多个瞬态行为分析分配给一个或多个计算线程的示例性实现方式。
图5A示出了根据本公开的各方面的处理计算线程的示例性实现方式。
图5B示出了根据本公开的各方面的执行瞬态行为分析的示例性实现方式。
图5C示出了本公开的各方面的使用现有网格点用于内插器件的节点的瞬态行为的示例性方法。
图5D示出了根据本公开的各方面的用于内插器件的节点的瞬态行为的计算缺失的网格点的示例性方法。
图5E示出了根据本公开的各方面的更新全局瞬态图的示例性方法。
图6示出了根据本公开的各方面的多核处理器单元的示例性架构。
在全部附图中使用相同的附图标记。
具体实施方式
提供了用于在电路仿真中分析多个器件的瞬态行为的方法和系统。呈现以下描述以使得所属领域的技术人员能够制作和使用本发明。具体实施方式和应用的描述仅作为实例提供。对于本领域的技术人员,在本文中所描述的实例的各种修改和组合将是显而易见的,并且在不背离本发明的范围的情况下,在本文中定义的一般原理可以应用于其他实例和应用。由此,本发明并不旨在限于所描述和示出的实例,而是要符合与本文所公开的原理和特征一致的最广范围。
以下详细描述的一些部分以流程图、逻辑框和可以在计算机系统上执行的对信息的操作的其他符号表示的形式呈现。程序、计算机执行的步骤、逻辑框、过程等在这里被认为是导致期望结果的一个或多个步骤或指令的自一致序列。这些步骤是利用物理量的物理操纵的步骤。这些量可以采取能够被存储、传送、组合、比较和以其他方式在计算机系统中操纵的电、磁或无线电信号的形式。这些信号有时可以被称为位、值、元素、符号、字符、项、数字等。每个步骤可以由硬件、软件、固件或其组合来执行。
图1示出了根据本公开的各方面的用于在电路仿真中分析多个器件的瞬态行为的系统。在一个实施方式中,用于执行电路的瞬态行为分析的方法可以使用计算机系统来实现。计算机系统可以包括一个或多个图形处理单元(GPU)和/或中央处理单元(CPU)100(以下简称处理器)、用于显示计算结果和波形的至少用户接口102、存储器器件104、系统总线106、以及用于将GPU/CPU、用户接口、存储器器件和系统总线连接在一起的一个或多个总线接口。系统还包括用于与计算机网络上的其他器件105通信的至少一个网络接口103。在替代实施方式中,方法和系统的某些功能可以在一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)中实现,由此降低GPU/CPU的作用。
存储器器件104可以包括高速随机存取存储器,并且还可以包括非易失性存储器(诸如,一个或多个磁盘存储器件)。存储器器件还可以包括远离GPU/CPU定位的大容量存储器件。存储器器件优选地存储:
·操作系统108,包括用于处理不同基本系统服务和用于执行硬件相关任务的过程;
·应用程序110,用于执行其他用户定义的应用和任务(诸如,电路仿真和器件评估);
·数据库112,用于存储集成电路的信息,数据库包括数据结构、器件模型和矩阵;
·瞬态行为分析模块114,被配置为提高在电路仿真中分析器件的瞬态行为的效率。
用于实现执行电路瞬态行为分析的方法的数据库、应用程序和程序可以包括可执行程序、子模块、表和其他数据结构。在其他实施方式中,可以使用附加的或不同的模块和数据结构,并且可以不使用上面列出的模块和/或数据结构中的一些。
图2示出了根据本公开的各方面的在电路仿真中分析多个器件的瞬态行为的示例性方法。在图2所示的实例中,在框202中,该方法建立要在多个器件之间共享的全局瞬态映射。在框204中,该方法将全局瞬态映射分割成多个区域,其中,多个区域中的每个区域支持多个器件的一个或多个瞬态行为分析。在框206中,该方法将一个或多个瞬态行为分析分配到相应的一个或多个计算线程中,其中,每个计算线程包括一个或多个计算任务。在框208中,该方法处理一个或多个计算线程以确定多个器件的瞬态行为。在框210中,该方法使用多个器件的瞬态行为来更新全局瞬态映射。
根据本发明的各方面,所公开的方法被配置为通过形成全局瞬态映射以及与全局瞬态映射相关联的各种局部瞬态映射集合来在不同器件之间共享信息。局部瞬态映射可以用于构造不同的线程,以便为处于仿真中的多个器件建立分段线性模型。全局瞬态映射可以用于对从不同线程获得的计算结果进行同步。此外,所公开的系统可以被配置为根据精度和性能要求动态地选择网格点密度,以便在精度和性能之间做出更好的权衡以用于处于仿真中的多个器件的功能和性能验证。
根据本发明的各方面,全局瞬态映射包含多个器件相对于改变电路瞬态条件的瞬态行为。多个区域中的每个区域被配置为基于系统性能标准支持不同水平的计算精度。
图3A示出了根据本公开的各方面的将全局瞬态映射分割成器件的多个区域的示例性实现方式。在图3A所示的实例中,示出了处于仿真中的器件的实例的电特性。纵轴表示从0.00e0到1.40e-5的以安培(A)为单位的Id(漏极电流)。横轴表示从0.00到1.40的以伏特(V)为单位的Vds(漏极至源极电压)。虚线302可以表示当器件的Vds从0.00V增加至1.40V时通过断开、线性和饱和区域时的器件的一个实例的电特性(Id对Vds),例如,第一Vgs(栅极至源极电压)偏置电压。虚线304可以表示当器件的Vds从0.00V增加至1.40V时通过断开、线性和饱和区域时的器件的另一实例的电特性(Id对Vds),例如第二Vgs偏置电压。虚线306示出了该实例中相对于Id或Vds的Vgs。
在一种方式中,该方法首先根据器件的固有物理工作区域划分大区域,诸如器件的线性区域、饱和区域和断开区域。以MOSFET/DIODE器件为例,在某个物理工作区内,尽管偏置电压改变,器件的电特性仍然可以相对一致。这些特性提供了根据器件的物理工作区域划分瞬态映射的合理性。应当注意,尽管本发明使用MOSFET/DIODE型器件作为实例,但所公开的系统和方法不限于这种器件。例如,所公开的系统和方法可以应用于BJT/HEMT/JFET和其他器件。
图3B示出了根据本公开的各方面的将全局瞬态映射分割成图3A的器件的多个区域的图形表示。在一些实现方式中,将全局瞬态映射分割成多个区域的方法可以包括估计多个器件的偏置边界,依据基于所估计的偏置边界分割全局瞬态映射。
如图3B所示,示出了处于仿真中的器件的实例的电特性。纵轴表示Vds,并且横轴表示Vgs。线S1是分离器件的断开区域和饱和区域的边界。线L1是分离器件的饱和区域和线性区域的边界。
在一些实施方式中,该方法基于SPICE器件模型和各种设计标准和偏差条件来选择各种坐标网格点集合。该方法使用SPICE器件模型来计算每个网格点,以便获得该器件在这种网格点处的电特性。使用所获得的网格点的电特性,该方法然后形成覆盖物理工作区和电压区间的局部瞬态映射集合。可以使用局部瞬态映射集合建立全局瞬态映射。
如图3B中所示,在线性区域内,器件的电特性相对于Vgs或Vds的变化可以迅速变化,因此,更高密度的网格点用于表示在线性区域内的器件的特性。例如,可以使用网格点P00、P01、P02和P03来表示线性区域中的区域。
在饱和区域中,器件的电特性相对于Vgs的变化可以基本上改变,但是器件的电特性相对于Vds的变化可以相对更小,因此在Vgs维度中使用较高密度的网格点并且在Vds维度中使用较低密度的网格点,以表示饱和区中的器件的特性。例如,网格点P10、P11、P12和P13可以用于表示饱和区域中的区域。
在断开区域中,因为器件的电特性基本上不随电压变化,所以仅几个网格点用于表示在断开区域中的器件的电特性。例如,网格点P20、P21、P22和P23可以用于表示断开区域中的区域。
根据本公开的各方面,在创建瞬态映射的过程中,可以对不同区域动态地建立不同的网格点密度以控制存储器消耗,同时确保满足准确性和性能标准。在图3B的实例中,断开区域以最低网格点密度实现,线性区域以最高网格点密度实现,而饱和区域以断开区域和线性区域的网格点密度之间的网格点密度实现。
所公开的系统可以被配置为在仿真之前预测器件的电压范围,并且使用所预测的Vgs和Vds电压范围来控制网格点的尺寸,并且因此控制瞬态映射的大小。在仿真期间,如果确定可能需要Vgs和Vds的较精细分辨率,则可以动态调整Vgs和Vds的预测分辨率。
在一些实施方式中,所公开的系统可以被配置为支持多个精度模式,其然后可以用于电路仿真中具有不同标准的器件的瞬态行为分析。下表示出了不同精度模式及其对应的网格划分电压和误差控制的实例。在以下提供的实例中,模式1具有最低准确度,并且模式4具有最高准确度。
图3C示出了根据本公开的各方面的将全局瞬态映射划分割成另一器件的多个区域的示例性实现方式。与图3A中所示的实例相似,图3C示出了处于仿真中的器件的实例的电特性。纵轴表示从0.00e0到1.40e-5的以安培(A)为单位的Id(漏极电流)。横轴表示从0.00到1.40的以伏特(V)为单位的Vds(漏极至源极电压)。虚线312可以表示当器件的Vds从0.00V增加至1.40V时通过断开、线性和饱和区域时的器件的一个实例的电特性(Id对Vds),例如,第三Vgs(栅极至源极电压)偏置电压。虚线314可以表示当器件的Vds从0.00V增加至1.40V时通过断开、线性和饱和区域时的器件的另一实例的电特性(Id对Vds),例如第四Vgs偏置电压。虚线316示出了该实例中相对于Id或Vds的Vgs。
在一种方式中,该方法首先根据器件的固有物理工作区域划分大区域,诸如器件的线性区域、饱和区域和断开区域。以MOSFET/DIODE器件为例,在某个物理工作区内,尽管偏置电压改变,器件的电特性仍然可以相对一致。这些特性提供了根据器件的物理工作区域划分瞬态映射的合理性。
图3D示出了根据本公开的各方面将全局瞬态映射分割成图3C的器件的多个区域的图形表示。类似于图3B,图3D示出了处于仿真中的器件的实例的电特性。纵轴表示Vds,并且横轴表示Vgs。线S2是分离器件的断开区域和饱和区域的边界。线L2是分离器件的饱和区域和线性区域的边界。
要注意的是,线S2具有与图3B的S1不同的斜率,并且线L2具有与图3B的L1不同的斜率。对于相同类型的器件的不同实例,由于它们对应的不同参数,这样的不同参数可以引起物理工作区域的不同划分。对于图3D的器件,与图3B的器件相比,线L2和S2提供了物理工作区域的新划分。
在一些实施方式中,该方法基于SPICE器件模型和各种设计标准和偏差条件来选择各种坐标网格点集合。该方法使用SPICE器件模型来计算每个网格点,以便获得该器件在这种网格点处的电特性。使用所获得的网格点的电特性,该方法然后形成覆盖物理工作区和电压区间的局部瞬态映射集合。可以使用局部瞬态映射集合建立全局瞬态映射。
如图3D中所示,在线性区域内,器件的电特性相对于Vgs或Vds的变化可以迅速变化,因此,更高密度的网格点用于表示在线性区域内的器件的特性。例如,可以使用网格点P04、P05、P06和P07来表示线性区域中的区域。
在饱和区域中,器件的电特性相对于Vgs的变化可以基本上改变,但是器件的电特性相对于Vds的变化可以相对更小,因此在Vgs维度中使用较高密度的网格点并且在Vds维度中使用较低密度的网格点,以表示饱和区中的器件的特性。例如,网格点P14、P15、P16和P17可以用于表示饱和区域中的区域。
在断开区域中,因为器件的电特性基本上不随电压变化,所以仅几个网格点用于表示在断开区域中的器件的电特性。例如,网格点P24、P25、P26和P27可以用于表示断开区域中的区域。
类似于图3B中的方法,在创建瞬态映射的过程中,可以针对不同区域动态地建立不同的网格点密度以控制存储器消耗,同时确保满足准确性和性能标准。在图3D的实例中,断开区域以最低网格点密度实现,线性区域以最高网格点密度实现,而饱和区域以断开区域和线性区域的网格点密度之间的网格点密度实现。
如以上实例中所示,在建立瞬态映射的过程中,所公开的方法可以在确定网格点密度和哪些器件共享某些局部瞬态映射以确保满足这些标准时考虑模型的准确度标准、创建瞬态映射的速度以及瞬态映射的存储器消耗。
图4示出了根据本公开的各方面的将一个或多个瞬态行为分析分配给一个或多个计算线程的示例性实现方式。
如图4所示,任务T1和T2可以被分配至断开区域中的两个对应区域。任务T3和T4可以被分配给饱和区域中的两个对应区域。任务T5和T6可以被分配给线性区域中的两个对应区域。然后,可以基于任务和计算线程之间共享资源的可能性,将这样的任务分配和分组到不同的计算线程。这些任务也可以由系统的不同处理器处理。
根据本公开的各方面,存储器和相关联的数据结构可以被配置为支持不同器件之间的共享,从而降低电路仿真中的存储器消耗。此外,由不同的线程建立的网格点可以被总结和同步成全局瞬态映射,该全局瞬态映射可以被重新使用以减少后续仿真步骤中或仿真具有类似电特性的另一器件中的计算。
图5A示出了根据本公开的各方面的处理计算线程的示例性实现方式。在图5A所示的实例中,在框502中,该方法基于全局瞬态映射来建立对应于一个或多个计算线程的一个或多个局部瞬态映射。在框504中,该方法使用一个或多个局部瞬态映射对一个或多个计算线程中的每个线程执行一个或多个瞬态行为分析。在框506中,该方法存储多个器件的瞬态行为的结果。
图5B示出了根据本公开的各方面的执行瞬态行为分析的示例性实现方式。如图5B所示,执行器件的瞬态行为分析的方法在框510中开始,并且然后移动到框512,其中,该方法在局部瞬态映射中执行表格查找以检索网格点。在框514中,对是否找到网格点做出第一确定。如果找到网格点(514_是),则该方法继续至框516;否则,如果未找到一个或多个网格点,则该方法移至框520。在框516中,该方法使用找到的网格点执行内插以确定节点的瞬态行为。在框518中,对仿真过程中是否存在下一时间步骤进行第二确定。如果存在要模拟的下一时间步骤(518_是),则方法返回到框512;否则,如果不存在要模拟的下一时间步骤(518_否),则方法移动到框524。在框520中,该方法动态地计算一个或多个缺失的网格点。在框522中,该方法利用在框520中计算的网格点的电特性来更新局部瞬态映射,并且然后该方法移动到框512。在框524中,执行器件的瞬态行为分析的方法结束。
根据本发明的各方面,在电路仿真过程中,可以动态地建立瞬态映射。随着瞬态映射的覆盖增加,仅使用电流模拟所在的节点(电压、区域等)来查找用于模拟的信息,例如节点周围的网格点的电特性。如果节点恰好落在已经构建的瞬态映射上,可以使用使用节点周围的网格点的线性内插。如果节点恰巧落在现有的瞬态映射之外,则可以通过调用SPICE器件模型来生成缺失的网格点。使用SPICE器件模型计算网格点的方法能够在BSIM4.3.0MOSFET模型用户手册中找到。通过这种方法,该方法在瞬态映射的建立过程期间可以仅需要有限次调用SPICE模型,因为瞬态映射的覆盖范围随着仿真的进展而增加,所以计算分段线性模型仅需要少量的计算资源。因此,所公开的系统可以显著地提高大规模集成电路的仿真的成本和性能。
图5C示出了本公开的各方面的使用现有网格点用于内插器件的节点的瞬态行为的示例性方法。图5C提供在图5B的框516中执行的功能的图形说明。在图5B的框512中,该方法在局部瞬态映射中执行表格查找,以检索与处于仿真中的器件的节点N1相关联的网格点。假定从局部瞬态映射中找到并检索网格点(即,P00、P01、P10和P11),则该方法可以通过使用检索的网格点的电特性对节点N1的瞬态行为进行内插来确定节点N1的瞬态行为。
图5D示出了根据本公开的各方面的用于内插器件的节点的瞬态行为的计算缺失的网格点的示例性方法。图5D提供在图5B的框520、522、512、514和516中执行的功能的图形说明。在一个或多个局部瞬态映射中存在与处于仿真中的器件的节点N2相关联的一个或多个缺失的网格点(即P02和P12)的情况下,该方法动态地计算P02和P12,并且利用所计算的网格点P02和P12的电特性更新相应的局部瞬态映射。当该方法在局部瞬态映射中执行表格查找以再次检索与节点N2相关联的网格点时,将找到并检索与节点N2相关联的网格点,即P01、P11、P02和P12。然后,该方法可以通过使用检索到的网格点P01、P11、P02和P12的电特性对节点N2的瞬态行为进行内插来确定节点N2的瞬态行为。
图5E示出了根据本公开的各方面的更新全局瞬态图的示例性方法。在一个或多个局部瞬态映射例如由图5B的框520和框522更新之后,局部瞬态映射中的这种更新信息可以被合并、同步并且用于更新全局瞬态映射。在框532中,该方法合并来自从一个或多个计算线程获得的一个或多个局部瞬态映射的瞬态行为分析的数据。在框534中,该方法使用瞬态行为分析的合并数据来更新全局瞬态映射。
图6示出了根据本公开的一些方面的多核处理器(或图形处理器)单元的示例性架构。如图6所示,每个GPU 602包括N个多处理器。每个多处理器604还包括M个处理器606和指令单元607。每个处理器具有其自己的寄存器608。一个多处理器604中的所有处理器606共享共享存储器610的框。所有处理器共享同一组恒定高速缓存612和纹理高速缓存614存储器。它们还可以访问器件存储器616(也称为全局存储器)中的数据。根据本发明的各方面,每个处理器可以被配置为并行处理一个或多个计算线程。每个计算线程可以包括一个或多个可以并行处理的计算任务(也简称为询问任务)。
在此实例中,每个多处理器604具有共享存储器块。访问来自共享存储器610的数据比访问来自器件(全局)存储器616的数据快得多。为此,提高计算效率的一种方法是将数据从全局存储器616加载到共享存储器610,使用共享存储器610执行许多计算/操作,然后将结果从共享存储器610写回全局存储器616。
应当理解,为了清楚起见,以上描述已经参考不同功能单元和处理器描述了本发明的实施方式。然而,将显而易见的是,可以在不背离本公开的情况下使用不同功能单元或处理器之间的任何合适的功能分布。例如,被示为由单独的处理器或控制器执行的功能可以由相同的处理器或控制器来执行。因此,对特定功能单元的引用将被视为对用于提供所描述的功能的合适手段的引用,而不是指示严格的逻辑或物理结构或组织。
本发明可以以任何合适的形式实现,包括硬件、软件、固件或这些的任何组合。本发明可以任选地部分地实现为在一个或多个数据处理器和/或数字信号处理器上运行的计算机软件。本发明的实施方式的元件和组件可以以任何合适的方式在物理上、功能上和逻辑上实现。实际上,该功能可以在单个单元中、在多个单元中、或作为其他功能单元的一部分来实现。照此,本发明可以在单个单元中实现,或可以在物理上和功能上分布在不同单元与处理器之间。
相关领域的技术人员将认识到,可以使用所公开的实施方式的许多可能的修改和组合,同时仍然采用相同的基本基础机制和方法。出于解释的目的,已经参考特定实施方式编写了上述描述。然而,以上说明性讨论并不旨在是详尽的或将本发明限于所公开的精确形式。鉴于上述教导,许多修改和变化是可能的。选择和描述实施方式以解释本发明的原理及其实际应用,并且使本领域的其他技术人员能够最好地利用本发明和具有适合于预期的特定用途的各种修改的各种实施方式。
Claims (20)
1.一种在电路仿真中分析多个器件的瞬态行为的计算机实现的方法,包括:
在存储器中建立要在所述多个器件之间共享的全局瞬态映射和一个或多个局部瞬态映射;通过一个或多个处理器将所述全局瞬态映射分割成多个区域,其中,所述多个区域中的每个区域支持所述多个器件的一个或多个瞬态行为分析;
由所述一个或多个处理器将所述一个或多个瞬态行为分析分配到相应的一个或多个计算线程中,其中,每个计算线程包括一个或多个计算任务;
由所述一个或多个处理器处理所述一个或多个计算线程以确定所述多个器件的所述瞬态行为;以及
由所述一个或多个处理器使用所述多个器件的所述瞬态行为来更新所述全局瞬态映射。
2.根据权利要求1所述的计算机实现的方法,其中,所述全局瞬态映射包括:
所述多个器件相对于改变电路瞬态条件的瞬态行为;以及
所述多个区域中的每个区域被配置为基于系统性能标准支持不同水平的计算精度。
3.根据权利要求1所述的计算机实现的方法,其中,将所述全局瞬态映射分割成所述多个区域包括:
估计所述多个器件的偏置边界;以及
基于所估计的偏置边界分割所述全局瞬态映射。
4.根据权利要求1所述的计算机实现的方法,其中,所述多个区域包括:用于所述多个器件中的每个器件的线性区域、饱和区域和断开区域。
5.根据权利要求1所述的计算机实现的方法,其中,分配所述一个或多个瞬态行为分析包括:
基于在所述一个或多个计算线程之间共享资源的可能性来分配所述一个或多个瞬态行为分析。
6.根据权利要求5所述的计算机实现的方法,还包括:
将所述一个或多个计算线程分配到一个或多个计算任务中。
7.根据权利要求1所述的计算机实现的方法,其中,处理所述一个或多个计算线程包括:基于所述全局瞬态映射来建立对应于所述一个或多个计算线程的一个或多个局部瞬态映射;
使用所述一个或多个局部瞬态映射对所述一个或多个计算线程中的每个线程执行所述一个或多个瞬态行为分析;以及
存储所述多个器件的所述瞬态行为的结果。
8.根据权利要求7所述的计算机实现的方法,其中,对所述一个或多个计算线程中的每个线程执行所述一个或多个瞬态行为分析包括:
基于存在于所述一个或多个局部瞬态映射中的网格点内插瞬态行为。
9.根据权利要求7所述的计算机实现的方法,其中,对所述一个或多个计算线程中的每个线程执行所述一个或多个瞬态行为分析还包括:
在用于执行一个或多个瞬态行为分析的一个或多个局部瞬态映射中存在一个或多个缺失的网格点的情况下,
动态地计算所述一个或多个缺失的网格点;
使用所计算的所述一个或多个缺失的网格点来更新所述一个或多个局部瞬态映射;以及
基于在一个或多个局部瞬态映射中存在的网格点和所计算的所述一个或多个缺失的网格点内插瞬态行为。
10.根据权利要求1所述的计算机实现的方法,其中,更新所述全局瞬态映射包括:合并来自从所述一个或多个计算线程获得的一个或多个局部瞬态映射的瞬态行为分析的数据;以及
使用瞬态行为分析的所述合并数据来更新所述全局瞬态映射。
11.一种用于在电路仿真中分析多个器件的瞬态行为的系统,包括:
存储器,被配置为存储要在所述多个器件之间共享的全局瞬态映射和一个或多个局部瞬态映射;
一个或多个处理器,被配置为将所述全局瞬态映射分割成多个区域,其中,所述多个区域中的每个区域支持所述多个器件的一个或多个瞬态行为分析;
所述一个或多个处理器被进一步配置为将所述一个或多个瞬态行为分析分配到相应的一个或多个计算线程中,其中,每个计算线程包括一个或多个计算任务;
所述一个或多个处理器被进一步配置为处理所述一个或多个计算线程以确定所述多个器件的所述瞬态行为;以及
所述一个或多个处理器被进一步配置为使用所述多个器件的所述瞬态行为来更新所述全局瞬态映射。
12.根据权利要求11所述的系统,其中,所述全局瞬态映射包括:
所述多个器件相对于改变电路瞬态条件的瞬态行为;以及
所述多个区域中的每个区域被配置为基于系统性能标准支持不同水平的计算精度。
13.根据权利要求11所述的系统,其中,所述一个或多个处理器被进一步配置为:
估计所述多个器件的偏置边界;并且
基于所估计的偏置边界分割所述全局瞬态映射。
14.根据权利要求11所述的系统,其中,所述多个区域包括:用于所述多个器件中的每个器件的线性区域、饱和区域和断开区域。
15.根据权利要求11所述的系统,其中,所述一个或多个处理器被进一步配置为:基于在所述一个或多个计算线程之间共享资源的可能性来分配所述一个或多个瞬态行为分析。
16.根据权利要求15所述的系统,其中,所述一个或多个处理器被进一步配置为:
将所述一个或多个计算线程分配到一个或多个计算任务中。
17.根据权利要求11所述的系统,其中,所述一个或多个处理器被进一步配置为:
基于全局瞬态映射来建立对应于一个或多个计算线程的一个或多个局部瞬态映射;
使用所述一个或多个局部瞬态映射对所述一个或多个计算线程中的每个线程执行所述一个或多个瞬态行为分析;以及
存储所述多个器件的所述瞬态行为的结果。
18.根据权利要求17所述的系统,其中,所述一个或多个处理器被进一步配置为:
基于存在于所述一个或多个局部瞬态映射中的网格点内插瞬态行为。
19.根据权利要求17所述的系统,其中,所述一个或多个处理器被进一步配置为:
在用于执行一个或多个瞬态行为分析的一个或多个局部瞬态映射中存在一个或多个缺失的网格点的情况下,
动态地计算所述一个或多个缺失的网格点;
使用所计算的所述一个或多个缺失的网格点来更新所述一个或多个局部瞬态映射;以及
基于存在的网格点和在所述一个或多个局部瞬态映射中计算的所述一个或多个缺失的网格点内插瞬态行为。
20.根据权利要求11所述的系统,其中,所述一个或多个处理器被进一步配置为:
合并来自从所述一个或多个计算线程获得的一个或多个局部瞬态映射的瞬态行为分析的数据;以及
使用瞬态行为分析的所述合并数据来更新所述全局瞬态映射。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202217674766A | 2022-02-17 | 2022-02-17 | |
US17/674,766 | 2022-02-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116227400A true CN116227400A (zh) | 2023-06-06 |
Family
ID=86572010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211594575.1A Pending CN116227400A (zh) | 2022-02-17 | 2022-12-13 | 用于瞬态行为分析的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116227400A (zh) |
-
2022
- 2022-12-13 CN CN202211594575.1A patent/CN116227400A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009512910A (ja) | システムのシミュレーション | |
US9031825B1 (en) | Statistical circuit simulation | |
US9804894B2 (en) | Dynamic load balancing in circuit simulation | |
US9779192B2 (en) | Multi-rate parallel circuit simulation | |
CN113971383A (zh) | 分布式静态时序分析 | |
US11663383B2 (en) | Method and system for hierarchical circuit simulation using parallel processing | |
US20210406438A1 (en) | Glitch source identification and ranking | |
US8260600B1 (en) | Circuit simulator | |
US6601226B1 (en) | Tightloop method of timing driven placement | |
US10346573B1 (en) | Method and system for performing incremental post layout simulation with layout edits | |
CN105095545B (zh) | 电路仿真中基于工作区域的器件缓冲 | |
US20220391566A1 (en) | Machine learning models for predicting detailed routing topology and track usage for accurate resistance and capacitance estimation for electronic circuit designs | |
CN116227400A (zh) | 用于瞬态行为分析的系统和方法 | |
US10339240B2 (en) | Adaptive high sigma yield prediction | |
Schneider et al. | Multi-level timing simulation on GPUs | |
JP7466665B2 (ja) | リーク電流に統計的ばらつきをもつダイナミックランダムアクセスメモリパストランジスタの設計 | |
US11853680B2 (en) | Incremental routing based pin assignment | |
US11328109B2 (en) | Refining multi-bit flip flops mapping without explicit de-banking and re-banking | |
Schneider et al. | SWIFT: Switch-Level Fault Simulation on GPUs | |
Schneider et al. | Data-parallel simulation for fast and accurate timing validation of CMOS circuits | |
Lin et al. | A design framework for hardware approximation of deep neural networks | |
Zapata et al. | A GPU parallel finite volume method for a 3D Poisson equation on arbitrary geometries | |
Jagtap et al. | Clustering and parallel processing on gpu to accelerate circuit transient analysis | |
US8819086B2 (en) | Naming methodologies for a hierarchical system | |
JP2000276454A (ja) | ソフトウェアの構成方法 |
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 |