开发Spice宏模型的简单方法

  序论

  许多比较老的线性器件,尤其是运算放大器,简称“运放”,都没有SPICE宏模型。即使有,通常使用的也是博伊尔(Boyle)宏模型,该模型以今天的标准来看准确度并不高,即使提供给用户也不能很好地代表实际器件。

  这种基于晶体管的方法使用相对简单的方程式 —— 工程师可对这些方程式进行相应的修改,以满足各种放大器设计流程的需要。我们的理念是用来自产品说明书的几个参数来创建SPICE(TINA-TI™)宏模型,不管输入或输出拓扑结构如何。该技术基于这样的假设:大多数运算放大器都有一个远远超出单位增益带宽的次极。

  一般而言,工程师需要以下参数:电源电压、开环增益与负载、单位增益带宽、压摆率、输入共模范围、共模抑制比(CMRR)、电源抑制比(PSRR)、Vos、Ios、Ib、开环输出阻抗、相位裕度、宽带噪声与1/f噪声、电源电流以及短路电流。对于轨至轨输出,工程师将需要输出饱和电压(输入输出电压差)以及汇点和源点电流。此外,还需要明确规定负载电阻RL。

  以不同颜色突出显示的方程式是工程师需插入到网表中的方程式。蓝色方程式是为了方便工程师自己进行观察;红色方程式则是网表末尾的模型参数中可能需要的。

  图1展示了双极性输入和互补金属氧化物半导体(CMOS)输出级的拓扑结构。

开发Spice宏模型的简单方法

  图1:非轨至轨双极性输入和CMOS输出运放的三级拓扑结构

  输入级

  输入级包括:一个差分对(Q1/Q2);电流I1、D1和V1 —— 它们可将共模设置为高电平;Rc1和Rc2;可设置次极的C1;作为发射极负反馈的RE1和RE2;EOS —— 一个非反相输入串联的压控电压源。该电压源有好几个组成部分。第一个代表输入偏移电压;第二个与共模抑制比(CMRR)有关联;第三个与电源抑制比(PSRR)有关联,等等。

  Ios是一个电流源,它代表运放的输入偏移电流。

  中间级包括:一个压控电流源G1,与R1的一个任意值相对应;D3/V3 —— 可设置较高的电压钳位;适用于较低电压钳位的D4/V4;EVp和Evn —— 它们可分别作为D3/V3和D4/V4的电源。EREF是一个压控电压源,可用来生成宏模型的参考节点。最后,用CF和Rz设定一个极点/零点,旨在帮助获得恰当的相位裕度。

  输出级是由两个压控电压源与两个晶体管并联组成的。

  下一个步骤是为网表推导出必要的方程式,以便开发宏模型。

  首先确定I1 —— 来自输入差分对的尾电流。该值可根据所采用的工艺技术而变化。虽然理想情况下工程师可请求从集成电路(IC)设计人员那里获得它,但工程师并非一直拥有这样的选择权;因此,最好将它设置为100μA和1mA之间的任意数。

  请将尔利电压VA设置为130,将IS设置为1E-16。Beta表示为BF1,等于I1/2*Ib,其中Ib是来自产品说明书的输入偏置电流值。

  如果使用5V的电源,接下来请采用V1 = Vs-Vcm将共模设置为高电平。电压轨提供了1V的共模上限电压,所以请将V1设置为1V。

  集电极电阻器RC1和RC2经设置等于0.2(VRC)乘以2再除以I1。

  就发射极负反馈电阻器RE1和RE2而言:

  RE1 = RE2 =(BF1*RC1-rπ*Avinput) (1)

  其中

  rπ = [(BF1*VT*2)/I1],而Avinput = Aol*1000/(Avout*Avmiddle) (2)

  请注意:VT = kT/q,其中k是波尔兹曼常数(1.38E-23);T是环境温度,以开尔文(K)为单位;q是一个电子的电荷量(1.6E-19)。在300ºK时,VT = 25.9或26mv。

  输入级的最后一个步骤是探究跨输入差分对的电容器C1:

  C1 =(1/2*RC1*p1),其中p1=90-?m-fz (3)

  在该方程式中,?m是来自产品说明书的相位裕度;fz是来自Rz的迟滞分摊量(中间级里的零点),且fz = atan(GBP/fz)(以度数来表示)。

  请注意:GBP是运放的单位增益带宽,而fz是在中间级里计算出的零点。

  让我们来总结一下我们到此为止所拥有的关于双极性输入级的信息:

  网表(宏模型)所需的值:

  I1 = 100e-6

  VA = 130

  IS = 1E-16

  BF1 = I1/2*Ib

  V1 = Vs-Vcm,高电平

  RC1 = RC2 = 2*VRC/I1

  可选:RE1 = RE2 =(BF1*RC1-rπ*Avinput)

  C1 =(1/2*RC1*p1),其中p1 = 90-?m-fz

  以下是网表的样子:

  * 器件引脚配置顺序 +IN -IN V+ V- OUT

  * 器件引脚编号 1 3 5 2 4

  * 节点分配

  * 非反相输入

  * | 反相输入

  * | | 正电源

  * | | | 负电源

  * | | | | 输出

  * | | | | |

  * | | | | |

  .SUBCKT MOCK 1 2 99 50 45

  *

  * 输入级

  *

  Q1 3 7 5 PIX

  Q2 4 2 6 PIX

  RE1 5 8 4E3

  RE2 6 8 4E3

  RC1 3 50 68.5

  RC2 4 50 68.5

  I1 99 8 100E-6

  C1 3 4 8.44E-13

  D1 99 9 DX

  V1 9 8 0.9

  EOS 7 1 POLY(5)(73,98)(22,98)(81,98)(80,98)(83,98)0.5E-3 11111

  IOS 1 2 1.1E-9

  请注意:在EOS项中的第一个常数是500μV的输入偏移电压最大值。

  中间级

  在这一部分,将R1任意设置为1MΩ。可按下列方程式计算出压控电流源G1:

  G1 = R1*Cf/(I1*RC1) (4)

  请注意:Rc1 = Rc2。

  现在需要确定Cf,它被表示为:

  Cf = 1/2π* fdom*R1*(Avout+1) (5)

  其中fdom是主导极点,被表示为GBP/Aol*sqrt(1+(Aol^2/p1^2))。GBP是运放的单位增益带宽。

  p1 = GBP/TAN(90-?m-2)

  fz = gm5+gm6/2π*Cf

  gm5 = sqrt(2*kp*W/L5*Id)

  gm6 = sqrt(2*kp*W/L6*Id)

  Id = 1/2kp*(W/L5)*(Vdc5-Vt5)*2*(1+?*Vs/2) (6)

  其中kp是一个被称为跨导的工艺参数,切勿与gm相混淆。

  请注意:gm5和gm6是不同的值,因为W/L5和W/L6是相互独立的,且与每个晶体管的电流增益β(β5和β6)有关联。

  最后,按下列规定设置钳位二极管:

  V3 = 0.7 + Vs/2-V30max

  V4 = 0.7 + Vs/2 + V30min

  其中Vs是电源电压。

  V30max = 2*Isink*Req-(VDC6-Vt6) (7)

  其中Req是电流(汇点电流)为1mA时的输入输出电压差。

  V30 min = 2*Isource*Req-(VDC5-Vt5) (8)

  在这种情况下,方程式(8)中的Req等于VDO —— 此时电流(源点电流)为1mA。

  我们将讨论VDC6-Vt6和VDC5-Vt5在输出级的计算。

  中间级增益AVmiddle的计算式为G1*R1*2。

  以下是网表的样子:

  增益级

  G1 98 30(4,6)3.73E-03

  R1 30 98 1.00E + 06

  CF 30 31 8.1E-10

  RZ 45 31 3.91E + 02

  V3 32 30 2.14E + 00

  V4 30 33 2.08E + 00

  D3 32 97 DX

  D4 51 33 DX

  轨至轨CMOS输出级

  如图1所示,输出级由P型和N型MOS晶体管对组成。同样,就双极性设计而言,它也将有一个pnp型管和一个npn型管。

  还存在两个压控电压源:用于PMOS和NMOS晶体管的EG1和EG2。

  让我们从输出增益Avout开始:

  gm5*Req+gm6*RLeq

  Req = rds5*RL/rds5+RL (9)

  其中RL是负载电阻,而rds5 = 1/?*Id。

  请注意:因为对两种晶体管来说?和Id是相同的,所以NMOS的Req和PMOS的Req也是相同的(Req = rds5*RL/rds5+RL)。

  W/L5=β5/kp

  β5=1/2*Isource*Req*2 (10)

  其中Req是电流(对PMOS而言指源点电流;对NMOS而言则指汇点电流)为1mA时的输入输出电压差。

  对于NMOS,让我们把方程式改写为:

  rds5 = 1/?*Id

  W/L6 = β6/kp

  β6 = 1/2*Isink*Req*2 (11)

  就器件和工艺参数而言,您将需要下列信息:

  ?= 0.01

  VTO = 0.328

  KP = 1E-5

  对于轨至轨输出级,工程师将需要最大汇点电流和最大源点电流(由产品说明书或设计人员规定):

  Vdc5-Vt5 = 1/(Ro*β5+sqrt(β5*β6)) (12)

  其中Ro是开环输出阻抗。

  Vdc6-Vt6 = Vdc5-Vt5*sqrt(β5/β6) (13)

  网表中的输出级看起来应该是这样的:

  * 输出级

  M1 45 46 99 99 POX L = 1E-6 W = 3.20E-03

  M2 45 47 50 50 NOX L = 1E-6 W = 2.78E-03

  EG1 99 46 POLY(1)(98,30)3.684E-01 1

  EG2 47 50 POLY(1)(30,98)3.714E-01 1

  *

  在该模型的末尾以下面的方式列出了工艺和器件参数:

  * 模型

  *

  .MODEL POX PMOS(LEVEL = 2,KP = 1.00E-05,VTO = -0.328,LAMBDA = 0.01,RD = 0)

  .MODEL NOX NMOS(LEVEL = 2,KP = 1.00E-05,VTO = + 0.328,LAMBDA = 0.01,RD = 0)

  .MODEL PIX PNP(BF = 625,IS = 1E-16,VAF = 130)

  .MODEL DX D(IS = 1E-14,RS = 0.1)

  .MODEL DNOISE D(IS = 1E-14,RS = 0时,KF = 1.21E-10)

  *

  .ENDS MOCK

  将CMRR和PSRR添加到您的模型

  添加CMRR和PSRR就像具有压控电压源的电阻电容器(RC)网络那么简单(图2)。

开发Spice宏模型的简单方法

  图2. 可产生小信号CMRR、PSRR和噪声(包括闪烁噪声)的简单电阻电容器(RC)网络

  为模拟这些,我们需要的全部信息有:DC值、极点和零点位置,可在产品说明书的图中找到。

  E1 =【10^ -(CMRR/20)*(零点/极点)】/2 (14)

  就CMRR而言:

  其中CMRR是DC值(以dB为单位),零点和极点所用单位是Hz。

  R10 = 1/2*π*极点*C10 (15)

  其中C10被任意设置为1μF(1E-6)。

  R20 = 1/2*π*零点*C10 (16)

  模型PSRR与CMRR的方式相同。PSRR增益项被表示为两项:

  1. a = -Vs*EPS1(方程式11),其中Vs是电源电压,而EPS1 =【10^ -(CMRR/20)*(零点/极点)/2(方程式2)。在网表内,该表达式代表PSRR网络中的“b”项。

  2. “a”被用来抵消在指定电源电压下由“b”项引起的DC误差,并反馈到输入端的EOS源。

  正因如此,PSRR在网表中这样表示:

  EPS1 21 98 POLY(1)(99,50)a b

  其中a和b均来源于上述的方程式1和方程式2。

  根据网表,CMRR和PSRR如下所示:

  * CMRR网络

  *

  E1 72 98 PLOY(2)(1,98)(2.98)0 5E-01 5E-01

  R10 72 73 1.59E + 02

  R20 73 98 1.59E-03

  C10 72 73 1.00E-06

  *

  * PSRR网络

  *

  EPS1 21 98 PLOY(1)(99,50)-1.2E-02 1

  RPS1 21 22 1.59E + 2

  RPS2 22 98 1.59E-3

  CPS1 21 22 1.00E-06

  宽带噪声与1/f噪声

  为了模拟噪音,工程师可以借助电流控制电压源(HN用于宽带噪声,HFN则用于1/f噪声或闪烁噪声)来创建一个单独的网络。首先,计算DNOISE(在网表中)所需的器件参数。KF表示为:

  KF = en^2*fc (17)

  其中fc是1/f转角频率(来自产品说明书),而en是宽带噪声(来自产品说明书)。

  HN被表示为:

  Sqrt(en^2-entotal^2-en^2) (18)

  所有噪声源均应以nV/sqrtHz为单位。

  电流控制电压源具有两个项:a和b。

  将“b”项设置成一个任意值1。“a”项等于“b”项除以1,000。这可跨闪烁噪声二极管从EOS源处的反馈(作为DC误差)中消除DC偏置电压。

  15nV/rt(Hz)的电压噪声参考

  *

  VN1 80 98 0

  RN1 80 98 16.45E-3

  HN 81 98 VN1 15

  RN2 81 98 1

  *

  * 闪烁噪声转角

  *

  DFN 82 98 DNOISE

  VFN 82 98 DC 0.6551

  HFN 83 98 POLY(1)VFN 1.00E-03 1.00E + 00

  RFN 83 98 1

  电源电流

  工程师可借助压控电流源模拟电源电流。能用来对该电流进行设置的多项式表示为:

  GSY 99 50 POLY(1)(99,50)a b (19)

  对“a”项进行设置,使其等于:

  Is - Idq - I1 -(“b”*Vs) (20)

  其中Is是电源电流;I1是尾电流(输入级);而Vs是电源电压。

  Idq = kp*0.5*(W/L5)*Vdc5*2*(1+?*VS/2) (21)

  我们的理念是将输入对从内部电源驱至该模型,使它不为该模型汲取外部电流。“b”项仅仅是来自产品说明书的曲线Is与Vs的斜率。

  * 内部电压参考

  *

  EREF 98 0 POLY(2)(99.0)(50,0)0 0.5 0.5

  GSY 99 50 POLY(1)(99,50)-11.2E-04 5.00E-07

  EVP 97 98(99,50)0.5

  EVN 51 98(50,99)0.5

  结论

  采用这种技术创建的宏模型能提供非常准确的结果,并使用参考部分提供的测试电路集合对该模型进行测试。还可基于产品说明书的参数调整公式,以便迅速改变该模型来满足工程师的需求。

  作者: Soufiane Bendaoud

技术专区

  • 慕尼黑电子展艾德克斯:结合配套软硬优势,提供最佳测试方案
  • 益莱储与您相约EDICON 2018,助力客户踏上新征程
  • 功率计数据测试不稳定该怎么办?
  • 泰克解读物联网如何推动电源效率、测试策略的创新
  • 基于TLC549数字电压表的设计
  • 开发Spice宏模型的简单方法已关闭评论
    A+
发布日期:2019年07月14日  所属分类:工业控制