由于在许多现代电路设计的频率范围内微妙的寄生效应和特性阻抗效应会使电路出现莫名其妙的问题,因此在复杂的电路中,仿真变得非常有必要。

这就是Spice(集成电路仿真)的必要性。该技术自1973年从加州大学伯克利分校诞生以来,发生了重大革新,同时始终保持用户友好和开放源代码。最初,它的计算机语言是Fortran。 1975年开发的Spice2和1981年开发的Spice 2G.6都使用了Fortran。1985年开发的Spice 3使用了C语言。从那以后,按照开放源代码协议的允许,许多独立的供应商都修改了原始程序,增加了用户界面和各种修饰。在许多情况下,这些派生应用程序包含图形界面,允许用户在屏幕上放置原理图符号,并将其配置为创建常规电子原理图。但是,必须强调的是,这些图形界面不参与Spice计算,Spice计算仅基于编译后的网表,即使用户看不见它们也是如此。

1.png
由WeSpice软件包运行的模拟界面

需要注意的关键一点是,Spice的所有变体在其最基本的层次上,都通过结点分析,基于基尔霍夫的电流和电压定律来求解表示电子电路元件行为的方程式。当虚拟信号施加到虚拟电阻器,电容器,电感器,传输线,开关,RC配置,二极管,BJT,JFET和MOSFET以及任何其他可以表示的信号时,Spice可以模拟线性交流电,非线性直流电和瞬态信号作为包含电压/电流源和无源电路组件的模型。

Spice计算基尔霍夫定律的事实说明了在模拟其他类型的电子设备时的缺点。例如,线束在安装之前仍然要进行大量的物理测试,因为很难模拟在特定的复杂线束几何形状中出现的各种连接形式或各种分布式电路元件。同样,最基本级别的逻辑仿真会实现逻辑表。该软件中进行的其他模拟是基本逻辑表引擎的附加组件。

要注意的另一点是,Spice有不同版本,为某个版本准备的模拟输入可能需要修改才能在其他版本上运行。例如,PSpice是Orcad推出的Spice版本。德州仪器(TI)投入了整个应用笔记,以修改其通用文本格式Spice模型,以便PSpice可以使用它们。一个常见的错误是将Spice模型与PSpice模型混淆,因此将TI应用笔记混淆了。PSpice使用专有语言来定义组件和模型。LTspice是由Analog Devices(最初由Linear Technology)开发的版本。它是行业中分布最广泛且使用最广泛的Spice软件,可能是因为它是免费的。

电路必须以网表的形式呈现给SPICE。网表是所有电路元件(例如晶体管和电容器)及其对应连接的文字描述。诸如Multisim之类的现代原理图捕获和仿真工具使用户可以在用户友好的环境中绘制电路图,并自动将电路图转换为网表。

如果求解器无法启动,通常意味着网表中存在问题。求解器实际上并不使用原理图,而是使用从原理图中提取的网表。您可以从查看菜单中查看网络列表。常见的问题包括无法接地,无法连接所有组件以及无法为所有组件赋值。Spice通常会给您一条错误提醒,指出问题的根源。

Altium Designer是一种广泛使用的PCB设计工具,目前集成了nspice,每年的费用为3,000美元。该产品支持汽车,航空,消费电子和医疗设备,可在Internet上获得。

Blackboard用Java编写,供业余爱好者使用。它使用ngspice进行电路仿真,并允许设计人员在条状铜箔面包板上生成电路。

Cadence:系统级仿真从CAD工具导入机械结构。支持机器学习应用程序,支持汽车系统中的复杂EMI现象,也支持生物医学分析。该公司在培训中心或用户所在地提供讲师指导的课程。

CircuitSafari:是执行ngspice模拟的免费Android应用程序,触摸屏界面提供交互式原理图捕获和信号仿真。

CoolSpice来自CoolCAD,它集成了ngspice,包括GUI,绘图仪和用于管理网表的文本编辑器。学生免费,其他人则需付费。

CppSim是另一个免费程序,它集成了ngspice进行晶体管负载仿真,包括C ++,Verilog和其他仿真器。

eSim(以前称为Oscad / FreeEDA)使用KiCAD,Scilab和其他开源应用程序执行电路设计,仿真,PCB设计和分析。它也是免费的。

Isotel提供了ngspice,这是一种开源的混合级/混合信号电路模拟器。它的代码基于三个开源软件包:Spice3f5,Cider1b1和Xspice。

KiCad是包含Eeschema,原理图编辑器和ngspice仿真工具的免费电子设计自动化工具。

Kjwaves是一个跨平台的绘图程序,可从sourceforge.net/projects/kjwaves/获得,可显示Spice RAW文件。

Layouteditor包含特定于ngspice电路仿真的原理图编辑器。

MSEspice是SPICE / ngspice的进一步图形化分支。也可以在sourceforge.net上获得。

适用于MS Windows的SpiceCircuit带有32位版本的nspice。对于非商业用户,它是免费软件。

WeSpice是平板电脑的Android应用程序。除了初始下载外,不需要Internet连接。它允许用户执行仿真和分析结果。

XCircuit允许用户绘制高质量的原理图,并使用原理图捕获来导出ngspice电路网表。它在GitHub上。

XSchem通过简单的子组件提供对复杂系统的访问。 Ngspice绘制了网表,以便可以模拟电路。它也在SourceForge.net上。

最后,Matlab适用于仿真和后处理。ngspice RAWFILE可将模拟输出直接加载到Matlab中。

在最基本的水平上,Spice在电容器断开且电感器短路的情况下模拟电路的直流输出。用户可以配置Spice来计算传递函数的值,该函数是输出变量与输入的比率。另外,该程序可以通过矢量网络分析仪的方式计算输入和输出电阻。在生成直流传输曲线时,用户指定一个范围,并且程序将独立于电压或电流源步进。可以为每个源值保存直流输出变量。

数据和分析的前端是一个单独的独立程序,称为 Nutmeg。像在Spice中一样, Nutmeg使用时间和电压矢量形式的数据,这些数据可以进行代数组合。

最初,Spice由用于执行基础电子仿真的计算引擎组成,而 Nutmeg则提取并显示了结果。目前,它们已经合并。 Nutmeg是一个I / O驱动程序,可增强Spice3的交互性和效率。首先,编译电路原理图,所有节点编号均无间隙。通过消除没有接地路径的任何电路线。如果电路未加载,则不需要接地路径,在这种情况下,输出仅用于参考电压。下一步是为所有电路电源和设备创建描述性命令。可以将它们放在带有文件名称的文本编辑器中。

Spice3是一个由以特定字符结尾的行组成的文本文件。标题行显示在打印中,但被程序忽略。元素行列出了组件并显示了它们在网络中的位置。注释行以星号开头,在程序中不起作用。如果一行以+字符开头,则它是前一行的延续。控制线指定要在电路上执行的分析类型以及显示结果的方式。最后一行始终是“结束”。

源文件元素由元素名称,连接的电路节点和参数值指定。元素类型由元素类型的首字母指定,例如“r”,表示电阻。它可以包含其他字符,例如“rxyz”。在一行中,字段之间用一个或多个空格,逗号,等号或括号括起来。新字段以大写字母开头。

在执行分析时,Spice将数据放在结果表中,这些结果包含矢量,将数值结果存档。

Ngspice是一个结合了原始电子仿真器Spice并显示Nutmeg的可视化和显示功能的综合,在各种免费和商业工具中使用,这些工具包括带有和不带有原理图捕获和电路开发工具的图形用户界面。