Hspice应用讲解 下载本文

内容发布更新时间 : 2024/5/22 20:11:37星期一 下面是文章的全部内容请认真阅读。

改变的大小与时间步长有关。如果当前的电容充电计算迭代超过先前的迭代比RELQ的值有一个更大的百分数,则迭代时间步长增量(δ)将减小,默认值=0.01(1%)。 设置程序的电压相对误差容限。RELTOL用于和ABSV控制选项结合来确定电压收敛。递增的RELTOL增加相对误差。RELV与RELTOL相同。选项RELI和RELVDC的默认值为RELTOL的值,默认值=1.0E-3。 用于设置局部截断误差时间步长算法(LVLTIM=2),TRTOL是一个内部时间步长产生的乘数,用于截断误差时间步长算法。TRTOL减少仿真时间,并保持精确度。它是一个用于Taylor级数展开式算法中的估计截断误差引导总数的因式。这误差是反映时间步长最小值将减小仿真时间和精确度。TRTOL的范围为0.01~100,通常其值在1~10之间。如果TRTOL设置为1,将使用最小值,一个非常小的时间步长。同样的,TRTOL设置值增加,时间步长大小也将增加,默认值=7.0。 在进行全部TRIG-TARG和FIND-WHEN测量功能计算时,停止瞬态分析。该选项会输出真实的CPU减少时间的结果。如果数据文件包括如AVG,RMS,MIN,MAX,PP,ERR,ERR1,2,3和PARAM等测量功能时,AUTOSTOP是被禁止的。 设置断点表的大小,默认值=5000。 在没有更新潜在器件的状态下加速仿真,设置.OPTION BYPASS=1使旁路有效,BYPASS应用于MOSFETs,MESFETs,JFETs,BJTs和二极管器件,默认值=0。 指定考虑了潜在器件MOSFETs,MESFETs,JFETs,BJTs和二极管器件后的电压误差容限,HSPICE不会更新潜在器件的状态,默认值=MBYPASS×VNTOL。 在没有更新潜在器件的状态下加速仿真。该选项应用于MOSFETs,MESFETs,JFETs,BJTs和二极管器件,默认值=0。 一个器件当它的节点电压变化从一个迭代到下一个比BYTOL控制选项或BYPASSTOL组件参数二者任一设置值更小的时候,是要考虑潜在的状态变化的(当FAST存在时,HSPICE将针对不同的器件模型设置不同的BYTOL值)。在添加FAST选项后,输入预处理时间将由于选项NOTOP和NOELCK而减小,选项MBYPASS或BYTOL递增设置的值将帮助其仿真运行的更快,但将降低其精确度。 设置极点/零(原)点分析的迭代极限,默认值=100。 用于计算BYTOL控制选项的默认值:BYTOL=MBYPASS×VNTOL。其同样适用于倍压误差容限RELV。对于精确的模拟电路,MBYPASS设置为0.1左右,当DVDT=0,1,2或3时,默认值=1;当DVDT=4时,默认值=2。 设置从一个时间点到下一个时间点的最大电压变化极限,用于DVDT的计算。如果仿真产生比ABSVER更大的收敛结果,这结果将被删除,时间步长设置为更小的值,并重新进行计算。这是调用一个反向的时间步长,默认值=0.5(V)。 设置迭代时间步长增量(δ)最大值。HSPICE会基于不同的因素自动为DELMAX设置不同的值,这种迭代DELMAX值的方法证明在HSPICE输RELTOL=x TRTOL=x 速度控制 AUTOSTOP BKPSIZ=x BYPASS BYTOL=x FAST ITLPZ MBYPASS=x 时间跨度控制 ABSVAR=x DELMAX=x 出列表中一般没有值用于仿真。 DVDT FS=x 允许在瞬态分析中使用电压极限,默认值=1000。 设置时间步长(TSTEP)的尾数。对于瞬态分析的第一个时间点的增量(δ,迭代时间步长)是减小的。减小FS值帮助电路解决时间步长收敛困难,它总是在DVDT=3时用于控制时间步长: ??FS?[MIN(TSTEP,DELMAX,BKPT)]; 这里DELMAX是指定的,BKPT与源点断点有关,TSTEP在.TRAN语句中设定,默认值=0.25。 FT=x 设置时间步长(TSTEP)的尾数。当一个迭代设置不能收敛时,通过减小其增量(δ,迭代时间步长)来改善。它总是在DVDT=2和 DVDT=4时用于控制时间步长,默认值=0.25。 在瞬态分析仿真中用算法求出时间步长。IMIN用于设置在可以获得收敛的迭代数的下限。如果这个迭代数是比IMIN更小的数,迭代时间步长,增量(δ)将变为原数的两倍。该选项用于对节点时常是稳态的电路(例如数字电路)时减少仿真时间。如果这个迭代数是比IMIN更大的数,时间步长将保持原数,除非其超过了选项IMAX。ITL3与IMIN相同,默认值=3.0。 在瞬态分析仿真中用时间步长算法求出最大时间步长。IMAX用于设置在一个时间点上可以获得收敛的迭代数的上限。如果这个迭代数需要比IMAX更大的数,迭代时间步长增量(δ)将减小,其系数等于瞬态控制选项FT,一个新的结果将用于新的时间步长的计算。IMAX总是与瞬态控制选项IMIN一起工作。ITL4与IMAX相同,默认值=8.0。 设置瞬态分析迭代总数极限。如果电路使用比ITL5更大的迭代,程序将打印所有点的结果。默认值允许一个无穷大的迭代数,默认值=0.0。 与ABSVAR和时间步长算法选项DVDT一起使用。RELVAR设置在LVLTIM=1或3时的相对电压变化。如果通过RELVAR当前时间点的节点电压超过前一个时间点的节点电压,时间步长将减小并在一个新的时间点计算得出一个新的结果,默认值=0.30(30%)。 设置乘数TSTEP,以计算得出最大值DELMAX,用于迭代时间步长增量(δ):DELMAX=TSTEP×RMAX,默认值=2.00。 设置增量(δ,迭代时间步长)最小值。一个比TSTEP×RMAX结果更小的迭代时间步长将终止瞬态分析并给出错误信息“internal timestep too small”。如果电路在IMAX迭代是不收敛的,除开FT选项增量(δ)将减小,默认值=1.0E-9。 设置进入分段线性(PWL)分析的断点表的下限。如果连续两个PWL段的斜率差值比SLOPETOL值更小,这两段之间的进入断点表是无效的,默认值=0.5。 设置断点表中两个断点值间的最小间距。如果两个断点是在同一时间内比TIMERES值更接近,则在断点表中将只有一个进入,默认值=1ps。 允许在瞬态分析中使用电压极限,默认值=1000。 选择用于瞬态分析的时间步长算法。如果LVLTIM=1,则用DVDT时间步长算法;如果LVLTIM=2,则用局部截断误差控制时间步长的算法;如IMIN=x,ITL3=x IMAX=x,ITL4=x ITL5=x RELVAR=x RMAX=x RMIN=x SLOPETOL=x TIMERES=x 算法控制 DVTR LVLTIM=x 果LVLTIM=3,则同时使用DVDT时间步长算法和截断误差控制时间步长的算法。 如果使用GEAR的数值积分和线性化的方法,则选择LVLTIM =2;如果使用TRAP的线性化的算法,则选择LVLTIM =1或3。选择LVLTIM =1(DVDT选项)可以避免出现“internal timestep too small”的不收敛的问题。局部截断算法(LVLTIM =2)将保证提供更高的精确度和防止从一个时间点到另一个时间点的传递错误,在不稳定的情况下会得到从前的结果,默认值=1。 MAXORD=x 如果采用GEAR的变阶方法,设置积分法的最大阶数,其值必须为1或2的二者之一。如果MAXORD=1,使用向后欧拉积分算法;如果MAXORD=2,将更稳定,精确和实用,默认值=2。 METHOD=name 设置程序在瞬态分析中所用的数值积分的方法,可为GEAR法或TRAP法(梯形法)。使用GEAR法,设置METHOD=GEAR,并自动设置LVLTIM=2(在选项为METHOD=GEAR时可以将LVLTIM=2改变设置为LVLTIM=1或3,它将替换METHOD=GEAR的默认设置LVLTIM=2)。 TRAP(梯形)积分法一般会减少程序运行的时间和提高精确度。梯形积分法在需打印或绘图的节点不具备引起振荡的电路特性的时候会使其进入明显的振荡。用这种方法进行瞬态分析测试,只需要小的时间步长。如果振荡消失,它是由于梯形法。 GEAR法是作为一个滤波器,将清除在梯形法中建立的振荡。对高度非线性电路(如运算放大器)用GEAR法会需要非常长的运行时间。通常电路在梯形积分法时不能收敛而在GEAR法时能收敛,默认值=TRAP。 MU=x,XMU=x 用于梯形积分法的系数,其范围为0.0~0.5之间,默认值=0.5。 输入,输出控制 INTERP 用于事后分析工具程序的输出极限,例如Cadence或Zuken,只针对.TRAN的时间步长间隔。默认的,HS PICE会输出全部收敛迭代。INTERP选项通常产生一个非常小的.tr#文件。 打印输出在时间点间隔上的变量值,使用该选项会产生一个长的输出列表文件。 显示在AC分析中打开格式的相位结果(和一个连续的相位图)。它允许精确计算群延迟,群延迟记录总是基于打开格式的相位结果的计算,即使UNWRAP选项没有设置。 ITRPRT UNWRAP 4. 端点电压预置语句和初始条件设置语句:

⑴.端点电压预置语句:.NODESET V(node1)=val1 [V(node2)=val2 ?]

或.NODESET node1 val1 [node2 val2 ?]

node1?为节点数或节点名,可以包括全部路径名或电路数。 val1?为指定的电压值。

端点电压预置语句是在DC工作点分析时指定节点电压,帮助电路实现直流收敛。

在进行DC分析时,首先将语句中指定的节点电压置成所给数值,并进行迭代直至收敛。然后取消预置电压的限制继续迭代直至收敛。因此该语句并不影响DC工作点的迭代终值。

⑵. 初始条件设置语句:.IC V(node1)=val1 [V(node2)=val2 ?] 或.DCVOLT V(node1)=val1 [V(node2)=val2 ?] node1?为节点数或节点名,可以包括全部路径名或电路数。

val1?为指定电压,其要依靠在.TRAN语句中指定UIC参数才能起作用。 初始条件设置语句要与瞬态分析语句配合使用,其作用如下: 若瞬态分析语句中有UIC项,程序将直接使用.IC语句或.DCVOLT语句及组件语句

中“IC=” 项所给的初始条件,程序将不计算初始条件;

若瞬态分析语句中没有UIC项,程序仍将进行直流分析计算初始条件,但.IC语

句或.DCVOLT语句可以指定部分节点电压,即由用户给定部分初始条件。 5. 电路参数修改语句:.ALTER [title_string]

title_string是任何不超过72个字符的字符串。 .ALTER语句允许用户修改器件或电路参数,然后HSPICE程序用新参数对电路进行重新分析。重新分析的次数不限,每次分析的修改参数均可由用户指定。对于每个.ALTER语句,HSPICE程序都将对电路重新分析一次,并给出分析的结果。该语句特别适用于用户观察器件参数或电路参数对电路特性的影响。在.ALTER模块中不能有.PRINT,.PLOT,.GRAPH或其它I/O语句。 6. 资料分析修改语句包括下列三种类型:

⑴.内联.DATA语句:.DATA datanm pnam1 [pnam2 pnam3 ? pnamxx]

+pval1 [pval2 pval3 ? pvalxx] +pval1’[pval2’pval3’? pvalxx’]

.ENDDATA

datanm为资料名,相当于.TRAN,.DC或.AC语句;

pnami为参数名,常用于电源值,组件值,器件大小,模型参数值和其它。这些参

数名必须在.PARAM语句中说明;

pvali为参数值。

⑵.串联.DATA文件语句:.DATA datanm MER

FELE=‘file1’ p1=x p2=x p3=x p4=x p1=x .ENDDATA 其中,file1,file2,file3和fileout是连接到输出文件fileout中,文件file1

中的资料是在文件中的第一个记录,紧随其后的是file2,file3和fileout中的资料。字段datanm在.DATA语句中说明,并服从于任何.DC,.AC或.TRAN分析语句。

⑶.列层状.DATA文件语句:.DATA datanm LAM

FELE=‘file1’ p1=1 p2=2 p3=3

p4=1 p5=2 p6=1 .ENDDATA

资料分析修改语句允许用户修改任何参数,并用新参数执行操作点,DC,AC或瞬态分析。一个参数值数组可以是内联的(在仿真输入文件内)或存储在外部ASCII文件中。数据分析修改语句数组包括一个参数名列表和其对应的值。 7. 保护语句和无保护语句: ⑴.保护语句:.PROTECT

使用保护语句.PROTECT来保留模型和专用的CELL库。用.PROTECT语句可以禁止将正文打印输出到列表文件,就象选项BRIEF,用.UNPROTECT语句命令其恢复常用输出功能。另外,一些组件和模型在.PROTECT语句和.UNPROTECT语句之间时,将抑制这些组件和模型的列表输出,就象选项LIST。一些节点包含在.PROTECT语句和.UNPROTECT语句中时,它们将不记录在.OPTIONS NODE语句所提及的节点列表中,也不记录在.OP语句的工作点打印输出中。 ⑵.无保护语句:.UNPROTECT

使用无保护语句.UNPROTECT从.PROTECT语句状态恢复到常用输出功能。一些组件和模型在.PROTECT语句和.UNPROTECT语句之间时,将抑制这些组件和模型的列表输出,就象选项LIST。一些节点包含在.PROTECT语句和.UNPROTECT语句中时,它们将不记录在.OPTIONS NODE语句所提及的节点列表中,也不记录在.OP语句的工作点打印输出中。 8. 宽度语句和结束语句:

⑴.宽度语句:.WIDTH IN=colin OUT=colout

colin为输入宽度,定义了输入源程序每行的宽度,即字符数; colout为输出打印宽度,定义了输出打印结果的每行字符数。 宽度语句定义了输入宽度和输出打印宽度,用户要注意输入的每行字符(包括空格)都不要超出该宽度,输入宽度取值范围为10~120,默认值为80;输出打印宽度取值范围为20~132,默认值为80。 ⑵.结束语句: .END

输入源程序的最后一行必须为结束语句 .END语句。