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模型文件。可以将多个数字器件模型写在同一个文件中。
1.仿真电路建立及与仿真模型的连接
AD 中由于采用了集成库技术,原理图符号中即包含了对应的仿真模型,因此原理图即可直接用来作为仿真电路,而99SE中的仿真电路则需要另行建立并单独加载各元器件的仿真模型。
2.外部仿真模型的加入
AD中提供了大量的仿真模型,但在实际电路设计中仍然需要补充、完善仿真模型集。一方面,用户可编辑系统自带的仿真模型文件来满足仿真需求,另一方面, 用户可以直接将外部标准的仿真模型倒入系统中成为集成库的一部分后即可直接在原理图中进行电路仿真。
3.仿真功能及参数设置
Altium Designer的仿真器可以完成各种形式的信号分析,在仿真器的分析设置对话框中,通过全局设置页面,允许用户指定仿真的范围和自动显示仿真的信号。每一项分析类型可以在独立的设置页面内完成。Altium Designer中允许的分析类型包括:
1、直流工作点分析
2、瞬态分析和傅立叶分析
3、交流小信号分析
4、阻抗特性分析
5、噪声分析
6、Pole-Zero(临界点)分析
7、传递函数分析
8、蒙特卡罗分析
9、参数扫描
10、温度扫描等
1.直流工作点分析:直流工作点分析用在测定带有短路电感和开路电容电路的直流工作点。
在测定瞬态初始化条件时,除了已经在Transient/Fourier Analysis Setup中使能了Use Initial Conditions参数的情况外,直流工作点分析将优先于瞬态分析。同时,直流工作点分析优先于交流小信号、噪声和Pole-Zero分析,为了保证测定的线性化,电路中所有非线性的小信号模型。 在直流工作点分析中将不考虑任何交流源的干扰因素。
2.瞬态分析:瞬态分析在时域中描述瞬态输出变量的值。
在未使能Use Initial Conditions参数时,对于固定偏置点,电路节点的初始值对计算偏置点和非线性元件的小信号参数时节点初始值也应考虑在内,因此有初始值的电容和电感也被看作是电路的一部分而保留下来。
参数设置
- Transient Start Time:分析时设定的时间间隔的起始值(单位:秒)
- Transient Stop Time: 分析时设定的时间间隔的结束值(单位:秒)
- Transient Step Time:分析时时间增量(步长)值
- Transient Max Step Time:时间增量值的最大变化量;缺省状态下,其值可以是Transient Step Time或(Transient Stop Time – Transient Start Time)/50。
- Use Initial Conditions:当使能后,瞬态分析将自原理图定义的初始化条件开始,旁路直流工作点分析。该项通常用在由静态工作点开始一个瞬态分析中。
- Use Transient Default:调用缺省设定
- Default Cycles Displayed:缺省显示的正玄波的周期数量。该值将由Transient Step Time决定。
- Default Points Per Cycle:每个正玄波周期内显示数据点的数量。
- 如果用户未确定具体输入的参数值,建议使用缺省设置;当使用原理图定义的初始化条件时,需要确定在电路设计内的每一个适当的元器件上已经定义了初始化条件,或在电路中放置.IC元件。
3.傅立叶分析:一个设计的傅立叶分析是基于瞬态分析中最后一个周期的数据完成的。
参数设置
- Enable Fourier:在仿真中执行傅立叶分析(缺省为Disable)
- Fourier Fundamental Frequency:由正玄曲线波叠加近似而来的信号频率值
- Fourier Number of Harmonics:在分析中应注意的谐波数;每一个谐波均为基频的整数倍。
- 在执行傅立叶分析后,系统将自动创建一个.sim数据文件,文件中包含了关于每一个谐波的幅度和相位详细的信息。
4.直流扫描分析:直流扫描分析就是直流转移特性,当输入在一定范围内变化时,输出一个曲线轨迹。通过执行一系列直流工作点分析,修改选定的源信号的电压,从而得到一个直流传输曲线;用户也可以同时指定两个工作源。
参数设置
- Primary Source:电路中独立电源的名称
- Primary Start:主电源的起始电压值
- Primary Stop:主电源的停止电压值
- Primary Step:在扫描范围内指定的增量值
- Enable Secondary:在主电源基础上,执行对每个从电源值的扫描分析
- Secondary Name:在电路中独立的第二个电源的名称
- Secondary Start:从电源的起始电压值
- Secondary Stop:从电源的停止电压值
- Secondary Step: 在扫描范围内指定的增量值
- 在直流扫描分析中必须设定一个主源,而第二个源为可选;通常第一个扫描变量(主独立源)所覆盖的区间是内循环,第二个(次独立源)扫描区间是外循环。
5.交流小信号分析:交流分析是在一定的频率范围内计算电路和响应。
如果电路中包含非线性器件或元件,在计算频率响应之前就应该得到此元器件的交流小信号参数。在进行交流分析之前,必须保证电路中至少有一个交流电源,也即在激励源中的AC 属性域中设置一个大于零的值。
参数设置
- Start Frequency:用于正玄波发生器的初始化频率(单位:Hz)
- Stop Frequency: 用于正玄波发生器的截至频率(单位:Hz)
- Sweep Type:决定如何产生测试点的数量;Linear-全部测试点均匀的分布在线性化的测试范围内,是从起始频率开始到终止频率的线性扫描,Linear类型适用于带宽较窄情况;Decade-测试点以10的对数形式排列, Decade用于带宽特别宽的情况;Octave-测试点以8个2的对数形式排列,频率以倍频程进行对数扫描,Octave用于带宽较宽的情形;
- Test Points:在扫描范围内,依据选择的扫描类型,定义增量值;
- Total Test Point:显示全部测试点的数量;
- 在执行交流小信号分析前,电路原理图中必须包含至少一个信号源器件并且在AC Magnitude参数中应输入一个值。用这个信号源去替代在仿真期间的正玄波发生器。用于扫描的正玄波的幅度和相位需要在SIM模型中指定。输入的幅度值(电压Volt)和相位值(度Degrees),不要求输入单位值。设定交流量级为1,将使输出变量显示相关度为0dB。
6.阻抗特性分析:阻抗特性分析将显示电路中任意两个终端源间的阻抗特征,该分析没有独立的设置页面,通常只作为交流小信号分析中的一个部分。
参数设置
- 阻抗测量将通过输入电源电压值除以输出电流值得到。要获得一个电路输出阻抗的阻抗特征图,须通过下列步骤实现:
- 从输入端删除源
- 输入电源与地短接
- 删除任意连入电路的负载
- 连接输出两端的源,即正电源连接到输出端,负端接地
7.噪声分析:噪声分析利用噪声谱密度测量由电阻和半导体器件的噪声影响,通常由V2/Hz表征测量噪声值。电阻和半导体器件等都能产生噪声,噪声电平取决于频率。电阻和半导体器件产生不同类型的噪声(注意:在噪声分析中,电容、电感和受控源视为无噪声元器件)。对交流分析的每一个频率,电路中每一个噪声源(电阻或晶体管)的噪声电平都被计算出来。它们以输出节点的贡献通过将各均方根值相加得到。
参数设置
- Output Noise:需要分析噪声的输出节点
- Input Noise:叠加在输入端的噪声总量,将直接关系到输出端上的噪声值
- Component Noise:电路中每个器件(包括电阻和半导体器件)对输出端所造成的噪声乘以增益后的总和。
- Noise Sources:选择一个用于计算噪声的参考电源(独立电压源或独立电流源);
- Start Frequency:指定起始频率;
- Stop Frequency:指定终止频率;
- Test Points:指定扫描的点数;
- Points/Summary:指定计算噪声范围。在此区域中,输入0则只计算输入和输出噪声;如输入1则同时计算各个器件噪声。后者适用于用户想单独查看某个器件的噪声并进行相应的处理(比如某个器件的噪声较大,则考虑使用低噪声的器件换之)。
- OutPut Node:指定输出噪声节点;
- Reference Node:指定输出噪声参考节点,此节点一般为地(也即为0节点),如果设置的是其他节点,通过V(Output Node)-V(Reference Node)得到总的输出噪声;
- Sweep Type框中指定扫描类型,这些设置和交流分析差不多,在此只作简要说明。Linear为线性扫描,是从起始频率开始到终止频率的线性扫描,Test Points是扫描中的总点数,一个频率值由当前一个频率值加上一个常量得到。Linear适用于带宽较窄情况。Octave为倍频扫描,频率以倍频程进行对数扫描。Test Points是倍频程内的扫描点数。下一个频率值由当前值乘以一个大于1的常数产生。Octave用于带宽较宽的情形。Decade为十倍频扫描,它进行对数扫描。Test
Points是十倍频程内的扫描点数。Decade用于带宽特别宽的情况。
- 通常起始频率应大于零;独立的电压源中需要指定Noise Source参数;
8 .Pole-Zero(临界点)分析:在单输入/输出的线性系统中,利用电路的小信号交流传输函数对极点或零点的计算用Pole-Zero进行稳定性分析;将电路的直流工作点线性化和对所有非线性器件匹配小信号模型。传输函数可以是电压增益(输出与输入电压之比)或阻抗(输出电压与输入电流之比)中的任意一个。
参数设置
- Input Node:正的输入节点
- Input Reference Node:输入端的参考节点(缺省:0(GND))
- Output Node:正的输出节点
- Output Reference Node:输出端的参考节点(缺省:0(GND))
- Transer Function Type: 设定交流小信号传输函数的类型;V(output)/V(input)-电压增益传输函数,V(output)/I(input)-电阻传输函数
- Analysis Type: 更精确的提炼分析极点
- Pole-Zero分析可用于对电阻、电容、电感、线性控制源、独立源、二极管、BJT管、MOSFET管和JFET管,不支持传输线。对复杂的大规模电路设计进行Pole-Zero分析,需要耗费大量时间并且可能不能找到全部的Pole和Zero点,因此将其拆分成小的电路在进行Pole-Zero分析将更有效。
9.传递函数分析(也称为直流小信号分析):传递函数分析将计算每个电压节点上的直流输入电 阻、直流输出电阻和直流增益值。
参数设置
- Source Name:指定输入参考的小信号输入源
- Reference Node:作为参考指定计算每个特定电压节点的电路节点(缺省:设置为0)
- 利用传递函数分析可以计算整个电路中直流输入、输出电阻和直流增益三个小信号的值。
10. 蒙特卡罗分析:蒙特卡罗分析是一种统计模拟方法,它是在给定电路元器件参数容差为统计分布规律的情况下,用一组组伪随机数求得元器件参数的随机抽样序列,对这些随机抽样的电路进行直流扫描、直流工作点、传递函数、噪声、交流小信号和瞬态分析,并通过多次分析结果估算出电路性能的统计分布规律,蒙特卡罗分析可以进行最坏情况分析,
AD6 的蒙特卡罗分析在进行最坏情况分析时有着强大且完备的功能。
参数设置
- Seed:该值是仿真中随机产生的。如果用随机数的不同序列执行一个仿真,需要改变该值(缺省:-1)
- Distribution:容差分布参数;Uniform(缺省)表示单调分布。在超过指定的容差范围后仍然保持单调变化;Gaussian表示高斯曲线分布(即Bell-Shaped铃形),名义中位数与指定容差有-/+3的背离;Worst Case表示最坏情况与单调分布类似,不仅仅是容差范围内最差的点。
- Number of Runs:在指定容差范围内执行仿真中运用不同器件值(缺省:5)
- Default Resistor Tolerance:电阻器件缺省容差(缺省:10%)
- Default Capacitor Tolerance:电容器件缺省容差(缺省:10%)
- Default Inductor Tolerance:电感器件缺省容差(缺省:10%)
- Default Transistor Tolerance: 三极管器件缺省容差(缺省:10%)
- Default DC Source Tolerance: 直流源缺省容差(缺省:10%)
- Default Digital Tp Tolerance: 数字器件传播延时缺省容差(缺省:10%),该容差将用于设定随机数发生器产生数值的区间。对于一个名义值为ValNom的器件,其该容差区间为:ValNom– (Tolerance * ValNom)<RANGE> ValNom+ (Toleance*ValNom)
- Specific Tolerances:用户特定的容差(缺省:0),定义一个新的特定容差,先执行Add命令,在出现的新增行的Designator域中选择特定容差的器件,在Parameter中设置参数值,在Tolerance中设定容差范围,Track No.即跟踪数(tracking number )用户可以为多个器件设定特定容差。此区域用来标明在设定多个器件特定容差的情况下,它们之间的变化情况。如果两个器件的特定容差的Tracking
No.一样,且分布一样,则在仿真时将产生同样的随机数并用于计算电路特性,在Distribution中选择uniform,gaussian,worst case其中一项。每个器件都包含两种容差类型,分别为器件容差和批量容差。
- 在电阻、电容、电感、晶体管等同时变化情况。但可想而知,由于变化的参数太多,反而不知道哪个参数对电路的影响最大。因此,建议读者不要"贪多",一个一个地分析,例如读者想知道晶体管参数BF对电路频率响应的影响,那么就应该去掉其它参数对电路的影响,而只保留BF容差。
11.参数扫描:参数扫描它可以与直流、交流或瞬态分析等分析类型配合使用,对电路所执行的分析进行参数扫描,对于研究电路参数变化对电路特性的影响提供了很大的方便。在分析功能上与蒙特卡罗分析和温度分析类似,它是按扫描变量对电路的所有分析参数扫描的,分析结果产生一个数据列表或一组曲线图。同时用户还可以设置第二个参数扫描分析,但参数扫描分析所收集的数据不包括子电路中的器件。
参数设置
- Primary Sweep Variable:希望扫描的电路参数或器件的值,利用下拉选项框设定
- Primary Start Value:扫描变量的初始值
- Primary Stop Value:扫描变量的截至值
- Primary Step Value:扫描变量的步长
- Primary Sweep Type:设定步长的绝对值或相对值
- Enable Secondary:在分析需要确定第二个扫描变量
- Secondary Sweep Variable: 希望扫描的电路参数或器件的值,利用下拉选项框设定
- Secondary Start Value: 扫描变量的初始值
- Secondary Stop Value: 扫描变量的截至值
- Secondary Step Value: 扫描变量的步长
- Secondary Sweep Type: 设定步长的绝对值或相对值
- 参数扫描至少应与标准分析类型中的一项一起执行,我们可以观察到不同的参数值所画出来不一样的曲线。曲线之间偏离的大小表明此参数对电路性能影响的程度。
12.温度扫描:温度扫描是指在一定的温度范围内进行电路参数计算,用以确定电路的温度漂移等性能指标。
参数设置
- Start Temperature:起始温度(单位:摄氏度C)
- Stop Temperature:截至温度(单位:摄氏度C)
- Step Temperature:在温度变化区间内,递增变化的温度大小
- 在温度扫描分析时,由于会产生大量的分析数据,因此需要将General Setup中的Collect Data for设定为Active Signals。
使用Altium Designer仿真的基本步骤如下:
1、装载与电路仿真相关的元件库
2、在电路上放置仿真元器件(该元件必须带有仿真模型)
3、绘制仿真电路图,方法与绘制原理图一致
4、在仿真电路图中添加仿真电源和激励源
5、设置仿真节点及电路的初始状态
6、对仿真电路原理图进行ERC检查,以纠正错误
7、设置仿真分析的参数
8、运行电路仿真得到仿真结果
9、修改仿真参数或更换元器件,重复5~8的步骤,直至获得满意结果。
下面通过具体实例来介绍电路仿真的整个过程。
1,运行Altium Designer,选择FileOpen Project…,打开安装目录下ExamplesCircuit SimulationAnalog AmplifierAnalog Amplifier.PRJPCB 文件。如图1所示。
图1打开原理图文件
双击Analog Amplifier.schdoc,进入电路图编辑环境,如图2所示。右键点击Analog Amplifier.schdoc,在弹出菜单中选择Compile Document Analog Amplifier.schdoc,检查文件是否存在错误,如有错误先纠正。
图2 编译文件
2,装载仿真库:
点击窗口右侧的工具栏Libraries ,在弹出的窗口中选择Libraries。
3,简单介绍如何观察及修改仿真模型在电路图编辑环境下,双击元器件U1,将会弹出如图3所示的器件属性窗口,在窗口右侧能够看到其仿真模型,双击Type下的Simulation,就能够调出关于该器件的详细仿真模型描述见图4。
图3 器件属性
图4 仿真模型
4,仿真模型设定好以后,需要设置仿真的节点,如图5所示为需要观察的节点添加网络标识编译该文件,确认无误后保存,然后保存工程文件,接下来就可以进行仿真了。
图5 仿真的节点
5,选择所需要的分析方法,点击每种分析方法,在窗口右侧会出现相应的仿真参数设置。
如图6所示。
图6 仿真参数设置
6,参数扫描分析,参数扫描功能对于电路设计初期非常有帮助,能够节省大量的人为计算时间。如图7所示。
图7 设置扫描参数。
7,修改仿真模型参数,在设计过程中,如果需要修改仿真模型参数,点击窗口左下方的Projects选项,在如图8 所示的窗口中,在Analog Amplifier.PRJPCB工程下双击Libraries下的UA741.ckt文件,即进入仿真模型文件,在此文件中根据需要修改相应的参数值,然后保存,就可以进行下一次仿真了。
图8 修改仿真模型参数
8,扫描参数,输出仿真结果。 在如
图10所示的仿真波形界面下,在弹出的菜单中选择Cursor A和Cursor B,将会在波形上产生两个光标,拖动此光标就可以测量相关的数据,如图点击窗口左下角的Sim Data选项,在此界面下就能观察到实际的测量结果。还可以从其中挑选符合要求的图形,在波形下方将会对应其参数值,如图11
图10 扫描结果输出
图11 选择仿真参数