器件(九)—对设计的模块进行双脉冲仿真
目录
一、双脉冲仿真电路
二、分布式参数提取
三、lib文件设置
声明部分
子电路定义
修改lib文件
一、双脉冲仿真电路
这里我用LTspice搭建仿真电路,电路参数和设置如上图。想用plecs做也可以,不过plecs一般是用作系统级的仿真,器件模型通常为热模型,我就没把它用在这里。
二、分布式参数提取
分布式参数提取用Q3D,通过设置不同的source和sink,提取模块在不同频率下的Lg、Ld、Ls1(开尔文源)Ls2(主回路源),具体的提取方法B站上有视频。
提取后记录参数,使用DC状态下的电感和电阻。
三、lib文件设置
在用自己的模块做双脉冲仿真时,由于栅漏和栅源本身是受控状态,它们之间的电路结构在仿真模型中不能简单的加一个Cgd和Cds表示,而是需要用函数表示,所以做这种双脉冲仿真就只能写一个lib文件后导入。而功率半导体的lib文件一般由TCAD生成,如果是做封装的,不知道买回来裸片的内部结构,这种情况下要么找厂商要,要么就找个lib文件自己改。
国内各个半导体厂商中,ROHM的lib文件最清晰,所以建议使用它家的来改。
以罗姆的C2M0080170P.lib为例
声明部分
**************************************************************************************************************************************************************************************************
*
* 888888 888888 888888 .o888888888888o. 8888 88888888888 o888888888888888 88888888888888o 88888888888 88888888888 8888888888o
* 88888 88888888 88888 .8888888 8888888. 8888 88888888888 o8888888888888888 888888 8888888o 88888888888 88888888888 88888888888o
.....
*******************************************************************************
这部分主要是以艺术字形式展示了一些图案,接着是免责声明,强调该模型是按照原样提供的,不提供任何形式的保证,包括适销性和特定用途适用性的暗示保证等。这是为了明确责任,避免使用者因错误使用模型而产生问题时追究供应商责任。随后是关于 Wolfspeed SiC MOSFET C2M0080170P Spice Library 的版本、日期以及修订记录等信息,方便使用者了解模型的版本情况和更新历史。
***********************************************************
**** Wolfspeed SiC MOSFET C2M0080170P Spice Library
**** Version 1.0 Date: 05-04-2018
***********************************************************
**** Revision record
**** Version 1 Initial Release
****
***********************************************************
****Parasitics Included
****Tj = Junction Temperature
****Tc = Case Temperature
****D = Drain
****G = Gate
****S1 = Kelvin Source
****S2 = Power Source
***********************************************************
这部分说明了模型中包含了寄生参数,以及对 Tj(结温)、Tc(外壳温度)、D(漏极)、G(栅极)、S1(开尔文源极)、S2(功率源极)等各引脚和相关参数的解释,让用户清楚模型中涉及的关键因素以及各端口的含义。
子电路定义
lib原文:
.subckt C2M0080170P d g s1 s2 Tj Tc
xgmos d3 d1 g1 s Tj Tc gmos_C2M0080170P
RS1 s1 sb 25.332m
Ls1 sb s 8.396n
R_Ls1 sb s 200
RS2 s2 sa 1.573m
Ls2 sa s 3.761n
R_Ls2 sa s 1
R_g g1 g2 2
RG g ga 37.89m
Lg ga g3 12.422n
R_Lg ga g3 0.9
Rd d da 87.42u
Ld da d3 4.366n
R_Ld da d3 1
G1 d2 d1 Value {V(d1,s)}
R_A d2 d1 1E6
vgate_s g3 g2 0
vdrain_s d3 d2 0
Gheat 0 Tj value {abs((V(d,s1)*I(Vdrain_s)))+abs((V(g1,g2)*I(Vgate_s)))}
xCGD d2 g1 cgdmos_C2M0080170P
CGS g1 s 2246p
D1 s d2 bodydiode_C2M0080170P
xCDS d2 s cds_C2M0080170P
R0 N1 Tj 10.9m
R1 N2 N1 34.4m
R2 N3 N2 163m
R3 Tc N3 158m
C0 Tj 0 1.3m
C1 N1 0 4.83m
C2 N2 0 18.2m
C3 N3 0 138m
.ends C2M0080170P
*****************************************
解析:
子电路定义 .subckt C2M0080170P d g s1 s2 Tj Tc
定义了一个名为 “C2M0080170P” 的子电路,其引脚有 d(漏极)、g(栅极)、s1(开尔文源极)、s2(功率源极)、Tj(结温)、Tc(外壳温度)。这是整个芯片模型的核心框架,后续的各种元件连接和行为定义都是围绕这个子电路展开的。
xgmos:调用了一个名为 “gmos_C2M0080170P” 的子电路,连接在 d3、d1、g1、s 以及 Tj、Tc 之间,用于模拟 MOSFET 的主要开关特性,其内部包含了复杂的表达式来描述不同条件下的电流、电压等行为关系,比如通过一系列的 “e” 元件(电压控制电压源)定义了不同的电压表达式,这些表达式与结温、栅极源极电压等因素相关,从而实现对 MOSFET 开启、关断等不同工作状态的精细建模。这一段不建议改
RS1、Ls1、R_Ls1:分别是在 s1 和 sb 之间连接的电阻、电感以及在 sb 和 s 之间的电阻,用于模拟开尔文源极引线的寄生电阻和电感等特性,考虑了实际芯片引线带来的影响。Rs1、Ls1都可以改成自己设计模块的参数
RS2、Ls2、R_Ls2:与上面类似,是在 s2 和 sa 之间连接的电阻、电感以及在 sa 和 s 之间的电阻,模拟功率源极引线的寄生参数。参数修改如上
R_g、RG、Lg、R_Lg:分别是在 g1 和 g2 之间连接的电阻、在 g 和 ga 之间连接的电阻、电感以及在 ga 和 g3 之间的电阻,用于模拟栅极引的线寄生电阻和电感等,对栅极的驱动特性等会产生影响。参数修改如上
Rd、Ld、R_Ld:分别是在 d 和 da 之间连接的电阻、在 da 和 d3 之间连接的电感以及电阻,用于模拟漏极引线的寄生参数。参数修改如上
G1、R_A、vgate_s、vdrain_s:G1 是一个电流源,其电流值与 d1 和 s 之间的电压以及漏极电流、栅极电流等有关,用于模拟芯片的功率损耗等因素;R_A 是一个大电阻,用于提供一个直流偏置路径;vgate_s 和 vdrain_s 是用于监测或辅助计算的电压源,连接在相应的节点之间。这里就不太建议修改了
Gheat:是一个电流源,其电流值与漏极功率损耗(V(d,s1)*I(Vdrain_s))和栅极功率损耗(V(g1,g2)*I(Vgate_s))的绝对值之和有关,用于模拟芯片的发热情况,将功率损耗转换为热相关的信息,与后续的热阻抗网络等相互作用来体现芯片的热特性。
xCGD、CGS、D1、xCDS:xCGD 调用了 “cgdmos_C2M0080170P” 子电路,用于模拟栅极 - 漏极之间的电容特性;CGS 是栅极 - 源极之间的电容元件;D1 是体二极管,用于模拟芯片内部的反并联二极管特性;xCDS 调用了 “cds_C2M0080170P” 子电路,用于模拟漏极 - 源极之间的电容特性。这里建议只改CGS
R0、R1、R2、R3、C0、C1、C2、C3:这些电阻和电容元件构成了一个热阻抗网络,用于模拟芯片的热特性。其中 R0 - R3 表示不同部分之间的热阻,C0 - C3 表示热容,通过这些元件之间的连接和参数设置,可以模拟芯片在不同工作条件下结温的变化情况,反映了芯片的热传导、散热等特性。
下面的子电路定义都可以根据你对芯片物理模型的了解程度来改
lib原文:
.subckt gmos_C2M0080170P d3 d1 g1 s Tj Tc
e1 NET1 0 Value {12.683u*(V(Tj)**2)-4.6195m*V(Tj)+1.50756}
R_a NET1 0 1E6
e2 NET2 0 Value {15m*max(v(gk,s),5.5)-80m}
R_b NET2 0 1E6
........
.param p8 = 0.0011
.param p11 = -10
.param p12 = 25
R100 gk s 1E6
E100 gk s value {limit(V(g1,s),p11,p12)}
********************************
G1 d1 s value {
+ if(V(s,d3)<0,
+ 0
+ ,
+ if (V(gk,s)<v(NET3) ,
......
.ends gmos_C2M0080170P
解析:
subckt gmos_C2M0080170P d3 d1 g1 s Tj Tc:这是前面调用的用于模拟 MOSFET 开关特性的子电路。内部包含了一系列的 “e” 元件(电压控制电压源)定义了不同的电压表达式,这些表达式与结温、栅极源极电压等因素相关,实现了对 MOSFET 在不同工作状态下(如开启、关断等)电流、电压等特性的精细描述。同时还有 “.param” 定义了一些参数,以及 “R100、E100” 等元件用于辅助计算和限制相关的电压、电流等信号,保证模型的稳定性和准确性。G1 和 G2 是受控电流源,其电流值根据不同的条件(如漏源电压、栅源电压与某些阈值的关系等)通过复杂的表达式计算得出,用于模拟 MOSFET 的导电特性等。不建议改这一部分
lib原文:
****************************************
.subckt cgdmos_C2M0080170P d2 g1
.param k1=700p
.param k2=0.4
.param ka=420
.param kb=0.5
.param kc=4.5277
G11 g1 d1 value {
+ k1*(
+ (1+(limit(v(d2,g1),0,800))*(1+ka*(1+TANH(kb*V(d2,g1)-kc))/2))**-k2
+ )*ddt(v(g1,d2))
+ }
R_CGD d1 d2 1e-4
.ends cgdmos_C2M0080170P
解析:
subckt cgdmos_C2M0080170P d2 g1 :用于模拟栅极 - 漏极之间的电容特性。通过 “.param” 定义了一些参数(如 k1、k2、ka 等),然后利用 G11 这个受控电流源根据相应的公式来计算电流,该公式考虑了电压变化率(ddt(v(g1,d2)))以及一些与电压相关的非线性因素,从而模拟出电容在不同工作条件下的动态特性;R_CGD 是一个很小的电阻,用于提供一个直流偏置路径或避免数值计算问题。
下列是根据Crss的测试工况下得到的G11
lib原文:
****************************************
.subckt cds_C2M0080170P d2 s
.param Cjo = 1800p
.param Vj = 1.6
.param M = 0.45
G12 d1 s value {
+ if(V(d2,s)>0,
+ (Cjo/(1+((limit(ABS(v(d2,s)),0,1000))/Vj))**M)*ddt(abs(v(s,d2)))
+ ,
+ 0
+ )
+ }
R_CDS d1 d2 1e-4
.ends cds_C2M0080170P
解析:
.subckt cds_C2M0080170P d2 s:用于模拟漏极 - 源极之间的电容特性。通过定义参数 Cjo、Vj、M 等,利用 G12 受控电流源根据公式计算电流,该公式考虑了电压的绝对值变化率等因素,实现了对电容特性的模拟;R_CDS 也是一个用于偏置或数值稳定的小电阻。
下列是根据Coss的测试工况下得到的G12
lib原文:
****************************************
.model bodydiode_C2M0080170P d(is=30.889n bv=2150 EG=3.840422 n=6.7
+ rs=0.0227 trs1=-4.08m trs2=12.5003u Tnom=25
+ tt=7.5n ibv=500u Xti=10.13 level=1)
解析:
.model bodydiode_C2M0080170P:这是对体二极管的模型定义,通过设置各种参数(如 is、bv、EG、n、rs 等)来描述二极管的正向导通、反向击穿等特性,使其能够准确地模拟芯片内部体二极管的行为。
修改lib文件
关于lib文件哪些部分建议修改已经在上面标注好了。随便下载一个ROHM的lib文件都可以同理可得。
需要注意的是,模块设计的结构不同时,建议下载lib文件的模块类型也不同。比如你自己设计的是kevin封装的(对这部分不了解的可以看同系列的其它文章)那下载的也要是kevin封装的;如果你没有设计这个结构,那就下载三引脚的模型。
将修改完的lib文件重命名,拖到双脉冲仿真电路所在的文件夹中,导入lib文件,就可以开始双脉冲仿真啦。
附录
在跟师兄讨论过后,发现了几个问题,于是重新计算并核对了一些东西,在此附上
双脉冲仿真中,开通关断的时间是非常重要的参数,而不同芯片的开通关断时间主要取决于Ciss、Coss和Crss这几个参数,与Qgd、Qgs等有关。然而,lib文件中并不包含这一部分,有些厂家给的裸片里也没有这部分(与封装设计时的Rg也有一定的关系,所以推测不好直接给出)因此很难在lib文件中调整这一部分的参数。
而Crss和Coss一般在特定工况中测得,无法直接应用在lib文件中。因此lib文件表示的只是gd、ds间的导电情况
此外,lib文件中体二极管的反向恢复时间tt与参数手册中也不一样,lib文件中的tt是25C下的,而参数手册中的trr是150C下测得。不过在调整后发现对仿真结果影响不大。
关于结尾的几个问题,如果有同学或者前辈们有一些想法/了解,欢迎留言,或者通过我主页签名加联系方式私信探讨。感谢