集成电路_Spice,Spectre仿真总结

集成电路_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 如何克服不收敛的情况 5 对于一些特殊电路会产生什么错误如何识别 6 明白仿真器里设置convergenceerror control的一些重要参数 7 能知道仿真器的错误信息出在什么地方如何解决 2. 电路仿真软件的发展历史  直接方法求出电路的微分方程组用数值积分方法差分化然后用牛顿迭代法求解非线性代数方程组。是最准确可靠最通用的方法  Explicit integration methods 方法问题很多  relaxiton methods 方法问题很多 3. Spice Options  Global Options: Abstol控制电流默认为1pA Vntol控制电压默认为1uV Reltol相对误差对于牛顿收敛准则和截断误差准则同时起作用默认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-Guide to Spice and Spectre 1995 USA maxnnprednQtQtTrtolreltolQChgtolα−lt⋅⋅⋅ Chgtol控制LTE见上面式子 ltl3瞬态过程最小牛顿迭代次数默认为4 ltl4瞬态过程最大牛顿迭代次数默认为10 ltl5整个瞬态过程总的牛顿迭代次数的最大值默认为5000 lvltim设置时间步长控制算法。lvltim1不使用LTE控制步长lvltim2使用LTE控制步长。默认为2 MaxordGear的阶数默认2最高6。建议不要使用高阶Gear方法。 Method可选择TrapezoidalGear Tmax默认TmaxTstop−Tstart/50同时Tmax不超过最短传输线的延迟时间。 这个参数一般应该设小一些具体如何设置看本文的傅利叶分析一章。 Tstep对傅利叶分析有影响。对结果波形有影响。 Trtol默认为7不允许变小只能不变或者变大。见本文瞬态分析一章。 UicUic0spice默认相当于skipdcnospectre默认仿真器计算DC工作点当有接地电感时这个会导致电感中大电流和瞬态初始的大电压。 Uic1相当于skipdcyes不计算工作点按照规定设置工作点。这个的一般问题是会导致初始不连续。 增加ltl4可以帮助瞬态牛顿迭代过程的收敛。 4. Spectre Options  Global Options: Approx 允许Cadence对器件的模型公式做小
的近似可以加快仿真速度 Diagnose 可以帮助诊断电路默认是关闭的。因此可以显示仿真过程中的一些不寻常的事件帮助收敛。推荐打开。 Gmin 防止非线性器件关断后的浮空节点默认为10-12 Ω-1Homotopy 使用连续性方法计算DC工作点或者瞬态仿真的初始值。可以选择nonegminsourceptrandptranall。默认值是all也就是使用任何可以选择的方法实现收敛。一般all是最好的所以这个选项不要动。iabstolvabstol 控制电压和电流和spice一样。 Reltol 通用误差控制非常的常用和重要。 limit 帮助牛顿迭代收敛的辅助算法。可选择devdeltalog。默认是dev即指定限制的是device。这个一般不要动。 Macromodels 默认是no。当仿真宏模型时选择yes可以帮助收敛可以容忍宏模型仿真中出现的一些不连续和怪异的事情。 Opptcheck 检查电路中每个器件的一些参数和电压电流是否超过允许范围会报warning 2 Designers-Guide to Spice and Spectre 1995 USA Pivabs 控制Jacobian距阵的一个量。默认值为0 Pivotdc 控制Jacobian距阵的一个量默认是disable Pivrel 控制Jacobian距阵的一个量默认是10-3 rforce 用在nodesetsnodeforcesinitial conditions时候。如果rforce的出现引起初始偏置不准确那么可以减小rforce 注在nodesetsnodeforcesinitial conditions情况下都要使用rforce进行偏置。  DC Analysis Options: Check 检查器件的工作参数是否超出soft limits的范围和oppt
check基本相同的作用 spectre中的一个新概念类似与tran中的initial conditon强制限定节点电压或者支路电流。目的是给出一个独立的解因此该解一般是不平衡的。有4个选项nonenodedevall默认是none也就是不强制限定任何节点电压和支路电流电路的工作点完全由求解方程得到。 forcenone 不强制限定任何节点电压和支路电流。 forcenode 采用Initial conditon中设置的值强制限定节点电压和支路电流。 forcedev 采用device中设置的值强制限定节点电压和支路电流。比如说电容初始电压和电感初始电流。 forceall 同时采用Initial conditon中和device中设置的值强制限定节点电压和支路电流。 force 这里会有一个问题当选择forceall的时候Initial conditon中和device中设置的值会不会冲突比如说电容电压和节点电压。 实验结果是spectre会报warning说两个值不一致然后忽略掉Initial conditon而采用device中设置的值。 homotopy DC中的homotopy会覆盖Global中的homotopy但作用是一样的。 Maxiters DC分析中牛顿迭代的最大次数默认150一般不需要改。 Maxsteps DC分析中当采用homotopy时最大步长数默认10000不需要修改。 Readforce 采用文件的形式定义nodeforce。可以手动定义也可以采用spectre仿真出的文件。 Readns 采用文件的形式定义nodesets。可以手动定义也可以采用spectre仿真出的文件。 Restart 默认值是restartyes但当需要进行一系列仿真比如说acdctran等的时候res
tartno会有用处。一般不要动这个选项。不管是设置restartyes还是nospectre都照样计算初始的工作点唯一不同的是牛顿迭代的初始 3Designers-Guide to Spice and Spectre 1995 USA 起点不一样罢了。 restartprevoppointacxfspstbzpskipdctran是不一样的。ac仿真中的prevoppointyes表示强制不进行初始dc工作点计算直接采用前面某个仿真的最后结果作为ac的初始工作点。tran仿真中的skipdcyes表示强制不进行初始dc工作点计算直接采用给定的initial condition作为初始工作点没有给定initial condition的认为是0。而restartyesno只是影响牛顿迭代的初始起点的取法spectre还是照样计算初始的dc工作点。 write dc分析牛顿迭代的初始点存储initial guess writefinal dc分析牛顿迭代的最终值存储final value DC分析的writewrite final的文件spectre.dicspectre.dfc可以作为readnsreadforcereadic使用。  Transient Analysis Options Cmin 指定每个节点的最小电容默认值为0。但当出现收敛问题时候可以把Cmin设为1fF左右帮助收敛。 Errpreset 可以选择conservativemoderateliberal。详细说明见后面。 dc中的force功能相似用于tran中。有4个选项dcnodedevall默认是all这个和dc中的force默认是none是不一样的。 Icdc 求解dc的值作为Ic也就是不采用用户设置的初始值 Icnode 采用Initial conditon中设置的值作为初始
 Icdev 采用device中设置的值作为初始值。比如说电容初始电压和电感初始电流。 Icall 同时采用Initial conditon中和device中设置的值作为初始值。 Ic 这里会有一个问题当选择Icall也就是默认状态的时候Initial conditon中和device中设置的值会不会冲突比如说电容电压和节点电压。 实验结果是spectre会报warning说两个值不一致然后忽略掉Initial conditon而采用device中设置的值。这个和dc中的forceall是一样的Iteratio spice中的Trtol功能一样控制LTE默认值取决于errpreset。具体用法见后面。 Maxiters 瞬态分析牛顿迭代的最大次数。对于一些连续性较差的电路比如说含有宏模型增加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决定。从强到弱排为pointlocalalllocalsigglobalallglobalRest
art 默认是restartyesdc中的用法一样 Skipdc 默认是no。具体用法见后面。如果需要使用skipdc推荐用autodc Step 默认值由errpreset决定。主要用途是控制非状态变量信号的精度。 write tran分析初始工作点的存储这个和dcwrite是不一样的 writefinal tran分析完成后最终值存储final value 注瞬态分析的writewrite final的文件spectre.icspectre.fc可以作为readnsreadforcereadic使用。 5Designers-Guide to Spice and Spectre 1995 USA 1.2 DC分析 1. DC解的个数和特性  电路的DC解可能不止一个  仿真器没法自动判断解的稳定性因此得到的解可能是稳定的也可能是不稳定的 2. DC分析中收敛最重要其次是精度因为只要收敛一般精度够 3. 现代电路软件组织方程组的方法modern nodal analysis节点分析方法 4. 求解非线性方程的收敛准则  牛顿更新收敛准则update convergence criteria 1maxkknnnvvreltolvvabstol−−lt 这里1maxmaxkknnvvv−n  牛顿残余收敛准则residue convergence criteria maxknnfvreltolfiabstollt 一般reltol10-3 vabstol1uV iabstol1pA 这里两个准则都是必需的。如果节点阻抗低则小电压引起大电流因此残余收敛准则处理的是电流起作用如果节点阻抗高则小电流引起大电压因此更新收敛准则处理的是电压起作用。 5. 牛顿迭代收敛的3个条件这3个条件任何一条都可能不满足 ƒ
  连续可微V0充分接近于是惟一的 6. 大电路收敛更困难 7. 3大问题解不唯一不止一个解解不收敛不到解解不精确。后面逐一寻。  解不惟一NodesetNodeforceinitial condition被用在nodeforce中这里用 rforce。设置Gmin  解不收敛使用nodesets增加Gminiabstolvabstolreltol增加迭代次数Maxiters使用homotopy方法。  解不精确减小Gmin可以设为0减小reltoliabstolvabstol 8. 解不惟一  Jacobi matrix奇异没法迭代 由于器件模型或者电路参数造成的解不惟一spectre没办法查出来由于拓扑结构造成的可以查出来。 9. 解不惟一如何解决 NodesetNodeforceinitial condition被用在nodeforce  NodesetDCTransient都有作用Nodeforce仅对DC有作用  Nodeset仅作为收敛辅助用如果电路有惟一解它不影响该解的唯一性。而Nodeforce直接作为解在该节点的值因此直接破坏了解的惟一性。事实上 6 Designers-Guide to Spice and Spectre 1995 USA Nodeforce产生的解是非平衡的。Nodeset产生的是平衡的。 10. gmin的作用将非线性器件的端子上并联gmin的电阻使得解唯一让Jacobi距阵非奇异。对于浮空节点spectre自动将该节点连接电阻gmin到地。默认情况下gmin1e-12 Ω-1 rforce的作用对于nodeforcenodesetsinitial condition里面设置的电压用一个理想电压源串联rforce然后偏置到该节点。默认情况下rforce1 Ω 11. 当用牛顿方法求解失败不收敛
改用homotopy方法continuation方法求解 fvλλ0 ← 引入参数让参数从01变化 几种通用方法source stepping/gmin stepping/pseudo stepping/dptran sourcegmin的方法会受到不连续折回分叉的影响而dptran/ptran的方法虽然连续但是加入的电容有可能使电路振荡。 12. DC不收敛怎么办  解决方法diagnoseyes使用nodeset增加iabstolgmin可能会影响精度增加迭代次数maxiters改变rforcerestartyes是否有效果使用tran仿真来寻DC点请参考后面  一般来说当DC不收敛而且不收敛不是由于拓扑结构元件参数等原因引起的时候采用的方法是逐渐的DC扫描某些参数比如说sourcegminbf等等或者是采用瞬态分析扫描时间。也就是所谓的连续性方法。 13. 如何改善DC的精度  影响的原因2gmin和收敛准则 1 对于某些电路利用节点上存储的电荷工作节点希望它浮空比如说电荷存储器件不能容忍通过gmin损失的电荷这种情况下应该设置gmin0。不过这样可能导致Jacobi距阵奇异。 2 牛顿残余收敛准则针对的是KCL定律相当于节点电流有一点的误差不守恒。对于高阻抗节点即是小的电流误差会导致很大电压误差  解决方法减小reltol这是通用方法同时保持iabstolvabstol合理使用nodeset如果gmin影响则设置gmin0 14. restarting from a previous solution关于restart的设置问题 仿真仿真初始值1-------------gt初始值2----------------gt  如果初始值1是正确合理的而仿真A改变了初始值1
如说瞬态仿真即2≠1那么仿真B应该从1启动因此必需设置restartyes。典型的例子是先仿DC再仿Tran再仿AC。由于Tran改变了DC的工作点因此AC仿真就不正确了默认从2启动此时再AC中要设置restartyes此时从1启动  如果是扫描过程比如说参数扫描寻DC工作点那么2才是合理需要的因此仿真应该从2启动因此设置restartno默认是no 7Designers-Guide to Spice and Spectre 1995 USA 15. 极小的浮空电阻使得KCL不满足absolute convergence criteriaspice中没有关于KCL的收敛准则因此极不可靠。spectre两个都有可靠 1.3 AC分析包括XFnoisesppz 1. DC分析的最大问题convergence Tran分析的最大问题accuracy AC分析由于是线性分析没有上面的问题 2. 谈谈ACXF的的不同  应该说差别很大。  AC单个激励源 → 任何节点和支路 XF多个独立激励源 → 单个节点或者支路一般是输出  研究表明当AC中存在多个激励源时多个激励源彼此共同作用任何节点和支路都是这些激励源共同作用的结果。而当XF中存在多个激励源时多个激励源彼此是独立的没有共同作用也就是说你想看哪个节点到输出的传输函数那么就只有该节点的激励源起作用产生输出而其它的激励源不起作用。  上面说的很明显了当有多个激励源需要同时作用时候比如说多个噪声源的贡献那么你只能用AC。但是当需要同时得到电路不同地方的激励源到输出的传输函数的时候相当于电路中有多个激励但要求彼此独立互不影
响则只能用XF 3. AC分析的不足由于是线性分析没法考虑电路的时变、非线性造成的失真、频率转换等特性这些再spectreRF里面考虑了 4. 如何创建有噪声和无噪声的元件  无噪声的电阻用受控源VCCSCCVS来创建将受控源的输入和输出连起来根据IV关系建立  噪声电压和噪声电流用电阻去控制VCVS或者VCCS得到噪声电压和噪声电流不过是白的。如果用RC并联去控制VCVS或者VCCS得到噪声电压和噪声电流此时是有的。 5. noise分析噪声很大的局限性  由于是基于直流工作点的线性展开分析没有考虑非线性和时变性影响得出的噪声非常不准确忽略了很多效应噪声折叠周期平稳效应。比如说对于简单差动运放尾电流的噪声也不能得出正确的结果因为noise分析差动的噪声为0显然不对  改用PSSPnoise分析 6. AC分析应用到实际的反馈放大器电路单个运放采用ideal_balun仿真  刻画反馈环路的4个参数闭环增益A开环增益a环路增益T反馈系数f 8 Designers-Guide to Spice and Spectre 1995 USA  对于理想反馈系统 ///oioefefASSaSSTSSfSS/o  对于实际反馈运放由于opampfeedback networks具有有限的输入、输出负载以及输入和输出相互耦合导致的前馈和反馈通路使得反馈系统的参数测量非常困难。总结为两条负载效应loading输入输出非单向化unidirectional  永远要记得除非反馈回路中所有模块都是理想的无负载效应单向化的才能用每个模块的性能参数
计算得到反馈系统的4个参数。由于负载效应和非单向化效应实际反馈回路的4个参数只能通过测试得到不能通过每个模块的性能参数计算得到。  断开反馈环路测试4个参数是愚蠢的不可行的因为断开反馈回路意味着破坏了反馈回路的负载效应和直流工作点测得的参数当然不是实际反馈回路真正的性能参数了。真正实践中反馈环路永远不能断开。  某些方法比如说AC Switch方法等等在低频下得到较好的结果。但是在高频下由于寄生电容电感的负载效应和耦合效应非常严重任何对反馈环路做一点点物理上的改变的方法都得到不准确的结果。  最准确的方法作了如下定义 运放包含所有前馈通路包括运放、反馈 反馈包括所有反馈通路包括运放、反馈 loading effects全部纳入运放的输入输出端中包括运放、反馈 导出4个有效参数注意和前面定义的理想参数区别开来 effective open-loop gain/feedback factor/closed-loop gain/loop gain  计算公式对于series-series结构而言 2111222112112212112221122112112221zzzzzazzzfzzzzzzTzzAz−−−− 7. 关于反馈的4种结构的讨论  前提反馈的输入要sense电压则必需并联到运放的输出端反馈的输入要sense电流则必需串联到运放的输出端。反馈的输出要feedback电压则必需串联到运放的输入端反馈的输出要feedback电流则必需并联到运放的输入端。  正是由于电压和电流的sensefeedback的不同要求使得反馈的4种结构如 9Designers-Guide to Spice and Spe
ctre 1995 USA  series⎯series输入为电压输出为电流 shunt⎯shunt输入为电流输出为电压 series⎯shunt输入为电压输出为电压 shunt⎯series输入为电流输出为电压 很明显我们通常的反馈型OTA运算放大器属于series⎯shunt型的采用G参数描述H参数测试  反馈对输入输出阻抗的影响串联总是使阻抗减小并联总是使阻抗增大。根据这个结论可以得到 series⎯series输入高阻抗输出高阻抗 shunt⎯shunt输入低阻抗输出低阻抗 series⎯shunt输入高阻抗输出低阻抗 shunt⎯series输入低阻抗输出高阻抗 8. 运算跨导放大器性能参数的测试  OTA的性能参数有如下一些总共26个参数 1 工艺电源电压功耗输入失调电压输入共模范围输出摆幅 2 单位增益带宽GBW相位裕度PM共模输入共模输出等效噪声噪声系数差模输入差模输出等效噪声噪声系数 3 差模增益Av共模增益Acm共模到差模的转换增益Acm-dmAv去除可以导出共模抑制比差模到共模的转换增益Adm-cm电源到输出差模的转换增益用Av去除可以导出电源抑制比PSRR地到输出差模的转换增益用Av去除可以导出电源抑制比PSRR−电源到输出共模的增益地到输出共模的增益 4 输入共模阻抗输入差模阻抗输出共模阻抗输出差模阻抗 5 压摆率SRSR−谐波失真THD线性度IPn 10 Designers-Guide to Spice and Spectre 1995 USA 输入差模输入共模输出共模输出差模AC参数有12VDDGND 1.4 Transient Analysis 1. 数值积分方法forward Euler backward Euler trapezo
idal method梯形方法 backward difference formulasGear’s method  Forward and backward Euler11阶方法 Trapezoidal

本文发布于:2024-09-20 20:19:26,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/93897.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:电压   输出   电流   反馈   收敛   节点
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议