**************************************************************************************************************************************************************************************************
*
*  888888              888888               888888  .o888888888888o.    8888         88888888888  o888888888888888   88888888888888o   88888888888  88888888888  8888888888o
*   88888             88888888             88888   .8888888  8888888.   8888         88888888888  o8888888888888888  888888  8888888o  88888888888  88888888888  88888888888o
*    88888           8888  8888           88888   .8888888.  .8888888.  8888         8888         888888888          888888  88888888  8888         8888         8888   88888
*     88888         8888    8888         88888    88888888    88888888  8888         8888         888888888          888888  88888888  8888         8888         8888   88888
*      88888       8888      8888       88888     88888888    88888888  8888         8888888      o888888888888888o  888888  8888888o  8888888      8888888      8888   88888
*       88888     8888        8888     88888      88888888    88888888  8888         8888888      o888888888888888o  88888888888888o   8888888      8888888      8888   88888
*        88888   8888          8888   88888       88888888    88888888  8888         8888                  88888888  8888              8888         8888         8888   88888
*         88888 8888            8888 88888        .8888888.  .8888888.  8888         8888                  88888888  8888              8888         8888         8888   88888
*          88888888             88888888           .8888888  8888888.   88888888888  8888         8888888888888888o  8888              88888888888  88888888888  88888888888o
*           888888               888888             .o888888888888o.    88888888888  8888         888888888888888o   8888              88888888888  88888888888  8888888888o
*
**************************************************************************************************************************************************************************************************
*******************************************************************************
**	DISCLAIMER
*******************************************************************************
**	This model is provided as is, where is, and with no warranty of any kind
**	either expressed or implied, including but not rdlimed to any implied
**	warranties of merchantability and fitness for a particular purpose.
*******************************************************************************

***********************************************************
****	Wolfspeed SiC MOSFET C3M0030170P Spice Library

***********************************************************

*********************************************************************************
****Parasitics Included
****Tj = Junction Temperature
****Tc = Case Temperature
****D = Drain
****G = Gate
****S1 = Kelvin Source
****S2 = Power Source
***********************************************************

.subckt C3M0030170P d g s1 s2 Tj Tc
.param Rgint = 5.4

Ci_d 		d	0 	1p 	Rpar=1G
Ci_g		g 	0 	1p 	Rpar=1G
Ci_s1 		s1 	0 	1p 	Rpar=1G
Ci_s2 		s2 	0 	1p 	Rpar=1G
Ci_Tj 		Tj 	0 	1p 	Rpar=1G
Ci_Tc 		Tc 	0 	1p 	Rpar=1G

.func rdlim(x,n,p,z) {
+	uplim(dnlim(x,n,z),p,z)
+}

R1022	Tjc	0	1E6
E1022	Tjc	0 	value {rdlim(v(Tj),-55,175,0.1)}

R100	gk	0	1E6
E100	gk	0 	value {(v(g1,s))}

e33	NET3	0	Value {(6.0655u*V(Tjc)**2+-4.2301m*V(Tjc)+2.7313)}
R_cc	NET3	0 	1E6

Ls1 		s1	s	5.17n Rser=10.11m
R_Ls1 		s1	s  	100

Ls2 		s2	s	2.3n Rser=0.73m
R_Ls2 		s2	s  	100

R_gg 		g1	s	1E6
R_g 		g1	g2	{Rgint}
Lg 			g	g2	7.7n Rser=13.255m
R_Lg 		g	g2	100

Ld 		d	d3	4.366n Rser=87.416u
R_Ld		d	d3	100

Ed		Id	0	value {I(VDrain)}
Rdd		Id	0	1E6

VDrain		d3	d1	0
*Rdrain_s	d3	d1	10u
*Cdrs		d3	d1	10p
Gheat		0	Tj	value = {abs((V(d1,s)*v(Id)))+abs((V(g1,g2)**2/Rgint))}
CGS		g1	s	6169.5299p Rpar=100k

* Body Diode Implementation

.func rbody(vgs,t) {table(t,-40,r1(vgs),25,r2(vgs),175,r3(vgs))}
.func r1(vgs) {table(vgs,-4,21.4388m,-2,23.4706m,0,24.321m,5,24.3615m,10,46.9536m,15,88.3576m)}
.func r2(vgs) {table(vgs,-4,28.5419m,-2,32.4277m,0,33.9912m,5,33.1874m,10,100m,15,48.2694m)}
.func r3(vgs) {table(vgs,-4,21.6523m,-2,27.5987m,0,36.0458m,5,62.5766m,10,99.9999m,15,100m)}

.func nd(vgs,t) {table(t,-40,nd_n40(vgs),25,nd_25(vgs),175,nd_175(vgs))}
.func nd_n40(vgs) {table(vgs,-4,720.4795m,-2,676.039m,0,828.0887m,5,229.411m,10,328.3879m,15,442.0468m)}
.func nd_25(vgs) {table(vgs,-4,642.3781m,-2,484.6474m,0,635.7885m,5,562.3356m,10,610.8171m,15,2968.344m)}
.func nd_175(vgs) {table(vgs,-4,1107.0709m,-2,1287.5699m,0,1224.5865m,5,966.2936m,10,1395.5849m,15,1538.2787m)}

.func Is(vgs,t) {table(t,-40,Is_n40(vgs),25,Is_25(vgs),175,Is_175(vgs))}
.func Is_n40(vgs) {table(vgs,-4,29.2187m,-2,116.6153m,0,1999.9998m,5,92.488m,10,79.5956m,15,419.0387m)}
.func Is_25(vgs) {table(vgs,-4,30.9086m,-2,27.1712m,0,1136.9161m,5,2000m,10,365.6149m,15,1528.2856m)}
.func Is_175(vgs) {table(vgs,-4,1033.9017m,-2,1906.8432m,0,2000m,5,2000m,10,121.3444m,15,148.3755m)}


Rbd d1 dd2 R = rbody(V(gk),V(Tjc))
GITQ s dd2 value {rdlim((Is(V(gk),V(Tjc))*(-1+exp(V(s,dd2)/(V(ND))))),1m,1e4,1m)} Rpar=100k

Ef	ND	0	value {(nd(V(gk),V(Tjc)))}
Rf	ND	0	10Meg

CDS1		dd2	s	1p
CGD1		g1	d3	1p
R_DS1		dd2	s	0.5G

R0 N1 Tj 0.027751
R1 N2 N1 0.0742
R2 N3 N2 0.061263
R3 Tc N3 0.11004

C0 Tj 0 0.002511
C1 N1 0 0.012179
C2 N2 0 0.040284
C3 N3 0 0.18462

R_tc Tc 0 10k

****************************************
.func gain(vgs,t) {
+	table(t,-55,g1(vgs),0,g2(vgs),25,g3(vgs),50,g4(vgs),75,g5(vgs),100,g6(vgs),125,g7(vgs),150,g8(vgs),175,g9(vgs))
+}

.func nval(vgs,t) {
+	table(t,-55,n1(vgs),0,n2(vgs),25,n3(vgs),50,n4(vgs),75,n5(vgs),100,n6(vgs),125,n7(vgs),150,n8(vgs),175,n9(vgs))
+}

.func lam(vgs,t) {
+	table(t,-55,l1(vgs),0,l2(vgs),25,l3(vgs),50,l4(vgs),75,l5(vgs),100,l6(vgs),125,l7(vgs),150,l8(vgs),175,l9(vgs))
+}

.func test(vgs,t) {
+	table(t,-55,m1(vgs),0,m2(vgs),25,m3(vgs),50,m4(vgs),75,m5(vgs),100,m6(vgs),125,m7(vgs),150,m8(vgs),175,m9(vgs))
+}

.func drain_current(vgs,vds,vth,g,n,l) {
+	g*(vgs-vth)*(log(1+exp(vgs-vth))**2 - log(1+exp(vgs-vth-n*vds))**2)*(1+l*vds)
+}

.func g1(vgs) {table(vgs,3,5,4,0.27957,5,0.6721,6,0.72107,7,0.80905,8,0.91764,9,0.72905,10,0.65089,11,0.32929,12,0.24958,13,0.23001,14,0.18389,15,0.17779,16,0.13873,17,0.11143,18,0.090925,19,0.075147)}
.func n1(vgs) {table(vgs,3,2.5504,4,0.23626,5,0.30066,6,0.38079,7,0.47276,8,0.5744,9,0.43906,10,0.51982,11,0.70906,12,0.80287,13,0.83057,14,0.87578,15,0.88496,16,0.96722,17,1.0398,18,1.1113,19,1.1828)}
.func l1(vgs) {table(vgs,3,0.65021,4,3.7226e-11,5,2.984e-11,6,2.3374e-14,7,2.3373e-14,8,8.4471e-11,9,0.007486,10,0.0086221,11,0.04467,12,0.045712,13,0.028734,14,0.024572,15,0.0096833,16,0.010468,17,0.010366,18,0.01019,19,0.010037)}
.func g2(vgs) {table(vgs,3,5,4,0.50998,5,0.8457,6,0.86107,7,0.89505,8,0.91367,9,0.59255,10,0.49598,11,0.25662,12,0.19447,13,0.16756,14,0.13372,15,0.12136,16,0.099134,17,0.079786,18,0.06503,19,0.053754)}
.func n2(vgs) {table(vgs,3,0.52731,4,0.21062,5,0.27091,6,0.3441,7,0.42653,8,0.51628,9,0.49086,10,0.5745,11,0.77886,12,0.87376,13,0.91855,14,0.97235,15,1.0063,16,1.0596,17,1.1394,18,1.2209,19,1.3012)}
.func l2(vgs) {table(vgs,3,0.10283,4,2.3373e-14,5,2.3373e-14,6,2.39e-11,7,4.5748e-11,8,2.3754e-14,9,0.019414,10,0.020432,11,0.0579,12,0.058277,13,0.045463,14,0.041209,15,0.028515,16,0.025795,17,0.025833,18,0.026011,19,0.026061)}
.func g3(vgs) {table(vgs,3,5,4,0.72188,5,1.016,6,1.0025,7,0.99825,8,0.96586,9,0.58549,10,0.45225,11,0.22119,12,0.16655,13,0.13875,14,0.10657,15,0.095201,16,0.074176,17,0.062185,18,0.050741,19,0.042011)}
.func n3(vgs) {table(vgs,3,0.38066,4,0.20055,5,0.25858,6,0.32837,7,0.40657,8,0.49096,9,0.47658,10,0.57789,11,0.80433,12,0.90136,13,0.94736,14,1.0372,15,1.0658,16,1.1683,17,1.2142,18,1.3004,19,1.3846)}
.func l3(vgs) {table(vgs,3,0.067352,4,1.5857e-10,5,1.1218e-09,6,7.8798e-12,7,3.301e-14,8,2.5602e-12,9,0.019519,10,0.023973,11,0.067739,12,0.068167,13,0.057314,14,0.057243,15,0.043744,16,0.045738,17,0.041536,18,0.041741,19,0.041726)}
.func g4(vgs) {table(vgs,3,5,4,0.89054,5,1.1207,6,1.0851,7,1.0439,8,0.96538,9,0.77381,10,0.6094,11,0.47263,12,0.35396,13,0.26646,14,0.20457,15,0.15854,16,0.12594,17,0.1016,18,0.083135,19,0.068901)}
.func n4(vgs) {table(vgs,3,0.2277,4,0.18839,5,0.2439,6,0.30999,7,0.38357,8,0.46241,9,0.33968,10,0.39368,11,0.37135,12,0.41692,13,0.47037,14,0.51601,15,0.58848,16,0.63545,17,0.68338,18,0.73102,19,0.77805)}
.func l4(vgs) {table(vgs,3,0.025361,4,2.3373e-14,5,9.9184e-12,6,4.7854e-10,7,3.4336e-12,8,3.2523e-13,9,3.2287e-10,10,3.4398e-10,11,4.4006e-10,12,9.8657e-11,13,2.3373e-14,14,1.0854e-10,15,2.3373e-14,16,2.5183e-11,17,7.0067e-11,18,4.7679e-11,19,7.4673e-12
+)}
.func g5(vgs) {table(vgs,3,4.8765,4,3.0208,5,1.2161,6,1.1555,7,1.0738,8,0.94959,9,0.75051,10,0.5737,11,0.44793,12,0.33377,13,0.25157,14,0.1932,15,0.1493,16,0.11888,17,0.096147,18,0.078687,19,0.065259)}
.func n5(vgs) {table(vgs,3,0.13478,4,0.029478,5,0.22655,6,0.28864,7,0.35724,8,0.43032,9,0.31222,10,0.36176,11,0.33895,12,0.37994,13,0.42315,14,0.4644,15,0.52564,16,0.56625,17,0.6072,18,0.65035,19,0.69241)}
.func l5(vgs) {table(vgs,3,5.812e-12,4,8.7835e-14,5,2.5778e-11,6,8.4059e-11,7,2.3736e-10,8,3.4862e-11,9,1.1746e-09,10,1.6789e-11,11,1.8652e-10,12,6.6014e-10,13,3.3281e-10,14,4.4526e-10,15,3.3777e-10,16,3.1149e-10,17,2.3373e-14,18,6.0425e-11,19,1.6926e-11
+)}
.func g6(vgs) {table(vgs,3,3.1029,4,2.3446,5,1.3142,6,1.2221,7,1.0941,8,0.92297,9,0.73142,10,0.54332,11,0.42849,12,0.31731,13,0.23946,14,0.18388,15,0.14196,16,0.11331,17,0.091682,18,0.07521,19,0.062404)}
.func n6(vgs) {table(vgs,3,0.12074,4,0.049237,5,0.20705,6,0.26483,7,0.32835,8,0.39551,9,0.28171,10,0.32651,11,0.30452,12,0.34125,13,0.37705,14,0.41378,15,0.46517,16,0.49968,17,0.53622,18,0.57271,19,0.60993)}
.func l6(vgs) {table(vgs,3,8.8299e-10,4,5.1522e-14,5,2.103e-10,6,3.6659e-10,7,3.9245e-11,8,5.2199e-10,9,7.278e-10,10,1.8568e-11,11,1.2243e-10,12,3.2601e-10,13,7.3664e-10,14,2.3373e-14,15,6.9709e-11,16,9.5155e-11,17,7.082e-12,18,3.2994e-10,19,2.6731e-10
+)}
.func g7(vgs) {table(vgs,3,1.497,4,1.4211,5,1.4053,6,1.2808,7,1.104,8,0.86891,9,0.71121,10,0.51444,11,0.4056,12,0.29872,13,0.22474,14,0.17287,15,0.13585,16,0.10927,17,0.088355,18,0.072138,19,0.05892)}
.func n7(vgs) {table(vgs,3,0.10637,4,0.14084,5,0.18625,6,0.2394,7,0.29751,8,0.36489,9,0.25209,10,0.29184,11,0.27592,12,0.30872,13,0.34171,14,0.37381,15,0.40763,16,0.43357,17,0.46611,18,0.5018,19,0.54717)}
.func l7(vgs) {table(vgs,3,1.8413e-09,4,4.0749e-10,5,4.5139e-10,6,6.0815e-10,7,2.3373e-14,8,0.0010605,9,3.1909e-09,10,4.1284e-10,11,1.7046e-10,12,7.4928e-10,13,2.9079e-11,14,5.7763e-10,15,2.3373e-14,16,2.3373e-14,17,2.3373e-14,18,2.3373e-14,19,7.4062e-10
+)}
.func g8(vgs) {table(vgs,3,0.057047,4,1.5933,5,1.4878,6,1.3328,7,0.97397,8,0.67473,9,0.68586,10,0.48708,11,0.37811,12,0.27035,13,0.2011,14,0.15456,15,0.11947,16,0.095405,17,0.077377,18,0.063539,19,0.052845)}
.func n8(vgs) {table(vgs,3,0.091479,4,0.12336,5,0.16473,6,0.21253,7,0.29646,8,0.38637,9,0.22579,10,0.25778,11,0.25259,12,0.29142,13,0.32753,14,0.35816,15,0.39971,16,0.42982,17,0.46056,18,0.49209,19,0.52315)}
.func l8(vgs) {table(vgs,3,1.8855e-10,4,5.4014e-05,5,8.9581e-05,6,3.382e-07,7,0.0066636,8,0.012712,9,2.3229e-10,10,9.6174e-07,11,5.8618e-10,12,1.3072e-09,13,1.9909e-10,14,2.8494e-10,15,2.3373e-14,16,1.0842e-09,17,3.728e-10,18,1.3034e-11,19,4.3454e-11
+)}
.func g9(vgs) {table(vgs,3,1.0157,4,1.3605,5,1.235,6,0.96332,7,0.70389,8,0.50359,9,0.63899,10,0.45414,11,0.3176,12,0.22624,13,0.16513,14,0.12666,15,0.1014,16,0.080369,17,0.063125,18,0.050712,19,0.04317)}
.func n9(vgs) {table(vgs,3,0.092843,4,0.13465,5,0.17691,6,0.25304,7,0.33687,8,0.40354,9,0.20914,10,0.22928,11,0.2616,12,0.30019,13,0.34727,14,0.3798,15,0.40347,16,0.43945,17,0.49367,18,0.53852,19,0.56061)}
.func l9(vgs) {table(vgs,3,0.0082602,4,0.012451,5,0.012059,6,0.020299,7,0.027571,8,0.028074,9,5.9226e-10,10,7.4262e-10,11,2.3373e-14,12,1.3196e-12,13,7.3331e-10,14,4.6972e-10,15,2.3373e-14,16,2.3373e-14,17,1.532e-05,18,0.00062412,19,2.4567e-05)}

****************************************
G2 d1 s value {
+	if(V(d3,s)<=0,
+		if (V(gk)<=V(NET3),
+		0
+		,
+		-drain_current(V(gk),V(s,d3),V(NET3),gain(V(gk),V(Tjc)),nval(V(gk),V(Tjc)),lam(V(gk),V(Tjc)))
+		)
+		,
+		if (V(gk)<=V(NET3),
+		0
+		,
+		drain_current(V(gk),V(d3,s),V(NET3),gain(V(gk),V(Tjc)),nval(V(gk),V(Tjc)),lam(V(gk),V(Tjc)))
+		)
+			)
+			}

****************************************
.param k1 = 2416.8388p
.param k2 = 0.42655
.param ka = 199.986
.param kb = 4.5649
.param kc = 7.9066

G11 g1 d11 value {
+		k1*(
+		(1+((v(d3,g1)))*(1+ka*(1+TANH(kb*V(d3,g1)-kc))))**(-k2)
+		)*ddt(v(g1,d3))
+			} Rpar=1Meg
R_CGD d11 d3 1E-4

.param Cjo = 3886.7883p
.param Vj  = 2.4621
.param M   = 0.62182

G12 d12 s value {
+		(Cjo/(1+((v(d3,s))/Vj)**M))*ddt(v(d3,s))
+			} Rpar=1Meg
R_CDS d12 d3 1E-4

****************************************

.ends C3M0030170P

****************************************


