电路仿真中基于工作区域的器件缓冲的制作方法
【技术领域】
[0001] 本发明涉及的领域是电子设计自动化,具体而言,本发明涉及电路仿真中的基于 工作区域的器件缓冲。
【背景技术】
[0002] 集成电路是由例如电阻、电容、电感器、互感器、传输线、二极管、双极结型晶体管 (BJT)、结型场效应晶体管(JFET)、金属氧化物半导体场效应晶体管(MOSFET)、金属T半导 体场效应晶体管(MESFET)、薄膜晶体管(TFT)等电路元件构成的网络。
[0003] 随着技术的发展,集成电路越来越复杂,需要使用强大的数值模拟程序。例如,电 路仿真是集成电路的设计流程中必不可少的环节,它能帮助电路设计人员无需通过昂贵的 制造工艺验证其设计的功能和性能。随着半导体加工技术发展到纳米规格,新的仿真方 法需要解决纳米级电路设计所固有的新问题。现代集成电路快速发展、更新换代,不断挑 战着电路仿真的算法和实现。半导体行业需要EDA软件有能力来分析与动态电流相关的 纳米效应,比如稱合噪声(coupling noise)、接地反弹(ground bounce)、传输线波传播 (transmission line wave propagation)、动态漏电流(dynamic leakage current)、电源 电压降(supply voltage drop)、器件和电路的非线性行为等。因此,精准的电路模拟和晶 体管级仿真已经成为解决纳米设计所面临问题的最有效的途径之一。
[0004] 电子电路仿真器包括美国加州大学伯克利分校(UC Berkeley)开发的面向集成电 路的仿真程序-SPICE (Simulation Program with Integrated Circuit Emphasis)以 及各种增强或衍生版本的SPICE仿真程序。SPICE及其增强、衍生版本将在本文被简称为 SPICE电路仿真器或SPICE。SPICE方法认为电路是一个不可分割的整体。
[0005] SPICE仿真可以提供对电路行为相当准确的预测。这种预测不局限于个别的子电 路,它涵盖整个系统(例如,整个集成电路),因而可以发现、处理全系统范围关于噪声之类 的问题。一般的SPICE仿真处理流程,模拟集成电路通常被表示为一个网表描述的形式。网 表是一种由SPICE语言编写的用于仿真的对模拟电路的电路描述。SPICE网表是包含仿真 控制语句的纯结构性语言。其他语言如Verilog-ATM,还具有行为构建的能力。通过结构性 网表,连同预定义电路元件,根据特定的电路建模方法,SPICE可以将模拟集成电路表示为 矩阵形式的数学表达。非齐次线性微分方程解的维度范围从1到η。由线性方程处理相应 数量的输入向量。输入向量集被表示为{II,12,.. In}。接下来,线性矩阵通过输入向量集 解出解向量集{Vl,V2,..Vn}。重复以上计算,直到解向量集收敛。解向量集可以转换输出 为波形、测量值或者由工程师通过计算机屏幕检查仿真的核查结果。
[0006] 然而,随着集成电路行业的发展,器件几何形状的不断减小、系统中组成部件之间 的互联效应日益增加,整个系统的SPICE类仿真变得越来越困难。一个例子是晶体管沟道 长度微米规格变化为深亚微米规格。由于器件几何形状的不断缩小,电路设计者在集成电 路(IC)中能够运用电路元件(例如,晶体管、二极管、电容)数量呈指数级增长,对应于 SPICE矩阵的维数也量级增长,巨大的计算复杂度使得计算不能在希望的时间范围内完成。
[0007] -个电路可以表示为用于瞬间电流分析的大规模离散非线性矩阵。矩阵维数和电 路中节点的数目同阶。对于瞬态分析,这个巨大的非线性系统需要求解几十万次,这限制了 SPICE方法的容量和性能。一般的SPICE方法可以模拟不超过约50, 000个节点的电路。因 此,对于全芯片设计,SPICE方法不可行。SPICE在实际应用中被广泛应用于单元设计、库生 成和准确性验证。
[0008] 相对于传统SPICE,在20世纪90年代初开发的快速SPICE方法(Fast SPICE)在 一定精度损失的情况下,有两个数量级以上的容量和速度提升。性能上的提升主要由于使 用简化模型、电路划分技术、事件驱动的算法以及对电路延迟的利用。
[0009] SPICE将电路模型化为节点或元件方式,也就是说一个电路被视为通过节点相连 接的各种电路元件的集合。SPICE的核心是所谓的节点分析,通过节点方程(或者电路方 程)以矩阵形式表示电路,求解节点方程对电路进行仿真。电路成分通过器件模型被模型 化,产生模型结果以矩阵的形式在电路方程式中表示。
[0010] 电路元件的器件模型模拟,比如加州大学伯克利分校开发MOSFET器件SPICE模 型,通常以模型方程和模型参数表示在变化偏置电压下的电路元件特性。例如,具有η个端 子的电路元件,可以由下述的电流-电压关系建模:
[0011] Ii = fi (V1, · · ·,Vn,t),其中 i = 1,...,η,
[0012] Ii表示流入第i个端口的进入电流,Vj (j = 1,···,]!)表示电压或者端口 j相对于 参考端口(例如地端口)的端口偏置电压,t表示时间。由基尔霍夫电流定律,流入端口 η 的电流为夂= ?电路元件的电导矩阵为:
[0013]
[0014] 为了模拟电路元件在变化电流(AC)的行为,需要考虑节点电荷及端口偏执电压 之间的关系:
[0015] Qi = q; (V1, · · ·,Vn,t),其中 i = 1,…,η·
[0016] Q1表示端口 i的节点电荷。η端口元件的电容矩阵为:
[0017]
[0018] 在电路仿真中,模型计算、模型加载、模型求解需要占用大量计算资源,对于纳米 级设计矩阵规模极大,这些计算十分耗时,计算复杂度为η3,其中η为矩阵的维度。传统的 应用程序不能有效利用计算资源,因为没有考虑到仿真过程中电路的某些部分处于可以缓 冲的区域,对应的矩阵部分也可以在某些处理步骤中被缓冲。
[0019] 因此,需要新的方法和系统来解决常规系统所面临的问题。具体而言,需要在电路 仿真中找到基于工作区域的器件缓冲的方法和系统。
【发明内容】
[0020] 本发明揭示了一种分层级系统命名方法学的方法和系统。在实际应用中,一种在 电路仿真中执行基于工作区域器件缓冲的计算机实现方法包括如下步骤:接收用于仿真的 子电路,该子电路包括多个器件;确定所述多器件的结点容差。更进一步地解释,对于所述 多个器件中的每个器件,计算机实现方法包括如下的工作:利用所述多器件的结点容差确 定该器件是否已进入缓冲区;若该器件未进入缓冲区,执行模型评估,若该器件已进入缓冲 区,则跳过模型评估。
[0021 ] 本发明的另一实例提到,在电路仿真中构建的基于工作区域器件缓冲的装置,是 由一个或多个处理器加上含有一个或多个处理器控制的基于工作区域器件缓冲的模块组 成。该基于工作区域器件缓冲的模块包含多重逻辑:能够为仿真而接收由多个器件组成的 子电路的逻辑;能够判断多器件及其中各组件节点容差之间的逻辑;利用多器件节点容差 来判断该器件是否进入缓冲区的逻辑;对未进入缓冲区的器件执行模型评估的逻辑;对已 进入缓冲区的器件执行跳过模型评估。
[0022] 本发明中的其他实例,在电路仿真中实现基于工作区域器件缓冲的系统包括一系 列方法:在仿真中接收由多器件组成的子电路的方法;能够判断多器件及其中各组件节点 容差的方法;利用多器件节点容差判断该器件是否进入缓冲区域的方法;对未进入缓冲区 域的器件进行模型评估的方法;对进入缓冲区域的器件执行跳过模型评估的方法。
[0023] 通过上述本发明的说明,揭示了电路仿真中基于工作区域的器件缓冲,可以提高 电路仿真的效率,充分的利用计算机资源。
【附图说明】
[0024] 结合以下附图阅读将对实施用例的详细描述,对本发明的上述特征和优点,以及 额外的特征和优点,会有更加清晰的理解。
[0025] 图1为在本发明中列举的一种在电路仿真中执行基于工作区域的器件缓冲的系 统;
[0026] 图2为在本发明中展示的由多核处理器构建的在电路仿真中执行基于工作区域 的器件缓冲的实例;
[0027] 图3展示了本发明中仿真子电路的框图;
[0028] 图4所示为本发明在电路仿真中执行基于工作区域的器件缓冲方法的实例;
[0029] 图5A列举了本发明中图4中确定节点容差的方法;
[0030] 图5B所示为在本发明中检查如图5A所示的区域敏感性的实例;
[0031] 图5C所示为在本发明中检查如图5A所示的区域敏感性的另一实例;
[0032] 图6A列举了在本发明中确定器件是否已进入如图4所示的缓冲区域的执行状 况;
[0033] 图6B列举