《集成电路Spice,Spectre仿真总结》由会员分享,可在线阅读,更多相关《集成电路Spice,Spectre仿真总结(6页珍藏版)》请在金锄头文库上搜索。
1、集成电路_Spice,Spectre 仿真总结 Designers-Guide to Spice and Spectre 1995 USA Designers- Guide to Spice and Spectre Ken Kundert 11.1 绪论 1. 为什么要读这本书 该书是介于算法和教你如何操作软件之间的一本书可以帮助你更好的使用 Simulator 的设置。 Simulator 仿出的结果可靠不精确不是否收敛应该如何处 理如何设置 读完这本书你应该会 1 Simulator 如何计算结果 2 Simulator 会 产生何种错误如何识别 3 如何提高仿真精度 4 如何克服不收敛的
2、情况 5 对于一 些特殊电路会产生什么错误如何识别 6 明白仿真器里设置 convergenceerror control 的一些重要参数 7 能知道仿真器的错误信息出在什么 地方如何解决 2. 电路仿真软件的发展历史 直接方法求出电路的微分方程组 用数值积分方法差分化然后用牛顿迭代法求解非线性代数方程组。是最准确 可靠最通用的方法 Explicit integration methods 方法问题很多 relaxiton methods 方法问题很多3. Spice Options Global Options: Abstol 控制电流默认为 1pA Vntol 控制电压默认为 1uV Re
3、ltol 相对误差对于牛顿收敛准则和截断误差准则同时起作用默 认 10-3 对于重要电路这个应该设置小一些比如说 10-5 或者 10-6Gmin 防止非 线性器件关断后的浮空节点默认为 10-12 -1LimptsPivrelPivtol 无用处 DC Analysis Options: ltl1DC 工作点最大牛顿迭代次数默认100 ltl2DC Sweep 最大牛顿迭代次数默认 50 ltl6Source Stepping 的最大步长 数 增加以上 3 个值可以增加 DC 牛顿迭代收敛但是会降低速度。 Transient Analysis Options: 1Designers-Guid
4、e to Spice and Spectre 1995 USA maxnnprednQtQtTrtolreltolQChgtollt Chgtol 控制 LTE 见上面式子 ltl3 瞬态过程最小牛顿迭代次数默认为 4 ltl4瞬态过程最大牛顿迭代次数默认为 10 ltl5 整个瞬态过程总的牛顿迭代次数的最 大值默认为 5000 lvltim 设置时间步长控制算法。lvltim1 不使用 LTE 控制步长 lvltim2 使用 LTE 控制步长。默认为 2 MaxordGear 的阶数默认 2 最高 6。建议 不要使用高阶 Gear 方法。 Method 可选择 Trapezoidal 和 G
5、ear Tmax 默认 TmaxTstopTstart/50 同时 Tmax 不超过最短传输线的延迟时间。 这个参数一 般应该设小一些具体如何设置看本文的傅利叶分析一章。 Tstep 对傅利叶分析 有影响。对结果波形有影响。 Trtol 默认为 7 不允许变小只能不变或者变大。见 本文瞬态分析一章。 UicUic0spice 默认相当于 skipdcnospectre 默认仿真器计 算 DC 工作点当有接地电感时这个会导致电感中大电流和瞬态初始的大电压。Uic1 相当于 skipdcyes 不计算工作点按照规定设置工作点。这个的一般问题是 会导致初始不连续。 增加 ltl4 可以帮助瞬态牛顿迭
6、代过程的收敛。4. Spectre Options Global Options: Approx 允许 Cadence 对器件的模型公式做小的近似可以加快仿真速度 Diagnose 可以帮助诊断电路默认是关闭的。 因此可以显示仿真过程中的一些不寻常的事件帮助收敛。推荐打开。 Gmin 防 止非线性器件关断后的浮空节点默认为 10-12 -1Homotopy 使用连续性方法计算 DC 工作点或者瞬态仿真的初始值。可以选择 nonegminsourceptrandptranall。默认值是 all 也就是使用任何可以选择的方法 实现收敛。一般 all 是最好的所以这个选项不要动。iabstolva
7、bstol 控制电压和 电流和 spice 一样。 Reltol 通用误差控制非常的常用和重要。 limit 帮助牛顿迭 代收敛的辅助算法。可选择 devdeltalog。默认是 dev 即指定限制的是 device。这个一般不要动。 Macromodels 默认是 no。当仿真宏模型时选择 yes 可以帮助收敛可以容忍宏模型仿真中出现的一些不连续和怪异的事情。Opptcheck 检查电路中每个器件的一些参数和电压电流是否超过允许范围会报 warning。 2 Designers-Guide to Spice and Spectre 1995 USA Pivabs 控制 Jacobian 距阵
8、的一个量。默认值为 0。 Pivotdc 控制 Jacobian 距阵的一个量默 认是 disable。 Pivrel 控制 Jacobian 距阵的一个量默认是 10-3。 rforce 用在 nodesetsnodeforcesinitial conditions 时候。如果 rforce 的出现引起初始偏置不 准确那么可以减小 rforce。 注在 nodesetsnodeforcesinitial conditions 情况下 都要使用 rforce 进行偏置。 DC Analysis Options: Check 检查器件的工作参 数是否超出 soft limits 的范围和 opp
9、tcheck 基本相同的作用 spectre 中的一个新 概念类似与 tran 中的 initial conditon 强制限定节点电压或者支路电流。目的是 给出一个独立的解因此该解一般是不平衡的。有 4 个选项 nonenodedevall 默 认是 none 也就是不强制限定任何节点电压和支路电流电路的工作点完全由求 解方程得到。 forcenone 不强制限定任何节点电压和支路电流。 forcenode 采 用 Initial conditon 中设置的值强制限定节点电压和支路电流。 forcedev 采用 device 中设置的值强制限定节点电压和支路电流。比如说电容初始电压和电感 初
10、始电流。 forceall 同时采用 Initial conditon 中和 device 中设置的值强制限定 节点电压和支路电流。 force 这里会有一个问题当选择 forceall 的时候 Initial conditon 中和 device 中设置的值会不会冲突比如说电容电压和节点电压。实验结果是 spectre 会报 warning 说两个值不一致然后忽略掉 Initial conditon 而采用 device 中设置的值。 homotopy DC 中的 homotopy 会覆盖 Global 中的 homotopy 但作用是一样的。 Maxiters DC 分析中牛顿迭代的最大次
11、数默认 150 一般不需要改。 Maxsteps DC 分析中当采用 homotopy 时最大步长数默认 10000 不需要修改。 Readforce 采用文件的形式定义 nodeforce。可以手动定 义也可以采用 spectre 仿真出的文件。 Readns 采用文件的形式定义 nodesets。可以手动定义也可以采用 spectre 仿真出的文件。 Restart 默认值 是 restartyes 但当需要进行一系列仿真比如说 acdctran 等的时候 restartno 会 有用处。一般不要动这个选项。不管是设置 restartyes 还是 nospectre 都照样 计算初始的工作
12、点唯一不同的是牛顿迭代的初始 3Designers- Guide to Spice and Spectre 1995 USA 起点不一样罢了。 注 restart 和 prevoppointacxfspstbzp 等 skipdctran 是不一样的。ac 仿真中的 prevoppointyes 表示强制不进行初始 dc 工作点计算直接采用前面某个仿真的最 后结果作为 ac 的初始工作点。tran 仿真中的 skipdcyes 表示强制不进行初始 dc 工作点计算直接采用给定的 initial condition 作为初始工作点没有给定 initial condition 的认为是 0。而 r
13、estartyesno 只是影响牛顿迭代的初始起点的 取法 spectre 还是照样计算初始的 dc 工作点。 write dc 分析牛顿迭代的初始点 存储 initial guess writefinal dc 分析牛顿迭代的最终值存储 final value 注 DC 分 析的 write 和 write final 的文件 spectre.dicspectre.dfc 可以作为 readnsreadforcereadic 使用。 Transient Analysis Options Cmin 指定每个节点的最小电容默认值为 0。但当出现收敛问题时候可以把 Cmin 设为 1fF 左右帮
14、助收敛。 Errpreset 可以选择 conservativemoderateliberal。详细说明见后面。和 dc 中的 force 功能相似用于 tran 中。有 4 个选项 dcnodedevall 默认是 all 这个和 dc 中的 force 默认是 none 是不一样的。 Icdc 求解 dc 的值作为 Ic 也就 是不采用用户设置的初始值 Icnode 采用 Initial conditon 中设置的值作为初始值Icdev 采用 device 中设置的值作为初始值。比如说电容初始电压和电感初始电 流。 Icall 同时采用 Initial conditon 中和 device
15、 中设置的值作为初始值。 Ic 这 里会有一个问题当选择 Icall 也就是默认状态的时候 Initial conditon 中和 device 中设置的值会不会冲突比如说电容电压和节点电压。 实验结果是 spectre 会报 warning 说两个值不一致然后忽略掉 Initial conditon 而采用 device 中设置的值。 这个和 dc 中的 forceall 是一样的 Iteratio 和 spice 中的 Trtol 功能一样控制 LTE 默认值取决于 errpreset。具体用法见后面。 Maxiters 瞬态分析牛顿迭代的最大 次数。对于一些连续性较差的电路比如说含有宏模
16、型增加 Maxiters 可以增加收 敛性。默认值为 5 推荐值为 50。 Maxstep 指定最大步长。一般来说要得到较 好的精度首先得减小 reltol 然后指定 maxstep。但是当具有谷底效应的时候比 如说 osc 的起振过程 reltol 不能有效的控制步长此时步长完全由 maxstep 决定 才能得到较好的结果。 4 Designers- Guide to Spice and Spectre 1995 USA Method 数值积分方法 eulertraptraponlygear2gear2onlytrapgear2 Readic 类似于 dc 分析中的 readforce。采用文件的形式定义 ic。可以手动定义也可以采用 spectre 仿真出 的文件。 Readns 类似于 dc 分析中的 readns。采用文件的形式定义 nodesets。可以手动定义也可以采用 spectre 仿真出的文件。 Relref 默认值由 errpreset 决定。从强到弱排为 pointlocalalllocalsigg