集成电路 Spice,Spectre仿真总结.pdf

上传人:李医生 文档编号:6082014 上传时间:2020-09-06 格式:PDF 页数:33 大小:445.89KB
返回 下载 相关 举报
集成电路 Spice,Spectre仿真总结.pdf_第1页
第1页 / 共33页
集成电路 Spice,Spectre仿真总结.pdf_第2页
第2页 / 共33页
集成电路 Spice,Spectre仿真总结.pdf_第3页
第3页 / 共33页
集成电路 Spice,Spectre仿真总结.pdf_第4页
第4页 / 共33页
集成电路 Spice,Spectre仿真总结.pdf_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《集成电路 Spice,Spectre仿真总结.pdf》由会员分享,可在线阅读,更多相关《集成电路 Spice,Spectre仿真总结.pdf(33页珍藏版)》请在三一文库上搜索。

1、Designers-Guide to Spice and Spectre, 1995, USA Designers-Guide to Spice and Spectre Ken Kundert, 1995 许建超译,西安交通大学,许建超译,西安交通大学,2008 1.1 绪论绪论 1. 为什么要读这本书?为什么要读这本书? 该书是介于算法和教你如何操作软件之间的一本书,可以帮助你更好的使用 Simulator 的设置。 Simulator 仿出的结果可靠不?精确不?是否收敛?应该如何处理,如何设置? 读完这本书,你应该会: 1) Simulator 如何计算结果? 2) Simulator 会

2、产生何种错误?如何识别? 3) 如何提高仿真精度? 4) 如何克服不收敛的情况? 5) 对于一些特殊电路,会产生什么错误?如何识别? 6) 明白仿真器里设置 convergence,error control 的一些重要参数 7) 能知道仿真器的错误信息出在什么地方,如何解决? 2. 电路仿真软件的发展历史电路仿真软件的发展历史 直接方法:求出电路的微分方程组,用数值积分方法差分化,然后用牛顿迭代 法求解非线性代数方程组。是最准确,可靠,最通用的方法是最准确,可靠,最通用的方法 Explicit integration methods 方法问题很多 relaxiton methods 方法问题

3、很多 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 St

4、epping 的最大步长数 增加以上增加以上 3 个值,可以增加个值,可以增加 DC 牛顿迭代收敛,但是会降低速度。牛顿迭代收敛,但是会降低速度。 Transient Analysis Options: 1 Designers-Guide to Spice and Spectre, 1995, USA ( )( )() maxnnpredn QtQtTrtolreltol QChgtol+ Chgtol:控制 LTE,见上面式子 ltl3:瞬态过程最小牛顿迭代次数,默认为 4 ltl4:瞬态过程最大牛顿迭代次数,默认为 10 ltl5:整个瞬态过程总的牛顿迭代次数的最大值,默认为 5000 l

5、vltim:设置时间步长控制算法。lvltim=1,不使用 LTE 控制步长;lvltim=2,使用 LTE 控制步长。默认为 2 Maxord:Gear 的阶数,默认 2,最高 6。建议不要使用高阶 Gear 方法。 Method:可选择 Trapezoidal 和 Gear Tmax:默认 Tmax=(TstopTstart)/50,同时 Tmax 不超过最短传输线的延迟时间。 这个参数一般应该设小一些,具体如何设置看本文的傅利叶分析一章。 Tstep:对傅利叶分析有影响。对结果波形有影响。 Trtol:默认为 7,不允许变小,只能不变或者变大。见本文瞬态分析一章。 Uic:Uic0(sp

6、ice 默认)相当于 skipdc=no(spectre 默认) ,仿真器计算 DC 工作 点,当有接地电感时,这个会导致电感中大电流和瞬态初始的大电压。 Uic=1 相当于 skipdc=yes,不计算工作点,按照规定设置工作点。这个的一 般问题是会导致初始不连续。 增加增加 ltl4 可以帮助瞬态牛顿迭代过程的收敛。可以帮助瞬态牛顿迭代过程的收敛。 4. Spectre Options Global Options: Approx 允许 Cadence 对器件的模型公式做小的近似,可以加快仿真速度 Diagnose 可以帮助诊断电路,默认是关闭的。因此,可以显示仿真过程中的一些 不寻常的事

7、件,帮助收敛。推荐打开推荐打开。 Gmin 防止非线性器件关断后的浮空节点,默认为 10-12 -1 Homotopy 使用连续性方法计算 DC 工作点或者瞬态仿真的初始值。可以选择 none,gmin,source,ptran,dptran,all。默认值是认值是 all,也就是使用任 何可以选择的方法实现收敛。 一般 all 是最好的, 所以这个选项不要动所以这个选项不要动。 iabstol, vabstol 控制电压和电流,和 spice 一样。 Reltol 通用误差控制,非常的常用和重要。 limit 帮助牛顿迭代收敛的辅助算法。可选择 dev,delta,log。默认是 dev,

8、即指定限制的是 device。这个一般不要动这个一般不要动。 Macromodels 默认是 no。当仿真宏模型时,选择当仿真宏模型时,选择 yes,可以帮助收敛,可以帮助收敛,可以容忍宏模 型仿真中出现的一些不连续和怪异的事情。 Opptcheck 检查电路中每个器件的一些参数和电压电流是否超过允许范围,会报 warning。 2 Designers-Guide to Spice and Spectre, 1995, USA Pivabs 控制 Jacobian 距阵的一个量。默认值为 0。 Pivotdc 控制 Jacobian 距阵的一个量,默认是 disable。 Pivrel 控制J

9、acobian距阵的一个量,默认是 10-3。 rforce 用在 nodesets,nodeforces,initial conditions 时候。如果 rforce 的出现 引起初始偏置不准确,那么可以减小 rforce。 注: 在注: 在 nodesets, nodeforces, initial conditions 情况下, 都要使用情况下, 都要使用 rforce 进行偏置。进行偏置。 DC Analysis Options: Check 检查器件的工作参数是否超出 soft limits 的范围,和 opptcheck 基本相同的 作用 spectre 中的一个新概念,类似与类

10、似与 tran 中的中的 initial conditon,强制限定节点 电压或者支路电流。目的是给出一个独立的解,因此该解一般是不平衡的。 有 4 个选项:none,node,dev,all,默认是默认是 none,也就是不强制限定任何 节点电压和支路电流,电路的工作点完全由求解方程得到。 force=none 不强制限定任何节点电压和支路电流。 force=node 采用 Initial conditon 中设置的值强制限定节点电压和支路 电流。 force=dev 采用 device 中设置的值强制限定节点电压和支路电流。比 如说电容初始电压和电感初始电流。 force=all 同时采用

11、 Initial conditon 中和 device 中设置的值强制限定 节点电压和支路电流。 force 这里会有一个问题,当选择 force=all 的时候,Initial conditon 中和 device 中 设置的值会不会冲突?比如说电容电压和节点电压。 实验结果是实验结果是 spectre 会报会报 warning,说两个值不一致,然后忽略掉,说两个值不一致,然后忽略掉 Initial conditon 而采用而采用 device 中设置的值。中设置的值。 homotopy DC 中的 homotopy 会覆盖 Global 中的 homotopy,但作用是一样的。 Maxit

12、ers DC 分析中牛顿迭代的最大次数,默认 150,一般不需要改。 Maxsteps DC 分析中当采用 homotopy 时最大步长数,默认 10000,不需要修改。 Readforce 采用文件的形式定义 nodeforce。可以手动定义,也可以采用 spectre 仿真出 的文件。 Readns 采用文件的形式定义 nodesets。可以手动定义,也可以采用 spectre 仿真出 的文件。 Restart 默认值是 restart=yes,但当需要进行一系列仿真(比如说 ac,dc,tran 等) 的时候 restart=no 会有用处。一般不要动这个选项一般不要动这个选项。不管是设

13、置 restart=yes 还是 no,spectre 都照样计算初始的工作点,唯一不同的是牛顿迭代的初始 3 Designers-Guide to Spice and Spectre, 1995, USA 起点不一样罢了。 注:restart 和 prevoppoint(ac,xf,sp,stb,zp 等) ,skipdc(tran)是不一 样的。ac 仿真中的 prevoppoint=yes 表示强制不进行初始强制不进行初始 dc 工作点计算工作点计算, 直接采用前面某个仿真的最后结果作为 ac 的初始工作点。tran 仿真中的 skipdc=yes 表示强制不进行初始强制不进行初始 dc

14、 工作点计算工作点计算,直接采用给定的 initial condition 作为初始工作点,没有给定 initial condition 的认为是 0。而 restart=yes, no 只是影响牛顿迭代的初始起点的取法, spectre 还是照样计算 初始的 照样计算 初始的 dc 工作点。工作点。 write dc 分析牛顿迭代的初始点存储(初始点存储(initial guess) writefinal dc 分析牛顿迭代的最终值存储(最终值存储(final value) 注:注:DC 分析的分析的 write 和和 write final 的文件的文件 spectre.dic,spect

15、re.dfc 可以作为可以作为 readns,readforce,readic 使用。使用。 Transient Analysis Options Cmin 指定每个节点的最小电容,默认值为 0。但当出现收敛问题时候,可以把 Cmin 设为 1fF 左右,帮助收敛。 Errpreset 可以选择 conservative,moderate,liberal。详细说明见后面。 和 dc 中的 force 功能相似,用于 tran 中。有 4 个选项 dc,node,dev,all, 默认是 all,这个和 dc 中的 force 默认是 none 是不一样的。 Ic=dc 求解 dc 的值作为 I

16、c(也就是不采用用户设置的初始值) Ic=node 采用 Initial conditon 中设置的值作为初始值 Ic=dev 采用 device 中设置的值作为初始值。比如说电容初始电压和电感 初始电流。 Ic=all 同时采用 Initial conditon 中和 device 中设置的值作为初始值。 Ic 这里会有一个问题, 当选择 Ic=all (也就是默认状态) 的时候, Initial conditon 中和 device 中设置的值会不会冲突?比如说电容电压和节点电压。 实验结果是实验结果是 spectre 会报会报 warning,说两个值不一致,然后忽略掉,说两个值不一致,

17、然后忽略掉 Initial conditon 而采用而采用 device 中设置的值。 (这个和中设置的值。 (这个和 dc 中的中的 forceall 是一样的)是一样的) Iteratio 和 spice 中的 Trtol 功能一样,控制 LTE,默认值取决于 errpreset。具体用法 见后面。 Maxiters 瞬态分析牛顿迭代的最大次数。 对于一些连续性较差的电路 (比如说含有宏 模型) ,增加 Maxiters 可以增加收敛性。默认值为默认值为 5,推荐值为,推荐值为 50。 Maxstep 指定最大步长。一般来说,要得到较好的精度,首先得减小 reltol,然后指 定 maxs

18、tep。但是当具有谷底效应谷底效应的时候(比如说 osc 的起振过程) ,reltol 不能有效的控制步长, 此时步长完全由 maxstep 决定, 才能得到较好的结果。 4 Designers-Guide to Spice and Spectre, 1995, USA Method 数值积分方法:euler,trap,traponly,gear2,gear2only,trapgear2 Readic 类似于 dc 分析中的 readforce。采用文件的形式定义 ic。可以手动定义,也 可以采用 spectre 仿真出的文件。 Readns 类似于 dc 分析中的 readns。采用文件的形

19、式定义 nodesets。可以手动定义, 也可以采用 spectre 仿真出的文件。 Relref 默认值由 errpreset 决定。 从强到弱排为: pointlocal, alllocal, sigglobal, allglobal Restart 默认是 restart=yes,和 dc 中的用法一样 Skipdc 默认是 no。具体用法见后面。如果需要使用 skipdc,推荐用 autodc。 Step 默认值由 errpreset 决定。主要用途是控制非状态变量信号的精度。 write tran 分析初始工作点的存储(这个和初始工作点的存储(这个和 dc 的的 write 是不一样

20、的)是不一样的) writefinal tran 分析完成后最终值存储(最终值存储(final value) 注: 瞬态分析的注: 瞬态分析的write和和write final的文件的文件spectre.ic, spectre.fc可以作为可以作为readns, readforce,readic 使用。使用。 5 Designers-Guide to Spice and Spectre, 1995, USA 1.2 DC 分析分析 1. DC 解的个数和特性 电路的 DC 解可能不止一个 仿真器没法自动判断解的稳定性,因此得到的解可能是稳定的,也可能是不稳 定的 2. DC 分析中,收敛最重

21、要,其次是精度(因为只要收敛,一般精度够) 3. 现代电路软件组织方程组的方法:modern nodal analysis(节点分析方法) 4. 求解非线性方程的收敛准则 牛顿更新收敛准则(update convergence criteria) ( )()1 ,max kk nnn vvreltol vvabstol + 这里 ( )() () 1 ,max max, kk nn vvv = n 牛顿残余收敛准则(residue convergence criteria) ( ) () ,max k nn fvreltolfiabstol初始值 2- 如果初始值 1 是正确合理的,而仿真 A

22、 改变了初始值 1(比如说瞬态仿真) ,即 21,那么仿真 B 应该从 1 启动,因此必需设置 restart=yes。典型的例子是先仿 DC,再仿 Tran,再仿 AC。由于 Tran 改变了 DC 的工作点,因此 AC 仿真就不 正确了(默认从 2 启动) ,此时再 AC 中要设置 restart=yes(此时从 1 启动) 如果是扫描过程(比如说参数扫描寻找 DC 工作点) ,那么 2 才是合理需要的, 因此仿真应该从 2 启动,因此设置 restart=no(默认是 no) 7 Designers-Guide to Spice and Spectre, 1995, USA 15. 极小

23、的浮空电阻使得 KCL 不满足(absolute convergence criteria) ,再 spice 中,没 有关于 KCL 的收敛准则,因此极不可靠。spectre 两个都有,可靠 1.3 AC 分析(包括分析(包括 XF,noise,sp,pz 等)等) 1. DC 分析的最大问题:convergence Tran 分析的最大问题:accuracy AC 分析:由于是线性分析,没有上面的问题 2. 谈谈 AC 和 XF 的的不同 应该说差别很大。 AC:单个激励源 任何节点和支路 XF:多个独立激励源 单个节点或者支路(一般是输出) 研究表明,当 AC 中存在多个激励源时,多个激

24、励源彼此共同作用,任何节点 和支路都是这些激励源共同作用的结果。而当 XF 中存在多个激励源时,多个 激励源彼此是独立的,没有共同作用;也就是说,你想看哪个节点到输出的传 输函数,那么就只有该节点的激励源起作用产生输出,而其它的激励源不起作 用。 上面说的很明显了:当有多个激励源需要同时作用时候(比如说多个噪声源的 贡献) ,那么你只能用 AC。但是当需要同时得到电路不同地方的激励源到输出 的传输函数的时候(相当于电路中有多个激励,但要求彼此独立互不影响) ,则 只能用 XF。 3. AC 分析的不足:由于是线性分析,没法考虑电路的时变、非线性造成的失真、频 率转换等特性(这些再 spectr

25、eRF 里面考虑了) 4. 如何创建有噪声和无噪声的元件? 无噪声的电阻:用受控源(VCCS,CCVS)来创建,将受控源的输入和输出连 起来(根据 IV 关系建立) 噪声电压和噪声电流:用电阻去控制 VCVS 或者 VCCS 得到噪声电压和噪声电 流,不过是白色的。如果用 RC 并联去控制 VCVS 或者 VCCS 得到噪声电压和 噪声电流,此时是有色的。 5. noise 分析噪声很大的局限性 由于是基于直流工作点的线性展开分析,没有考虑非线性和时变性影响,得出 的噪声非常不准确,忽略了很多效应(噪声折叠,周期平稳效应) 。比如说对于 简单差动运放尾电流的噪声也不能得出正确的结果(因为 no

26、ise 分析,差动的, 噪声为 0,显然不对) 改用 PSS+Pnoise 分析 6. AC 分析应用到实际的反馈反馈放大器电路(单个运放采用 ideal_balun 仿真) 刻画反馈环路的 4 个参数:闭环增益 A,开环增益 a,环路增益 T,反馈系数 f 8 Designers-Guide to Spice and Spectre, 1995, USA 对于理想反馈系统: / oioefef ASSaSSTSSfSS=/ o 对于实际反馈运放,由于 opamp 和 feedback networks 具有有限的输入、输出负 载,以及输入和输出相互耦合导致的前馈和反馈通路,使得反馈系统的参数

27、测 量非常困难。总结为两条:负载效应(负载效应(loading) ,输入输出非单向化 ( ) ,输入输出非单向化 (unidirectional) 永远要记得:除非反馈回路中所有模块都是理想的(无负载效应,单向化的) , 才能用每个模块的性能参数计算得到反馈系统的 4 个参数。由于负载效应和非 单向化效应,实际反馈回路的 4 个参数只能通过测试得到,不能通过每个模块 的性能参数计算得到。 断开反馈环路测试 4 个参数是愚蠢的,不可行的,因为断开反馈回路意味着破 坏了反馈回路的负载效应和直流工作点,测得的参数当然不是实际反馈回路真 正的性能参数了。真正实践中,反馈环路永远不能断开。真正实践中,反

28、馈环路永远不能断开。 某些方法,比如说 AC Switch 方法等等,在低频下得到较好的结果。但是在高 频下 在高 频下,由于寄生电容电感的负载效应和耦合效应非常严重,任何对反馈环路做 一点点物理上的改变的方法都得到不准确的结果。 最准确的方法,作了如下定义: 运放包含所有前馈通路(包括运放、反馈) 反馈包括所有反馈通路(包括运放、反馈) loading effects 全部纳入运放的输入输出端中(包括运放、反馈) 导出 4 个有效参数有效参数(注意,和前面定义的理想参数区别开来) : effective open-loop gain/feedback factor/closed-loop g

29、ain/loop gain 计算公式(对于 series-series 结构而言) : () 2111 2221 12 11 22 12 11 2221 12 21 12 11 22 21 zz zz z a z z z f z zz z z z T z z Az = = = = 7. 关于反馈的 4 种结构的讨论 前提:反馈的输入要 sense 电压,则必需并联到运放的输出端;反馈的输入要 sense 电流,则必需串联到运放的输出端。反馈的输出要 feedback 电压,则必需 串联到运放的输入端;反馈的输出要 feedback 电流,则必需并联到运放的输入 端。 正是由于电压和电流的 se

30、nse 和 feedback 的不同要求,使得反馈的 4 种结构如 9 Designers-Guide to Spice and Spectre, 1995, USA 下: seriesseries:输入为电压,输出为电流 shuntshunt:输入为电流,输出为电压 seriesshunt:输入为电压,输出为电压:输入为电压,输出为电压 shuntseries:输入为电流,输出为电压 很明显,我们通常的反馈型我们通常的反馈型 OTA 运算放大器属于运算放大器属于 seriesshunt 型的,采用型的,采用 G 参 数描述, 参 数描述,H 参数测试参数测试 反馈对输入输出阻抗的影响:串联总

31、是使阻抗减小,并联总是使阻抗增大。串联总是使阻抗减小,并联总是使阻抗增大。根 据这个结论,可以得到: seriesseries:输入高阻抗,输出高阻抗 shuntshunt:输入低阻抗,输出低阻抗 seriesshunt:输入高阻抗,输出低阻抗 shuntseries:输入低阻抗,输出高阻抗 8. 运算跨导放大器性能参数的测试 OTA 的性能参数有如下一些(总共 26 个参数) : 1) 工艺,电源电压,功耗,输入失调电压,输入共模范围,输出摆幅 2) 单位增益带宽 GBW,相位裕度 PM,共模输入共模输出等效噪声(噪声系 数) ,差模输入差模输出等效噪声(噪声系数) 3) 差模增益Av,共模

32、增益Acm,共模到差模的转换增益Acm-dm(用Av去除,可 以导出共模抑制比) ,差模到共模的转换增益Adm-cm,电源到输出差模的转 换增益(用Av去除,可以导出电源抑制比PSRR+) ,地到输出差模的转换增 益(用Av去除,可以导出电源抑制比PSRR) ,电源到输出共模的增益,地 到输出共模的增益 4) 输入共模阻抗,输入差模阻抗,输出共模阻抗,输出差模阻抗 5) 压摆率SR+,SR,谐波失真THD,线性度IPn 10 Designers-Guide to Spice and Spectre, 1995, USA 输入差模 输入共模输出共模 输出差模 AC参数有12个 VDD GND 1

33、.4 Transient Analysis 1. 数值积分方法:数值积分方法:forward Euler, backward Euler, trapezoidal method(梯形方法)(梯形方法), backward difference formulas(Gears method) Forward and backward Euler 是 1 步 1 阶方法; Trapezoidal method 是 1 步 2 阶方法; Gears method 是 N 步 N 阶方法; 其中,forward Euler 由于不稳定,所以在电路分析软件中不被采用。Gears method 可以是任意阶

34、的,其中只有前 6 阶在 spice 中被应用,而且只有前 2 阶 被用的最多。 Gear2 和 Trapezoidal 用的最多,是核心算法;backward Euler 只是辅助算法,一 般用在第第 1 个时间步个时间步计算和 break points 处处的计算。 对于一个给定的时间步长,trapezoidal method 是最准确的算法,其次是 Gear2 method。但是,由于仿真器自动控制步长大小,因此不好说哪种方法准确,不 同的电路不一样。不过一般来说,得到相同小的精度 trapezoidal method 使用的 步长大,因而速度快,效率高一些。可惜的是,可惜的是,trap

35、ezoidal method 对于误差 具有积累和记忆特性,使得对误差非常敏感,当 对于误差 具有积累和记忆特性,使得对误差非常敏感,当 reltol 比较大时用比较大时用 trapezoidal method 不好不好。 为什么断点处改用 backward Euler?因为 backward Euler 是 1 步方法, 处理断点 的速度快。GearN 方法处理这个速度很慢,因为是 N 步方法。 因此,当波形非常平滑的时候(比如说 LC 振荡器的输出) ,高阶的 GearN 方法 比较效率高。但是,对于高 Q 值电路,高阶的 Gear 方法可能造成不稳定,因 此很少用。 (后面解释) 11

36、Designers-Guide to Spice and Spectre, 1995, USA 2. 各种数值积分方法的特点和稳定性各种数值积分方法的特点和稳定性 Stiff 电路:时间常数相对于步长非常小(或者是高频极点,或者是步长取得过 大 或者是高频极点,或者是步长取得过 大) 任何稳定的微分方程,包括一些不稳定的微分方程,用 backward Euler,和 Gear2 方法仿真是稳定的。backward Euler 和 Gear2 方法会给微分方程增加一些 damping,也就是增加一些稳定性。 任何稳定的微分方程,用 trapezoidal 方法仿真是稳定的;任何不稳定的微分方 程

37、, 用 trapezoidal 方法仿真是不稳定的。 trapezoidal 方法不增加不减少 damping, 因此保持稳定性和不稳定性不变。 Trapezoial method 没有数值 damping, Gear2 有一定的数值 damping, 而 backward Euler 有严重的数值 damping,因此 Gear2 和 backward Euler 方法不适合于求解 感性时钟线和电源线上的 ringing 噪声。相反的,高阶 Gear 方法则会减少减少电路 的 damping,因而造成某些稳定电路不稳定。 (特别是极点非常靠近 jw 轴时候) Trapezoial metho

38、d:trapezoidal ringing 效应 Backward Euler:严重的数值 damping,delay 效应 Gear2:当步长比较大时一定的数值 damping,当步长比较小时 overshoot 效应。 Trapezoidal ringing:当有 trapezoidal ringing 时,对信号用于傅利叶分析是非常 不好的,因为 ringing 造成数值噪声,抬高电路的 noise floor。Ringing 造成电容 电流和电感电压非常的不准确, 具有更大的 trapezoidal ringing (因为微分作用) , 而且步长越小越麻烦,因此对这些非状态变量非状态变

39、量做傅利叶分析是更加不准确的。 trapezoidal ringing 非常快速的变化,要求仿真器采用无限小的仿真步长,可能 造成仿真挂起(hang up)或者失败。可以检查电源 VDD 的电流,看是否有 trapezoidal ringing,如果有则转为 Gear2。但是要注意的是,虽然采用 Gear2 使 得波形平滑好看一些,实际上精度并没有改善,还是比较差。 总之, 减小总之, 减小 reltol 可以减小仿真步长, 从而可以减小可以减小仿真步长, 从而可以减小 trapezoidal ringing 和数值和数值 damping 效应,还可以减小效应,还可以减小 delay(后面会提

40、到)(后面会提到) 电容电流和电感电压的求解是不准确的,原因如下:1)spice 和 spectre 中它们 不是状态变量,因此对它们的求解是直接对电容电压和电感电流的微分。微分 算子是病态的,因此会放大误差。2)由于电容电流和电感电压不是状态变量, 因此不存在截断误差的问题,误差也不会积累,所以时间步长控制算法里面忽 略了电容电流和电感电压,这是一个大问题。不过目前不过目前 spectre 里当里当 preset=conservative 时,对电容电流和电感电压也精确控制,具体见后面。时,对电容电流和电感电压也精确控制,具体见后面。 由于 MOS 管电容模型的不光滑问题,导致了波形的拐角没

41、法事先预测(不是 由于激励引起的) ,所以都被敲掉了角(knocked off)。而且,由于不是由于激励 引起的不光滑,因此仿真器没法自动识别拐角,因此无法添加 不是由于激励 引起的不光滑,因此仿真器没法自动识别拐角,因此无法添加 breakpoints,无 法转到采用 ,无 法转到采用 backward Euler 方法求解方法求解, 使得一直采用 trapezoidal 或者 Gear2 方 12 Designers-Guide to Spice and Spectre, 1995, USA 法不变,因此还会造成 trapezoidal ringing 效应。这两种效应不可避免,只能减 小

42、 这两种效应不可避免,只能减 小 reltol 来降低这种效应,或者修改来降低这种效应,或者修改 MOS 管电容模型使之变得连续。管电容模型使之变得连续。 任何数值积分方法都有缺点:trapezoidal ringing, 数值 damping, delay 由于 backward Euler 方法造成的 delay 只出现在孤立时间点孤立时间点上。 3. 瞬态仿真的精度瞬态仿真的精度 误差是积累还是消失取决于具体电路取决于具体电路而不是仿真器。一般来说,逻辑电路对误差 不敏感,而模拟电路对误差很敏感。对误差敏感的电路,减小 reltol 不一定能改善结果 的精度(为什么?) 。 4. 截断误

43、差截断误差(Truncation Error) 分为 LTE, GTE。其中,GTE 取决于 LTE 和电路对误差是否积累或者消失这两 个因素。逻辑电路和偏置电路对截断误差和仿真误差都不敏感,因为具有非常 小的时间常数。电荷存储电路,开关电容电路,动态存储器,混沌电路, 逻辑电路和偏置电路对截断误差和仿真误差都不敏感,因为具有非常 小的时间常数。电荷存储电路,开关电容电路,动态存储器,混沌电路,ADC, 振荡器,积分器,高 , 振荡器,积分器,高 Q 值电路等对仿真误差敏感,因为具有长的时间常数。特 别是振荡器和积分器。 值电路等对仿真误差敏感,因为具有长的时间常数。特 别是振荡器和积分器。

44、LTE 由 reltoltrtol(spice 中)或者 reltollteratio(spectre 中)控制,其实是通 过控制时间步长实现的。 当解是常数的时候是没有截断误差的,因此截断误差条件仅仅影响电路的时间 常数(比如说建立时间,振荡周期) ,并不影响直流工作点。所以,当你个人觉 得电路的平衡工作点(电路波形平坦的部分)很重要而时间常数不是特别重要 时,可以减小 reltol,同时增大 trtol(或者 lteratio)相同倍数,因此截断误差不 变,这样可以使得仿真速度保持不变。 5. 电荷模型与电荷守恒(电荷不守恒的俩个来源,影响精度)电荷模型与电荷守恒(电荷不守恒的俩个来源,影

45、响精度) 求解非线性代数方程的 Convergence Criteria 其实也是电荷不守恒的一种表现 (决定电荷守恒的精度) ,对于电荷存储器件会造成问题。 基于电容的模型电荷不守恒(Meyer 模型) ,基于电荷的模型电荷才守恒(WD, YC, BSIM 模型) 6. spice 和和 spectre 的步长控制方法不同的步长控制方法不同 spice 通过控制电容电荷(或者电感磁通)误差电容电荷(或者电感磁通)误差来实现时间步长选取,而 spectre 通过节点电压(或者电感电流)误差节点电压(或者电感电流)误差来实现时间步长的选取。一般认为,spice 步长控 制不严格,而 spectr

46、e 步长控制严格。当电路中含有特别小电容时,spice 的电荷控制 chgtol 会导致这些小电容上大的截断误差。而且电容控制会导致 trapzoidal ringing。而 spectre 控制的是电压,因此一般不会出现这些问题(但是会由谷底效应) 。 7. Spice 时间步长控制方法时间步长控制方法 在 spice 中,lvltim=2 LTE-based time step control lvltim=1 lteratio-Count time step control(相当于无控制) LTE-based time step control 中下面一些参数重要: 13 Designe

47、rs-Guide to Spice and Spectre, 1995, USA reltol:通用误差控制,对牛顿准则和 LTE 准则都有效。 trtol:spice 中默认为 7,reltoltrtol 对于 LTE 有效。当 reltol 不变时,trtol 不允 许减小,因为这样使得步长减小没有意义。trtol 可以增大,因为电路平衡 点计算与 LTE 无关。LTE 影响时间常数,而电路平衡点计算决定了电荷 守恒的精度。因此,当对时间常数不感兴趣时(同时不影响平衡点) ,可 以把 trtol 增大;当对电荷守恒的精度感兴趣时(同时不影响截断误差) , 可以减小 reltol,同时增大

48、trtol 相同倍数,保持 reltoltrtol 不变,因而不 影响截断误差。 Tmax:默认状态下,Tmax=(Tstop-Tstart)/50 abstol:状态变量微分的绝对误差状态变量微分的绝对误差,也就是电容电流和电感电压的绝对误差。 chgtol: 状态变量的绝对误差状态变量的绝对误差, 也就是电容电荷和电感磁通的绝对误差。 和 abstol 不一样,chgtolreltol 作为 LTE 误差控制准则。 lteratio-Count time step control 绝对不允许使用。因为迭代次数与截断误差没有 必然关系。 8. Spetre 时间步长控制方法时间步长控制方法 max ( )( )() nnpredn v tvtlteratioreltol vvabstol 1GHz) ,电源抖动和输入共模抖动是个大问 题。不过在低频下可以看到,gnd 对输出差模的扰动是挺大的。 采用 xf 测试,此时测试的是输出差模电流源到输出差模电压的增益,也就是输 出差模阻抗,结果如下: Real(Zdout)=6.7 k,Imag(Zdout)=10 7MHz 这说明在低频下,电容阻抗可以忽略,阻抗表项为阻性。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1