电路模拟(Circuit Simulation)是用计算机模拟、分析电路的性能的一种方法。它将电路(元件及其连接关系)抽象为数学模型——电路方程,然后用数值方法求解方程,得出模拟结果。1
电路模拟简介在逻辑设计完成以后,需要进行电路设计。电路设计的任务是根据所要求的电路性能,例如速度、功耗、电源电压、逻辑操作类型和信号电平的容限等确定电路的结构和各元器件的参数;同时应考虑工艺上可能发生的偏差与使用温度上的变化等,使得所设计的电路仍能达到规定的性能。到目前为止,除了少数特殊类型的电路外,还没有自动电路设计软件。在实际中,一般是设计者根据设计指标,提出电路框图,进行电路结构的设计和元器件参数的初步确定,然后利用电路模拟程序对该电路进行模拟分析,再根据分析结果进行修改,经过多次反复,最后得到符合要求的电路。
传统的验证方法是采用“实验装置”法,即根据电路搭成实验板,使用仪器仪表做实地测试以检验该电路是否符合要求。电路模拟,简单地说,就是根据电路的拓扑结构和元器件参数将需要分析的电路问题转换成适当的数学方程并求解,根据计算结果检验电路设计的正确性。与传统的电路验证方法相比,采用EDA方法进行电路分析验证不需要实际的元器件,而且还可以进行各种条件的模拟甚至破坏性模拟实验,在大规模集成电路设计中有显著的优势。
电路模拟的精确度不仅与元器件模型本身有关,还与给定的元器件模型参数的正确性有密切关系。为此在电路设计之前,需要从所选择的工艺方案中得到某些模型参数值(如薄层电阻值、氧化层厚度、单位面积结电容等),或者对同一类工艺的实际电路进行测量,从测量值中推算出这些模型参数值。
另外,电路模拟除了在版图设计前用于电路设计的验证之外,也可以用于版图设计后的“后仿真”,在考虑引入寄生参量的情况下保证电路性能依然符合要求。 2
电路模拟的基本分析法从电路分析的角度看。最主要的有以下三种分析法。
(1)直流分析(DC analysis);
(2)交流分析(频域分析,AC analysis);
(3)暂态分析(时域分析,Transient analysis);
其他的分析法都是基于这三种模拟分析方法建立的。
直流分析求解电路直流工作点的运算叫做直流分析。在信号放大电路中,直流工作点为大家所熟知。那就是电路带电而信号为零时的工作状态。此时电路各点的电流、电压就称为电路的直流工作点。其他电路并不一定实际存在这样意义的工作点。可以认为,模拟仿真中的直流工作点的概念是信号放大电路的直流工作点的延伸。在电路模拟仿真领域中,这样一个工作点为各种电路的分析提供了一个平台。在进行交流分析或暂态分析之前,都要进行直流分析计算,以确定非线性元件线性化的基点。因此,成功的直流分析是电路模拟仿真成功的关键。
一般来说,直流工作点是一个静态的工作点。所谓静态就是没有变化,即出di/dt,du/dt均为零,亦即是一个平衡点。可以推知,在平衡点工作状态下,所有的电感、电容都不存在充放电,且所有电源都稳定在一个定值上。因此,在进行直流工作点计算时,电路作下列处理:
(1)所有电源都取定值。用户可以按自己的需要决定一个初始值,如无须特别安排程序将零点值取为初始值;
(2)所有的电容开路;
(3)所有的电感短路。3
交流分析在电路分析中,一个重要的问题是电路的频率响应如何,或者说电路的传递函数是什么。交流分析就是为解答这个问题而设的。交流分析对电路进行小信号频域分析,其激励信号为频域正弦信号,因而可以使用相位法进行计算。在相位法中,电感、电容都是复数,电流、电压也是复数,整个运算都在复数域进行。
在进行交流分析前,直流分析必须完成,以确定交流分析的基点。在进行交流分析时,电路中所有的非线性元件即在这个直流工作点上进行线性化。需知,因为线性化,所有非线性引起的畸变及限幅均未计入模拟,同时所有的时变效应亦未计入模拟。而响应是对正弦激励而言的,整个电路的频率是统一扫描的。
当电路进行交流分析时,程序自动将电路中的电感、电容用复数输入,这不需要用户考虑。用户需要考虑两个方面的问题:一是激励源在何处;二是频率扫描的范围和输出的格式。
激励源的位置就是用户考虑为输入的地方。激励源可以有多个,但在计算中都是统一扫描的,不可能进行混频。在进行交流扫描时,除了直流电源之外,所有电路中其他的时域电源都不激活。因此,在建立仿真电路时,频域交流激励源可以附设在其他电源上,一般采用单位幅值、相角为零的激励源。这样,在输出端计算所得的响应就是增益了。
交流分析的运算成功率颇高。因为非线性元件都是在同一直流工作点线性化的,没有新的收敛性问题。电感、电容只是随频率改变,亦无收敛性的问题。相位法的运算,精度也颇高。因此交流分析的收敛性取决于此前的直流分析,其结果的正确性和精确度取决于元件模型的正确性和精确度。
交流分析的输出量都是复数。在曲线图输出中,EESIM已作了后续处理,化为模和相角输出。交流扫描的范围就是用户想要观察的频率范围,输出的格式也是随用户需要而定。EESIM配备了线性、对数及分贝格式输出。交流分析的输出就是电路的波特图,很方便地用于观察电路的增益、传递函数、输入及输出阻抗,以及系统的稳定性。3
暂态分析暂态分析用于求解电路在运行的不同时刻下的行为,由此可以观察电路中的电流、电压等电气量的波形,也就能观察电路中的波动、干扰、噪声、启动、故障、过渡过程等暂态现象。它是电路模拟仿真的重要手段。
非线性系统含非线性元件。暂态分析就是要在每一个瞬时求解非线性系统,因而每一步都需进行线性化和数值积分。电路暂态分析的程序流程如图1所示。
在前面的直流工作点分析中已经指出,直流工作点分析为暂态分析提供一个初始状态。从图1可见,暂态分析开始之前就要进行直流工作点分析,其结果作为暂态分析的初始条件。在某些情况下,暂态并不是从其直流工作点出发,如考虑时间零点时电容已充电、电感已储能等,就要人为地设定初始条件,此时使用“.IC”指令。
数值积分的方法很多,各有其优缺点和适用范围。在电路模拟仿真中主要使用的有下列几种:
(1)向前欧拉法;
(2)向后欧拉法;
(3)梯形法;
(4)基尔法。3
电路模拟软件在最近的15年中,电路模拟软件的功能逐渐增强,并且更加易于使用。电路模拟器不仅允许电路设计人员在个人计算机上绘制电路原理图和模拟电路操作,而且还允许研究分析电路中任何时刻的电压和电流。因此,电路模拟器为评估某个特定的设计概念提供了一种非常简捷的方法,而不必使用昂贵的测试设备,或者购买零件来装配电路试验板。4
目前最具有代表性、应用最广泛的电路模拟软件是美国加州大学伯克利分校开发的SPICE(Simulation Program with Integrated Circuits Emphasis)软件。SPICE2是第一种得到广泛认可4的电路模拟器,作为原有SPICE程序的修改版本,它是由加利福尼亚大学伯克利分院于20世纪70年代中期开发的。SPICE、SPICE2和伯克利分院的最新版本SPICE3F5(通常称为BSPICE)都是仿真模拟电路的公认标准,并且都是使用公共基金开发的。因此,该软件对美国公民是免费的。XSPICE是专用于美国空军的SPICE版本,它包含了特殊的建模子系统。PSPICE是MicroSim公司开发的一种用于个人计算机的商业版本。在PSPICE后面推出的Electronics Workbench和许多其他商业电路模拟软件都可以运行在个人计算机上。这些模拟器之间的关键竞争性区别是:
(1)可用的设备模型数量,换句话说,电子设备有多少个可用的电路仿真模型?
(2)可允许的电路复杂性,这通常认为是对元件、连接或电路节点个数的限制。
(3)可用的分析类型。
(4)功能的复杂性和易用性。
(5)能够将原理图输出到电路板设计软件。
这些区别的重要性取决于个人的观点。学习电子学的学生可能只对基本分析功能感兴趣,而电子行业要求电路模拟软件不仅具有众多的功能,而且还能够直接与电路板设计程序进行交互。
电路模拟器通过一个计算机模型来模拟所有的电路元件和电子元件。电路设计人员通过使用可用的元件模型,并指定其参数值,绘制出要分析的电路原理图。如果没有针对于某个特定设备的模型,则必须生成这样一个模型。所有当前的电路模拟器都允许在计算机屏幕上绘制原理图,而老式的SPICE模拟器通过指定用于连接各种电路节点的设备来定义原理图。原理图必须完整,并且必须包含所有的电源和地线连接。此外,还要提供较大范围的DC电源和AC电源以及输入信号源。屏幕上的电路几乎与软件电路试验板(software bread—board)等价。然后,设计人员选择所要分析的电压和电流。有些模拟器只是绘制出电压/电流随时间变化的图形,而其他模拟器则允许在电路中连接一个软件驱动的数字式电压表(DVM)或示波器,以显示与实际示波器相同的波形。迄今所描述的电路模拟可以分为基本DC电路分析和(或)AC电路分析。注意,电路试验板只能实现这两种分析。然而,电路模拟器的分析速度更快,并且不需要任何实际元件和测试设备。4
SPICE模拟器简介SPICE(Simulation Program with Integrated Circuit Emphasis,以集成电路为重点的模拟程序)模拟器最初于20世纪70年代在伯克利开发完成[Nagel75],能够求解描述晶体管、电阻、电容以及电压源等分量的非线性微分方程。SPICE模拟器提供了许多对电路进行分析的方法,但是数字VLSI电路设计者的主要兴趣却只集中在直流分析(DC analysis)和瞬态分析(transient analysis)两种方法上,这两种分析方法能够在输入固定或者实时变化的情况下对结点的电压进行预测。SPICE程序最初是使用FORTRAN语言编写的,所以SPICE具有其自身的一些相关特点,尤其是在文件格式方面与FORTRAN有很多相似之处。现在,大多数平台都可以得到免费的SPICE版本,但是,往往只有商业版本的SPICE才具有更强的数值收敛性。尤其是HSPICE,其在工业领域的应用非常广泛,就是因为其具有很好的收敛性,能够支持最新的器件以及互连模型,同时还提供了大量的增强功能来评估和优化电路。PSPICE也是一个商业版本,但是其有面向学生的限制性免费版本。
虽然各种SPICE模拟器的细节随着版本和操作平台的不同而各不相同,但是所有版本的SPICE都是这样工作的:读入一个输入文件,生成一个包括模拟结果、警告信息和错误信息的列表文件。因为以前输入文件曾经是以打孔卡片盒的方式提供给主机的,所以人们常常称输入文件为SPICE“卡片盒(deck)”,输入文件中的每一行都是一张“卡片”。输入文件包含一个由各种组件和结点组成的网表。当然,输入文件也包含了一些模拟选项,分析指令以及器件模型。网表可以通过手工的方式输入,也可以从电路图或者CAD工具的版图(layout)中提取。
一个好的SPICE“卡片盒”就好像是一段好的软件代码,必须具有良好的可读性、可维护性以及可重用性。适当地插入一些注释和空白间隔有助于提高“卡片盒”的可读性。一般情况下,书写SPICE“卡片盒”的最好方法就是:先找一个功能完备、正确的“卡片盒”范例,然后在此基础上对其进行修改。5
电路模拟器的分析类型瞬态分析瞬态分析是电路模拟器提供的一种重要功能,而电路试验板却不能提供这一功能。瞬态分析用于确定某个电路节点在加电或其他某一起始点之后所发生的瞬时变化。瞬态分析功能通常包括严格的数学运算和对边界条件的定义。实验室用的电路试验板难以模拟瞬态条件,并且通常还需要使用数字示波器、存储示波器(storage scope)或其他一些数据记录设备。电路模拟器却能够相对容易地完成这一任务,并且允许精确地确定初始条件和分析起始及结束的时间。瞬态分析功能可以精确地绘制出电压和电流在指定时间内的变化图表。4
傅里叶分析傅里叶级数分析是另一种关键的电路模拟工具。傅里叶理论认为非正弦周期函数都可以用一个DC元件描述为一些正弦和余弦函数。通过进行这种类型的分析,就可以确定构成任何电路节点中复杂波形的正弦和余弦元件。这些信息使电路设计人员能够了解信号中的谐波频率(harmonic frequency)及其相对振幅。这样,就可以帮助设计人员滤除不必要的信号,因为电路设计人员可以确定信号的频率和可能的信号源。此外,许多电路模拟器还可以使用傅里叶分析功能来计算总谐波失真度(total harmonic distortion,THD)。4
噪声分析电路模拟器还可以模拟元件产生的各种噪声类型:热噪声、散粒噪声(shot noise)和闪变噪声(flicker noise)。热噪声是由温度及其对导体中电子和离子的感应影响造成的。散粒噪声是由电子在半导体中流动时的离散特性(可以有一个或两个电子流过电路,但不能有1.5个电子流过电路)造成的,并且是晶体管噪声的主要成因。闪变噪声是BJT和FET中的低频噪声。在使用电路模拟器中的噪声分析功能时,将会计算和记录某个特定节点产生的这三种噪声的总值。4
失真分析在诸如放大器这样的电子设备不能正确地复制输人波形时,就会出现失真现象。电路的非线性增益或相对相位发生变化是产生失真的原因。由非线性增益产生的失真称为谐波失真,而由相位变化产生的失真称为互调失真。通过绘制出某个电路节点的频率变化情况,就可以确定该电路的这两种类型失真。4
DC扫描分析DC电源值的变化是影响电路准确性的重要因素。许多电路模拟器都提供一个DC扫描分析功能,在一个或两个DC电源值发生变化时,该功能将对所选择的电压或电流进行分析。在选择进行这种分析时,电路设计人员需要指定发生变化的DC电源和进行分析的电路节点,以及电源的起始值、结束值和增大步长。分析结果将指出DC电源变化对特定节点的电压/电流的影响。4
灵敏度分析灵敏度分析用于确定对电路准确性影响最大的元件变化。DC灵敏度分析将变化所有元件的值(一次只改变一个元件的值),以确定究竟是哪一个元件会对电路的临界电压值产生最大的影响。另一方面,AC灵敏度分析只会改变一个元件的值,并分析该值的变化对电路的影响。4
参数扫描分析刚才讨论的灵敏度分析用于确定哪一个元件会对电路准确性造成最大的影响。参数扫描分析将为元件的参数值提供一个变化范围,并按照用户所指定的步长增加。半导体元什拥有一些可以变化的参数值,相比之下,无源元件只有较少的可变参数。4
温度扫描分析温度扫描分析能够在设计过程的早期确定环境温度灵敏度。在该分析过程中,将记录不同环境温度下所选节点的电路操作。所有元件的参数值将随温度变化而变化,并在图中标出参数值对电路功能的影响。4
转换功能分析转换功能精确地描述电路输出功能模块对输入信号执行的操作。电路模拟器可以分析和确定某个电路的转换功能。为此,将电路的输入和输出指定给转换功能分析特征,然后分析和确定转换功能、电路的输入阻抗和输出阻抗。4
最坏情况分析最坏情况分析是一种非常有用的设计工具。在设计过程中,通常需要知道某个电路节点的最大和最小电压。最坏情况分析通过对每个元件进行灵敏度分析,就能够从该分析中找到最大值和最小值。该信息对确定准确性规范和选择元件误差是非常重要的。4
本词条内容贡献者为:
王沛 - 副教授、副研究员 - 中国科学院工程热物理研究所