Modeling a bi-directional Transient Voltage Suppressor (TVS) for SPICE can be accomplished using two standard industry approaches:
Behavioral Math Macro-Model (B-Source with .func): Fast, convergence-friendly, and ideal for system-level SSCB transient simulations.
Back-to-Back Diode Macro-Model: Uses physical SPICE diode primitives with temperature coefficients, based on standard semiconductor manufacturer modeling techniques (e.g., Littelfuse / Vishay / IEEE EMC publications).
1. Mathematical Equations for TVS Modeling
Temperature Dependence of Breakdown Voltage (VBR)
From Figure 3, the breakdown voltage VBR shifts linearly with junction temperature TJ using a positive temperature coefficient αVBR=+0.088%/∘C=0.00088∘C−1:
VBR(TJ)=VBR(25∘C)⋅[1+αVBR⋅(TJ−25∘C)]
For 1x AK3-560C-A:
VBR(25∘C)=620 V
VBR(60∘C)=620⋅[1+0.00088⋅(60−25)]=639.1 V
For 2x AK3-560C-A Stack in Series:
VBR,stack(25∘C)=1240 V
VBR,stack(60∘C)=1240⋅[1+0.00088⋅(60−25)]=1278.2 V
Dynamic Clamping & Knee Smooth Equation
To prevent derivative discontinuities during numerical integration in SPICE, the transition from leakage to breakdown is smoothed using a hyperbolic curve-fit:
Vϵ≈1.0 V is a smoothing factor for SPICE solver convergence.
Rdyn is the dynamic slope resistance (0.175Ω per diode, or 0.35Ω for a 2-series stack).
Rleak is the stand-off resistance (IRVR≈10μA560 V=56 MΩ per diode).
The total current ITVS(V,TJ) flowing through the TVS is:
ITVS(V,TJ)=sgn(V)⋅RdynVknee(V,TJ)+RleakV
2. Behavioral Source SPICE Model (.func Implementation)
This model uses a single Behavioral Current Source (B in LTspice / NGSPICE, G in PSpice) connected between nodes A and B.
spice
* ===================================================================* BEHAVIORAL BI-DIRECTIONAL TVS DIODE STACK MODEL (2x AK3-560C-A)* Parameters: TEMP_C (Junction Temp in °C), N_SERIES (Series Count)* ===================================================================.subckt TVS_AK3_STACK A B PARAMS: TEMP_C=60 N_SERIES=2* TVS Base Parameters per Diode @ 25°C.param VBR25 = 620.0.param RDYN_SINGLE = 0.175.param RLEAK_SINGLE = 56Meg.param ALPHA = 0.00088.param VEPS = 1.0* Scaled Array Parameters with Temperature Coefficient.param VBR_T = N_SERIES * VBR25 * (1 + ALPHA * (TEMP_C - 25)).param RDYN_ARR = N_SERIES * RDYN_SINGLE.param RLEAK_ARR = N_SERIES * RLEAK_SINGLE* Mathematical Functions for SPICE.func sgn(x) { if(x > 0, 1, if(x < 0, -1, 0)) }.func vknee(v) { 0.5 * ( (abs(v) - VBR_T) + sqrt((abs(v) - VBR_T)**2 + VEPS**2) ) }.func itvs(v) { sgn(v) * (vknee(v) / RDYN_ARR) + (v / RLEAK_ARR) }* Behavioral Current SourceB1 A B I = itvs(V(A,B))* Parasitic Junction Capacitance (Coss = ~1.5nF per diode stack)C1 A B { 1.5n / N_SERIES }.ends TVS_AK3_STACK
3. Physical Back-to-Back Diode Macro-Model
This approach models the bi-directional TVS using two anti-serial ideal SPICE diodes (D1,D2) with breakdown parameters (BV, IBV), a series dynamic resistor (Rdyn), and parallel leakage resistance (Rleak).
* ===================================================================* BACK-TO-BACK PHYSICAL MACRO-MODEL FOR 2x AK3-560C-A IN SERIES* Adjust temp using standard SPICE .TEMP directive or TC1 parameter* ===================================================================.subckt TVS_AK3_PHYSICAL A B PARAMS: T_DEG=60* Series Dynamic Resistance & Leakage ResistanceR_DYN A N1 0.35R_LEAK A B 112MegC_JOINT A B 750p* Anti-Serial DiodesD1 N1 N2 TVS_DIODED2 B N2 TVS_DIODE* Diode Model definition with Temperature Coefficient TC1* BV = Breakdown Voltage @ 25C (Half per diode in anti-series configuration).model TVS_DIODE D (+ IS = 1e-11+ N = 1.05+ BV = 620.0+ IBV = 10m+ RS = 0.05+ TC1 = 0.00088+ CJO = 1.5n+ VJ = 0.75+ M = 0.33+ ).ends TVS_AK3_PHYSICAL
4. Implementation & SPICE Simulation Commands
To test this model at 25∘C and 60∘C in LTspice, NGSPICE, or PSpice:
spice
* --- SPICE Testbench Setup ---X_TVS1 OUT 0 TVS_AK3_STACK PARAMS: TEMP_C=25 N_SERIES=2X_TVS2 OUT 0 TVS_AK3_STACK PARAMS: TEMP_C=60 N_SERIES=2* Current Impulse Source (Simulating Short-Circuit Demagnetization)I_SURGE 0 OUT PULSE(0 1300 1u 100n 100n 15u 30u)* Simulation Command.tran 0.1n 35u* Operating Temperatures.step param TEMP_C list 25 60
Comments
No comments yet. Be the first to comment!