* NV6169_COMPLETE
*$
****************************************************************************
*
* NV6169 Spice Model
*
****************************************************************************
*
* This simulation model uses typical parameter values and it is based on
* a behavioral model. This model is supplied "as is" and the author
* provides no warranties, either expressed or implied, with respect
* to the operation and accuracy of the model within a customer circuit
* or system.
*
****************************************************************************
*
* NAVITAS SEMICONDUCTOR
* Part Nr:	NV6169
* Author: Akos Hodany
* Date:   04/29/2022
* Model Type: SPICE (LTspice / Pspice compatible)
* Model Version: v1.0
*
* Revision notes:
*
* v1.0 - Initial version (source: NV6136A v1.0/NV6247 v2.0)
*
****************************************************************************
*
* NV6169 Top level
*
****************************************************************************
.SUBCKT NV6169 VCC VDD RDD 5V STBY PWM S CS FLT D
.param VCCTH=7.9 VCCHYS=1.2 VDDTH=4.6 VDDHYS=0.6 VOCP=1.91 VSCP=12.6 CSGAIN=73.529412u VITH=1.9 VIHYS=1.3
+ TOTP=165 IQCC=500u IQCCSTBY=255u
XU1 N009 N012 SCP VCC SGND COMP_HYST_VAR3 PARAMS: VHIGH=5 VLOW=0 VHYS=10m
XU2 N009 G S NV6169_FET
XU3 CS N013 OCP VCC SGND COMP_HYST_VAR3 PARAMS: VHIGH=5 VLOW=0 VHYS=10m
XU4 VDDREF N004 VCC VDDINT SGND SGND NV_OPA
XU5 N001 N002 VCCOK VCC SGND COMP_HYST_VAR3 PARAMS: VHIGH=5 VLOW=0 VHYS={VCCHYS}
XU6 REF2 N006 VCC 5VINT SGND SGND NV_OPA
XU7 PWM N015 PWM0 DPWR SGND COMP_HYST_VAR3 PARAMS: VHIGH=5 VLOW=0 VHYS={VIHYS}
XU8 STBY N015 STBY0 DPWR SGND COMP_HYST_VAR3 PARAMS: VHIGH=5 VLOW=0 VHYS={VIHYS}
XU9 VDD N003 VDDOK VCC SGND COMP_HYST_VAR3 PARAMS: VHIGH=5 VLOW=0 VHYS={VDDHYS}
XU10 RDD EN_OUT DRV G SGND NV6169_DRV
XU11 DPWR STBY0 PWM0 OCP SCP SGND EN_OUT DRV FLT_OUT nv6169_logic
R1 N010 N004 5k
R2 VDDINT VDD 20
R3 N004 VDD 10k
R4 VDDREF REF 12k
R5 VCC SGND 10Meg
R6 N011 N006 10k
R7 5VINT N008 20
R8 REF SGND 50k
R9 N008 N006 20k
R10 VDD N005 1k
R11 N008 N007 1k
R12 G SGND 100k
R13 N001 VCC 100
R14 RDD SGND 100k
R15 S SGND 15
R16 VCCOK SGND 10Meg
R17 VDDOK SGND 10Meg
R18 SCP SGND 10Meg
R19 OCP SGND 10Meg
R20 FLT N014 50
R21 FLT_OUT SGND 10Meg
C1 VDDINT N010 1n
C2 VDDINT N004 100p
C3 VDD SGND 10p
C4 PWM SGND 1p
C5 VDDREF SGND 10p
C6 5VINT N011 500p
C7 5VINT N006 200p
C8 STBY SGND 1p
C9 CS SGND 10pF
C10 N001 SGND 1p
C11 RDD SGND 10p
C12 FLT SGND 5p
D1 CS N016 DBODY
D2 N005 N004 DBODY
D3 N007 N006 DBODY
G_B1 SGND VDDREF VALUE {IF(V(OTP,SGND)<2.5,100u*min(V(VCCOK,SGND),1),0)}
G_B2 VCC SGND VALUE {max(tanh(max(V(VCC,SGND),0))*((IQCCSTBY-74u)+(IQCC-IQCCSTBY)*
+(1+tanh(5*V(EN_OUT,SGND)-5))/2), 0)}
E_B3 DPWR SGND VALUE {V(REF,SGND)*IF(V(VDDOK,SGND)>1,1,0)}
G_B4 SGND CS VALUE {{CSGAIN}*max(I(Vx),0)}
E_B5 N014 SGND VALUE {min(max(5-V(FLT_OUT,SGND),0),V(5VINT))}
E_B6 N016 SGND VALUE {max(V(5VINT,SGND)-0.5,0)}
E_B7 REF2 SGND VALUE {max(V(REF,SGND)-1k*max((I(VREFM)-20m),0),0)}
E_B8 OTP SGND VALUE {if({TEMP}<{TOTP},0,5)}
Vx D N009 0
VREFM N008 5V 0
V1 N002 SGND {VCCTH}
V2 N003 SGND {VDDTH}
V3 N013 SGND {VOCP}
V4 N015 SGND {VITH}
V6 N012 SGND {VSCP}
V7 VDD VDDM1 3.2
R22 VDDM1 VDDM2 2
D4 VDDM2 RDD DBODY
.ENDS NV6169

****************************************************************************
*
* NV6169 GaN HEMT (Source: NV6119)
*
****************************************************************************
.SUBCKT NV6169_FET D G S
.PARAM Ipk=78 TCIPK=-0.003318519 Vpk0=2  dVpk=2  vpkalpha=0.7 P10=1 P1s=0.55 P1alpha=1 Alpha=0.35 TCA=0 TCVPK=+0.004
+ TCP1S=-0.00305455 VTHX=1.4 TCVTH=+0.00271 NORMTEMP=25 RD0=24.23m RG=52m TCRD=0.008 TCP10=-0.004 IDRo1=1.85
+ TCIDRc1=-0.004  Rs=0.35m IDRc1=18.36 IDRc2=9 C1=43.7 C2=4.37 C3=2.19 C4=576.2 C5=73.34 C6=237.43 C7=323.38 C8=437
G_G3         D2 D0 VALUE { V(D2,D0)/max(V(RDT, 0),1n) }
E_ABM21         ILK 0 VALUE {  (abs(V(DTEMP))*V(DTEMP)/10+1)*6.6m*max(abs(V(D0,S0))*V(D0,S0)/42250,0)    }
R_R101         0 N153327  10Meg
E_ABM12         SUBTH 0 VALUE {  tanh(3*V(G0,S0))*(0.5*(1+tanh(2.2*(V(G0,S0)-V(VTHT)))))**2    }
G_G12         0 N165388 VALUE { 1n/1p*I(E_E102)/(V(cgd)+1m) }
C_C3         0 N164635  1n
E_ABM106         IDRVX 0 VALUE { V(IDRc1T)/(4*{IDRc2})+{IDRo1}    }
E_ABM22         CGS 0 VALUE { {C8}+ 0.5*({C7}- {C8})*(1+tanh(-1.5*(V(G0,S)-1.7)))    }
R_R2         D1 D3  0.1m
E_ABM24         CDS 0 VALUE { {C5} + 0.5*({C6}- {C5})*(1+tanh(-0.02*(V(D3,S)-140))) +
+0.5*({C4}- {C6})*(1+tanh(-0.09*(V(D3,S)-60)))    }
C_C4         0 N165388  1n
E_ABM104         IDRC1T 0 VALUE { {IDRc1}*(1+V(DTEMP)*{TCIDRc1})    }
R_R105         0 N164635  10Meg
E_ABM2         DTEMP 0 VALUE { V(VTEMP)-{NORMTEMP}    }
L_L1         D D3  100p
E_ABM101         IDRI1 0 VALUE { max(0,(-V(D1,S0)-{IDRo1})*V(IDRc1T))    }
E_ABM9         PSI 0 VALUE { V(P1M)*V(VOVDRV)    }
R_R106         0 N165388  10Meg
E_ABM14         ALPHAT 0 VALUE { {Alpha}*(1+V(DTEMP)*{TCA})    }
R_R103         N164557 G0  100u
E_ABM23         CGD 0 VALUE { {C3} + 0.5*({C2}- {C3})*(1+tanh(-0.01*(V(D3,G0)-70))) +
+0.5*({C1}- {C2})*(1+tanh(-0.1*(V(D3,G0)-20)))    }
G_G1         D0 S0 VALUE { V(ID, 0) }
E_ABM5         P10T 0 VALUE { {P10}*(1+V(DTEMP)*{TCP10})    }
E_E100         DX S VALUE { V(N153327, 0) }
E_ABM7         DP1T 0 VALUE { {P1S}*(1+V(DTEMP)*{TCP1S})-V(P10T)    }
E_ABM8         P1M 0 VALUE { V(P10T)+V(dP1T)*tanh({P1alpha}*abs(V(D0,S0)))    }
R_R6         D0 S0  100Meg
E_ABM11         VTHT 0 VALUE { {VTHX}*(1+V(DTEMP)*{TCVTH})    }
R_R104         N165310 G0  100u
C_C2         0 N153327  1n
E_ABM13         IPKT 0 VALUE { {IPK}*(1+V(DTEMP)*{TCIPK})    }
R_R9         D0 D2  100
E_ABM15         ID 0 VALUE {  V(IPKT)*(1+tanh(V(PSI)))*tanh(V(AlphaT)*V(D0,S0))*V(SUBTH)    }
E_ABM105         IDRO2 0 VALUE { -V(IDRc1T)/(4*{IDRc2})+{IDRo1}    }
E_E101         N164557 S VALUE { V(N164635, 0) }
R_R4         0 S  100Meg
E_ABM102         IDRI2 0 VALUE { (V(Vdsat)-V(IDRo2))*(V(Vdsat)-V(IDRo2))*{IDRc2}    }
R_R1         D3 D2  0.1m
R_R3         S S0  {Rs}
R_R5         G0 G  {RG}
E_E102         N165310 D3 VALUE { V(N165388, 0) }
E_ABM1         VTEMP 0 VALUE { {TEMP}    }
E_ABM3         VPK 0 VALUE { {Vpk0}+({dVpk}*tanh( {vpkalpha}*abs(V(D0,S0))))*(1+V(DTEMP)*{TCVPK})    }
R_R102         DX D3  100u
E_ABM16         RDT 0 VALUE { {RD0}*(1+V(DTEMP)*{TCRD})    }
R_R8         D D3  1
G_G100         D1 S0 VALUE { -max(V(IDRI1),V(IDRI2)) }
G_G6         D0 S0 VALUE { max(V(ILK, 0),0)*1u }
G_G10         0 N153327 VALUE { 1n/1p*I(E_E100)/(V(cds)+1m) }
E_ABM4         VOVDRV 0 VALUE { V(G0,S0)-V(VPK)    }
G_G11         0 N164635 VALUE { 1n/1p*I(E_E101)/(V(cgs)+1m) }
E_ABM103         VDSAT 0 VALUE { min(max(-V(D1,S0),V(IDRo2)),V(IDRvx))    }
.ENDS NV6169_FET
*$

****************************************************************************
*
* NV6169 Gate Driver - rev. 04/13/2022 (NV6247 v2.0)
*
****************************************************************************
.SUBCKT NV6169_DRV VDD EN PWM GDRV SK
.PARAM  TD=10n NORMTEMP=25 ILSMAX=5 IHSMAX=5 RDSONLS=0.19 RDSONHS=1 GMVC=0.1
+  GMTC=-0.001 VITH=2.5 VITHTC=0.002 VIHYS=0.5 VITHMIN=2.2 VITHMAX=2.9
V_V2 VREFCT SK 1.13
D_D2 SK OUT DBODY
E_ABM2 CMULT 0 VALUE {(1+({GMVC}*(V(vdd,SK)-7)))*(1+{GMTC}*(V(VTEMP)-
+ {NORMTEMP}))}
V_V1 N127098 SK {VITH}
R_R10 PRE N133592 1k
R_R1 PWMC PWMCT 1.72k
C_C4 SK N127094 1p
R_R5 OUT GDRV 1m
G_G2 OUT SK VALUE {{ILSMAX}*tanh(V(OUT,SK)/({ILSMAX}*
+ {RDSONLS}))*0.5*(1-tanh(2.5*(V(PRE, SK)-1.5)))*V(CMULT)}
R_R4 SK OUT 10Meg
G_G1 VDD OUT VALUE {{IHSMAX}*tanh((V(VDD,SK)-V(OUT,SK))/
+({IHSMAX}*{RDSONHS}))*0.5*(1+tanh(2.5*(V(PRE,SK)-3.5)))*V(CMULT)}
X_U4 N127094 N127098 ENOUT VDD SK COMP_HYST_VAR3 PARAMS: VHIGH=8
+ VLOW=1m VHYS={VIHYS}
E_E2 ENIN SK VALUE {IF(V(ENOUT, SK)>2.5,5,0)}
X_U2 PWMCT VREFCT N133592 ENIN SK COMP_HYST_VAR3 PARAMS: VHIGH=8
+ VLOW=0 VHYS=100m
R_R8 N127094 EN 1k
X_U1 PWM N127098 PWMC ENIN SK COMP_HYST_VAR3 PARAMS: VHIGH=2 VLOW=0
+ VHYS={VIHYS}
C_C5 SK PRE 0.92p
C_C1 SK PWMCT {TD/1000}
R_R3 SK VDD 10Meg
E_ABM1 VTEMP 0 VALUE {{TEMP}}
D_D1 OUT VDD DBODY
R_R100 ENOUT SK 10Meg
.ENDS NV6169_DRV
*$

****************************************************************************
*
* NV61xx OPA
*
****************************************************************************
.SUBCKT NV_OPA INP INM VDD OUT VSS GNDA params: R0=1e5 C0=100n Ro=10
R1 GNDA q {R0}
R2 GNDA inp 10Meg
R3 GNDA inm 10Meg
C1 q GNDA {C0}
G1 GNDA q VALUE {V(inp,GNDA)-V(inm,GNDA)}
E1 N001 GNDA VALUE {max(min(v(q,GNDA),v(vdd,GNDA)),v(vss,GNDA))}
R4 N001 out {Ro}
G2 vdd GNDA VALUE {max(V(N001,out)/{Ro},0)}
G3 GNDA vss VALUE {max(-V(N001,out)/{Ro},0)}
D1 q Vclp DBODY
D2 Vclm q DBODY
E2 Vclp GNDA VALUE {V(VDD,GNDA)}
E3 GNDA Vclm VALUE {V(GNDA,VSS)}
.ENDS NV_OPA

****************************************************************************
*
* NV61xx Hysteretic comparator
*
****************************************************************************
.SUBCKT COMP_HYST_VAR3 NINV INV OUT VX VG params: VHIGH=5 VLOW=100m VHYS=50m
Rvx VX VG 10Meg
G_hl HiL VG Value { -min(V(VX,VG),{VHIGH}) }
R_hl HiL VG 1
G_ll LoL VG Value { -min(V(VX,VG),{VLOW}) }
R_ll LoL VG 1
G_Hyst HYST NINV Value { -{VHYS}/2*tanh(500*V(HYST,INV)) }
G_Comp CompOut VG Value { -(V(LoL,VG) + (V(HiL,VG)-V(LoL,VG))*0.5*(tanh(500*V(HYST,INV))+1) ) }
R_Comp CompOut VG 1
C_Comp Compout VG 100p
R_Hsyt HYST NINV 1
RO CompOut OUT 100
.ENDS COMP_HYST_VAR3
*$

****************************************************************************
*
* NV6169 Logic Cell - rev. 04/25/2022
*
****************************************************************************
.subckt nv6169_logic DPWR EN PWM OCP SCP DGND EN_OUT DRV FLT_OUT
D1 N001 CT DBODY
C1 CT DGND 50p
R1 N001 PWM 5
R2 CT PWM 2486k
C2 EN DGND 30p
XX5 DRV DGND DPWR LEB nv_delay_v2 params: delay=117n
XX4 PWM DGND DPWR N002 nv_inv_v2 params: delay=10n
XX6 LEB PWM DGND DPWR PROT_EN nv_and_2_v2 params: delay=100p
XX7 PROT_EN PROT DGND DPWR nR nv_nand_2_v2 params: delay=100p
XX8 N002 nR DGND DPWR nS nv_nand_2_v2 params: delay=100p
XX9 nQ nS DGND DPWR Q nv_nand_2_v2 params: delay=10p
XX10 Q nR DGND DPWR nQ nv_nand_2_v2 params: delay=1n
XX2 CT EN DGND DPWR EN_OUT nv_or_2_v2 params: delay=10n
XX3 PWM Q DGND DPWR DRV EN_OUT nv_and_3_v2 params: delay=10p
XX1 EN_OUT nQ DGND DPWR FLT_OUT nv_and_2_v2 params: delay=1n
XX11 N003 SCP DGND DPWR PROT nv_or_2_v2 params: delay=7n
R3 N003 OCP 1k
C3 N003 DGND 5p
.ends nv6169_logic
*$

.subckt nv_and_2_v2 A B DGND DPWR Y params: delay=1n
E_B1 N001 DGND VALUE {(tanh(5*( V(A,DGND)-V(th)+ 0.5*(V(AH,DGND)-1)) )+1)}
E_B2 N004 DGND VALUE {V(DPWR,DGND)*max(min(1000*(V(td,DGND)-0.5),1),0)}
E_B3 th 0 VALUE {0.5*V(DPWR,DGND)}
E_B4 N002 DGND VALUE {(tanh(5*( V(B,DGND)-V(th)+ 0.5*(V(BH,DGND)-1)) )+1)}
E_B5 N003 DGND VALUE {V(AH,DGND)*V(BH,DGND)/4}
R1 td N003 1.4427
C1 td DGND ={delay}
R2 N001 AH 10
C2 Y DGND 10p
R3 Y N004 10
C3 AH DGND 1p
R4 N002 BH 10
C4 BH DGND 1p
.ends nv_and_2_v2
*$

.subckt nv_and_3_v2 A B DGND DPWR Y C params: delay=1n
E_B1 N001 DGND VALUE {(tanh(5*( V(A,DGND)-V(th)+ 0.5*(V(AH,DGND)-1)) )+1)}
E_B2 N004 DGND VALUE {V(DPWR,DGND)*max(min(1000*(V(td,DGND)-0.5),1),0)}
E_B3 th 0 VALUE {0.5*V(DPWR,DGND)}
E_B4 N002 DGND VALUE {(tanh(5*( V(B,DGND)-V(th)+ 0.5*(V(BH,DGND)-1)) )+1)}
E_B5 N003 DGND VALUE {V(AH,DGND)*V(BH,DGND)*V(CH,DGND)/8}
E_B6 N005 DGND VALUE {(tanh(5*( V(C,DGND)-V(th)+ 0.5*(V(CH,DGND)-1)) )+1)}
R1 td N003 1.4427
C1 td DGND ={delay}
R3 Y N004 10
C2 Y DGND 10p
R2 N001 AH 10
C3 AH DGND 1p
R4 N002 BH 10
C4 BH DGND 1p
R5 N005 CH 10
C5 CH DGND 1p
.ends nv_and_3_v2
*$

.subckt nv_nand_2_v2 A B DGND DPWR Y params: delay=1n
E_B1 N001 DGND VALUE {(tanh(5*( V(A,DGND)-V(th)+ 0.5*(V(AH,DGND)-1)) )+1)}
E_B2 N004 DGND VALUE {V(DPWR,DGND)*max(min(1000*(0.5-V(td,DGND)),1),0)}
E_B3 th 0 VALUE {0.5*V(DPWR,DGND)}
E_B4 N002 DGND VALUE {(tanh(5*( V(B,DGND)-V(th)+ 0.5*(V(BH,DGND)-1)) )+1)}
E_B5 N003 DGND VALUE {V(AH,DGND)*V(BH,DGND)/4}
R1 td N003 1.4427
C1 td DGND ={delay}
R2 N001 AH 10
C2 Y DGND 10p
R3 Y N004 10
C3 AH DGND 1p
R4 N002 BH 10
C4 BH DGND 1p
.ends nv_nand_2_v2
*$

.subckt nv_nand_3_v2 A B DGND DPWR Y C params: delay=1n
E_B1 N001 DGND VALUE {(tanh(5*( V(A,DGND)-V(th)+ 0.5*(V(AH,DGND)-1)) )+1)}
E_B2 N004 DGND VALUE {V(DPWR,DGND)*max(min(1000*(0.5-V(td,DGND)),1),0)}
E_B3 th 0 VALUE {0.5*V(DPWR,DGND)}
E_B4 N002 DGND VALUE {(tanh(5*( V(B,DGND)-V(th)+ 0.5*(V(BH,DGND)-1)) )+1)}
E_B5 N003 DGND VALUE {V(AH,DGND)*V(BH,DGND)*V(CH,DGND)/8}
E_B6 N005 DGND VALUE {(tanh(5*( V(C,DGND)-V(th)+ 0.5*(V(CH,DGND)-1)) )+1)}
R1 td N003 1.4427
C1 td DGND ={delay}
R3 Y N004 10
C2 Y DGND 10p
R2 N001 AH 10
C3 AH DGND 1p
R4 N002 BH 10
C4 BH DGND 1p
R5 N005 CH 10
C5 CH DGND 1p
.ends nv_nand_3_v2
*$

.subckt nv_or_2_v2 A B DGND DPWR Y params: delay=1n
E_B1 N001 DGND VALUE {(tanh(5*( V(A,DGND)-V(th)+ 0.5*(V(AH,DGND)-1)) )+1)}
E_B2 N004 DGND VALUE {V(DPWR,DGND)*max(min(1000*(V(td,DGND)-0.5),1),0)}
E_B3 th 0 VALUE {0.5*V(DPWR,DGND)}
E_B4 N002 DGND VALUE {(tanh(5*( V(B,DGND)-V(th)+ 0.5*(V(BH,DGND)-1)) )+1)}
E_B5 N003 DGND VALUE {max(V(AH,DGND),V(BH,DGND))/2}
R1 td N003 1.4427
C1 td DGND ={delay}
R3 Y N004 10
C2 Y DGND 10p
R2 N001 AH 10
C3 AH DGND 1p
R4 N002 BH 10
C4 BH DGND 1p
.ends nv_or_2_v2
*$

.subckt nv_inv_v2 IN DGND DPWR OUT params: delay=1n
E_B1 N001 DGND VALUE {(tanh(5*( V(IN,DGND)-V(th)+ 0.5*(V(H,DGND)-1)) )+1)}
E_B2 N003 DGND VALUE {V(DPWR,DGND)*max(min(1000*(0.5-V(td,DGND)),1),0)}
E_B3 th 0 VALUE {0.5*V(DPWR,DGND)}
E_B5 N002 DGND VALUE {V(H,DGND)/2}
R1 td N002 1.4427
C1 td DGND ={delay}
R3 OUT N003 10
C2 OUT DGND 10p
R2 N001 H 10
C3 H DGND 1p
.ends nv_inv_v2
*$

.subckt nv_delay_v2 IN DGND DPWR OUT params: delay=1n
E_B1 N001 DGND VALUE {(tanh(5*( V(IN,DGND)-V(th)+ 0.5*(V(H,DGND)-1)) )+1)}
E_B2 N003 DGND VALUE {V(DPWR,DGND)*max(min(1000*(V(td,DGND)-0.5),1),0)}
E_B3 th 0 VALUE {0.5*V(DPWR,DGND)}
E_B5 N002 DGND VALUE {V(H,DGND)/2}
R1 td N002 1.4427
C1 td DGND ={delay}
R3 OUT N003 10
C2 OUT DGND 10p
R2 N001 H 10
C3 H DGND 1p
.ends nv_delay_v2
*$

.model DBODY  D(Is=30n N=1 Rs=0.1)


