如果我的模拟设计中包含开关和多路复用器,那么还能改进开关/多路复用器LTspice®模型吗?
答案:当然能,要生成自己的模型并不困难。
我在测试电路之后,发现实际电路与其设计图之间存在很多差异。电路的动态特性有点出乎意料,其噪声水平超出要求很多。我需要用仿真器来仿真该电路才能完全理解。
此电路中用到了模拟开关和运算放大器。采用的运算放大器已有完善的宏模型,但是模拟开关宏模型采用的并不是常见类型。开关宏模型文件的标题已经指出,模型参数仅对特定电源和温度有效。嗯,您可能不知道:我的电路的运行条件与电路模型不一样。关于模拟开关,它们太过通用,所以一个特定参数模型是不够的。现有的行业标准模型提供了一个不错的起点,但是,涉及到模拟性能领域时,您可能需要采用新宏模型方法来提高仿真水平。
当我开始研究ADI和其他IC公司提供的多种模拟开关宏模型时,我发现这些宏模型建模时都没有考虑与电源或温度的相关性。所以,我必须自行构建宏模型。
构建期间,我认为应由使用最简单的器件模型的模拟开关中的所有晶体管来提供要仿真的所有行为,但是连接控制引脚和MOS栅级的接口应是最简单的行为元件。这些都通过使用LTspice仿真器完成,只要将LTspice行为器件转化为类似SPICE的多项式函数,这些代码也可以在其他仿真器上使用。我们会按照特定的顺序进行仿真。
我们将使用最简单的模型来仿真实际的MOS器件。为了针对导通电阻建模,我们将使用:
W/L,宽度(W)/MOS器件的长度(L)。W/L表示器件的尺寸或相对强度。
VTO, 阈值电压;gamma(γ),利用器件的反馈偏压来更改VTO 。反馈偏压是开启器件和其主体电压之间的压差;主体一般连接到开关中PMOS的正电源和NMOS的负电源。
KP,在模型中,也被称为K’或K-prime。这个参数模拟工艺的强度,乘以W/L之后,用于调整MOS电流。在给定的工艺中,NMOS的 KP一般为PMOS的约2.5倍。
RD, 器件漏极的寄生电阻。
不同的MOS工艺采用不同的内部参数。表1汇总了常见的CMOS工艺、其特性,以及和导通电阻相关的内部参数估算值。
表1. 典型半导体工艺参数
来看一下图1中我们想要再现的ADG333A RON曲线。
图1. RON与VD(VS)呈函数关系(双电源)。
在这个和其他模拟开关中,我们发现一个普遍趋势:更高的电源电压会降低导通电阻。对开关MOS栅级施加更高电压时,导通电阻会降低。我们也发现导通电阻会随输入模拟信号电平发生明显变化。在N区中,开关中的NMOS晶体管完全开启,且当模拟电压高于负电源轨时,PMOS晶体管开启,有助于降低总体导通电阻。区域N的转折点大致在高于负电源的 PMOS VTO处。
同样,在区域P中,开关的PMOS器件完全开启时,大致在低于正电源的 NMOS VTO,NMOS器件开始协助PMOS晶体管。
区域M在区域N和P中间,NMOS和PMOS并行作用,但彼此之间的导通电阻存在差异,具体由电源轨内的模拟信号电平决定。
要启动曲线拟合流程,我们先要估算每个晶体管的尺寸。低压曲线能够为晶体管RDS,ON提供最佳曲线拟合。在区域N中,在模拟信号位于负电源电压范围内时,PMOS器件关闭,部件的 RON相当于NMOS晶体管的RON 。其中
我们使用40V NMOS典型工艺值,按照图1中的曲线设置 RDS,ON=38Ω,使用给定的工艺数值,发现WNMOS=2µA/(38Ω×(11×10–6µA/V2)×(10V–0.7V))=514µm。PMOS开关在上方曲线上的导通电阻为47Ω,宽度为936μm。
我使用图2中的LTspice测试电路。注意,参数RDN和RDP、寄生漏极电阻都是中等值。我最开始使用的值为1μ,这导致仿真器收敛变慢。RDN值为1时,仿真速度正常。添加RCONVERGENCE会为开关节点提供可收敛的电导,从而改善仿真器噪声和速度。我测试了一个浮动电流源,用于测量导通电阻。
图2. 导通电阻测试电路。
图3显示了多种电源供电条件下的仿真结果。
图3. 采用初始模型值的导通电阻仿真结果。
这个开端相当不错。低压端在VS=30V时,仿真的扭结点为3.6V,在数据手册中为2.7V。从中可以看出,我们应该降低PMOS VTO,但0.9V实际上已经是最小值。最好是可以调节PMOS的gamma,但这只是猜测。
接近最大电源时的扭结点为低于30V电源轨2.5V,在数据手册中应为~1V。各种gamma值会放大来自电轨的扭结电压;我们会将NMOSVTO设置为1V,将其gamma设置为0。gamma为0有些出乎意料,但我们只是尝试进行曲线拟合。图4所示为PMOS的gamma在几种电源值条件下步进变化时,得到的仿真结果。我们主要研究一下30V曲线,与较低电源相比,它最大化了gamma的影响。
图4. gamma-p不同时的导通电阻仿真结果。
根据阶梯曲线,我们选择PMOSgamma=0.4。
关于RON,可以看出,10V曲线可以表示电源极端(限值)时对应的数据手册曲线,但对于20V和30V曲线,仿真产生的RON过低。在负电源极端,RONs= RDS,ON(NMOS)+RD(NMOS),在正电源极端,RONs=RDSON(PMOS)+RD(PMOS)。对于高压电源,RD参数比W/L更重要,对于低压电源,W/L起决定作用。我们在此会使用两个变量;这非常费时费力。我们将假设RON随电源变化,这是因为会对NMOS实施不同程度的增强,但是,RD值不会随电源电压变化(好吧,在漏极漂移中,它可能会变化,但是我们还是让问题保持简单一些)。如果我们注意到数据手册中RON在10V和30V电源之间的差异(11.4Ω),我们可以与上方仅采用WN(开关中NMOS的宽度)的曲线比较。在仿真中对WN实施一定的迭代之后,很明显可以看出我们需要WN=1170µm才能获得所需的ΔRON,明显高于最初的猜测值。图5显示了我们当前的结果。
图5. WN 确定时的导通电阻仿真结果。
虽然NMOS的RON具备正确的电源灵敏度,在0V时,曲线的值仍然过低,我们必须增加固定RDN。在增加和迭代RDN之后,我们获得了最佳值,即RDN=22Ω,对应曲线如图6所示。
图6.RDN 确定时的导通电阻仿真结果。
然后,我们确定WP(开关中PMOS的宽度),以仿真最大电压下的RON,得到WP=1700µm,,也远高于最初的猜测值。将RDP也设置为22Ω,我们获得了图7所示的最终RON曲线。
WP和RDP确定时的导通电阻仿真结果。
一致性非常不错;只有几个特性和数据手册不同。一是转折点在数据手册曲线中非常平缓,在仿真中则相当尖锐。这可能是因为使用的简单MOS模型不支持亚阈值导电性,且仿真器件在与电源轨相差VTO时会真正关闭。实际器件在VTO时不会关闭,而是平缓地降低该电压下的电流。
另一个错误在30V曲线中非常明显。与数据手册相比,RON在中等电压下要低15%。这可能是因为漏极漂移区域的JFET效应,这个效应也没有在模型中仿真出来。
至于温度,相对比较符合,但符合程度不是很高,具体参见图8。
图8. 各种温度下的导通电阻仿真和数据手册结果。
仿真结果与温度相关,但温度相关性不如数据手册曲线高。在仿真模型中,RD没有温度系数。RDS可以通过外部电阻和正确的温度系数模拟,但为了保持简单性,我们不予考虑。
当MOS晶体管关闭时,通道中的电荷必须去往某处,所以会从漏极和源极端逸出。模拟开关关闭时,电荷也会外泄,这被称为电荷注入。常用的测量方法是:在开启的开关的一端设置固定电压,在另一端设置大电容。关闭时,电容会捕捉电荷,并发生小电压阶跃。现在,我们在MOS模型中添加栅级氧化层厚度TOX=1×10–7(栅级电容是最大的电荷注入源)。仿真设置如图9所示。
图9. 电荷注入仿真设置。
数据手册电荷注入测试电路在开关的D端设置电压源,在开关的S端设置电容Cl。开关晶体管关闭时,Cl被隔离,通过开关集成注入其中的电荷。在这种情况下,VD波形在电源为30V时保持在24V,如图10所示。
图10. 电荷注入仿真波形。
注入的电荷是V(S)和V(D)之间的电压跳变乘以10nF保持电容。我们可以在电源电压范围内实施开关电压VD阶跃,并且使用.meas语句来捕捉各个电压下的电荷注入值。图11显示了数据手册曲线结果和仿真结果。
图11. 电荷注入数据手册和仿真波形。
我们简单的MOS模型不能很好地模拟数据手册曲线波形,但在数据手册曲线中,峰值电荷注入值为32pC,在仿真中为31pC。让人意外的是,这两个值非常接近,如果有必要,我们可以调节TOX来完善仿真结果。
两个曲线之间存在偏移,我们可以使用CCHARGE_INJECTION来进行补偿。使用某些值调整后,我们选择最优值CCHARGE_INJECTION=0.28pF。如果需要反向极性偏移, CCHARGE_INJECTION会重新连接至PMOS_on_when_low节点。
调节电容CCHARGE_INJECTION是一种使电荷注入与模拟电压的关系仿真曲线偏移的简便方法。如果仿真的峰值注入值太小,怎么办?嗯,大部分电荷注入会产生开关的栅级电压摆动,通过开关晶体管的栅级通道电容发送电荷。如果仿真的注入太少,我们可以直接增加一个或两个栅级面积。为此,我们需要按同样的系数提高开关器件的参数值L和W,且要保证不改变设置导通电阻的W/L比。相比使用CCHARGE_INJECTION,我们会选择增加NMOS W和L。
或者,我们可以调节每个器件的TOX,以获得更好的电荷注入关联结果。这实际上不可行,但是,我们这只是仿真。在我们使用的简单模型中,TOX不会影响到其他仿真参数。
在已经设置参数,以获得出色的RON和电荷注入仿真结果的情况下,我们现在可以仿真S和D端电容。
重要的一点是,高压MOS开关的漏极和源极区都必须具有偏移区。对于开关,您无法区分源极和漏极之间的功能差异,但是漏极和源极的体电势都需要用到各自的偏移区。对于中等电压 软扩散,这也是正确的,但在低压MOS中,这不合理。我们已将漏极和源极中存在的偏移区电阻汇总到RD,在饱和情况下,这对开关有效,对晶体管则无效。
图12显示了仿真设置。
在LTspice中,您可以按一种频率运行.ac(使用.ac中列出的选项),但也只能提供一种频率参数(此情况下为1MHz)。然后,在整个电源范围内运行.step VSOURCEdc电压,以获取电容与电压范围的关系曲线。
关闭的开关器件的D端保持中等电压。S端(此处对源极重命名以防与VS混淆)由直流值范围在0V至VS内、交流驱动电压为1V的电压源驱动。电容计算公式为I(VSOURCE)/(2×π×1MHz×1V)。逻辑驱动V1变更为0V,以关闭晶体管。
在模型说明中,漏极电容和源极电容分别为CBD和CBS。模型中包含内置默认集中度、内置电压和指数,使CBD和CBS电压可变。因 为它们是对称的,所以漏极和源极电容可能相等。此外,由于PMOS的宽度与NMOS不同,CBD,NMOS/CBD,PMOS=CBS,NMOS/CBS,PMOS≡WN/WP的比率会在导通电阻模型中确定。图13显示了仿真结果。
图13. VS = 12 V(左侧)和30 V(右侧)下的关闭电容和直流电压关系曲线。
显示的结果是I(VSOURCE)/(2×π×1MHz), 这表示电容。LTspice不知道这 个值的含义,因而显示pA而不是pF。
遗憾的是,我们没有数据手册曲线来进行比较。从数据手册的规格表中可以看出,电容(可能是在中等电压下,数据手册中没有指明)在30V电源电压下一般为7pF,在12V电源电压下为12pF。我通过调节CB, 获取30V电压下的7pF曲线,但在12V电压下只能仿真10pF曲线。调节内部电势和电容公式指数后,使用的模型便无法再改善12V/30V符合性。
图14显示了开启状态的电容仿真设置。
图14. 开启状态的电容测试仿真设置。
从中可以看出,完整的单刀双掷开关的右侧开关已经开启,左侧开关关闭,并连接至Vs/2源。左侧开关的右半部电容和右侧开关的总电容,以及D和S端存在的寄生电容并联,由V_s源的1MHz测试信号驱动,后者的直流电平从接地阶跃至Vs。图15显示了其仿真结果。
图15.VS=12 V(左侧)和30V(右侧)下的开启电容和直流电压关系曲线。
仿真得出的值是29.5pF和21.4pF,数据手册给出的值是26pF和25pF。考虑到电路板布局电容的变化,我们认为这些值已经非常接近。
数据手册曲线显示25°C时与电压相关的pA级漏电流,但数据手册规格只能保证几百pA。我受25°C下曲线结果的影响更大。对于此器件,没有正确把握小漏电流的重要性,所以无法保证测试结果。客观地说,测量一个pA级漏电流需要大量的设计开发工作和较长测试时间。
在85°C下,可保证测出几nA(可以有效测量),典型值则在几百pA范围内。我认为这些典型值相当准确。
漏电流属于产品缺陷;不存在严格的统计数据,且随温度变化很大。这不是我们设计要达到的规格,相反,这个数值会干扰与之连接的电路。在宏模型中使用时,适当幅度的泄漏会仿真 为电路缺陷,对于设计人员来说,是不错的警示。在85°C下,我为开启状态开关选择1nA目标测试值。
我们的模型显示没有超过RCONVERGENCE和GMIN电流的漏电流。GMIN是仿真器置于结之间,用于协助收敛的电阻。其电导系数通常为1×10–12但在电源电压为30V时,得出的值可能是30pA电流的几倍,远高于测试需求。在仿真的一系列选项中GMIN会降低至1×10–15,RCONVERGENCE上升至1×1015。
这些泄漏大部分可能实际来源于连接至每个引脚的静电放电(ESD)保护二极管。我们会将这一点纳入图16的仿真设置中。
图16. 泄漏测试仿真设置。
调节了二极管模型中的ls后,我们获得了泄漏电流与温度关系曲线,如图17所示。
图17. 温度范围内泄漏测试仿真结果。
单纯的行为逻辑-栅级驱动电路如图18所示。
图18. 行为逻辑-栅级接口。
外部逻辑输入位于图18左侧的输入端。它是理想跨导Glogic_thresholda的输入,具有分段线性传输函数。对于低于1.37V的逻辑输入,逻辑节点下的输出为0V;对于高于1.43V的输入,逻辑输出为1V;在1.37V和1.43V之间时,逻辑输出呈线性从0V过渡到1V。Glogic_thresholda因此会忽略电源差异,提供1.4V输入阈值。
Cdelaya会在瞬间减慢逻辑节点的速度,所以我们能从中截取一些时间点。为了制作比较器,我们再次使用跨导,此时,Gbreakbeforemakena的输出再次从0V过渡到1V,但是阈值的摆幅略高于0.5V。从图19中可以看出,
图19. 先开后合式时序。
倾斜的动作电压为0.52V和0.57V,而不是0.5V,这使得从1V下降的指数信号的关断速度比从0V上升的指数信号的关断速度更快。
全栅级驱动电压由B_non和B_pon行为电流源产生。当节点n_breakbeforemakena>0.5V时,B_nona产生VDD/1000电流,节点nona的电压在加载1000Ω电阻时达到VDD。当节点n_breakbeforemakena<0.5V时,节点nona被驱动至Vss。所以,我们有不错的电轨-电轨栅级驱动器,符合电源电压要求,并且具有1.4V固定输入阈值。
我们还需要说明另一个特性。请注意,在图20中,更高的电源电压会缩短延迟时间。这通过B_supplysensitivitya来实现,它向Cdelaya返回自身随VDD变化的少量动态电流。Rsupply_sensitivitya因为Cdelaya电流会出现少量压降,使得Cdelaya很大程度上作为纯电容使用。将Cdelaya电流的副本返回给Cdelaya实际上会创建一个可控 的可变电容器,Bsupply_sensitivitya内部的数学运算实际上会产生图20所示的延迟与VDD关系曲线。
图20. 仿真和数据手册曲线的先开后合式时序结果。
我们的电路在VDD=4V时,仿真得出的TON延迟为111ns,数据手册曲线显示的延迟为140nsVDD=15Vs时,仿真延迟为77ns,数据手册中的延迟为60ns。并无太大关联;我会留给读者来完善Bsupply_sensitivity函数,以实现更好的结果。至少,先开后合式时序的差异在15ns和24ns之间会更好。
虽然,数据手册没有给出太多关于延迟和温度关系数据,但是我在Cdelaya中增加了温度项,至少在高温条件下,模型仿真速度会减慢,如图21所示。
图21. 时序延迟与温度的关系。
图22显示了会成为分支电路的组合模拟开关。在晶体管符号位置为L和W硬度值,而不是参数,并移除了所有激励和I/O,以便连接引脚SA、D、SB、In、 VDD, Vss和Gnd_pin。
图22. 组合SPDT分支电路spdt 40V.asc。
还提供了第二个逻辑接口,用于单刀双掷对的另一个开关。ESD保护二极管置于模拟端口和Vss之间,以及逻辑输入端和地之间。注意,上部逻辑接口器件和节点名称中的“-a”后缀在下部接口中用“-b”后缀代替。Glogic_thresholdb接口的输出与Glogic_thresholda表中的输出反向,使得一个或另一个开关对能够运行,而不是同时开启。
备用ESD保护方案包含受保护的引脚到VDD和Vss的二极管,以及VDD和Vss之间的箝位。数据手册通常提供保护方案说明,漏电流则 被分配到两个电源。
在图23所示的ADG333A.asc主示意图中,给出了单刀双掷分支电路的符号并用了四次。
图23. ADG333A宏模型电路示意图。
图24显示测试结构的示意图,用于验证最终的宏模型结果。