Designers-Guide to Spice and Spectre总结文档

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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都照样计算初始的工作点,唯一不同的是牛顿迭代的初始

起点不一样罢了。

相关文档
最新文档