**************************************************
* Library of Isolation Amplifier VIA2000SD
* Copyright VISHAY, Inc. 2025 All Rights Reserved.
**************************************************
* === Spice Model ===
* ==== VIA2000SD ====
*
* VDD1 = Power supply voltage Side 1
* VIN = Input voltage
* SHTDN = Shutdown input, active high
* GND1 = Ground Side 1
* GND2 = Ground Side 2
* OUTN = Output voltage inverting
* OUTP = Output voltage non-inverting
* VDD2 = Power supply voltage Side 2
*
*$

.options method=gear
.options abstol=1e-6

.SUBCKT VIA2000SD VDD1 VIN SHTDN GND1 GND2 OUTN OUTP VDD2
X_RX         GND2 VDD2 N001 N002 OUTN_INNER OUTP_INNER RX_TOP  
X_U1         N003 N004 N001 N002 N005 VCLIP PARAMS: VCLIP=2.56 VCLIP2=10M GAIN1=0.19512
X_U5         VDD2 GND2 N006 OUTN PG_VDD2 
X_U3         VDD2 GND2 N007 OUTP PG_VDD2 
V_V3         N008 GND2 2.73Vdc
X_U4         VDD1 GND1 SHTDN N008 VDD2 GND2 OUTN_INNER N006 FAILSAFE 
V_V2         N009 GND2 0.17Vdc
Rp1          VDD1 GND1 3.846154MEG TC=-6M,22U
X_U2         VDD1 GND1 SHTDN N009 VDD2 GND2 OUTP_INNER N007 FAILSAFE 
V_V1         N005 0 0.9Vdc
X_TX         GND1 VDD1 VIN N004 N003 TX_TOP  
GIS1         VDD1 GND1 VALUE = {(9.0877M+0.424M*V(VDD1,GND1)+7.692U*TEMP)*(V(VDD1,GND1)-V(SHTDN,GND1))/V(VDD1,GND1)}
Rs4          VDD1 GND1 1.5625G TC=-6M,22U
GIS2         VDD2 GND2 VALUE = {(5.285M+0.13M*V(VDD2,GND2)+5U*TEMP)*(V(VDD2,GND2)-V(SHTDN,GND1))/V(VDD2,GND2)}
Rs2          VDD2 GND2 1.5625G TC=-6M,22U
.ENDS VIA2000SD


.SUBCKT TX_TOP GND1 VDD1 VIN VON VOP  
X_BUFFER     N100 N101 N102 TX_SIGNALCHAIN  
R_R1         N103 N100  1G TC=0,0 
V_V1         N104 0 0.9Vdc
X_U1         VOS_IN 0 VOS PARAMS:  OFFSET=0.4M DVOS_DT=10U
E_E2         N105 N100 0 PSRR_IN 1
E_E3         N103 0 GND1 0 1
X_psrr       PSRR_IN VDD1 psrr1  
X_U2         N102 N101 VON VOP N104 GAIN_SET PARAMS:  TCEG=5U GAIN_ERROR=0.3M GAIN0=1
C_C1         N103 N100  7p  TC=0,0 
E_E1         VIN N105 0 VOS_IN 1
.ENDS TX_TOP


.SUBCKT VCLIP INP INN NOUT POUT VM Params: VCLIP=2.56 VCLIP2=10m gain1=0.19512
.Param VL={gain1*VCLIP} VL2={gain1*VCLIP2}
G_G3         VM NOUT 0 N200 1
G_G2         VM POUT N200 0 1
R_R2         VM POUT  0.5
R_R3         NOUT VM  0.5
B_G1         0 N200 I = Limit(V(INP,INN), VL2, VL)
R_R1         N200 0 1
.ENDS VCLIP


.SUBCKT RX_TOP GND2 VDD2 VIN VIP VON VOP
X_psrr2      PSRR_IN VDD2 psrr2
E_E2         N300 0 GND2 0 1
X_RX_SIGNALCHAIN N300 VIN N301 VON VOP RX_SIGNALCHAIN
E_E1         VIP N301 PSRR_IN 0 1
.ENDS RX_TOP


.SUBCKT FAILSAFE VDD1 GND1 SHTDN Vsafe VDD2 GND2 IN OUT
X_U1         VDD1 GND1 N400 GND1 HYSTCOMPGD_0 PARAMS: VTHRES=2.6 VHYST=200M VOUTH=1 VOUTL=0 ROUT=100 DELAY=80N
X_U2         SHTDN GND1 N401 GND1 HYSTCOMPGD_0 PARAMS: VTHRES=2.6 VHYST=200M VOUTH=1 VOUTL=0 ROUT=100 DELAY=80N
B_G2         GND2 OUT   I = (IF ( V(N400,0) < 0.5|V(N401,0)>0.5, V(Vsafe,GND2), V(IN,GND2)) )
R_2          GND2 OUT 1
.ENDS FAILSAFE


.SUBCKT PG_VDD2 VDD2 GND2 IN OUT
X_U1         VDD2 GND2 N500 GND2 HYSTCOMPGD_0 PARAMS: VTHRES=2.6 VHYST=200M VOUTH=1 VOUTL=0 ROUT=100 DELAY=80N
B_G2         GND2 OUT   I = (IF ( V(N500,0) > 0.5, V(IN,GND2), V(GND2,GND2)) )
R_2          GND2 OUT 1
.ENDS PG_VDD2


.SUBCKT TX_SIGNALCHAIN Vip VOUTN VOUTP  
V_V1         N1100 0 1.152Vdc
X_OPA        N1101 N1102 VOUTN VOUTP N1100 opadiff  
C_C1         0 VIP  2p  TC=0,0 
R_R1         N1103 N1102  240k TC=0,0 
R_R2         0 N1101  240k TC=0,0 
C_C3         N1101 VOUTN  2.2p  TC=0,0 
R_R4         N1101 VOUTN  120k TC=0,0 
R_R5         N1102 VOUTP  120k TC=0,0 
R_R3         N1104 VIP  5k TC=0,0 
C_C4         N1102 VOUTP  2.2p  TC=0,0 
X_opa1st     N1103 N1104 N1103 opa_signal  
C_C2         0 N1104  5p  TC=0,0 
.ENDS TX_SIGNALCHAIN


.SUBCKT psrr1 psrr_in VDD1
R_R1         0 N1200  0.1
R_R2         N1201 0  1
E_E1         PSRR_IN 0 N1200 0 1
R_R3         N1202 N1201  9
V_V1         N1203 0 5Vdc
G_G1         N1200 0 0 N1202 10
G_G2         0 N1202 VDD1 N1203 125.8925u
L_L1         N1202 N1201  14.33uH
.ENDS psrr1


.SUBCKT gain_set INN INP NOut POut VM Params: TCEG=5u gain_error=0.3M  gain0=1
.Param TC_R1={TCEG/gain0}
.Param gain={gain0+gain_error}
G_G3         VM NOUT 0 N1300 1
G_G2         VM POUT N1300 0 1
R_R2         VM POUT  0.19512
R_R1         N1300 0 1 TC={TC_R1}
R_R3         NOUT VM  0.19512
G_G1         0 N1300 N1301 0 1
E_E1         N1301 0 INP INN {gain}
.ENDS gain_set


.SUBCKT VOS 1 2 Params: offset=0.4m dvos_dt=10u
.Param I0={1m}
.Param R0={1}
.Param VDC={offset-I0*R0}
.Param TC1={dvos_dt/(I0*R0)}
E_E1         1 N1400 0 N1401 -1
I_I1         0 N1401 DC {I0}
R_R1         N1401 0  {R0} TC={TC1}
V_V1         N1400 2 {VDC}
.ENDS VOS


.SUBCKT RX_SIGNALCHAIN GND2 VIN VIP VON VOP
X_buffer1    N3100 N3101 N3102 N3103 N3104 opadiff  
R_R12        N3105 VOP       195.57k
C_C7         N3106 N3107    300f
R_R2         VIN N3108       56.7k
R_R4         N3108 N3100    56.7k
R_R14        N3103 N3107    38.16k
V_V2         N3109 GND2      1.45
R_R1         VIP N3110       56.7k
X_buffer2    N3111 N3112 VON VOP N3109 opadiff
R_R3         N3110 N3101    56.7k
C_C6         N3113 VON       1p
R_R8         N3106 N3113    38.16k
R_R6         N3100 N3102    226.8k
C_C5         N3105 VOP       1p
C_C3         N3100 N3102    1p
C_C4         N3113 N3105    2p
R_R10        N3113 N3111    85.86k
R_R9         N3105 N3112    85.86k
R_R5         N3101 N3103    226.8k
R_R13        N3113 VON       195.57k
R_R7         N3107 N3105    38.16k
R_R15        N3102 N3106    38.16k
C_C2         N3103 N3101    1p
V_V1         N3104 GND2      0.9
C_C1         N3108 N3110    2p
.ENDS RX_SIGNALCHAIN


.SUBCKT psrr2 psrr_in VDD1
R_R1         0 N3200      0.1
E_E1         PSRR_IN 0     N3200 0 1
R_R3         N3201 N3202 9
V_V1         N3203 0      DC 3.3
G_G2         0 N3201      VDD1 N3203 79.433u
R_R2         N3202 0      1
L_L1         N3201 N3202 35uH
G_G1         N3200 0      0 N3201 10
.ENDS psrr2


.SUBCKT opadiff INN INP NOUT POUT VM  
G_G1         N10000 0 VALUE = {Limit(0.05*V(INP,INN), -10m, 10m) }
R_R1         VM N10000 100Meg
C_C1         VM N10000 7.957p
G_G3         VM NOUT N10000 VM 1
R_R3         NOUT VM 1
G_G2         VM POUT VM N10000 1
R_R2         VM POUT 1
.ENDS opadiff


.SUBCKT opa_signal INN INP VOUT  
G_G1         N11000 0 VALUE = {Limit(0.05*V(INP,INN), -10m, 10m) }
R_R1         0 N11000  100Meg TC=0,0 
E_E1         VOUT 0 N11000 0 -1
C_C1         0 N11000  7.957p  TC=0,0 
.ENDS opa_signal


.PARAM MinADel = {1n}

.SUBCKT HYSTCOMPGD_0 inp inm out gnd Params: Vthres=0 Vhyst=1 VoutH=5 VoutL=0 Rout=1 Delay=1N
.Param Tdel = {MAX(Delay,MinADel)}
.Param Rdel = {IF ( (Tdel > 1E-15) & (Rout < 1), 1, Rout ) }
.Param VoutM={(VoutH+VoutL)/2}
.Param VthH={Vthres+Vhyst}
.Param VthL={Vthres-Vhyst}
.Param Cout={Tdel/(0.693*(Rdel+1u))}
.Param Gdlh={1/Rdel}
.Param Gdhl={1*Gdlh}
Bthr         gnd thr I = (IF ( V(out,gnd) < {VoutM}, {VthH}, {VthL}) )
Rthr         gnd thr 1
Bout         gnd out I = LIMIT( IF((V(inp,inm) > V(thr,gnd)), (VoutH - V(out,gnd))*Gdlh, (VoutL - V(out,gnd))*Gdhl),-1m, 1m)
Cout         out gnd {Cout}
Rout         out gnd {5e3*Rdel}
.ENDS HYSTCOMPGD_0

* Date: 2025-09-04
* ================================================================================================== *
* NOTE:
* Although models can be a useful tool in evaluating device performance,
* they cannot model exact device performance under all conditions, nor
* are they intended to replace breadboarding for final verification.
* Models provided by VISHAY Semiconductors GmbH (Vishay) do not represent
* all of the specifications and operating characteristics of the product to
* which the model relates. The models attempt to describe the characteristics
* of typical products. The current data sheet information for a given
* product represents the final design guideline and includes actual
* performance specifications. The accuracy, reliability and compatibility
* of models provided by Vishay are not guaranteed or warranted in any way
* and Vishay disclaims liability of any kind whatsoever, including, without
* limitation, liability for quality, performance, merchantability and fitness
* for a particular purpose arising out of the use, or inability to use a model.
* Vishay reserves the right to change models without prior notice.
* The products described herein, including the model and any results produced
* using the model, are subject to the specific disclaimers set forth at www.vishay.com/doc?91000.
* ================================================================================================== *
