今天看了下Altium Designer的电路仿真功能,发现它还是蛮强大的,按着help里面的文档《TU0106 Defining & running Circuit Simulation analyses.PDF》跑了一下,觉得还行,所以就把这个文档翻译下。。。。。
其中包含了仿真功能的介绍,元件仿真模型的添加与修改,仿真环境的设置,等等。本人对SPICE仿真了解的不多,里面涉及到SPICE的文件如果有什么错误,欢迎提出!
一、电路仿真功能介绍
Altium Designer的混合电路信号仿真工具,在电路原理图设计阶段实现对数模混合信号电路的功能设计仿真,配合简单易用的参数配置窗口,完成基于时序、离散度、信噪比等多种数据的分析。Altium Designer 可以在原理图中提供完善的混合信号电路仿真功能 ,除了对XSPICE 标准的支持之外,还支持对Pspice模型和电路的仿真。
Altium Designer中的电路仿真是真正的混合模式仿真器,可以用于对模拟和数字器件的电路分析。仿真器采用由乔治亚技术研究所(GTRI)开发的增强版事件驱动型XSPICE仿真模型,该模型是基于伯克里SPICE3代码,并于且SPICE3f5完全兼容。
SPICE3f5模拟器件模型:包括电阻、电容、电感、电压/电流源、传输线和开关。五类主要的通用半导体器件模型,如diodes、BJTs、JFETs、MESFETs和MOSFETs。
XSPICE模拟器件模型是针对一些可能会影响到仿真效率的冗长的无需开发局部电路,而设计的复杂的、非线性器件特性模型代码。包括特殊功能函数,诸如增益、磁滞效应、限电压及限电流、s域传输函数精确度等。局部电路模型是指更复杂的器件,如用局部电路语法描述的操作运放、时钟、晶体等。每个局部电路都下在*.ckt文件中,并在模型名称的前面加上大写的X。
数字器件模型是用数字SimCode语言编写的,这是一种由事件驱动型XSPICE模型扩展而来专门用于仿真数字器件的特殊的描述语言,是一种类C语言,实现对数字器件的行为及特征的描述,参数可以包括传输时延、负载特征等信息;行为可以通过真值表、数学函数和条件控制参数等。它来源于标准的XSPICE代码模型。在SimCode中,仿真文件采用ASCII码字符并且保存成.TXT后缀的文件,编译后生成*.scb模型文件。可以将多个数字器件模型写在同一个文件中。
Altium Designer 可实现如下功能:
1、仿真电路建立及与仿真模型的连接
AD 中由于采用了集成库技术,原理图符号中即包含了对应的仿真模型,因此原理图即可直接用来作为仿真电路,而99SE中的仿真电路则需要另行建立并单独加载各元器件的仿真模型。
2、外部仿真模型的加入
AD中提供了大量的仿真模型,但在实际电路设计中仍然需要补充、完善仿真模型集。一方面,用户可编辑系统自带的仿真模型文件来满足仿真需求,另一方面, 用户可以直接将外部标准的仿真模型倒入系统中成为集成库的一部分后即可直接在原理图中进行电路仿真。
3、仿真功能及参数设置
Altium Designer的仿真器可以完成各种形式的信号分析,在仿真器的分析设置对话框中,通过全局设置页面,允许用户指定仿真的范围和自动显示仿真的信号。每一项分析类型可以在独立的设置页面内完成。Altium Designer中允许的分析类型包括:
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) 修改仿真参数或更换元器件,重复5~8的步骤,直至获得满意结果。
2.2、具体实现电路仿真的整个过程
2.2.1、创建工程
1) 在工具栏选择
File ? New ? Project ? PCB Project
,创建一个PCB工程并保存。
2) 在工具栏选择
File ? New ? Schematic
,创建一个原理图文件并保存。
2.2.2、原理图展示
测试电路如图 1:
图1
2.2.3、编辑原理图
1、放置有仿真模型的元件
根据上面的电路,我们需要用到元器件“
LF411CN
”,点击左边“
Library
”标签,使用
search
功能查找LF411CN。找到LF411CN之后,点击“
Place LF411CN
”,放置元件,若提示元件库未安装,需要安装,则点击“
yes
”,如图 2:
图2
在仿真元件之前,我们可以按“ TAB
”键打开元件属性对话框,在“
Designator
”处填入
U1
;接着查看LF411CN的仿真模型:在左下角Models列表选中
Simulation
,再点击“
Edit
”,可查看模型的一些信息,如图 3。
图3
从上图可以看出,仿真模型的路径设置正确且库成功安装。点击“ Model File ”标签,可查看模型文件(若找不到模型文件,这里会有错误信息提示),如图 4。
图4
点击“ Netlist Template ”标签,可以查看网表模板,如图 5。
图5
至此,可以放置此元件。
2、为元件添加SIM Model文件 用于电路仿真的Spice模型(.ckt和.mdl文件)位于Library文件夹的集成库中,我们使用时要注意这些文件的后缀。模型名称是模型连接到SIM模型文件的重要因素,所以要确保模型名称设置正确。查找Altium 集成库中的模型文件步骤如下:点击 Library 面板的 Search 按钮,在提示框中填入:
HasModel('SIM','*',False)
进行搜索;若想更具体些可填入:
HasModel('SIM','*LF411*',False)
。
若我们不想让元件使用集成库中提供的仿真模型,而想用别的模型代替,我们最好将别的模型文件复制到我们的目标文件夹中。
如果我们想要用的仿真模型在别的集成库中,我们可以:
1) 点击 File ? Open ,打开包含仿真模型的库文件 (.intlib) 。
2) 在输出文件夹(打开集成库时生成的文件夹)中找到仿真文件,将其复制到我们自己的工程文件夹中,之后我们可以进行一些修改。
Examples/CircuitSimulation/Filter”文件夹中,复制模型文件“ LF411C.ckt”到自己的工程文件夹中,接下来的步骤:
1) 在Project面板中,右击工程,选择“ Add Existing to Project ”,将模型文件添加到本工程中。
2) 双击元件 U1 ,打开元件属性对话框,在 Model 列表中选择 Simulation
,点击
Remove
按钮,删除原来的仿真模型。
3) 点击Model列表下方的 Add 下拉按钮,选择“ Simulation ”
4) 在Model Sub-Kind中选择“ Spice Subcircuit ”,使得Spice的前缀为“ X ”
5) 在Model Name中输入“ LF411C ”,此时AD会搜索所有的库,来查询是否有与这名称匹配的模型文件。如果AD找到一个匹配的文件,则立即停止寻找。对于不是集成库中的模型文件,AD会对添加到工程的文件进行搜索,然后再对搜索路径( Project ? 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 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、放置有仿真模型的电阻电容 放置电阻前,我们可以按“ TAB ”键,打开元件属性窗口,设置电阻值;在Model列表中,选中“ Simulation ”,点击“ Edit ”,查看仿真模型属性。一般系统默认设置就是正确的,如果没修改过,应该有如图 10属性:
图10
同理,放置电容的情况也一样,先设置电容值,再查看仿真模型属性,如图 11:
图11
4、放置电压源
Library”面板的 search功能,检索关键字“ VSRC”;查找到“ VSRC”之后,双击元件,若提示集成库未安装则安装,其集成库为“ Simulation Sources.IntLib”。
Model Kind”为“ Voltage Source”,“Model Sub-Kind”为“ DC Source”。
Parameters”标签,设置电压值,输入“5V”,并使能“ Component Parameter”,之后点击 OK,完成设置。如图 12:
图12
4) 同理放置 VSS ,并设置其电压值为“ -5V ”
Simulation Sources.IntLib中的 VSRC,打开其仿真模型属性对话框,设置“ Model Kind ”为“ Voltage Source ”,而 “ Model Sub-Kind”设置为“ Sinusoidal”。
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、仿真设置 点击“ 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 ”中的信号,也可以通过双击信号实现。
1、传输函数分析(包括傅立叶变换)设置 传输函数分析会生成一个文件,此文件能显示波形图,计算时间变化的瞬态输出(如电压,电流)。直流偏置分析优先于瞬态分析,此分析能够计算出电路的直流偏置电压;如果“ Use Initial Conditions ”选项被使能,直流偏置分析则会根据具体的原理图计算偏置电压。
首先应该使能“ Transient Analysis ”;然后取消“ Use Transient Defaults ”选项,为了观察到 50Khz 信号的三个完整波形,我们将停止时间设置为 60u ;并将时间增长步长设置为 100n ,最大增长步长为 200n 。最终设置如图 15:
图15
2、交流小信号分析设置 交流小信号分析的输出文件显示了电路的频率响应,即以频率为变量计算交流小信号的输出值(这些输出值一般是电压增益)。
1) 首先我们的原理图必须有设置好参数的交流信号源(上面的步骤已经设置好)
2) 使能“ AC Small Signal Analysis ”选项
3) 然后根据图 16输入参数:
图16
(注:如上图,开始频率点一般不设置为0,上图 100m 表示 0.1HZ ,结束频率点 1meg 表示 1MHZ ;“ Sweep Type ”设置为“ Decade ”表示每100测试点以10为底数增长,总共有701个测试点。)
至此,交流小信号分析设置完成。AD进行此电路仿真分析时,先计算电路的直流偏置电压,然后以变化的正弦输入代替原有的信号源,计算此时的电路的输出,输入信号的变化是根据“ Test Points ”和“ Sweep Type ”这两个选项进行的。
3、电路仿真与分析 设置完成之后,就可以进行电路仿真——点击“
”图标。在仿真过程中,AD会将一些警告和错误信息显示在“ Message ”面板,如有致命错误可根据面板提示信息修改原理图;如果工程无错误,此过程还会生成一个SPICE Netlist(.nxs)文件,且此文件在每次进行仿真时都会重新生成。仿真分析结束会生成打开一个(.sdf)文件,里面显示了电路的各种仿真结果(注:直流偏置最先执行),如图 17:
图17
1) 创建波特图
波特图包括了增益和相位信息,我们可以根据交流小信号分析结果得到电路的波特图。首先右击上半部分坐标图的“ in ”信号,选择“ Edit Wave ”,打开编辑波形对话框,然后选择左边的“ Magnitude (dB) ”,再点击“ Creat ”按钮。如图 18:
图18
同理,对输出增益,在上半部分的坐标图中右击,选择“ Add Wave to Plot ”,在弹出的对话框中“ Waveforms ”列表选择“out”信号,并在右边的“ Complex Functions ”列表选择“ Magnitude (dB) ”,然后点击“ Creat ”按钮,得到输入输出的增益图。
之后重复上述步骤添加相位图,注意在“ 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”标签,可以看到此时 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
点击相应的曲线,相应的元件(电容)参数会在左下角显示。
2.2.6、高级设置 “ Advanced Options ”设置页面包含一系列的内部SPICE选项,这些选项会影响仿真计算速度,像错误容量和重复限制等。如图 26
图26
一般按着系统默认的设置就可以进行仿真,若想修改参数只需在相应的条目修改Value值即可。设置“ Integration method ”从 Trapezoidal 到 Gear ,则计算时间变长,但仿真效果更好,若选择更高的 Gear 值,效果更好,时间更长。
2.2.7、使用SPICE Netlist进行仿真 上文提到软件仿真时会生成SPICE Netlist(.nsx)文件,我们也可以根据这个文件进行电路仿真分析。我们也可以通过点击
图标生成此文件,然后通过此文件进行仿真。设置更改时点击 Simulate ? Setup ,进行仿真: Simulate ? Run 。