Designers-Guide to Spice and Spectre总结文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Designers-Guide to Spice and Spectre
— Ken Kundert, 1995
1.1 绪论
1. 为什么要读这本书?
① 该书是介于算法和教你如何操作软件之间的一本书,可以帮助你更好的使用
Simulator 的设置。
② Simulator 仿出的结果可靠不?精确不?是否收敛?应该如何处理,如何设置? ③ 读完这本书,你应该会:
1) Simulator 如何计算结果?
2) Simulator 会产生何种错误?如何识别?
3) 如何提高仿真精度?
4) 如何克服不收敛的情况?
5) 对于一些特殊电路,会产生什么错误?如何识别?
6) 明白仿真器里设置convergence ,error control 的一些重要参数
7) 能知道仿真器的错误信息出在什么地方,如何解决?
2. 电路仿真软件的发展历史
① 直接方法:求出电路的微分方程组,用数值积分方法差分化,然后用牛顿迭代
法求解非线性代数方程组。⇒是最准确,可靠,最通用的方法
② Explicit integration methods ⇒方法问题很多
③ relaxiton methods ⇒方法问题很多
3. Spice Options
① Global Options:
Abstol :控制电流,默认为1pA
Vntol :控制电压,默认为1uV
Reltol :相对误差,对于牛顿收敛准则和截断误差准则同时起作用,默认10-3,
对于重要电路,这个应该设置小一些,比如说10-5或者10-6
Gmin :防止非线性器件关断后的浮空节点,默认为10-12 Ω-1
Limpts ,Pivrel ,Pivtol :无用处
② DC Analysis Options:
ltl1:DC 工作点最大牛顿迭代次数,默认100
ltl2:DC Sweep 最大牛顿迭代次数,默认50
ltl6:Source Stepping 的最大步长数
增加以上3个值,可以增加DC 牛顿迭代收敛,但是会降低速度。
③ Transient Analysis Options:
()()()max n npred n Q t Q t Trtol reltol Q Chgtol α−<⋅⋅⋅+
Chgtol:控制LTE,见上面式子
ltl3:瞬态过程最小牛顿迭代次数,默认为4
ltl4:瞬态过程最大牛顿迭代次数,默认为10
ltl5:整个瞬态过程总的牛顿迭代次数的最大值,默认为5000
lvltim:设置时间步长控制算法。lvltim=1,不使用LTE控制步长;lvltim=2,使用LTE控制步长。默认为2
Maxord:Gear的阶数,默认2,最高6。建议不要使用高阶Gear方法。
Method:可选择Trapezoidal和Gear
Tmax:默认Tmax=(Tstop−Tstart)/50,同时Tmax不超过最短传输线的延迟时间。
这个参数一般应该设小一些,具体如何设置看本文的傅利叶分析一章。
Tstep:对傅利叶分析有影响。对结果波形有影响。
Trtol:默认为7,不允许变小,只能不变或者变大。见本文瞬态分析一章。
Uic:Uic=0(spice默认)相当于skipdc=no(spectre默认),仿真器计算DC工作点,当有接地电感时,这个会导致电感中大电流和瞬态初始的大电压。
Uic=1相当于skipdc=yes,不计算工作点,按照规定设置工作点。这个的一
般问题是会导致初始不连续。
增加ltl4可以帮助瞬态牛顿迭代过程的收敛。
4.Spectre Options
①Global Options:
Approx 允许Cadence对器件的模型公式做小的近似,可以加快仿真速度Diagnose 可以帮助诊断电路,默认是关闭的。因此,可以显示仿真过程中的一些不寻常的事件,帮助收敛。推荐打开。
Gmin 防止非线性器件关断后的浮空节点,默认为10-12 Ω-1
Homotopy 使用连续性方法计算DC工作点或者瞬态仿真的初始值。可以选择none,gmin,source,ptran,dptran,all。默认值是all,也就是使用任
何可以选择的方法实现收敛。一般all是最好的,所以这个选项不要动。
控制电压和电流,和spice一样。
iabstol,
vabstol
Reltol 通用误差控制,非常的常用和重要。
limit 帮助牛顿迭代收敛的辅助算法。可选择dev,delta,log。默认是dev,即指定限制的是device。这个一般不要动。
Macromodels 默认是no。当仿真宏模型时,选择yes,可以帮助收敛,可以容忍宏模型仿真中出现的一些不连续和怪异的事情。
Opptcheck 检查电路中每个器件的一些参数和电压电流是否超过允许范围,会报warning。
Pivabs 控制Jacobian距阵的一个量。默认值为0。
Pivotdc 控制Jacobian距阵的一个量,默认是disable。
Pivrel 控制Jacobian距阵的一个量,默认是10-3。
rforce 用在nodesets,nodeforces,initial condition s时候。如果rforce的出现引起初始偏置不准确,那么可以减小rforce。
注:在nodesets,nodeforces,initial conditions情况下,都要使用rforce进行偏置。
②DC Analysis Options:
Check 检查器件的工作参数是否超出soft limits的范围,和opptcheck基本相同的作用
force
spectre中的一个新概念,类似与tran中的initial conditon,强制限定节点
电压或者支路电流。目的是给出一个独立的解,因此该解一般是不平衡的。
有4个选项:none,node,dev,all,默认是none,也就是不强制限定任何
节点电压和支路电流,电路的工作点完全由求解方程得到。
force=none 不强制限定任何节点电压和支路电流。
force=node 采用Initial conditon中设置的值强制限定节点电压和支路
电流。
force=dev 采用device中设置的值强制限定节点电压和支路电流。比
如说电容初始电压和电感初始电流。
force=all 同时采用Initial conditon中和device中设置的值强制限定
节点电压和支路电流。
这里会有一个问题,当选择force=all的时候,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 默认值是restart=yes,但当需要进行一系列仿真(比如说ac,dc,tran等)的时候restart=no会有用处。一般不要动这个选项。不管是设置restart=yes
还是no,spectre都照样计算初始的工作点,唯一不同的是牛顿迭代的初始
起点不一样罢了。