Hspice应用讲解 下载本文

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

则电路在那时间点上是有解的,在下一个时间点的解是可以通过计算得到的。对低功耗电路,最佳化和小信号瞬态仿真,设置ABSMOS=1E-12,默认值=1E-6(A)。 ABSTOL=x ABSVDC=x 设置程序在进行DC和瞬态分析时的绝对电流误差容限,如果精确度比收敛时间更重要的时候,将减小ABSTOL的值,默认值=1.0E-12。 设置程序在进行DC和瞬态分析时的绝对最小电压。如果精确度比收敛时间更重要的时候,将减小ABSVDC的值。如果电压要求比50μV还要小时,ABSVDC会减小到比最小电压要求还要小两位的量纲,以确保至少有两个有效位。通常ABSVDC不需要改变,除非该电路是高压电路。对于1000V的电路,一个适当的值会在5~50mV之间,默认值=VNTOL(VNTOL的默认值=50μV)。 设置通过电压定义旁路的最大迭代到迭代电流的变化(电压源和电感),此选项只适用于当DI控制选项的值比0更大的时候,默认值=0.0。 启动KCL(Kirchhoff’s Current Law)的测试功能,这样将导致较长的仿真时间,尤其是对于较大的电路,但是它提供了一种十分准确的检测方法,默认值=0。 当KCLTEST=1时,HSPICE将随着修改以下选项:RELMOS和ABSMOS选项设置为0,ABSI设置为1E-16A,RELI设置为1E-6。 要满足KCL测试,必须要求每个节点都满足:DI=x KCLTEST ?iMAXAMP=x RELH=x b?RELI??ib?ABSI,其中ib是节点电流。 设置通过电压定义旁路的最大电流(电压源和电感),如果电流超过MAXAMP的值,将产生一个错误说明,默认值=0.0。 设置通过电压定义旁路的相对电流的误差容限(电压源和电感),用于检查电流是否收敛。此选项只适用于当ABSH控制选项的值比0更大的时候,默认值=0.05。 设置相对电流误差/允许误差的变化的百分比,通过迭代法确定在二极管,BJTs和JFETs器件的全部电流是否收敛(RELMOS用于设置MOSFETs器件)。这电流变化的百分比是由前一个时间点的值计算得出的。当KCLTEST=0时,默认值=1(%);当KCLTEST=1时,默认值=1E-6(%)。 设置相对Drain-Source电流误差/允许误差的变化的百分比,通过迭代法确定在MOSFETs器件的电流是否收敛(RELI用于设置其它的器件)。这电流变化的百分比是由前一个时间点的值计算得出的。RELMOS选项只适用于当电流比最低标准值(ABSMOS)更大的时候,默认值=5(%)。 设置相对电压误差容限,当电压或电流值超过它们的绝对允许误差,用RELV来测试确定其是否收敛,递增的RELV将增加其相对误差。通常的,RELV将远离它的默认值。RELV控制仿真时的电荷守恒。对于电压,RELV与RELTOL相同,默认值=1E-3。 设置相对电压误差容限,当电压或电流值超过它们的绝对允许误差,用RELVDC来测试确定其是否收敛,递增的RELVDC将增加其相对误差。通常的,RELVDC将远离它的默认值。RELVDC控制仿真时的电荷守恒。默认值=RELTOL(RELTOL的默认值=1E-3)。 设置最大直流迭代极限,递增此值不一定能改善小电路的收敛。对某些RELI=x RELMOS=x RELV=x RELVDC=x 矩阵,真值表控制 ITL1=x 大型电路和反馈电路,其值将高达400并使其收敛,例如对运算放大器和感测放大器等电路。如果收敛时要求迭代次数比100次更多时,通常其模型是错误的。设置.OPTIONS ACCT获得工作点的迭代结果的列表信息,默认值=200。 ITL2=x NOPIV PIVOT=x,SPARSE=x 设置直流转移曲线迭代极限,默认值=50.0。 防止HSPICE在节点的电导系数比PIVTOL值小时而自动选主元矩阵进行因式分解。NOPIV禁止选主元,并且与PIVOT有关。 规定了不同的主元算法选择,它们可以有效的减少仿真时间和在电路提出Hard-to-Solve矩阵方程时达到收敛。主元算法的选择是通过设置PIVOT的值而改变的,默认值=10: 0 原始的无主元法; 1 原始的主元算法; 2 挑选最大的行主元算法; 3 挑选最好的行算法; 10 快速的无主元算法,需要更多的内存; 11 快速的主元算法,比PIVOT取小于11的值时需要更多的内存; 12 挑选最大的行主元算法,比PIVOT取小于12的值时需要更多的内存; 13 快速最好的主元:较快,比PIVOT取小于13的值时需要更多的内存; 最快的算法是PIVOT=13时,它对非常大的电路,能提高仿真时间直到十倍时间。可是,PIVOT=13选项在仿真时需要更多的内存。一些有大的电导率的电路,例如开关电源电路,可能需要选择主元。如果PIVOT=0,HSPICE在检测到对角线矩阵项数比PIVTOL值少时,将自动从无主元转换为行主元策略,它规定了时间和内存,有利于无主元转换,避免出现不稳定的仿真和错误的结果。用.OPTIONS NOPIV来防止依据一些情况选主元。对非常大的电路,PIVOT=10,11,12或13时会需要额外的内存。如果HSPICE在仿真时转换为选主元,将打印输出信息“pivot change on the fly”,接着因节点数而引起问题。用.OPTIONS NODE来获得其节点-组件相交坐标。SPARSE与PIVOT相同。 设置主元坐标,用于PIVOT=11,12,13时矩阵大小的界限,默认值=1E+8。 设置最大矩阵项和允许的最小主元值之间的相对比率,只用于PIVOT=1时。PIVREL较大的值会导致非常长的主元矩阵时间;如果值太小,则不能出现主元。PIVREL最好从较小的值开始,用一个适当的但不超过太多的值以利于收敛和精确度。默认值=1.0E-20(max=1.0E-20,min=1)。 设置允许被接受为主元的矩阵项的绝对最小值,用于当PIVOT=0时矩阵的最小电导系数,默认值=1.0E-15。其中,PIVTOL 总是小于GMIN或GMINDC,值近似为1时将增加主元。 打印每个工作点上二极管,BJTs, JFETs,MOSFETs的结电容和无源电容的列表。 设置输出列表中要打印的电压下限。所有比VFLOOR低的电压都被打印输出为0,它只影响输出列表:仿真时所用的最小电压由VNTOL(ABSV)来设置。 PIVREF PIVREL=x PIVTOL=x 输入,输出控制 CAPTAB VFLOOR=x 集中, 收敛控制 CONVERGEN 调用不同的程序用于解决不收敛的问题: CONVERGEN=-1 和DCON=-1一起,禁止自动收敛; CONVERGEN=1 使用Damped Pseudo Transient Algorithm(阻尼伪瞬态算法)。如果内部收敛时间等于CPTIME控制选项设定的CPU时间,仿真失败,仿真中断; CONVERGEN=2 使用DCSTEP和GMINDC的结合斜率; CONVERGEN=3 调用信号源步进式改变程序; 即使在.OPTIONS语句中没有设置,CONVERGEN选项也在有浮点溢出矩阵 结果或步长时间太小的错误时有效,默认值=0。 在有浮点溢出矩阵结果时,HSPICE设置CONVERGEN=1。 与CSHUNT选项相同,但其只用于CONVERGEN选项。 在结合DCHOLD选项和.NODESET语句后用于在仿真中提高其DC收敛特性。DCFOR设置迭代数用于在稳定状态下电路收敛后的计算。迭代数在收敛后通常为零,DCFOR增加迭代(和计算时间)用于DC电路的分解计算。DCFOR帮助确保电路是真实的,没有错误的,收敛的,默认值=0。 DCFOR和DCHOLD是共同用于DC分析的初始化过程,在DC仿真中提高其收敛特性。DCFOR和DCHOLD与.NODESET语句共同工作。DCHOLD选项用于指定当.NODESET语句指定节点的电压值时的迭代数。DCHOLD根据DCHOLD值和迭代数需要获得的DC收敛会有不同的收敛结果。如果在稳定状态下电路收敛,DCHOLD迭代较少,DC解决方案包括.NODESET语句设置的值。同样的,如果电路在收敛时需要更多的DCHOLD迭代,由.NODESET语句设置的值是和DC解决方案计算得出的.NODESET开路固定源极电压无关,默认值=1。 在处理收敛问题时,HSPICE会自动设置DCON=1和采用下列公式计算: 当DV=1000时,DV?max(0.1,CSHDC DCFOR=x DCHOLD=x DCON=x Vmax), 50Imax)), GMINDCGRAMP?max(6,log10(ITL1?ITL1?20?GRAMP; 这里Vmax是最大电压和Imax是最大电流。 如果收敛问题仍然存在,HSPICE设置DCON=2,除了DV=1E6以外,其余同上。上述计算用于DCON=1或2时。如果电路收敛失败将自动调用DCON=1,如果DCON=1失败将调用DCON=2。 如果电路包括未初始化的触发器或不连续的模型,仿真可能不能收敛。设置DCON=-1和CONVERGE=-1禁止自动收敛算法和提供未能收敛的节点和器件的列表。 DCSTEP=x DV=x 用于转换DC模型和电容组件的电导系数去提高其DC收敛特性。电容组件的值全部是用DCSTEP去除获得的DC收敛模型,默认值=0(秒)。 在DC和瞬态分析时全部电路节点的最大迭代电压的改变。对一些高增益双极型运算放大器要达到一个稳定的DC工作点,其值必需在0.5~5.0之间,而对于大型CMOS数字电路经常需要大约1V的电压,默认值=1000(如果DCON=2,则默认值=1E6)。 GMAX=x GMINDC=x 和电流源并联的电导被用来作为.IC和.NODESET的电路初始化条件。一些较大的双极型电路为了收敛会需要GMAX设置为1,默认值=100(mho)。 在DC分析中在所有PN结和MOSFET的节点并联一个电导。GMINDC将帮助克服由于PN结和MOSFET器件的电导太小而引起的DC收敛的问题。GRAMP通常会减小GMINDC的每个步骤的一个数量级。GMINDC将设置在1E-4和PIVTOL设定值之间,默认值=1E-12。 较大的GMINDC值会引起不合理的电路响应。如果较大的值是收敛所必需的,则可能有一个错误的模型或电路是令人怀疑的。在大型矩阵计算时浮点溢出,如果GMINDC=1E-12或更小,HSPICE会设置GMINDC=1E-11。GMINDC是用于处理HSPICE的自动收敛模式。 其值用于HSPICE在执行自动收敛程序时,是用于结合GMINDC控制选项来查找GMINDC在DC分析结果的最小值。 GRAMP用于指定包括GMINDC在进行DC工作点分析时的收敛,HSPICE将代入GMINDC范围内的每个值进行仿真,而电路在稳定状态下收敛时,它将挑选最小的值。 如果GMINDC在1E-12mhos(默认值)和1E-6 mhos之间,GRAMP设置为6(此指数值为默认值和最大电导系数之间的差)。在电路仿真中,GMINDC首先取1E-6 mhos进行仿真;如达到收敛,GMINDC则转到1E-7 mhos继续仿真。仿真将进行到扫描完成在GRAMP斜率上所有的值。如果结合GMINDC和GRAMP的电导值比1E-3 mhos大,会出现伪收敛,默认值=0。 为每个节点添加一个到地的电导。为每个节点添加一个小的电导也许会解决在高频振荡或数字噪声分析时出现的“Time step too small”的问题,默认值=0。 对参数或温度进行扫描,储存由启始点开始逐步进行的,由上一步的结果计算得出的电流分析的结果。当ICSWEEP=1时,电流结果由上一步分析结果计算得出;当ICSWEEP=0时,电流结果不由上一步分析结果得出,默认值=1。 对每个DC解决方案和时间点电路解决方案选择一个更易收敛的迭代值。当NEWTOL没有设置时,一旦收敛确定,就将结束收敛程序而开始执行下一步的程序,默认值=0。 如果没有初始化而有其它的值,则初始化所有有源器件的端点电压为零。例如晶体管的源极和漏极没有用.NODESET或.IC语句进行初始化或连接到电源上,OFF选项将初始化晶体管的所有端点电压为零。OFF选项将先检查组件IC参数,如果一个组件IC参数中有一个单独端点有赋值存在,则该端点恰好是组件IC参数在先前OFF选项设置为零的初始化值(对个别有源器件的组件参数OFF会初始化其端点电压为零)。OFF选项是用于帮助发现较大电路的确切的DC工作点。 指定所有电阻器的最小电阻值,包括寄生和感应电阻,默认值=1E-5(欧姆),范围为1E-15~10欧姆。 设置电容标准,电容量是随CSCAL比例增加的,默认值=1E+12。 设置最大极点/零(原)点频率值极限,默认值=1E+12·FSCAL。 设置频率标准,频率值是随FSCAL比例增加的,默认值=1E-9。 GRAMP=x GSHUNT ICSWEEP NEWTOL OFF RESMIN=x 极点/零(原)点控制 CSCAL FMAX FSCAL GSCAL LSCAL 设置电导标准,电导量是随GSCAL比例增加的,电阻量是除以GSCAL,默认值=1E+3。 设置电感标准,电感量是随LSCAL比例增加的,默认值=1E+6,这个比例因子必须满足下列关系式: GSCAL?CSCAL?FSCAL,GSCAL?1?FSCAL; LSCAL如果比例因子改变,它对初始Muller点(X0R,X0I),(X1R,X1I)和(X2R,X2I)的改变来说是必需的,即使HSPICE随初始值比例增加(1E-9/GSCAL)。 PZABS 设置极点/零(原)点的绝对误差,该选项将影响低频极点/零(原)点。它符合下式:如(Xreal?Ximag?PZABS,则Xreal?0和Ximag?0,它总是用于收敛测试,默认值=1E-2。 PZTOL RITOL 设置极点/零(原)点的相对误差容限,默认值=1E-6。 设置极点/零(原)点的(实部/虚部)或(虚部/实部)部分的最小比值,它总是符合下式:如Ximag?RITOL?Xreal,则Ximag?0;如Xreal?RITOL?Ximag,则Xreal?0。默认值=1E-6。 XnR,XnI 在Muller极点/零(原)点分析算法中的复合启始点(其中n=0,1,2)符合下述值:X0R=-1.23456E6,X0I=0.0; X1R=-1.23456E5,X1I=0.0; X2R=+0.23456E6,X2I=0.0; 这些初始点是随FSCAL比例增加。 瞬态和AC小信号分析控制 精度控制 ABSV=x,VNTOL=x 设置程序的DC和瞬态分析的绝对最小电压,如果精确度比收敛的关系更大,将减小ABSV值。如果需要50mV更小的电压,ABSV会减小到比希望得到的最小电压还小两个数量级,以确保至少两个有效位。通常,ABSV在高压电路中并不需要改变,除非其为高压电路。对于1000V的电路,合理的值为5~50mV。VNTOL与ABSV相同,默认值=50(mV)。 对于高增益运放电路选择一种时间算法使LVLTIM=3和DVDT=2。当电路是高增益大动态范围电路时,使用该选项将保证其精确度。当ACCURATE设置为1时,它将随着设置下列控制选项:LVLTIM=3 DVDT=2 RELVAR=0.2 ABSVAR=0.2 FT=0.2 RELMOS=0.01; 默认值=0。 在LVLTIM=2时设置程序的电荷容差。CHGTOL总是随着RELQ一起设置HSPICE中全部电容的绝对和相对电荷容差,默认值=1.0E-15(库仑)。 在每个节点到地之间增加一个电容。在每个节点加一个小电容也许会解决在高频振荡或数字噪声分析时出现的“Time step too small”的问题,默认值=0。 设置在瞬态分析时间扫描内程序允许的最小跨导,默认值=1.0E-12。 用于设置时间步长算法的局部截断误差时间步长算法(LVLTIM=2),RELQACCURATE CHGTOL=x CSHUNT GMIN=x