开发Spice宏模型的简单方法
- 格式:docx
- 大小:12.05 KB
- 文档页数:3
建立SPICE模型以模型15LJQ100为例。
第一步,查找器件的SPICE文件(源码资料)。
第二步,创建对应器件的原理图符号。
第三步,设置器件属性。
第四步,建立脚本文件。
第五步,仿真测试。
查找器件的SPICE文件首先我们由于我们知道15LJQ100的生产商是international rectifier公司,所以我们进入其官方网站/indexsw.html,在内容搜索栏输入15LJQ100,在之后弹出的网页中,我们单击 Spice File,接下来我们可以在网页/product-info/models/SPICE/15ljq100.s中看到SPICE文件的内容即源码。
*************************************** Model Generated by MODPEX **Copyright(c) Symmetry Design Systems** All Rights Reserved ** UNPUBLISHED LICENSED SOFTWARE ** Contains Proprietary Information ** Which is The Property of ** SYMMETRY OR ITS LICENSORS **Commercial Use or Resale Restricted ** by Symmetry License Agreement **************************************** Model generated on Apr 12, 01* MODEL FORMAT: SPICE3.MODEL 15ljq100 d+IS=6.15446e-05 RS=0.0153982 N=1.88088 EG=1.3+XTI=3.60437 BV=100 IBV=0.0001 CJO=1.08848e-09+VJ=0.4 M=0.371667 FC=0.5 TT=1e-09+KF=0 AF=1创建对应器件的原理图符号15ljq100是一个稳压二极管,所以我们可以利用PROTEUS本身自带的一些二极管模型,将其分解后为我们15ljq100的原理图符号(也可以利用2D绘图工具栏自己重新画一个)。
PSpice库中已有极多模型可用,没有必要自建模型,如果遇到库中没有的器件模型,可以到生产该器件上公司网站上下载,一般大型公司都会提供。
如果一定要自建模型,可以用PSpice中的模型编辑软件实现(“Model Editor”),一般可以用已有的模型作一些修改实现。
可以上网找一些深层次的PSpice书看或是找一些极老版本的PSpice的书看,老版本的书中会较多得提到关于PSpice命令、语言等方面与模型有关的东西。
听过一个高手的培训,PSpice其实就是一个计算器。
只要器件模型对了,就能给出结果。
你调用的是PSpice的模型库中的元器件吗?如果是,基本不会出现因为模型原因而不能仿真的现象!资料你可以上网找,很多的。
先找本简单的看看就行了。
个人认为PSpiec在模拟电路仿真方面是最好的。
关于你出现的问题,是PSpice中常见的,与PSpice的算法有关。
解决的方法是在出现问题的结点处(即提示的node ***)与电路地之间加一个值很大的电阻,这样即不会影响仿真精度,问题也能解决。
值得一提的是在PSpice的电路在必需有一个结点的名称为“0”,一般建议将“地”结点命名为“0”.这与PSpice的算法与电路网表的结构有关,不必深揪!PSpice 如何利用Model Editor 建立仿真用的模型PSpice 提供Model Editor 建立元件的Model,从元件供应商那边拿到该元件的Datasheet,透过描点的方式就可以简单的建立元件的仿真模型,来做电路的模仿真。
PSpice 提供约十多种的元件(Diode、Bipolar Transistor、Magnetic Core、IGBT、JFET、MOSFET、Operational Amplifier、Voltage Regulator、Voltage Comparator、Voltage Reference、Darlington Transistor)来建立元件的模型。
PSpice模型创建PSpice模型是对电路元器件的数学描述,是进行电路仿真分析的前提条件,它的精度和速度直接影响电路分析结果的精确度和仿真速度。
因此,在进行PSpice仿真之前,需要有相应元器件的适当PSpice模型,如合适的直流模型、交流小信号模型、瞬态分析模型、噪声模型、温度模型等等。
在电路设计的过程中,如果直接调用软件自带模型库中的元件模型参数,不一定能够满足各种不同的实际设计需要,这时就需要修改元件模型参数。
此外,对于新创建的元件,则需要用户自己设置适当的PSpice模型参数。
一、PSpice模型参数的修改PSpice模型修改比较简单:可以直接选择元件,然后右击选择Edit PSpice model,即可打开PSpice模型编辑器,编辑所需修改的参数,存盘即可。
其中:Models List栏用以显示模型名称;Simulation Parameters栏用以修改设置模型参数;Model Text栏用以显示模型描述语言,当然这里只能读取,不可以在此进行编辑。
二、PSpice模型的创建为了满足具体设计需要,设计者往往需要创建自己的元件库,要进行PSpice 仿真,就必须对新建元件进行模型设置,新建模型,有两种主要方式:1、Model Editor模型编辑(1)执行Cadence/Release 16.3/PSpice Accessories/Model Editor命令,进入模型编辑器界面,执行File/New命令,如下图:(2)点击符号,弹出新建模型的New Model对话框,如下图:在该对话框中选择设置,Model Name填写模型名称;选择Use Device Characteristic Curves表示用硬件的典型曲线来描述模型;选择Use Templates 表示用软件自带样本进行参数的修改设置;From Model用以选择模型类型。
选择Use Device Characteristic Curves,再确定模型,点击OK即可进入模型编辑器窗口,其中可以设置元件的所有相关仿真参数设定,编辑器会以曲线形式将参数设定后的模型特性实时显示出来。
PSpice模型创建与应用实例主要内容:一、概述二、导入模型文件三、创建模型符号四、应用模型进行仿真时间拟制人修订版本备注2012/3/19 Ma.chong Wang.peng V16.5一、概述PSpice为用户提供了模型转换与编辑工具:Model Editor,用户自己下载的模型参数文件可以通过Model Editor转换成PSpice的模型文件,并且可以建立相应的模型符号。
本文以intersil公司的ISL28114元件模型为例介绍如何将下载的Spice模型文件导入到PSpice模型库中,并对模型进行模拟仿真。
一个完整的模型创建与应用实例包括以下几步:1、导入模型文件2、建立模型符号3、应用模型进行仿真二、模型文件的导入选择“程序\Cadence\Release 16.5\PSpice Accessories\Model Editor”如图1:图1选择PSpice A/D,如图2:图2点击“OK”,弹出原理图工具选择对话框,选择“Capture”,即采用Capture绘制原理图,如图3:图3这样即启动了PSpice Model Editor窗口。
选择“File->Open”打开下载的Spice模型参数文件(ISL28114.mod),如图4:图4选择“File->Save As”,将.mod文件改为.lib文件,如图5:图5点击“保存”。
在Model Editor窗口中,选择“File->Export to Capture part library”,如图6:图6点击“OK”,弹出日志文件,里面列出警告或错误信息,如图7:图7点击“OK”。
二、创建模型符号在Model Editor窗口中,选择“File->Model Import Wizard[Capture]”,如图8:图8点击“下一步”,如图9:图9 选择“Replace Symbol”,建立国标符号,如图10:图10 点击“下一步”,设置引脚信息,如图11:图11 点击“Save Symbol”,如图12:图12 点击“OK”。
TINA10由spice创建新零件宏TINA10系统带有很大的零件库,但很多常用的零件没有,必须从网上下载spice网表,从器件生产商的官方网站下载,从网上论坛下载。
保存在你电脑的桌面或任何一个位置。
启动tina10,见下图:原理图编辑屏幕:首先验证下载器件spice网表文件是否符合规范,点击TINA10菜单的文件-----导入-----Pspice连线表------弹出下图:打开文件对话框,默认的查找范围:tina10-distributor evaluation,这是为了方便学习者实习时,找到系统自带的例题文件,因为笔者把事先下载好的spice网表放在了电脑的桌面上,因此应当把查找范围指向桌面:见下图.把查找范围指向桌面:见下图上图中,文件夹:9013 8550 spice模型,就是要导入的网表,因为三极管ss8050 8550 C9012 9013 9014 9015是最常用的三极管。
导入到TINA10中,形成新建零件后,,在以后的设计中非常有用。
双击这个文件夹,可以看到里面的网表文件:最常用的5个型号的三极管。
网表文件的后缀文件扩展名是.cir。
见下图:上图底部的文件类型:指定是.cir 或.lib。
只有这两种类型的文件,tian10才会识别。
双击上图中的8550,弹出下面的画面:上图是TINA10的网表编辑器,点击上图顶部的对勾,网表编辑器开始编译网表,编译成功后,会在上图的底部显示:编译成功的提示文字。
见下图的底部。
这说明8550的网表文件.CIR,可以使用。
下面开始创建新零件的宏:点击TINA10顶部菜单的工具------新建宏向导-----弹出向导对话框:见下图:把宏名称,由新建宏改为:SS8550,在上图中部,选中:从文件------此时右侧的文件夹图标由灰色点亮。
点击文件夹图标------弹出下面打开文件对话框:默认的查找范围是:spicelib,见下图:由于笔者把要导入的spice网表文件放置在了桌面,因此把地址指向桌面:上图中文件夹9013 8550 spice模型,就是要导入的网表文件。
如何建立PSPICE 和原理图SYMBOL 的连接作者:feilong日期:2010-5-26随着设计的复杂度越来越高,用PSPICE 对电路进行仿真的需求就越来越多,随之产生如何将PSPICE 模型和原理图SYMBOL 链接起来就成了关键的一步,本文将就这一问题和大家作一个探讨。
下面分2 种情况进行讨论:3 I/ U+ S" k: Y% J8 e+ B5 U9 y(一) 无PSPICE 模型,无SYMBOL,用PSPICE 产生SYMBOL 并建立连接关系。
EDA3(二) 已有PSPICE 和SYMBOL 如何建立连接首先大家知道PSPICE 的模型库后缀名为lib, Symbol 的后缀名为Olb.针对第一种情况:ED1.从网上下载PSPICE 模型保存,以ON SEMICONDUCTOR 的MJD44H1.LIB 为例2.启动PSpice Model Editor 模型编辑器,打开MJD44H1.LIB4.File\Export to Capture Part Library /4.点OK,系统自动生成元件外型(Symbol)库。
5.启动Capture CIS,File/Open/Library,打开MJD44H1.olb,查看Symbol,如需修改,自行编辑元件外型并保存。
6.用记事本打开..C:\Cadence\SPB_15.7\tools\pspice\library\nom.lib,加入.lib"MJD44H1.LIB",注册MJD44H1.LIB;(有了第6.步,就不会出现ERROR -- Model ...... used by...... is undefined)建立元器件模型成功。
在这步中,我在用Cadence 16.3版本时出现修改nom.lib后PSPICE 仿真出现以下错误:ERROR -- Unable to find library file MJD44H11.libIndex has 26578 entries from 152 file(s).ERROR -- Unable to make index for library fileC:\Cadence\SPB_16.3\tools\pspice\library\nom.lib原因:MJD44H11.lib未放在指定目录,即没和nom.lib一起放Cadence\SPB_15.7\tools\pspice\library目录下。
SPICE模型、命令介绍SPICE模型、命令介绍下⾯列出常⽤SPICE器件的模型描述。
{ }中的参数是必须的,[ ]中的参数可选,{ }*中的参数需要重复。
此外,每个SPICE模型提供商可能会有其他的参数或命令。
DEVICE:1、C device - Capacitor.C{name} {+node} {-node} [{model}] {value} [IC={initial}]Examples:CLOAD 15 0 20pFCFDBK 3 33 CMOD 10pF IC=1.5v2、D device - Diode.D{name} {+node} {-node} {model} [area]Examples:DCLAMP 14 0 DMOD3、I device - Current Source.I{name} {+node} {-node} [[DC] {value}] [AC {mag} [{phase}]]Examples:IBIAS 13 0 2.3mAIAC 2 3 AC .001IPULSE 1 0 PULSE(-1mA 1mA 2ns 2ns 2ns 50ns 100ns)I3 26 77 AC 1 SIN(.002 .002 1.5MEG)4、J device - Junction FET.J{name} {d} {g} {s} {model} [{area]}Examples:JIN 100 1 0 JFAST5、K device - Inductor Coupling.K{name} L{name} { L{name} }* {coupling}Examples:KTUNED L3OUT L4IN .8KXFR1 LPRIM LSEC .996、L device - Inductor.L{name} {+node} {-node} [model] {value} [IC={initial}]Examples:LLOAD 15 0 20mHL2 1 2 .2e-6LSENSE 5 12 2uH IC=2mA7、M device - MOSFET.M{name} {d} {g} {s} {sub} {mdl} [L={value}] [W={value}] + [AD={value}] [AS={value}] + [PD={value}] [PS={value}]+ [NRD={value}] [NRS={value}]Examples:M1 14 2 13 0 PNOM L=25u W=12uM13 15 3 0 0 PSTRONG8、Q device - Bipolar Transistor.Q{name} {c} {b} {e} [{subs}] {model} [{area}]Examples:Q1 14 2 13 PNPNOMQ13 15 3 0 1 NPNSTRONG 1.59、R device - Resistor.R{name} {+node} {-node} [{model}] {value}Examples:RLOAD 15 0 2k10、S device - Voltage-Controlled Switch.S{name} {+node} {-node} {+control} {-control} {model}Examples:S12 13 17 2 0 SMOD11、T device - Transmission Line.T{name} {A+} {A-} {B+} {B-} Z0={value}[TD={val} | F={val}[NL={val}]]Examples:T1 1 2 3 4 Z0=220 TD=115nsT2 1 2 3 4 Z0=50 F=5MEG NL=0.512、V device - Voltage Source.V{name} {+node} {-node} [[DC] {value}] [AC {mag} [{phase}]]Examples:VBIAS 13 0 2.3mVV AC 2 3 AC .001VPULSE 1 0 PULSE(-1mV 1mV 2ns 2ns 2ns 50ns 100ns)V3 26 77 AC 1 SIN(.002 .002 1.5MEG)13、X device - Subcircuit Call.X{name} [{node}]* {subcircuit name}Examples:X12 100 101 200 201 DIFFAMPCONTROLLED SOURCES14、E device - Voltage Controlled V oltage Source VCVS.E{name} {+node} {-node} {+cntrl} {-cntrl} {gain}E{name} {+node} {-node} POL Y({value}) {{+cntrl} {-cntrl}}* {{coeff}}* Examples: EBUFF 1 2 10 11 1.0EAMP 13 0 POL Y(1) 26 0 50015、F device - Current Controlled Current Source CCCS.F{name} {+node} {-node} {vsource name} {gain}Examples:FSENSE 1 2 VSENSE 10.016、G device - Voltage Controlled Current Source VCCS.G{name} {+node} {-node} {+control} {-control} {gain}Examples:GBUFF 1 2 10 11 1.017、H device - Current Controlled V oltage Source CCVS.H{name} {+node} {-node} {vsource name} {gain}H{name} {+node} {-node} POL Y({value}) { {vsource name} }* {{coeff}}* Examples: HSENSE 1 2 VSENSE 10.0HAMP 13 0 POL Y(1) VIN 500INPUT SOURCES18、EXPONENTIALEXP( {v1} {v2} {trise_delay} {tau_rise} {tfall_delay} {tau_fall) )19、PULSEPULSE( {v1} {v2} {tdelay} {trise} {tfall} {width} {period} )20、PIECE WISE LINEARPWL( {time1} {v1} {time2} {v2} ... {time3} {v3} )21、SINGLE FREQUENCY FMSFFM( {voffset} {vpeak} {fcarrier} {mod_index} {fsignal} )22、SINE WA VESIN( {voffset} {vpeak} {freq} {tdelay} {damp_factor} {phase} )ANALOG BEHA VIORAL MODELING23、V ALUEE|G{name} {+node} {-node} V ALUE {expression}Examples:GMULT 1 0 V ALUE = { V(3)*V(5,6)*100 }ERES 1 3 VALUE = { I(VSENSE)*10K }24、TABLEE|G{name} {+node} {-node} TABLE {expression} = (invalue, outvalue)* Examples: ECOMP 3 0 TABLE {V(1,2)} = (-1MV 0V) (1MV, 10V)25、LAPLACEE|G{name} {+node} {-node} LAPLACE {expression} {s expression} Examples:ELOPASS 4 0 LAPLACE {V(1)} {10 / (s/6800 + 1)}26、FREQE|G{name} {+node} {-node} FREQ {expression} (freq, gain, phase)* Examples:EAMP 5 0 FREQ {V(1)} (1KZ, 10DB, 0DEG) (10KHZ, 0DB, -90DEG)27、POL YE|G{name} {+node} {-node} POL Y(dim) {inputs X} {coeff k0,k1,...} [IC=value] Examples:EAMP 3 0 POL Y(1) (2,0) 0 500EMULT2 3 0 POL Y(2) (1,0) (2,0) 0 0 0 0 1ESUM3 6 0 POL Y(3) (3,0) (4,0) (5,0) 0 1.2 0.5 1.2COEFFICIENTS28、POL Y(1)y = k0 + k1?X1 + k2?X1?X1 + k3?X1?X1?X1 + ...29、POL Y(2)y = k0 + k1?X1+ k2?X2 + k3?X1?X1+ k4?X2?X1 + k5?X2?X2+ k6?X1?X1?X1 + k7?X2?X1?X1 + k8?X2?X2?X1+ k9?X2? X2?X2 + ...30、POL Y(3)y = k0 + k1?X1 + k2?X2 + k3?X3 + k4?X1?X1 + k5?X2?X1 + k6?X3?X1+ k7?X2?X2+ k8?X2?X3 + k9?X3?X3 + ...STATEMENTS31、.AC - AC Analysis..AC [LIN][OCT][DEC] {points} {start} {end}Examples:.AC LIN 101 10Hz 200Hz.AC DEC 20 1MEG 100MEG32、.DC - DC Analysis..DC [LIN] {varname} {start} {end} {incr}.DC [OCT][DEC] {varname} {start} {end} {points}Examples:.DC VIN -.25 .25 .05.DC LIN I2 5mA -2mA 0.1mA VCE 10V 15V 1V 33、.FOUR - Fourier Analysis..FOUR {freq} {output var}*Examples:.FOUR 10KHz v(5) v(6,7)34、.IC - Initial Transient Conditions..IC { {vnode} = {value} }*Examples:.IC V(2)=3.4 V(102)=035、.MODEL – Device Model..MODEL {name} {type}Typename Devname DevtypeCAP Cxxx capacitorIND Lxxx inductorRES Rxxx resistorD Dxxx diodeNPN Qxxx NPN bipolarPNP Qxxx PNP bipolarNJF Jxxx N-channel JFETPJF Jxxx P-channel JFETNMOS Mxxx N-channel MOSFETPMOS Mxxx P-channel MOSFETVSWITCH Sxxx voltage controlled switch Examples:.MODEL RMAX RES (R=1.5 TC=.02 TC2=.005).MODEL QDRIV NPN (IS=1e-7 BF=30)36、.NODESET – Initial bias point guess..NODESET { {node}={value} }*Examples:.NODESET V(2)=3.4 V(3)=-1V37、.NOISE - Noise Analysis..NOISE {output variable} {name} [{print interval}] Examples:.NOISE V(5) VIN38、.PLOT – Plot Output..PLOT [DC][AC][NOISE][TRAN] [ [{output variable}*] Examples: .PLOT DC V(3) V(2,3) V(R1) I(VIN).PLOT AC VM(2) VP(2) VG(2)39、.PRINT – Print Output..PRINT [DC][AC][NOISE][TRAN] [{output variable}*] Examples: .PRINT DC V(3) V(2,3) V(R1) IB(Q13).PRINT AC VM(2) VP(2) VG(5) II(7)40、.PROBE – Save simulation output PSPICE COMMAND. .PROBE [output variable]*Examples:.PROBE.PROBE V(3) VM(2) I(VIN)41、.SENS - Sensitivity Analysis..SENS {output variable}*Examples:.SENS V(9) V(4,3) I(VCC)42、.SUBCKT - Subcircuit Definition..SUBCKT {name} [{node}*]Examples:.SUBCKT OPAMP 1 2 101 10243、.TEMP – Temperature Analysis..TEMP {value}*Examples:.TEMP 0 27 12544、.TF – DC Transfer Function..TF {output variable} {input source name}Examples:.TF V(5) VIN45、.TRAN - Transient Analysis..TRAN {print step value} {final time} [{no print time} [{step ceiling value}]] [UIC] Examples:.TRAN 5NS 100NS。