这篇文章开始了一个新的强调集成电路的仿真程序(SPICE)课程,用于电子电路仿真。SPICE是用于设计和评估电气和电子电路,最重要和最受欢迎的仿真软件程序之一。在本课程中,您将学习如何使用SPICE语言创建电路模型并仿真其性能。通过理论和实践讲课,读者将了解电路仿真的基础知识,以及如何使用SPICE语言描述电路元件、定义电气特性以及仿真电路行为随时间的变化。此外,您还将学习如何解释仿真结果,并使用SPICE的高级功能来分析和优化电路。
SPICE是用于线性和非线性直流、瞬态和非线性以及线性交流分析的通用电路仿真程序。电路可以包含电阻器、电容器、电感器、电压和电流源、二极管、BJT、JFET、MESFET和MOSFET。SPICE可在许多软件分发和操作系统上免费使用。它可以免费下载。本课程旨在为使用SPICE进行电路仿真提供坚实的理论和实践基础,让读者掌握使用这一强大工具设计和改进电路的技能。SPICE有内置的半导体器件模型,但您可以相对轻松地制作自己的元件模型。根据需求和结果的类型,SPICE提供以下分析模式:
还有其他更复杂的分析类型,例如“噪声”和“传递函数”分析,将在以后的文章中进行研究。SPICE课程将使用LTspice软件进行,重点是NETLIST(元件列表)文本源。这种方法使得深入学习所有SPICE命令和指令成为可能。实现SPICE仿真的主要步骤如下:
NETLIST是一个以元件、节点和连接方式描述电路的文本文件。它用作SPICE软件的输入,以进行电路仿真。NETLIST包含有关电路的详细信息,例如所用元件的类型和属性、元件之间连接的描述以及电源的定义。它是一个电子电路的表示,列出了所有元件以及它们之间的连接。但是,它不包括有关电路中元件的物理位置或方向的信息。换句话说,它只提供了一个抽象的电路,描述了元件之间的关系,但不指出它们在空间中的物理排列或方向。
这一点很重要,因为它允许将电路的逻辑设计与其物理表现形式分开,从而允许相同的NETLIST被其他软件重复使用。它以特定格式编写,仿真软件可以理解,但人类也可以通过阅读简单地理解。换句话说,它是接线图的文本表示,遵循特定格式,还有分析说明和其他指令。请注意,根据所使用的软件,NETLIST的格式可能会略有变化。
创建一个优秀的NETLIST对于从SPICE仿真中获得可靠的结果至关重要,并且对结果的准确性有重大影响。当“电路图绘制”程序不存在时,设计人员被迫手动绘制NETLIST,用铅笔创建接线图并为每个电气连接分配适当的标签。今天,这个过程很少需要手动完成,因为现代软件为用户提供了以图形方式绘制电气图的所有工具,而无需担心线路和节点名称。这样,通过合适的图形界面就可以非常自然地绘制出电路。开始,为了产生一个NETLIST文件,建议用纸笔画出要模拟的电路,给每个节点一个编号或名称,并给电路中的每个元件分配一个独特的名称,如图1所示。因而,使用LTspice,你可以产生一个类似的电路图,所有的元件都在正确的位置。
图1:我们的第一个接线图
一旦定义了接线图,就必须像物理电路一样通过节点连接元件,这些节点描述了各种电路元件引向的线路。电源发生器和信号源也必须包括在内(如同物理电路)。此外,必须将一个节点标识为接地电压的参考,通常标记为“0”或“GND”。再次查看电路图,可以确定以下元素:
图中显示的只是一个图形化、可视化的电气图,便于用户和设计人员阅读。但仿真软件接收到的真实信息是NETLIST(见图2),它是设计中涉及的电气元件及其电气连接的列表。正是这个文本文档被软件解释和执行。在我们使用的软件中,可以通过激活“View”菜单来查看。其他程序可能有不同的程序。我们现在将检查构成组成NETLIST的线路。为方便起见,我们对这些行进行了渐进地编号,以方便我们的注释,但事实上,原始文档中并没有这些编号。
图2:示例项目的NETLIST
那么,NETLIST由以下几行文本组成,我们将对其进行详细解释:
LTspice不提供“.PRINT”和“.PLOT”指令来显示或跟踪变量,但它确实有一些更有效的方法。手动绘制接线图后,可以通过访问程序的“Run”菜单运行仿真(见图3中的图形)。然后您可以单击接线图的元素以显示以下值的图形:
图3:“Vcc”和“Out”节点信号的瞬态图
如果用户省略了“.IC v(Out)=0”指令,则“Out”节点处的电压图将为12V,而无需经过瞬态仿真。其他软件有“.PRINT”和“.PLOT”指令以文本形式来显示仿真变量。在LTspice中,我们的操作略有不同,效率更高,更方便。
有了新一代的软件,以图形方式绘制整个电路比以文本和手动形式描述所有连接要容易得多。读者可以尝试制作本期课程中描绘的电路图。更多细节将在以后的文章中探讨。
(原文刊登于EDN姊妹网站Power Electronics News,参考链接:Guide to SPICE Simulation for Circuit Analysis and Design — Part 1: Introduction and Netlist,由Ricardo Xie编译。)