SPICE
SPICE是电子电气电路模拟器之一,是由美国加利福尼亚大学伯克利分校(University of California, Berkeley)于1973年开发出来的。SPICE是由Simulation Program with Integrated Circuit Emphasis(集成电路用仿真程序)的首字母组成的简称。当时的主要目的是对运放等的IC、晶体管、二极管、电阻、电容器等的模拟电路工作进行模拟。
SPICE在开发到SPICE3(1985年)之后,基于SPICE进行改进并新增功能的产品开始被应用于商业用途。如今已经众所周知的PSPICE,是MicroSim公司*发售的第一个商用SPICE,使在大型计算机上运行的SPICE可以用于个人计算机。*MicroSim公司与OrCAD公司合并,之后OrCAD公司被Cadence公司收购。PSPICE已成为Cadence公司的设计支持工具OrCAD的一部分。
工作机制
下面简单介绍一下模拟器的工作机制。
一般情况下,首先输入要仿真的电路图。由于模拟器中提供了晶体管、IC、电容器、二极管、电阻器、电感器等部件(模型),所以选择相应部件并连接它们。这和平时绘制电路图的感觉一样。
电路完成后,仅需点击执行仿真按钮,即可执行所设置的仿真工作。在图例中,创建用来“将Pch-MOSFET的栅极GND接地,在漏极以0.1V/Step施加0~10V的电压,监测此时MOSFET中流动的电流”的电路图,并获得电流值图表作为执行结果(左侧蓝色箭头所指流程)。
表面上看来是这样的操作,但实际上创建的电路图被转换为称为“网表”的、描述有元器件、电路及仿真条件等所有信息的源代码。然后,模拟器根据网表来计算电路,即进行仿真并输出数据。此时,每0.1V的电流值被存储为数值。基于该数据,使用图表功能输出图表(黄色箭头所指流程)。
下面是与上例不同的模拟器,是相同内容仿真的网表示例。详细过程计划另行说明,所以在这里只需对网表中的内容有印象即可。
SPICE仿真的类型
基于SPICE的模拟器所具备的代表性功能如下。下表中前四行突出标示的DC分析(直流分析)、AC分析(交流分析)、瞬态分析、蒙特卡洛方法是众所周知的分析功能,绝大多数模拟器软件中都会安装这些功能。后续将对这四种分析方法分别进行介绍。本次介绍DC分析、AC分析和瞬态分析。
分析方法 | 功能/特点 |
---|---|
DC分析 | 静态特性分析。(技术规格书中的所有DC特性) |
AC分析 | 频率特性分析。(容量、增益-相位) |
瞬态分析 | 时间响应分析。(示波器) |
蒙特卡洛方法 | 使波动反映在电路元素中的仿真。 ※需要在模型中描述波动。描述格式因软件而异。 |
S参数 | 高频特性分析。 |
傅里叶分析 | 谐波分析和信号失真分析。 |
噪声分析 | 测量点的噪声分析。 ※如果模型中不含噪声,则不产生噪声。 |
SPICE仿真:DC分析、AC分析、瞬态分析
这些分析是评估元器件和电路时的最基本方法,可能没有必要进行介绍,不过还是通过以下示例简单地介绍一下。
DC分析是对静态特性进行分析。在上例中, 对ID相对于MOSFET的VDS而产生的变化进行了仿真。晶体管和IC等的技术规格书中的规格值一般分为DC特性(直流特性)和AC特性(交流特性)。DC分析能够对技术规格书中的所有DC特性进行仿真。
AC分析(交流分析)主要能够分析与频率有关的特性。阻抗和增益-相位相对于频率的特性分析是最具代表性的。在上例中,对滤波电路的增益和相位的频率特性进行了仿真。
瞬态分析是时间响应特性的分析。上例是滤波器的阶跃响应,在评估开关电源的负载瞬态响应时也经常使用瞬态分析。瞬态分析的特征是利用示波器观察波形。
各种模拟器都具备多种功能,以对进行这些分析的电流/电压源、信号发生器(振荡器)、电流/电压等实施测量,并通过图表来显示测量结果。
SPICE仿真:蒙特卡洛分析方法
蒙特卡洛方法是使用随机数进行仿真和数值计算的手法总称。实际上构成电路的电阻、电容、电感、二极管、晶体管、IC等几乎所有的部件都具有特性波动。例如,电阻器是有容差的,±5%精度的100Ω电阻器的电阻值处于95Ω~105Ω之间。这种波动(误差)存在于各种部件中,这就导致由各种部件组成的电路因各种波动(误差)累加而导致电路特性存在波动。
采用蒙特卡洛仿真,通过执行多次仿真,并将各种电路元素的波动反映在仿真中,可以对整体特性的波动进行评估。这在电路整体的特性受多个电路元素影响时是非常有效的分析方法。其实方法有很多,一般采用的方法是围绕对整体特性有较大影响的电路元素来模拟波动。
蒙特卡洛分析方法示例
波动的设置方法因模拟器的类型而异。蒙特卡洛仿真的设置方法也分两种,即可以在电阻等符号中直接描述波动时不能直接描述时两种情况。分别举例如下。
・可直接在符号中描述波动的情况
在该示例中,向100Ω的电阻施加电压,并对电阻值(电压/电流)进行仿真。电阻值描述为{100*(1+tol)}。这是在设置电阻值时直接写入阻值栏的。使用随机数使其中的tol产生波动,并进行300次仿真。
在示例中,使用了2种随机数,它们的分布如下。在①中,定义为tol=flat(0.05),这表示波动范围±5%的均匀随机数。在②中,定义为tol=gauss(0.05),这表示标准差σ=5%的高斯随机数。仿真结果为:使用均匀随机数的均匀分布,使用高斯随机数的则呈正态分布。
・无法直接在符号中描述波动时
有些SPICE模型,可能无法像上述电阻一样能够直接在符号中描述波动。下面是NPN双极晶体管的hFE-IC特性仿真示例,双极晶体管的符号无法直接描述波动,因此采用在SPICE模型中添加波动描述的方法。
由于没有必要具体介绍如何描述,所以在此省略具体的描述内容,对于该模拟器,在电路图内插入了一个模型(Model),即在双极晶体管的参数中增加hFE=400±50这个波动描述的模型。图中绿线框起来的部分即是该模型(Model),除了产生波动的参数以外还描述了所有参数。2SC4081的原模型lib中输入的是不含波动的模型,但会优先使用电路图中插入的模型,所以会反映出所描述的波动。
至此,我们了解了两种蒙特卡洛仿真的设置方法,一种是可直接在电阻等符号中描述波动,另一种是无法直接在符号中描述波动,此时还有在SPICE模型中直接描述波动的方法。
近年来,基于SPICE的模拟器的仿真结果已经非常接近于实际特性。在某些情况下,将其作为一种现实的理想特性,调整实际的电路特性并使之接近这种理想特性,是非常“好用”的工具。然而,某些分析算法、条件设置、器件模型,并非没有收敛性或稳定性方面的课题。更好地了解仿真的收敛性和稳定性课题,有助于更有效地利用仿真这个工具。
SPICE仿真的收敛性与稳定性
所谓仿真中的收敛性问题,是指即使执行了程序也不开始计算、中途停止等问题,导致即使微小的条件变更也能引发结果很大的变化、出现不应该出现的结果等。简而言之,就是分析错误和结果不稳定。
其原因有几种,在这里以“器件模型”这种原因为例来说明。下面是串联连接的电阻和二极管的I-V(电流-电压)特性,与电阻这样的电流和电压简单成正比的线性器件相比,二极管这样的非线性器件的仿真会更复杂。可能任何人都可以轻松地创建电阻I-V特性的计算公式,而二极管正向特性的公式恐怕就没有那么简单了。在下面的示例中,使用SPICE仿真中众所周知的牛顿法,介绍一种通过不断迭代来获得负载线和非线性负载(在这里为二极管)的交点—工作点的近似解的方法。这种器件模型的特性有时是不连续的,在具有变曲点等较复杂的特性情况下,有时会出现如右图所示的“不应该出现的”不收敛的结果。
收敛性和稳定性较差时的处理方法
收敛性和稳定性较差时,有几种处理方法。不同的模拟器其处理方法也不同,下面的方法请理解为其中一个示例。模拟器的设置项目中,有收敛性和稳定性相关的项目,试着更改这些项目。在本例中,算法有三个选项,我们将尝试更改现有的选项。另外,也将尝试更改精度和误差等收敛条件。
①尝试将算法更改为Gear
・trapezoidal(梯形法):计算速度和精度高,但收敛性方面表现较差。
・modified trap(梯形法改进版):改善了梯形法的收敛性。
・Gear(预测校正法):容易收敛,但在计算速度和精度方面表现较差。
上述方法是可以在用户处通过更改模拟器的设置等,来规避收敛和稳定性问题时的方法。但其中也有可能是器件模型本身具有缺陷,在这种情况下,是很难在用户处解决仿真错误的。
SPICE模型分为“器件模型”和“子电路模型”两种。
器件模型基本上是二极管和MOSFET等元件的模型。子电路模型基本上是器件模型的组合,可以简单理解为电路状态的模型。另外,还有在电路上进行热计算的特殊模型。
SPICE的器件模型
表示晶体管和二极管等各模型电气特性的公式是规定好的,器件模型是表示该公式所用系数(参数)的。
SPICE的子电路模型
器件模型、电源及公式等相结合,组成电路的模型。模型中包含电路连接信息和器件模型等。
下面是上图的“模型内部的电路连接”部分的详情。由实例名、连接引脚及模型名组成。
来源:techclass.rohm
文章评论(0条评论)
登录后参与讨论