CN105095545A - 电路仿真中基于工作区域的器件缓冲 - Google Patents

电路仿真中基于工作区域的器件缓冲 Download PDF

Info

Publication number
CN105095545A
CN105095545A CN201410204543.5A CN201410204543A CN105095545A CN 105095545 A CN105095545 A CN 105095545A CN 201410204543 A CN201410204543 A CN 201410204543A CN 105095545 A CN105095545 A CN 105095545A
Authority
CN
China
Prior art keywords
buffer area
logic
described device
adjacent devices
electronic circuit
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.)
Granted
Application number
CN201410204543.5A
Other languages
English (en)
Other versions
CN105095545B (zh
Inventor
B·W·麦克高非
张振中
方君
牛新军
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.)
Shanghai GuLun Electronics Co.,Ltd.
Original Assignee
PROPLUS ELECTRONICS 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 PROPLUS ELECTRONICS CO Ltd filed Critical PROPLUS ELECTRONICS CO Ltd
Priority to CN201410204543.5A priority Critical patent/CN105095545B/zh
Priority to US14/332,240 priority patent/US10002217B2/en
Publication of CN105095545A publication Critical patent/CN105095545A/zh
Application granted granted Critical
Publication of CN105095545B publication Critical patent/CN105095545B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明公开了一种在电路仿真中关于基于工作区域的器件缓冲方法及系统,在具体实例中,一个在电路仿真中执行基于工作区域的器件缓冲的计算机实施方法,接收仿真子电路的信号,其中所述子电路包含多个器件;确定所述多个器件的节点(电压)容差;针对所述多个器件中的每一器件,使用所述多个器件的所述节点容差确定所述器件是否已进入缓冲区域;所述器件尚未进入所述缓冲区域相应地执行模型评估;且所述器件已进入所述缓冲区域相应地跳过模型评估。

Description

电路仿真中基于工作区域的器件缓冲
技术领域
本发明涉及的领域是电子设计自动化,具体而言,本发明涉及电路仿真中的基于工作区域的器件缓冲。
背景技术
集成电路是由例如电阻、电容、电感器、互感器、传输线、二极管、双极结型晶体管(BJT)、结型场效应晶体管(JFET)、金属氧化物半导体场效应晶体管(MOSFET)、金属T半导体场效应晶体管(MESFET)、薄膜晶体管(TFT)等电路元件构成的网络。
随着技术的发展,集成电路越来越复杂,需要使用强大的数值模拟程序。例如,电路仿真是集成电路的设计流程中必不可少的环节,它能帮助电路设计人员无需通过昂贵的制造工艺验证其设计的功能和性能。随着半导体加工技术发展到纳米规格,新的仿真方法需要解决纳米级电路设计所固有的新问题。现代集成电路快速发展、更新换代,不断挑战着电路仿真的算法和实现。半导体行业需要EDA软件有能力来分析与动态电流相关的纳米效应,比如耦合噪声(couplingnoise)、接地反弹(groundbounce)、传输线波传播(transmissionlinewavepropagation)、动态漏电流(dynamicleakagecurrent)、电源电压降(supplyvoltagedrop)、器件和电路的非线性行为等。因此,精准的电路模拟和晶体管级仿真已经成为解决纳米设计所面临问题的最有效的途径之一。
电子电路仿真器包括美国加州大学伯克利分校(UCBerkeley)开发的面向集成电路的仿真程序——SPICE(SimulationProgramwithIntegratedCircuitEmphasis)以及各种增强或衍生版本的SPICE仿真程序。SPICE及其增强、衍生版本将在本文被简称为SPICE电路仿真器或SPICE。SPICE方法认为电路是一个不可分割的整体。
SPICE仿真可以提供对电路行为相当准确的预测。这种预测不局限于个别的子电路,它涵盖整个系统(例如,整个集成电路),因而可以发现、处理全系统范围关于噪声之类的问题。一般的SPICE仿真处理流程,模拟集成电路通常被表示为一个网表描述的形式。网表是一种由SPICE语言编写的用于仿真的对模拟电路的电路描述。SPICE网表是包含仿真控制语句的纯结构性语言。其他语言如Verilog-ATM,还具有行为构建的能力。通过结构性网表,连同预定义电路元件,根据特定的电路建模方法,SPICE可以将模拟集成电路表示为矩阵形式的数学表达。非齐次线性微分方程解的维度范围从1到n。由线性方程处理相应数量的输入向量。输入向量集被表示为{I1,I2,..In}。接下来,线性矩阵通过输入向量集解出解向量集{V1,V2,..Vn}。重复以上计算,直到解向量集收敛。解向量集可以转换输出为波形、测量值或者由工程师通过计算机屏幕检查仿真的核查结果。
然而,随着集成电路行业的发展,器件几何形状的不断减小、系统中组成部件之间的互联效应日益增加,整个系统的SPICE类仿真变得越来越困难。一个例子是晶体管沟道长度微米规格变化为深亚微米规格。由于器件几何形状的不断缩小,电路设计者在集成电路(IC)中能够运用电路元件(例如,晶体管、二极管、电容)数量呈指数级增长,对应于SPICE矩阵的维数也量级增长,巨大的计算复杂度使得计算不能在希望的时间范围内完成。
一个电路可以表示为用于瞬间电流分析的大规模离散非线性矩阵。矩阵维数和电路中节点的数目同阶。对于瞬态分析,这个巨大的非线性系统需要求解几十万次,这限制了SPICE方法的容量和性能。一般的SPICE方法可以模拟不超过约50,000个节点的电路。因此,对于全芯片设计,SPICE方法不可行。SPICE在实际应用中被广泛应用于单元设计、库生成和准确性验证。
相对于传统SPICE,在20世纪90年代初开发的快速SPICE方法(FastSPICE)在一定精度损失的情况下,有两个数量级以上的容量和速度提升。性能上的提升主要由于使用简化模型、电路划分技术、事件驱动的算法以及对电路延迟的利用。
SPICE将电路模型化为节点或元件方式,也就是说一个电路被视为通过节点相连接的各种电路元件的集合。SPICE的核心是所谓的节点分析,通过节点方程(或者电路方程)以矩阵形式表示电路,求解节点方程对电路进行仿真。电路成分通过器件模型被模型化,产生模型结果以矩阵的形式在电路方程式中表示。
电路元件的器件模型模拟,比如加州大学伯克利分校开发MOSFET器件SPICE模型,通常以模型方程和模型参数表示在变化偏置电压下的电路元件特性。例如,具有n个端子的电路元件,可以由下述的电流-电压关系建模:
Ii=fi(V1,...,Vn,t),其中i=1,…,n,
Ii表示流入第i个端口的进入电流,Vj(j=1,…,n)表示电压或者端口j相对于参考端口(例如地端口)的端口偏置电压,t表示时间。由基尔霍夫电流定律,流入端口n的电流为电路元件的电导矩阵为:
为了模拟电路元件在变化电流(AC)的行为,需要考虑节点电荷及端口偏执电压之间的关系:
Qi=qi(V1,...,Vn,t),其中i=1,…,n.
Qi表示端口i的节点电荷。n端口元件的电容矩阵为:
在电路仿真中,模型计算、模型加载、模型求解需要占用大量计算资源,对于纳米级设计矩阵规模极大,这些计算十分耗时,计算复杂度为n3,其中n为矩阵的维度。传统的应用程序不能有效利用计算资源,因为没有考虑到仿真过程中电路的某些部分处于可以缓冲的区域,对应的矩阵部分也可以在某些处理步骤中被缓冲。
因此,需要新的方法和系统来解决常规系统所面临的问题。具体而言,需要在电路仿真中找到基于工作区域的器件缓冲的方法和系统。
发明内容
本发明揭示了一种分层级系统命名方法学的方法和系统。在实际应用中,一种在电路仿真中执行基于工作区域器件缓冲的计算机实现方法包括如下步骤:接收用于仿真的子电路,该子电路包括多个器件;确定所述多器件的结点容差。更进一步地解释,对于所述多个器件中的每个器件,计算机实现方法包括如下的工作:利用所述多器件的结点容差确定该器件是否已进入缓冲区;若该器件未进入缓冲区,执行模型评估,若该器件已进入缓冲区,则跳过模型评估。
本发明的另一实例提到,在电路仿真中构建的基于工作区域器件缓冲的装置,是由一个或多个处理器加上含有一个或多个处理器控制的基于工作区域器件缓冲的模块组成。该基于工作区域器件缓冲的模块包含多重逻辑:能够为仿真而接收由多个器件组成的子电路的逻辑;能够判断多器件及其中各组件节点容差之间的逻辑;利用多器件节点容差来判断该器件是否进入缓冲区的逻辑;对未进入缓冲区的器件执行模型评估的逻辑;对已进入缓冲区的器件执行跳过模型评估。
本发明中的其他实例,在电路仿真中实现基于工作区域器件缓冲的系统包括一系列方法:在仿真中接收由多器件组成的子电路的方法;能够判断多器件及其中各组件节点容差的方法;利用多器件节点容差判断该器件是否进入缓冲区域的方法;对未进入缓冲区域的器件进行模型评估的方法;对进入缓冲区域的器件执行跳过模型评估的方法。
通过上述本发明的说明,揭示了电路仿真中基于工作区域的器件缓冲,可以提高电路仿真的效率,充分的利用计算机资源。
附图说明
结合以下附图阅读将对实施用例的详细描述,对本发明的上述特征和优点,以及额外的特征和优点,会有更加清晰的理解。
图1为在本发明中列举的一种在电路仿真中执行基于工作区域的器件缓冲的系统;
图2为在本发明中展示的由多核处理器构建的在电路仿真中执行基于工作区域的器件缓冲的实例;
图3展示了本发明中仿真子电路的框图;
图4所示为本发明在电路仿真中执行基于工作区域的器件缓冲方法的实例;
图5A列举了本发明中图4中确定节点容差的方法;
图5B所示为在本发明中检查如图5A所示的区域敏感性的实例;
图5C所示为在本发明中检查如图5A所示的区域敏感性的另一实例;
图6A列举了在本发明中确定器件是否已进入如图4所示的缓冲区域的执行状况;
图6B列举了在本发明中确定器件是否已进入如图4所示的缓冲区域的另一实例;
图7A列举了本发明中仿真子电路的电导率的确定方法;
图7B是本发明中如图7A所示方法的另一种描写;
图8A所示为本发明中仿真子电路的电容确定方法;
图8B所示为本发明中如图8A所示方法的另一种描写。
具体实施方式
本发明提供了执行电路仿真中基于工作区域的器件缓冲的算法和系统,并根据下列描述使所属领域的技术人员可以制造和使用本发明。仅作为实例提供具体实施用例和应用的描述。这里描述的各种修改和组合的实例对于所属领域的技术人员是显而易见的,由此定义的普遍规则也可以在不背离这项发明的精神和范围下应用到其它实例和应用中。因此,本发明并不局限于所描述和展示的实例,而是应被赋予与本文所揭示的原理和特征最广范围相一致的应用范围。
以下详细描述的一部分是用有关流程图,逻辑模块及可在计算机系统上执行信息操作的其它符号表达法来呈现。计算机执行步骤,逻辑模块,进程等在本发明中被设想成一个或多个步骤的有条理的序列或是达到预期结果的指令。所述步骤就是利用物理量的物理操作。这些量表现为电,磁,或无线信号,它们可以被储存,传输,组合,比较,或者就在计算机系统里被控制。这些信号有时被称为位,值,元素,符号,字符,术语,数字或者其他类似的。每一步骤可以由硬件,软件,固件或他们的组合来执行。
图1所示列举了本发明中执行在电路仿真中基于工作区域的器件缓冲的系统。在这一实例中,执行电路仿真中基于工作区域的器件缓冲的方法可以用计算机系统来实现。计算机系统可以包含一个或多个图形处理器(GPUs)和\或多核微处理器(CPUs)100(下文中简称处理器),至少有一个用于显示计算结果和波形图的用户界面102,一个存储设备104,一个系统总线106,和一个或多个用于连接GPUs\CPUs、用户界面、存储设备和系统总线的总线接口。计算机系统也包括了至少一个在计算机网络上用于和其它设备105通讯的网络接口103。在另一实例中,该方法和系统的某些特定功能可以在一个或多个专用集成电路(ASICs)或现场可编程门阵列(FPGAs)中实现,从而减少了GPU/CPU的作用。
存储设备104可以包含高速随机存取存储器,也可以包含非易失性存储器,如一个或多个磁盘存储设备。所述存储设备还可以包括从图形处理器(GPUs)/CPUs的远程加载的海量存储设备,存储设备最适宜存储的是:
·操作系统108,其包括用于处理各种基本系统服务和执行与硬件相关任务的程序;
·应用程序110,用于执行用户自定义的应用程序和任务,如电路仿真和器件评估;
·数据库112,用于存储集成电路的信息。数据库包括数据结构,器件模型和矩阵;
·器件模型评估缓冲模块114,该配置用来提高电路仿真的效率。
数据库,应用程序和实现电路仿真中基于工作区域的器件缓冲方法的程序包括可执行程序,子模块,表格和其它的数据结构。在其它的实例中,可使用附加的或不同的模块和数据结构,而上面列出的一些模块和\或数据结构可以不使用。
图2列举了本发明在电路仿真中执行基于工作区域的器件缓冲的实例。如图2所示,每个GPU包括了N个多处理器,每个多处理器204还包括了M个分处理器206和一个指令单元207。每个处理器有它自己的寄存器208。一个多处理器204中的所有的分处理器206共用一个共享存储器模块210。所有处理器共享同一组常量缓存212和纹理缓存214存储器。这些处理器也可以访问设备存储器216中的数据,其中所述设备存储器216还被称为全局存储器。
在这个例子中,每个多处理器204都有一个共享存储器模块。从共享存储器210访问数据比从设备存储器(全局存储器)216访问数据快得多。所以一个提高计算效率的方法就是把全局存储器216的数据加载到共享存储器210中,利用共享存储器210执行大部分的计算和操作,然后再把共享存储器210计算的结果写回到全局存储器216中。图3所示为本发明在仿真状态下的子电路的框图实例。如图3所示,子电路302包括多个器件。在仿真过程中,有的器件是活跃的,像图中活跃区域所示的304a,304b和304c等等。有的器件是非活跃的,像图中缓冲区域的306a,306b和306c等等。多个器件可以互相连接(或耦合),表现为连接308a,308b,308c等。确定某个器件是否为非活跃(在缓冲区域中)的方法将在下面结合图5A来描述。(图4所示为本发明在电路仿真中执行基于工作区域的器件缓冲方法的实例。在图4模块402所示的例中展示,确定一个器件是否进入缓冲区域要考虑多种因素。例如,结合考虑图5A所描述的节点容差,该方法会检查器件的节点容差的变化,区域灵敏度,环境灵敏度和功能灵敏度。在模块404中,该方法确定子电路302中的每个器件是否进入到了缓冲区域,如果这个器件已经进入到了缓冲区域(去模块404的“是”分支),则此方法移到模块406。反之,如果该器件没有进入缓冲区域,则此方法就移到模块408。
在模块406中,对于已进入到缓冲区域的器件,不再进行模型评估。在模块408中,对还没有进入到缓冲区域的器件执行模型评估。在模块410中,决定是否结束模型评估。如果子电路302中的所有器件都已经被处理了(去模块410的“是”分支),则进入到模块412。但是如果还有一些器件需要处理(去模块410的“否”分支),该方法就回到模块402,并且不断地重复从模块402执行到410,直到子电路302中所有的器件都被处理过。
在模块412中,加载器件模型。根据本发明公开的内容,进入到缓冲区域的器件在电导(g')和电容(c')上发生的变化实质上是最小的,而且,结合图7A-7B和图8A-8B,这些电导(g')和电容(c')的值可以进行预加载。对于未进入到缓冲区域(例如活跃区域)的器件,它们相应的电导(g)和电容(c)可能通过结合图7A-7B和图8A-8B描写的散集操作(scatter-gather)被加载到电导矩阵G和电容矩阵C。在模块414中,方法应用模块412构建的器件模型执行求解。
图5A所示为本发明图4确定节点容差的方法实例。如图5A所示,在模块502中,可以对仿真子电路302里的多个器件,检查每个节点电压相对于它相应预置节点容差的变化(例如1mV,2mV等)。在某些实现中,如果节点上的变化超过了它的预置节点容差,即确定设备已进入到了缓冲状态。
在模块504中,该方法可以根据器件中不同的工作区域的敏感性来检查器件。例如,预置的节点容差可以根据器件是否在截止区,线性区或饱和区来进行调整。在某些实现中,不同的预置节点容差可以被使用在不同的操作区域中。
在模块506中,该方法能在一个或者多个相邻器件的环境中检查器件,来确定所述器件的预置节点容差。例如,利用一个或多个相邻器件相比较于该器件的尺寸,来检查这些相邻器件的环境。在其他的实现中,利用一个或者多个相邻器件与该器件相比较的聚合电导来检查该器件。还有某些实现中,可以检测与该器件相比较一个或多个邻近器件的聚合电容。
在模块508中,通过检查一个或者多个相邻器件(确定该器件的预置节点容差时的所述相邻器件)的功能,可以检查该器件的功能敏感性。例如,当该器件是个反相器时,它的预置节点容差与该器件是放大器时的节点容差大不相同的。另外,当该器件是个加法器时,它的预置节点容差与该器件是振荡器时的节点容差也是大不相同的。
图5B所示为本发明检查图5A的区域敏感性的实例。在图5B中,对于金属氧化物半导体场效应晶体管(MOSFET)的Vgs-Vth的多个值,展示了漏极电流(Ids)和漏极到源极间电压(Vds)的对比。水平轴表示漏极到源极间电压(Vds),垂直轴代表漏极电流(Ids).对于给定的栅电压,Ids随着Vds呈线性增加,随后逐渐平稳接近饱和值。MOSFET的线性区用数字510代表,其饱和区用数字512代表。根据本发明的说明,MOSFET的敏感度可以根据其不同的工作区域来进行检查。例如,节点容差可以依据器件是在线性区510还是饱和区512来进行调整。此外,不同的节点容差用于不同的工作区域。
图5C所示为本发明检查如图5A所示的区域敏感度的另一实例。图5C展示了MOSFET中漏极电流(Ids)和栅极到源极间电压(Vgs)的对比。水平轴表示栅源极电压(Vgs),垂直轴表示漏极电流(Ids)。在此实例中,Ids随着Vgs呈线性增加随后逐渐平稳。MOSFET的饱和区用数字514代表。根据本发明的说明,MOSFET的敏感性可以依据器件不同的工作区域来进行检查。例如,节点容差可根据器件是否在饱和区514来进行调整。此外,预置的节点容差可以在饱和区514使用。
图6A所示为本发明确定器件是否已进入如图4所示缓冲区域的实例的执行状况。在模块602中,通过图5A描述的方法临时确定器件是否已经进入到缓冲区域。在某些状态下,某器件可能临时进入到了缓冲区域,但是随后又变成活跃。在预置周期内,该方法可以对器件已经进入缓冲区域进行跟踪,其中所述预置的周期为一可编程的参数。当器件在预置周期内还在缓冲区域中,该器件可以被视为已经进入到了临时缓冲区域。如果器件已经进入到了临时缓冲区(去模块602的“是”分支),即进入到模块604。或者,如果器件还没有进入到临时缓冲区(去模块602的“否”分支),则进入模块408。
在模块604中,通过图5A描述的方法,来确定器件是否持续地进入到了缓冲区域一段时间。如上所描述,在预置周期内,可以对器件已经进入缓冲区域进行跟踪。如果该器件在缓冲区域停留超过了预置周期,那么所述器件可被视为已经进入到了持续缓冲区。如果所述器件已经进入到持续缓冲区(去模块604的“是”分支),即进入到模块406。或者,如果所述器件还没进入到持续缓冲(去模块604的“否”分支),则进入到模块408。换言之,在此实例中,只有当器件进入到了持续缓冲区时,才可以跳过模型评估;否则,就要执行器件模型评估。
图6B所示为本发明判断器件是否已进入如图4所示的缓冲区域的另一实例。在图6B所示的可仿效实现中,确定器件是否已经进入到临时缓冲区(模块602)的方法和确定器件是否进入到持续缓冲区(模块604)的方法,与图6A所描述的方法类似。在模块602中,如果器件已经进入到临时缓冲区(去模块602的“是”分支),该方法即进入到模块406,或者,如果器件还没有进入到临时缓冲区(去模块602的“否”分支),该方法则进入到模块604。在模块604中,如果器件已经进入到持续缓冲区(去模块604的“是”分支),该方法即进入到模块406。或者,如果器件还没进入到持续缓冲区(去模块604的“否”分支),该方法则进入到模块408。在本实例中,如果器件已经进入到临时缓冲区或者是进入到持续缓冲区,就可以跳过模型评估。否则,就要执行器件模型评估。
图7A所示为本发明确定被仿真子电路的电导率方法的实例。如图7A所示,缓冲区域里的器件(一个或多个)的电导用g’(在模块702中)表示,临时缓冲区域里的器件(一个或多个)的电导用g”(在模块703中)表示;活跃区域里的器件(一个或多个)的电导用g(在模块704中)表示。在仿真中的每个时间步长里,仿真中子电路的总电导G(在模块706中用G表示)是缓冲区域里器件(一个或多个)的电导(g’),临时缓冲区域里器件(一个或多个)的电导(g”)和活跃区域里器件(一个或多个)的电导(g)的结合。
图7B所示为本发明中图7A所示方法的另一个实例。在图7B所示的可仿效实现中,当某器件进入了缓冲区域,该方法会把器件的电导(g’)预加载到缓冲聚合电导矩阵(G’)708中。换言之,缓冲区域里子电路器件的电导贡献被预求和,而且存储在缓冲聚合电导矩阵(G’)708中。另一方面,当该器件离开了缓冲区域,其电导贡献会从缓冲聚合电导矩阵(G’)708中减去。根据本发明的实例,缓冲聚合电导矩阵(G’)708与电导矩阵(G)有着相同的格式。在其他的实现中,缓冲聚合电导矩阵(G’)708可以实现为连续数组。在仿真的每个时间步长中,缓冲聚合电导矩阵(G’)708的内容会被添加到电导矩阵(G)706中。根据本发明的内容,临时缓冲区域的器件(一个或多个)的电导(g”)(模块703)和活跃区域的器件(一个或多个)的电导(g)(模块704)可以通过分散/汇集操作计入706的电导矩阵G中。
根据本发明的说明,在时间步长迭代开始时的缓冲状态可按如下步骤检查:
1)将非活跃器件端口相对电压(VDS,VGS,VBS)和上一时间步长进行比较。
a)通过不同工作区域的器件获得比较容差的设置。
2)如果电压的任何维数都超过了容差,则离开缓冲状态,并激活器件。
a)减去被激活器件的贡献(器件局部矩阵),以此恢复非活跃矩阵;
b)通过减去ΔRHS(RightHandSide)来恢复RHS(右手项=进入缓冲时的原始右手项+器件局部矩阵×(当前迭代的解-进入缓冲时的解))
3)如果电压的所有维数在容差之中,就停留在缓冲区域。
a)通过外插调整右手项(Δ右手项=器件局部矩阵×(当期迭代解-上次迭代解))。
根据本发明的内容,时间步长迭代结束阶段的缓冲状态可以按如下步骤检查:
1)将活跃器件端口相对电压(VDS,VGS,VBS)与前一时间步长进行比较。
a)通过不同区域的器件获得比较容差的设置。
2)如果电压的任何维数超过了容差,即停留在非缓冲状态;
3)如果电压的所有维数在容差之中,则进入缓冲状态:
a)将器件局部矩阵填到全局非活跃矩阵中;
b)将器件端口右手项填到全局非活跃矩阵中;
c)将器件的端口电压和器件的局部矩阵/右手项(RHS)存储在器件中,以备日后引用。
图8A所示为本发明在仿真环境下子电路的电容确定方法的说明。与图7A所示的关于子电路电导的方法相类似,缓冲区域里的器件(一个或多个)的电容用c’(在模块802中)表示;临时缓冲区域里的器件(一个或多个)的电容用c”(在模块803中)表示;活跃区域里的器件(一个或多个)的电容用c(在模块804中)表示。在仿真中的每个时间步长里,仿真中子电路的总电容用C表示(在模块806中),该总电容C可能是缓冲区域里器件(一个或多个)的电容(c’),临时缓冲区域里器件(一个或多个)的电容(c”)和活跃区域里器件(一个或多个)的电容(c)的结合。
图8B所示为本发明图8A所示方法的另一个实例。与图7B所示的关于子电路电导的方法相类似,当某器件进入了缓冲区域,该方法会将器件的电容(c’)预加载在缓冲聚合电容矩阵(C’)808中。换言之,缓冲区域里子电路的器件电容贡献被预求和,而且存储在缓冲聚合电容矩阵(C’)808中。另一方面,当器件离开了缓冲区域,其电容贡献会从缓冲聚合电容矩阵(C’)808中减去。根据本发明的说明,缓冲聚合电容矩阵(C’)808与电容矩阵(C)有着相同的格式。在其它的实现中,缓冲聚合电容矩阵(C’)808可以实现为连续数组。在仿真的每个时间步长中,缓冲聚合电容矩阵(C’)808的值会被添加到电容矩阵(C)806。根据本发明的说明,临时缓冲区域(模块803)里的器件(一个或多个)的电容(c”)和活跃区域(模块804)里的器件(一个或多个)的电容(c)可以通过分散/汇集操作计入到电容矩阵C806中。
应该认识到,上述清晰的描述已经通过引用不同的功能单元和处理器来描述本发明的特征。但是,很明显,依然可以在不同的功能单元和处理器之间,使用任何合适的功能分配,而不影响本发明,例如,检查了通过分离的处理器或控制器执行的功能也可以通过同样的处理器或控制器执行。对特定的功能单元的引用也可以看作是对提供所描述功能的适当方法的引用,而不是去表明严密的逻辑,物理结构,或是组织。
本发明可以以任何一种合适的形式去实现,包括硬件,软件,固件,或者是这三者之间任意一种组合。本发明可以选择性地部分实现为在一个或多个数据处理器和/或数字信号处理器上运行的计算机软件。本发明的一种实例的元素和组件可以以任何一种方式,在物理上,功能上和逻辑上实现。实际上,这一功能可以在单独一个单元,数个单元,或者作为其它功能单元的一部分被执行。同样地,这一发明可以在一个单独的单元中被执行,也可以在物理上和功能上在不同的单元和处理器间进行分配。
凡是业内人士都能够意识到,在使用同样基本的潜在机制和方法时,依然可以使用公开实例的许多可能的修正和组合。前面的描述引用了特定的例子做出解释。然而,上述详细的研究并非旨在彻底的讨论或把本发明限制为所披露的精确形式。鉴于上述的教旨,许多修正和变动也是可行的。选择和描述实例,用以解释本发明的原理及其实际应用,使本领域技术人员能够根据预期的特定用途使用各种修正方案,充分利用本发明中各种实施用例。

Claims (25)

1.一种在电路仿真中执行基于工作区域的器件缓冲的计算机实施方法,其特征包括:
接收仿真子电路的信号,其中所述子电路包含多个器件;
确定所述多器件的节点容差;
针对所述多器件中的每一器件,
用所述多器件的节点容差确定所述器件是否已进入缓冲区域;
所述器件尚未进入所述缓冲区域相应地执行模型评估;及
所述器件已进入所述缓冲区域相应地跳过模型评估。
2.根据权利要求1所述的计算机实施方法,其特征还包括:
加载所述子电路的模型;及求解所述子电路的所述模型。
3.根据权利要求1所述的计算机实施的方法,其特征在于,确定所述多个器件的节点容差包括:
根据不同工作区域中的敏感性来检查所述器件,其中所述不同工作区域包括至少以下区域中的一个区域:截止区、线性区及饱和区;及
基于所述不同工作区域适用不同容差标准。
4.根据权利要求1所述的计算机实施的方法,其特征在于,确定所述多个器件的节点容差还包括:
在一个或一个以上相邻器件的环境中检查所述器件,其中所述一个或一个以上相邻器件的所述环境包括所述一个或一个以上相邻器件的物理特性。
5.根据权利要求4所述的计算机实施的方法,其特征在于,所述一个或一个以上相邻器件的所述物理特性包括以下各项中的至少一项:
所述一个或一个以上相邻器件的几何形状与所述器件相比;
所述一个或一个以上相邻器件的驱动电流与所述器件相比;
所述一个或一个以上相邻器件的泄漏电流与所述器件相比;
所述一个或一个以上相邻器件的有效功率与所述器件相比;
所述一个或一个以上相邻器件的电子迁移率与所述器件相比;
所述一个或一个以上相邻器件的空穴迁移率与所述器件相比;
所述一个或一个以上相邻器件的阈值电压与所述器件相比;
所述一个或一个以上相邻器件的聚合电导与所述器件相比;及
所述一个或一个以上相邻器件的聚合电容与所述器件相比。
6.根据权利要求1所述的计算机实施的方法,其特征在于,确定所述多个器件的节点容差还包括:
检查所述器件的功能敏感性,该敏感性是关于所述器件在所述一个或一个以上相邻器件的电路级功能中的作用。
7.根据权利要求1所述的计算机实施的方法,其特征在于,确定所述器件是否处于缓冲区域中包括:
确定所述器件是否已临时进入所述缓冲区域;及
确定所述器件是否已持续地进入所述缓冲区域一段时间。
8.根据权利要求7所述的计算机实施的方法,其特征在于,还包括以下步骤中的至少一个步骤:
所述器件已临时地进入所述缓冲区域相应地识别所述器件正处于缓冲区域中;及
所述器件已持续进入所述缓冲区域一段时间相应地识别所述器件正处于缓冲区域中。
9.根据权利要求1所述的计算机实施的方法,其特征在于,所述器件尚未进入所述缓冲区域相应地执行模型评估包括:
执行收集操作以使用所述器件的电导更新所述子电路的电导矩阵。
10.根据权利要求1所述的计算机实施的方法,其特征在于,所述器件尚未进入所述缓冲区域相应地执行模型评估还包括:
执行收集操作以使用所述器件的电容更新所述子电路的电容矩阵。
11.根据权利要求1所述的计算机实施的方法,其特征在于,所述器件已进入所述缓冲区域相应地跳过模型评估包括:
将所述器件的电导率预加载于缓冲集合电导矩阵中;并
在每一个时间步长将所述缓冲集合电导矩阵加入到所述子电路的电导矩阵。
12.根据权利要求1所述的计算机实施的方法,其特征在于,所述器件已进入所述缓冲区域相应地跳过模型评估还包括:
将所述器件的电容预加载于缓冲集合电容矩阵中;并
在每一个时间步长将所述缓冲集合电容矩阵加入到所述子电路的电容矩阵。
13.一种被配置在电路仿真中执行基于工作区域的器件缓冲的设备,其特征包括:
一个或一个以上处理器;
由所述一个或一个以上处理器控制的基于工作区域的器件缓冲模块;
其中所述基于区域的器件缓冲模块包括:
被配置的用于接收仿真子电路的逻辑,其中所述子电路包含多个器件;
被配置的确定所述多个器件的节点容差的逻辑;
针对所述多个器件中的每一器件:
被配置的用所述多个器件的所述节点容差来确定所述器件是否已进入缓冲区域的逻辑;
被配置的所述器件尚未进入所述缓冲区域而相应地执行模型评估的逻辑;及
被配置的所述器件已进入所述缓冲区域而相应地跳过模型评估的逻辑。
14.根据权利要求13所述的设备,其特征在于还包括:
被配置的加载所述子电路的模型的逻辑;
及被配置的求解所述子电路的所述模型的逻辑。
15.根据权利要求13所述的设备,其特征在于所述被配置的确定所述多个器件的节点容差的逻辑包括:
被配置的根据不同工作区域中的敏感性检查所述器件的逻辑,其中所述不同工作区域包括以下各项中的至少一项:截止区、线性区及饱和区;及
被配置的基于所述不同工作区域应用不同容差标准的逻辑。
16.根据权利要求13所述的设备,其特征在于所述被配置的确定所述多个器件的节点容差的逻辑还包括:
被配置的在一个或一个以上相邻器件的环境下检查所述器件的逻辑,其中所述一个或一个以上相邻器件的所述环境包括所述一个或一个以上相邻器件的物理特性。
17.根据权利要求16所述的设备,其特征在于所述一个或一个以上相邻器件的所述物理特性包括以下各项中的至少一项:
所述一个或一个以上相邻器件的几何形状与所述器件相比;
所述一个或一个以上相邻器件的驱动电流与所述器件相比;
所述一个或一个以上相邻器件的泄漏电流与所述器件相比;
所述一个或一个以上相邻器件的有效功率与所述器件相比;
所述一个或一个以上相邻器件的电子迁移率与所述器件相比;
所述一个或一个以上相邻器件的空穴迁移率与所述器件相比;
所述一个或一个以上相邻器件的阈值电压与所述器件相比;
所述一个或一个以上相邻器件的聚合电导与所述器件相比;及
所述一个或一个以上相邻器件的聚合电容与所述器件相比。
18.根据权利要求13所述的设备,其特征在于所述被配置的确定所述多个器件的节点容差的逻辑还包括:
被配置的检查所述器件的功能敏感性,该敏感性是关于所述器件在所述一个或一个以上相邻器件的电路级功能中作用的逻辑。
19.根据权利要求13所述的设备,其特征在于被配置的确定所述器件是否正处于缓冲区域中的逻辑包括:
被配置的确定所述器件是否已临时进入所述缓冲区域的逻辑;及
被配置的确定所述器件是否已持续的进入所述缓冲区域一段时间的逻辑。
20.根据权利要求19所述的设备,其特征还包括以下各项中的至少一项:
被配置的所述器件已临时地进入所述缓冲区域而相应地识别所述器件正处于缓冲区域中的逻辑;及
被配置的所述器件已持续地进入所述缓冲区域一段时间而相应地识别所述器件正处于缓冲区域中的逻辑。
21.根据权利要求13所述的设备,其特征在于所述被配置的所述器件尚未进入所述缓冲区域而相应地执行模型评估的逻辑包括:
被配置的执行收集操作以使用所述器件的电导更新所述子电路的电导矩阵的逻辑。
22.根据权利要求13所述的设备,其特征在于所述被配置的所述器件尚未进入所述缓冲区域而相应地执行模型评估的逻辑还包括:
被配置的执行收集操作以使用所述器件的电容更新所述子电路的电容矩阵的逻辑。
23.根据权利要求13所述的设备,其特征在于所述被配置的所述器件已进入所述缓冲区域而相应地跳过模型评估的逻辑包括:
被配置的将所述器件的电导预加载于缓冲聚合电导矩阵中的逻辑;及
被配置的在每一个时间步长将所述缓冲聚合电导矩阵加入到所述子电路的电导矩阵的逻辑。
24.根据权利要求13所述的设备,其特征在于所述被配置的所述器件已进入所述缓冲区域而相应地跳过模型评估的逻辑还包括:
被配置的将所述器件的电容预加载于缓冲聚合电容矩阵中的逻辑;及
被配置的在每个时间步长将所述缓冲聚合电容矩阵加入到所述子电路的电容矩阵的逻辑。
25.一种用于在电路仿真中执行基于工作区域的器件缓冲的系统,其特征包括:
用于仿真子电路接收的方法,其中所述子电路包含多个器件;
用于确定所述多个器件的节点容差的方法;
针对所述多个器件中的每一器件,
用于使用所述多个器件的所述节点容差确定所述器件是否已进入缓冲区域的方法;
用于所述器件尚未进入所述缓冲区域而相应地执行模型评估的方法;及
用于所述器件已进入所述缓冲区域而相应地跳过模型评估的方法。
CN201410204543.5A 2014-05-15 2014-05-15 电路仿真中基于工作区域的器件缓冲 Active CN105095545B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410204543.5A CN105095545B (zh) 2014-05-15 2014-05-15 电路仿真中基于工作区域的器件缓冲
US14/332,240 US10002217B2 (en) 2014-05-15 2014-07-15 Region based device bypass in circuit simulation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410204543.5A CN105095545B (zh) 2014-05-15 2014-05-15 电路仿真中基于工作区域的器件缓冲

Publications (2)

Publication Number Publication Date
CN105095545A true CN105095545A (zh) 2015-11-25
CN105095545B CN105095545B (zh) 2018-09-07

Family

ID=54538714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410204543.5A Active CN105095545B (zh) 2014-05-15 2014-05-15 电路仿真中基于工作区域的器件缓冲

Country Status (2)

Country Link
US (1) US10002217B2 (zh)
CN (1) CN105095545B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109726466A (zh) * 2018-12-26 2019-05-07 北京华大九天软件有限公司 一种基于机器学习训练模型的器件缓冲方法
CN109740272A (zh) * 2019-01-09 2019-05-10 郑州云海信息技术有限公司 一种pcb中感性补偿的检查方法及相关装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10755014B2 (en) * 2018-03-14 2020-08-25 Montana Systems Inc. Event-driven design simulation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090248383A1 (en) * 2008-03-25 2009-10-01 Advanced Micro Devices, Inc. Bitcell simulation device and methods
US8195439B1 (en) * 2008-09-02 2012-06-05 Infinisim, Inc. Real-time adaptive circuit simulation
CN103366033A (zh) * 2012-04-02 2013-10-23 济南概伦电子科技有限公司 统计电路仿真的方法和系统
US20140129202A1 (en) * 2012-11-07 2014-05-08 International Business Machines Corporation Pre-simulation circuit partitioning

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1799053A (zh) * 2003-05-30 2006-07-05 加利福尼亚大学董事会 使用代数多重网格方法的电路网络分析
US7937256B2 (en) * 2006-12-02 2011-05-03 Altos Design Automation, Inc. Systems and methods of efficient library characterization for integrated circuit cell libraries
US8516410B2 (en) * 2008-12-30 2013-08-20 International Business Machines Corporation Method of migrating electronic devices operating in current mode to a target technology

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090248383A1 (en) * 2008-03-25 2009-10-01 Advanced Micro Devices, Inc. Bitcell simulation device and methods
US8195439B1 (en) * 2008-09-02 2012-06-05 Infinisim, Inc. Real-time adaptive circuit simulation
CN103366033A (zh) * 2012-04-02 2013-10-23 济南概伦电子科技有限公司 统计电路仿真的方法和系统
US20140129202A1 (en) * 2012-11-07 2014-05-08 International Business Machines Corporation Pre-simulation circuit partitioning

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109726466A (zh) * 2018-12-26 2019-05-07 北京华大九天软件有限公司 一种基于机器学习训练模型的器件缓冲方法
CN109726466B (zh) * 2018-12-26 2020-05-12 北京华大九天软件有限公司 一种基于机器学习训练模型的器件缓冲方法
CN109740272A (zh) * 2019-01-09 2019-05-10 郑州云海信息技术有限公司 一种pcb中感性补偿的检查方法及相关装置
CN109740272B (zh) * 2019-01-09 2022-03-08 郑州云海信息技术有限公司 一种pcb中感性补偿的检查方法及相关装置

Also Published As

Publication number Publication date
US20150331982A1 (en) 2015-11-19
US10002217B2 (en) 2018-06-19
CN105095545B (zh) 2018-09-07

Similar Documents

Publication Publication Date Title
US8701067B1 (en) Methods, systems, and articles of manufactures for implementing electronic circuit designs with IR-drop awareness
JP5147991B2 (ja) 電子回路の階層的次数ランキングされたシミュレーション
CN111797581A (zh) 用于生成晶体管的模型的系统和方法
US9779192B2 (en) Multi-rate parallel circuit simulation
US7933747B2 (en) Method and system for simulating dynamic behavior of a transistor
US9031825B1 (en) Statistical circuit simulation
CN103034750B (zh) 可重复电路仿真的方法和系统
US9804894B2 (en) Dynamic load balancing in circuit simulation
CN103366033B (zh) 统计电路仿真的方法和系统
US8813006B1 (en) Accelerated characterization of circuits for within-die process variations
CN105095545A (zh) 电路仿真中基于工作区域的器件缓冲
US7373289B2 (en) Electrical isomorphism
US9430442B2 (en) Solving a gate-sizing optimization problem using a constraints solver
Li et al. A native SPICE implementation of memristor models for simulation of neuromorphic analog signal processing circuits
Raitza et al. Quantitative characterization of reconfigurable transistor logic gates
US9348957B1 (en) Repetitive circuit simulation
US20200327207A1 (en) Transient Sensitivity Analysis
US11022634B1 (en) Rail block context generation for block-level rail voltage drop analysis
Fritscher et al. Prototyping Reconfigurable RRAM-Based AI Accelerators Using the RISC-V Ecosystem and Digital Twins
US11636244B1 (en) Performance tuning of a hardware description language simulator
US8924911B2 (en) Equation based transient circuit optimization
US10339240B2 (en) Adaptive high sigma yield prediction
US10216887B1 (en) Methods, systems, and computer program products for implementing an electronic design with time varying resistors in power gating analysis
US10755015B2 (en) Agnostic model of semiconductor devices and related methods
Darwish et al. Power Modeling and Characterization

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 201306 building C, No. 888, Huanhu West 2nd Road, Lingang New Area, Pudong New Area, Shanghai

Patentee after: Shanghai GuLun Electronics Co.,Ltd.

Address before: 201306 building C, No. 888, Huanhu West 2nd Road, Lingang New Area, Pudong New Area, Shanghai

Patentee before: Shanghai GuLun Electronics Co.,Ltd.

CP01 Change in the name or title of a patent holder
CP03 Change of name, title or address

Address after: 201306 building C, No. 888, Huanhu West 2nd Road, Lingang New Area, Pudong New Area, Shanghai

Patentee after: Shanghai GuLun Electronics Co.,Ltd.

Address before: 250101 5 / F, block B, 1768 Xinluo street, hi tech Zone, Jinan City, Shandong Province

Patentee before: Jinan Jianlun Electronic Technology Co.,Ltd.

CP03 Change of name, title or address