SPICE实战手册Word格式文档下载.docx
- 文档编号:18891005
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:7
- 大小:20.75KB
SPICE实战手册Word格式文档下载.docx
《SPICE实战手册Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《SPICE实战手册Word格式文档下载.docx(7页珍藏版)》请在冰豆网上搜索。
独立电压和电流源包括:
1.直流源(DC):
电压源Vxxxn+n-dcval
电流源Ixxxn+n-dcval
2.交流源(AC):
Vxxxn+n-AC=acmag,acphase
3.瞬态源(随时间变化):
脉冲源:
pulsev1v2tdtrtfpwper
线性源:
pwlt1v1<
t2v2t3v3…>
正弦源:
sinvovafreqtddampingphasedelay
4.混合源:
可以包括以上所有的形式,如:
VIN1320.001AC1SIN(011Meg)
二、输入网表文件
TITLE
.INCLUDE
.LIBMACRO
元件描述
信号源描述
分析命令
测量命令
.ALTER
.END
图1输入网表(Netlist)文件标准格式
二、有源器件和分析类型
有源器件包括二极管(D)、MOS管(M)、BJT管(Q)、JFET和MESFET(J)、子电路(X)和宏、Behavioral器件(E,G)、传输线(T,U,W)等。
这里值得注意的是MOS、JFET和MESFET的L和W的scale是m,而不是um。
分析的类型包括:
直流、交流和瞬态分析。
1.直流分析:
对DC、AC和TRAN分析将自动进行直流操作点(DCOP)的计算,但.TRANUIC将直接设置初始条件,不进行DCOP的计算。
.DCvar1start1stop1inc1sweepvar2typenpstart2stop2
直流分析包含以下五种语句:
.DC:
直流扫描分析;
.OP:
直流操作点分析;
.PZ:
Pole/Zero分析;
.SENS:
直流小信号敏感度分析;
.TF:
直流小信号传输函数分析。
2.交流分析:
交流分析是指输出变量作为频率的函数。
.ACvar1start1stop1inc1sweepvar2typenpstart2stop2
交流分析包括以下四种语句:
.NOISE:
噪声分析;
.DISTO:
失真分析;
.NET:
网络分析;
.SAMPLE:
采样噪声分析。
3.瞬态分析:
瞬态分析是指计算的电路结果作为时间的函数。
.TRANtinc1tstop1tinc2tstop2…START=..UICSWEEP..
三、输出格式和子电路
(1)输出命令包括:
.PRINT、.PLOT、GRAPH、.PROBE和.MEASURE。
.PLOTantypeov1ov2…plo1,phhi1…plo32,phi32
.PROBEov1ov2…ov32
.PRINTantypeov1ov2…ov32
有五种输出变量形式:
1.直流和瞬态分析:
用于显示单个节点电压,支路电流和器件功耗。
.printV(node)或.plotI(node),也可用.graph、.probe。
V(node)表示节点电压,I(node)表示节点电流,p(rload)表示在负载rload上的分析点的功耗。
2.交流分析:
用于显示节点电压和支路电流的实部、虚部和相位。
vi(node)表示节点电压的虚部,ip(node)表示节点电流的相位,vp(4,6)表示节点4,6间的相位角。
3.器件模版:
用于显示制定的器件节点的电压、支路电流和器件参数。
lv16(m3)表示MOS管m3的漏电流,其他表示方式见手册。
4.MEASURE语句:
用于显示用户自定义的变量。
可以采用的句法包括:
raise,fall,delay,average,RMS,min,max,p-p等。
5.参数语句:
用于显示用户自定义的节点电压等表达式。
语法格式:
.printtranout_var_name=PAR(‘expression’)
(2)还可以采用AvanWave进行波形输出,启动AvanWave的命令为:
awaves<
filename>
&
(3)子电路:
1.采用.GLOBAL设置全局节点:
.GLOBALnode1node2node3…
2.子电路语句.SUBCKT和.MACRO:
.SUBCKTsubnamn1n2n3…parnam=val…
.MACROsubnamn1n2n3…parnam=val…
子电路的调用:
Xyyyn1n2n3…sunnamparnam=val…M=val
四、控制语句和option语句
1.OPTION语句:
.options语句格式:
.optionsopt1opt2opt3…opt=x
一般在每个仿真文件中设置options为.optionsacctlistpost,也可以设置为.optionsnodeopts,其中.optionlist表示将器件网表、节点连接方式等输入到列表文件,用于debug与电路拓扑结构有关的问题,.optionnode表示将输出节点连接表到列表文件,用于debug与由于电路拓扑结构引起的不收敛问题,.optionacct表示在列表文件中输出运行时间统计和仿真效率,.optionopts在列表文件中报告所有的.option设置,.optionnomod表示不输出MODEL参数,以便减小列表文件的大小,.optionbrief=1表示不输出网表信息,直到设置.optionbrief=0,.protect/.unprotect用于屏蔽网表文件中要保护的信息,.optionbypass=1不计算latent器件,.optionautostop表示当所有.measure语句完成时,终止仿真,.optionaccurate=1表示设置为最精确的仿真算法和容差,tstep表示仿真步长值,delmax表示最大允许时间步长,其中delmax=tstep*max,.optiondvdt=4用于数字CMOS电路仿真(默认设置),.optiondcca=1在直流扫描时强行计算随电压变化的电容,.optioncaptab对二极管、BJT管、MOS、JFET、无源电容器,打印出信号的节点电容值,.optiondcstep=val将直流模型和器件转换为电导,主要应用于“NoDCPathtoGround”或有直流通路,但不符合Hspice定义的情况。
2.MODELOPTION语句:
SCALE影响器件参数,如:
L、W、area,SCALM影响model参数,如:
tox、vto、tnom。
五、仿真控制和收敛
Hspice仿真过程采用Newton-Raphson算法通过迭代解矩阵方程,使节点电压和支路电流满足Kirchoff定律。
迭代算法计算不成功的节点,主要是因为计算时超过了Hspice限制的每种仿真迭代的总次数从而超过了迭代的限制,或是时间步长值小于Hspice允许的最小值。
(1)造成Hspice仿真不收敛主要有“NoConvergenceinDCSolution”和“TimesteptooSmall”,其可能的原因是:
1.电路的拓扑结构:
电路拓扑结构造成仿真不收敛主要有:
电路连线错误,scale、scalm和param语句错误,其他错误可以通过查找列表文件中的warning和errors发现。
解决的方法是:
将电路分成不同的小模块,分别进行仿真;
简化输入源;
调整二极管的寄生电阻;
调整错误容差,重新设置RELV,ABSV,RELI,ABSI,RELMOS,ABSMOS等。
2.仿真模型:
由于所有的半导体器件模型都可能包含电感为零的区域,因此可能引起迭代的不收敛。
在PN结或MOS的漏与源之间跨接一个小电阻;
将.option中默认的GMINDC、GMIN增大。
3.仿真器的options设置:
仿真错误容差决定了仿真的精度和速度,要了解你所能接受的容差是多少。
(2)针对仿真分析中可能出现的不收敛情况进行分析:
1.直流工作点分析:
每种分析方式都以直流操作点分析开始,由于Hspice有很少的关于偏置点的信息,所以进行DCOP分析是很困难的,分析结果将输出到.ic文件中。
对DCOP分析不收敛的情况,解决方法是:
删除.option语句中除acct,list,node,post之外的所有设置,采用默认设置,查找.lis文件中关于不收敛的原因;
使
用.nodeset和.ic语句自行设置部分工作点的偏置;
DCOP不收敛还有可能是由于model引起的,如在亚阈值区模型出现电导为负的情况。
2.直流扫描分析:
在开始直流扫描分析之前,Hspice先做DCOP计算,引起直流扫描分析不收敛的原因可能是快速的电压或电流变化,模型的不连续。
对于电压或电流变化太快,通过增加ITL2来保证收敛,.optionITL2是在直流扫描分析中在每一步允许迭代的次数,通过增加迭代次数,可以在电压或电流变化很快的点收敛。
对于模型的不收敛,主要是由于MOS管线性区和饱和区之间的不连续,Newton-Raphson算法再不连续点处进行迭点计算产生震荡,可以通过增减仿真步长值或改变仿真初始值来保证收敛,如:
.dcvin0v5v0.1v的直流分析不收敛,可以改为.dcvin0v5v0.2v增大步长值,.dcvin0.01v5.01v0.1v改变仿真的范围。
3.AC频率分析:
由于AC扫描是进行频率分析,一旦有了DCOP,AC分析一般都会收敛,造成不收敛的原因主要是DCOP分析不收敛,解决的方法可以参看前面关于DCOP的分析。
4.瞬态分析:
瞬态分析先进行直流工作点的计算,将计算结果作为瞬态分析在T0时刻的初始值,再通过Newton-Raphson算法进行迭代计算,在迭代计算过程中时间步长值是动态变化的,.trantstep中的步长值并不是仿真的步长值,只是打印输出仿真结果的时间间隔的值,可以通过调整.optionslvltimimaximin来调整步长值。
瞬态分析不收敛主要是由于快速的电压变化和模型的不连续,对于快速的电压变化可以通过改变分析的步长值来保证收敛。
对模型的不连续,可以通过设置CAPOP和ACM电容,对于给定的直流模型一般选择CAPOP=4,ACM=3,对于level49,ACM=0。
对瞬态分析,默认采用Trapezoidal算法,精度比较高,但容易产生寄生振荡,采用GEAR算法作为滤波器可以滤去由于算法产生的振荡,具有更高的稳定性。
六、输入语句
对于.param语句,.paramPARHIER=GLOBAL是默认的,使得参数可以按照Top-Down变化,.paramPARHIER=LOCAL,可以是参数只在局部有效。
对于.measure语句,可以采用的模式有rise,fall,delay,average,rms,min,peak-to-peak,Find-When,微分和积分等。
对Find-When语句,.measure<
dc|tran|ac>
resultfindvalwhenout_val=val<
optimizationoptions>
,对微分和积分语句,.measure<
result<
deriv|integ>
val<
options>
。
对于.ALTER语句,可以通过改变.ALTER来改变使用不同的库,其中.ALTER语句可以包含element语句、.data、.lib、.dellib、.include、.model、.nodeset、.ic、.op、.options、.param、.temp、.tf、.dc、.ac语句,不能包含.print、.plot、.graph或其他I/O语句,同时应该避免在.ALTER中增加分析语句。
七、统计分析仿真
主要是对器件和模型进行MonteCarlo分析,随机数的产生主要依赖Gaussian、Uniform、Limit分析,通过.param设置分布类型,将dc、ac、tran设置为MonteCarlo分析,用.measure输出分析结果,如:
.paramtox=agauss(200,10,1)
.tran20p1nsweepMONTE=20
.model…tox=tox…
其中,对Gaussian分析.paramver=gauss(nom_val,rel_variation,sigma,mult),
.paramver=agauss(nom_val,abs_variation,sigma,mult),
对Uniform分析,.paramver=unif(nom_val,rel_variation,mult),
.paramver=aunif(nom_val,abs_variation,mult),
对Limit分析,.paramver=limit(nom_val,abs_variation),如果你拼错Gauss或Uniform、Limit,不会产生警告,但不将产生分布。
参考文献
1.K.S.Kundert,TheDesigner’sGuidetoSpice&
Spectre;
2.Synopsys,HSPICETMSimulationandAnalysisUserGuide;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SPICE 实战 手册