1、Altium Designer 中的电路仿真今天看了下 Altium Designer 的电路仿真功能, 发现它还是蛮强大的, 按着 help 里面的文档 TU0106 Defining & running Circuit Simulation analyses.PDF跑了一下,觉得还行,所 以就把这个文档翻译下。其中包含了仿真功能的介绍,元件仿真模型的添加与修改,仿真环境的设置,等等。本人对 SPICE 仿真了解的不多,里面涉及到 SPICE 的文件如果有什么错误,欢迎提出!一、电路仿真功能介绍Altium Designer 的混合电路信号仿真工具,在电路原理图设计阶段实现对数模 混合信号电
2、路的功能设计仿真,配合简单易用的参数配置窗口,完成基于时序、 离散度、信噪比等多种数据的分析。 Altium Designer 可以在原理图中提供完 善的混合信号电路仿真功能 ,除了对 XSPICE 标准的支持之外,还支持对 Pspice 模型和电路的仿真。Altium Designer 中的电路仿真是真正的混合模式仿真器,可以用于对模拟和数 字器件的电路分析。 仿真器采用由乔治亚技术研究所 (GTRI) 开发的增强版事件 驱动型 XSPICE 仿真模型,该模型是基于伯克里 SPICE3 代码,并于且 SPICE3f5 完全兼容。SPICE3f5 模拟器件模型: 包括电阻、 电容、 电感、 电
3、压/电流源、 传输线和开关。 五类主要的通用半导体器件模型, 如 diodes、BJTs、JFETs、MESFETs 和 MOSFETs。XSPICE 模拟器件模型是针对一些可能会影响到仿真效率的冗长的无需开发局部 电路,而设计的复杂的、非线性器件特性模型代码。包括特殊功能函数,诸如增 益、磁滞效应、限电压及限电流、 s 域传输函数精确度等。局部电路模型是指更 复杂的器件,如用局部电路语法描述的操作运放、时钟、晶体等。每个局部电路 都下在*.ckt 文件中,并在模型名称的前面加上大写的 X。数字器件模型是用数字 SimCode 语言编写的,这是一种由事件驱动型 XSPICE 模 型扩展而来专门
4、用于仿真数字器件的特殊的描述语言, 是一种类 C 语言, 实现对 数字器件的行为及特征的描述, 参数可以包括传输时延、 负载特征等信息; 行为 可以通过真值表、数学函数和条件控制参数等。它来源于标准的 XSPICE 代码模型。在 SimCode 中,仿真文件采用 ASCII 码字符并且保存成.TXT 后缀的文件, 编译后生成*.scb 模型文件。可以将多个数字器件模型写在同一个文件中。Altium Designer 可实现如下功能:1、仿真电路建立及与仿真模型的连接AD 中由于采用了集成库技术, 原理图符号中即包含了对应的仿真模型, 因此原 理图即可直接用来作为仿真电路,而 99SE 中的仿真
5、电路则需要另行建立并单独 加载各元器件的仿真模型。2、外部仿真模型的加入AD 中提供了大量的仿真模型,但在实际电路设计中仍然需要补充、完善仿真模 型集。一方面,用户可编辑系统自带的仿真模型文件来满足仿真需求,另一方 面, 用户可以直接将外部标准的仿真模型倒入系统中成为集成库的一部分后即 可直接在原理图中进行电路仿真。3、仿真功能及参数设置Altium Designer 的仿真器可以完成各种形式的信号分析,在仿真器的分析设置 对话框中, 通过全局设置页面, 允许用户指定仿真的范围和自动显示仿真的信号。 每一项分析类型可以在独立的设置页面内完成。 Altium Designer 中允许的分析类型包
6、括:1)直流工作点分析2)瞬态分析和傅立叶分析3)交流小信号分析4)阻抗特性分析5)噪声分析6)Pole-Zero (临界点)分析7)传递函数分析8)9)10)蒙特卡罗分析参数扫描温度扫描等二、操作步骤2.1、使用 Altium Designer 仿真的基本步骤如下:1) 装载与电路仿真相关的元件库2) 在电路上放置仿真元器件(该元件必须带有仿真模型)3) 绘制仿真电路图,方法与绘制原理图一致4) 在仿真电路图中添加仿真电源和激励源5) 设置仿真节点及电路的初始状态6) 对仿真电路原理图进行 ERC 检查,以纠正错误7) 设置仿真分析的参数8) 运行电路仿真得到仿真结果9) 修改仿真参数或更换
7、元器件,重复 58 的步骤,直至获得满意结果。2.2、具体实现电路仿真的整个过程2.2.1、创建工程1) 在工具栏选择 File New Project PCB Project ,创建一个 PCB 工程并保存。2) 在工具栏选择 File New Schematic,创建一个原理图文件并保存。2.2.2、原理图展示测试电路如图 1:图 12.2.3、编辑原理图1、放置有仿真模型的元件根据上面的电路,我们需要用到元器件“LF411CN”,点击左边“Library”标签,使用search 功能查找 LF411CN。找到 LF411CN 之后,点击“Place LF411CN”,放置元件,若提示元
8、件库未安装,需要安装,则点击“yes”,如图 2:图 2在仿真元件之前,我们可以按“TAB”键打开元件属性对话框,在“Designator”处填入 U1 ; 接着查看 LF411CN 的仿真模型:在左下角 Models 列表选中Simulation,再点击“Edit”, 可查看模型的一些信息,如图 3。图 3从上图可以看出,仿真模型的路径设置正确且库成功安装。点击“Model File”标签,可查看模型文件(若找不到模型文件,这里会有错误信息提示),如图 4。图 4点击“Netlist Template”标签,可以查看网表模板,如图 5。图 5至此,可以放置此元件。2、为元件添加 SIM Mo
9、del 文件用于电路仿真的 Spice 模型( .ckt 和.mdl 文件)位于 Library 文件夹的集成库中,我们使用时要注意这些文件的后缀。模型名称是模型连接到 SIM 模型文件的重要因素,所以要确保模型名称设置正确。查找 Altium 集成库中的模型文件步骤如下:点击 Library 面板的 Search按钮,在提示框中填入: HasModel(SIM,*,False)进行搜索;若想更具体些可填入:HasModel(SIM,*LF411*,False)。若我们不想让元件使用集成库中提供的仿真模型, 而想用别的模型代替, 我们最好将别的模型文件复制到我们的目标文件夹中。如果我们想要用的
10、仿真模型在别的集成库中,我们可以:1) 点击 File Open,打开包含仿真模型的库文件(.intlib)。2) 在输出文件夹(打开集成库时生成的文件夹)中找到仿真文件,将其复制到我们自 己的工程文件夹中,之后我们可以进行一些修改。复制好模型文件,再为元器件添加仿真模型。为了操作方便,我们直接到安装目录下的 “Examples/CircuitSimulation/Filter”文件夹中,复制模型文件“LF411C.ckt”到自己的工程 文件夹中,接下来的步骤:1) 在 Project 面板中,右击工程,选择“Add Existing to Project”,将模型文件添加到 本工程中。2)
11、双击元件 U1,打开元件属性对话框,在 Model 列表中选择 Simulation,点击 Remove 按钮,删除原来的仿真模型。3) 点击 Model 列表下方的 Add 下拉按钮,选择“Simulation”4) 在 Model Sub-Kind 中选择“Spice Subcircuit”,使得 Spice 的前缀为“X”5) 在 Model Name 中输入“LF411C”,此时 AD 会搜索所有的库,来查询是否有与这名 称匹配的模型文件。 如果 AD 找到一个匹配的文件, 则立即停止寻找。对于不是集成库中的 模型文件, AD 会对添加到工程的文件进行搜索,然后再对搜索路径(Proje
12、ct Project Options)中的文件进行搜索。如果找不到匹配的文件,则有错误信息提示。6) 最后的步骤是检查管教映射是否正确,确保原理图中元件管脚与模型文件中管脚定 义相匹配。点击“Port Map”,如图 6:图 6修改管脚映射,在 Model Pin 列表下拉选择合适的引脚,使其和原先的 SIM 模型 (LF411_NSC) 相同。 我们可以点击 Netlist Template 标签, 注意到其模型顺序为 1, 2, 3, 4, 5;如图 7:图 7这些和 Model File 标签中的.SUBCKT 头相对应,如图 8:图 8因此, 在“Port Map”标签中的“Model
13、 Pin”列表中, 我们可以看到 1(1), 2(2), 3(3), 4(4), 5(5), 被列举出来,其中第一个数字就是模型管脚(就是Netlist Template 中的%1, %2 等),而 subcircuit 的头则对应着小括号里面的数字。在 Spice netlist 中,我们需要注意其中节点 的连接顺序,这些必须和.SUBCKT 头中的节点顺序相匹配。Netlist 头描述了每个管脚的功能,根据这些信息我们可以将其连接到原理图管脚,如: 1(1) 是同相输入,故需连接到原理图管脚 3。原先的管脚映射和修改的管脚映射如图 9:图 9之后点击“OK”,完成自定义仿真模型的添加。3、
14、放置有仿真模型的电阻电容放置电阻前,我们可以按“TAB”键,打开元件属性窗口,设置电阻值;在Model 列表中,选中“Simulation”,点击“Edit”,查看仿真模型属性。一般系统默认设置就是正确的,如果没修改过,应该有如图 10 属性:图 10同理,放置电容的情况也一样,先设置电容值,再查看仿真模型属性,如图 11:图 114、放置电压源1) 首先放置 VDD 电源。 使用“Library”面板的search 功能, 检索关键字“VSRC”; 查找到“VSRC”之后,双击元件,若提示集成库未安装则安装,其集成库为“SimulationSources.IntLib”。2) 在放置元件前,
15、按“TAB”键,打开元件属性对话框,再编辑其仿真模型属性,先确保 其“Model Kind”为“Voltage Source”, “Model Sub-Kind”为“DC Source”。3) 点击“Parameters”标签, 设置电压值, 输入“5V”,并使能“Component Parameter”, 之后点击 OK,完成设置。如图 12:图 124) 同理放置 VSS,并设置其电压值为“-5V”5) 最后添加正弦信号输入:同样是 Simulation Sources.IntLib 中的 VSRC,打开其仿 真模型属性对话框,设置“Model Kind ”为“ Voltage Sourc
16、e ”,而 “Model Sub-Kind”设置 为“Sinusoidal”。6) 点击“Parameters”标签,设置电压值,可按如图 13 设置:图 13之后点击 OK,设置完成,放置信号源。5 、放置电源端口。1) 点击“Place Power Port”,在放置前按“TAB”键,设置端口属性。2) 其中对于标签 VDD 和 VSS,其端口属性为“BAR”。3) 对于标签 GND,其端口属性为“Power Ground”。4) 对于标签 OUT (网络),其端口属性为“Circle”6、连线,编译根据上面的原理图连接好电路,并在相应的地方放置网络标签,之后编译此原理图。2.2.4、仿真
17、设置点击“Design Simulate Mix Sim”,或是点击工具栏中 (可通过“View Toolbars Mixed Sim”调出)的 图标,进入设置窗口。如图 14:图 14按照图中显示设置好“Collect Data For”, “Sheets to Netlist”和“SimView Setup”等三个区 域,并且我们可以看到有一系列的信号在“Available Signal”中,这些都是 AD 计算出来并可以进行仿真的信号。如果我们想要观察某个信号,只需将其导入(双击此信号) 到右边的“Active Signal”中;同理,若想删除“Active Signal”中的信号,也可
18、以通过双击信号实现。1、传输函数分析(包括傅立叶变换)设置传输函数分析会生成一个文件,此文件能显示波形图,计算时间变化的瞬态输出(如电压,电流) 。 直流偏置分析优先于瞬态分析, 此分析能够计算出电路的直流偏置电压; 如果“UseInitial Conditions”选项被使能,直流偏置分析则会根据具体的原理图计算偏置电压。首先应该使能“Transient Analysis”;然后取消“Use Transient Defaults”选项,为了观察到 50Khz 信号的三个完整波形,我们将停止时间设置为60u;并将时间增长步长设置为100n,最大增长步长为 200n。最终设置如图 15:图 15
19、2、交流小信号分析设置交流小信号分析的输出文件显示了电路的频率响应,即以频率为变量计算交流小信号的输出值(这些输出值一般是电压增益)。1) 首先我们的原理图必须有设置好参数的交流信号源(上面的步骤已经设置好)2) 使能“AC Small Signal Analysis”选项3) 然后根据图 16 输入参数:图 16(注:如上图,开始频率点一般不设置为0,上图 100m 表示 0.1HZ,结束频率点 1meg 表 示 1MHZ;“Sweep Type”设置为“Decade”表示每 100 测试点以 10 为底数增长, 总共有 701 个测试点。)至此, 交流小信号分析设置完成。AD 进行此电路仿
20、真分析时, 先计算电路的直流偏置电压, 然后以变化的正弦输入代替原有的信号源, 计算此时的电路的输出, 输入信号的变化是根据 “Test Points”和“Sweep Type”这两个选项进行的。3、电路仿真与分析设置完成之后,就可以进行电路仿真点击“ ”图标。在仿真过程中, AD 会将一些警告和错误信息显示在“Message”面板, 如有致命错误可根据面板提示信息修改原理图; 如果 工程无错误,此过程还会生成一个 SPICE Netlist ( .nxs)文件,且此文件在每次进行仿真时都会重新生成。仿真分析结束会生成打开一个(.sdf)文件,里面显示了电路的各种仿真结果(注:直流偏置最先执行
21、),如图 17:图 171) 创建波特图波特图包括了增益和相位信息, 我们可以根据交流小信号分析结果得到电路的波特图。首先右击上半部分坐标图的“in”信号, 选择“Edit Wave”, 打开编辑波形对话框, 然后选择左边的 “Magnitude (dB)”,再点击“Creat”按钮。如图 18:图 18同理,对输出增益,在上半部分的坐标图中右击,选择“Add Wave to Plot”,在弹出的对话 框中“Waveforms”列表选择“out”信号,并在右边的“Complex Functions”列表选择 “Magnitude (dB)”,然后点击“Creat”按钮,得到输入输出的增益图。之
22、后重复上述步骤添加相位图,注意在“Complex Functions”列表选择“Phase (Deg)”,最后结果如图 19:图 19(我们可以在同个坐标图上显示不同的 Y 轴,使不同的曲线对应不同的 Y 坐标 只需在 编辑或添加波形文件时,选中“Add to new Y axis”即可;若删除坐标轴,相应的曲线也会 删除,且在这模式下没有 Undo 功能,故误删的话需重新导入曲线。)2) 使用光标工具分析点击“DB (out) ”曲线, 右击选择“Cursor A ”, 再右击选择“Cursor B”, 打开两个测量光标, 将光标按图 20 放置:图 20再点击“Sim Data”标签,可以
23、看到此时 B-A = -3,且光标 B 的频率为“20kHz”,如图 21:图 21故 3dB 点的频率为 20kHz。2.2.5、参数扫描设置参数扫描功能使得我们能够让特定的元件在一个范围内变化; 当然相应的交流、 直流或瞬态 分析也要使能,才能观察相应的特性曲线或数据。具体步骤如下:1) 首先点击 图标,打开设置窗口,使能“Parameter Sweep”2) 接着选择首要扫描参数元件 C2,更改参数;再使能第二参数扫描功能,选择 C1, 更改参数;参数设置如图 22:图 22设置好之后,点击 Ok,进行电路仿真。仿真后的一些结果如图 23,图 24 与图 25:图 23图 24图 25点
24、击相应的曲线,相应的元件(电容)参数会在左下角显示。2.2.6、高级设置“Advanced Options”设置页面包含一系列的内部 SPICE 选项, 这些选项会影响仿真计算速 度,像错误容量和重复限制等。如图 26图 26一般按着系统默认的设置就可以进行仿真,若想修改参数只需在相应的条目修改Value 值 即可。设置“Integration method”从Trapezoidal 到 Gear,则计算时间变长,但仿真效果 更好,若选择更高的 Gear 值,效果更好,时间更长。2.2.7、使用 SPICE Netlist 进行仿真上文提到软件仿真时会生成 SPICE Netlist ( .n
25、sx)文件,我们也可以根据这个文件进行电路仿真分析。 我们也可以通过点击 图标生成此文件, 然后通过此文件进行仿真。 设置更改时点击 Simulate Setup,进行仿真: Simulate Run。原版的英文文件在安装目录的 help 文件夹中,命名为: TU0106 Defining & running Circuit Simulation analyses庄子云: “人生天地之间,若白驹过隙,忽然而已。 ”是呀,春秋置换,日月交替,这从指尖悄然划过的时光,没有一点声响,没有一刻停留,仿佛眨眼的功夫,半生已过。人活在世上,就像暂时寄宿于尘世,当生命的列车驶到终点,情愿也罢,不情愿也罢,微
26、笑也罢,苦笑也罢,都不得不向生命挥手作别。我们无法挽住时光的脚步,无法改变人生的宿命。但我们可以拿起生活的画笔,把自己的人生涂抹成色彩靓丽的颜色。生命如此短暂,岂容随意挥霍!只有在该辛勤耕耘的时候播洒汗水,一程风雨后,人生的筐篓里才能装满硕果。就算是烟花划过天空,也要留下短暂的绚烂。只有让这仅有一次的生命丰盈充实,才不枉来尘世走一遭。雁过留声,人过留名,这一趟人生旅程,总该留下点儿什么!生活是柴米油盐的平淡,也是行色匆匆的奔波。一粥一饭来之不易,一丝一缕物力维艰。前行的路上,有风也有雨。有时候,风雨扑面而来,打在脸上,很疼,可是,我们不能向生活低头认输,咬牙抹去脸上的雨水,还有泪水,甩开脚步,接着向前。我们需要呈现最好的自己给世界,需要许诺最好的生活给家人。所以,生活再累,不能后退。即使生活赐予我们一杯不加糖的苦咖啡,皱一皱眉头,也要饮下。