*
* WARNING : please consider following remarks before usage
*
* 1) All models are a tradeoff between accuracy and complexity (ie. simulation
* time).
*
* 2) Macromodels are not a substitute to breadboarding, they rather confirm the
* validity of a design approach and help to select surrounding component values.
*
* 3) A macromodel emulates the NOMINAL performance of a TYPICAL device within
* SPECIFIED OPERATING CONDITIONS (ie. temperature, supply voltage, etc.).
* Thus the macromodel is often not as exhaustive as the datasheet, its goal
* is to illustrate the main parameters of the product.
*
* 4) Data issued from macromodels used outside of its specified conditions
* (Vcc, Temperature, etc) or even worse: outside of the device operating
* conditions (Vcc, Vicm, etc) are not reliable in any way.
*
*** TSV6390 (WITH STAND-BY) PSpice macromodel subckt
*** Version 2.0 (February 2010) (last update: 05-10-2010)
****
************ CONNECTIONS:
**** INVERTING INPUT
**** | NON-INVERTING INPUT
**** | | OUTPUT
**** | | | POSITIVE POWER SUPPLY
**** | | | | NEGATIVE POWER SUPPLY
**** | | | | | STAND-BY
**** | | | | | |
.SUBCKT TSV6390 VM VP VS VCCP VCCN STB
LOUT VZOUT 0 {Lout}
FIOUT 0 VZOUT VREADIO 1.0
S_SW_VB2_VS VB_2 NET0247 VSTB_CTRL 0 SW_VB2_VS
S_SW_OUT VS_STB VS VSTB_CTRL 0 SW_OUT
S_SW_LEAK VS 0 VSTB_CTRL 0 SW_LEAK
S_SW_VB_VREF VB NET0224 VSTB_CTRL 0 SW_VB_VREF
G_IEE_STB VEE_N VCCN_ENHANCED POLY(2) VSTB_CTRL 0 IEE_val 0 0 0 0 0 1
G_ICC_STB VCCP VCCN POLY(2) VSTB_CTRL 0 Icc_val 0 0 0 0 0 1
G_IOUT_SINKED VCCN 0 VALUE={IF(I(VreadIo)>0, 0, I(VreadIo))}
G2_ICC_STB VCCP VCCN VALUE={ICC_STB*( 1-V(VSTB_ctrl) )}
G_I_VB VB_2 VREF VB_VREF 0 {GB}
G_ICCSAT_OUTHIGH VCCP VCCN VALUE={IF(I(V_OUTVLIM_HIGH)>1u ,
+V(Icc_out_high)*V(VSTB_ctrl), 0)}

*G_IIB_VP VREF VP TABLE {V(Vccp,Vccn)} = (+1.8 1p) (+3.3 1p) (+5.0 1p)
G_IIB_VP VREF VP VALUE={1p}

G_ICCSAT_OUTLOW VCCP VCCN VALUE={IF(I(V_OUTVLIM_LOW)>1u ,
+V(Icc_out_low)*V(VSTB_ctrl) , 0)}
G_IOUT_SOURCED VCCP 0 VALUE={IF(I(VreadIo)>0, I(VreadIo),0)}
GM1 VREF VB VOUT_DIFF__SR_VCC 0 {1/RD}

*G_IIB_VM VREF VM TABLE {V(Vccp,Vccn)} = (+1.8 1p) (+3.3 1p) (+5.0 1p)
G_IIB_VM VREF VM VALUE={1p}

G_ISTB 0 STB VALUE={ Iil_STB*(1-V(VSTB_one)) -Iih_STB*V(VSTB_one)}
G_I_IO VB_2 VREF VALUE={V(VB_Vref)*GB*( 10*( 1 -
+exp(-abs(V(v_Io_val))/3m )) ) }
RD1 VCCP_ENHANCED VO_DIFF_PLUS {RD}
RD2 VCCP_ENHANCED VO_DIFF_MINUS {RD}
R1_REF NET287 NET247 1Meg
R_ICCSAT_HIGH ICC_OUT_HIGH 0 1K
RPROT_IN_M_VCCN VCCN NET243 15K
R2_REF NET247 NET241 1Meg
RPROT_IN_P_VCCN NET406 VCCN 15K
RIN_CM_VM VREF VM {RIN_CM_VM}
ROUT NET0314 VZOUT {Rout}
RIN_DIFF VP VM 1T
RO2_1 VB_2 VREF {Ro2_1}
RIN_CM_VP VREF VP {RIN_CM_VP}
RO2_2 VB_3 VB_2 {Ro2_2}
R_ICCSAT_LOW ICC_OUT_LOW 0 1K
RPROT_IN_M_VCCP VCCP NET253 100
RPROT_IN_P_VCCP NET421 VCCP 100
RSTB_CTRL VSTB_CTRL VSTB_ONE {RSTB_ctrl}
RZOUT_IOUT_COEFF VZOUT_IOUT_COEFF NET0355 50
EVLIM_LOW_VOUT NET411 0 VALUE={V(VCCN) - V(Ro1_Vol)*I(VreadIo)}

*E_RO1_VOL RO1_VOL 0 VALUE={TABLE( V(VCCP,VCCN) , 1.8 , 45 , 3.3 , 28 , 5.0, 
*23 )}
E_RO1_VOL RO1_VOL 0 POLY(1) VCCP VCCN 80.97794117647057
+-24.708333333333343 2.6225490196078454

EVLIM_HIGH_VOUT NET408 0 VALUE={V(VCCP) - V(Ro1_Voh)*I(VreadIo)}

*E_RO1_VOH RO1_VOH 0 VALUE={TABLE( V(VCCP,VCCN) , 1.8 , 54 , 3.3 , 42 , 5.0,
*+27 )}
E_RO1_VOH RO1_VOH 0 POLY(1) VCCP VCCN 66.87132352941175 -6.6875
+-0.25735294117647034

EREAD_VS NET0247 0 VS 0 1.0
E_VDEP_SINK_1 VAL_VDEP_SINK 0 VALUE={ ( 233.4963235294118
+-191.5625*V(Vccp,Vccn) + 15.992647058823547*PWR(V(Vccp,Vccn),2) )
+-5000*I(VreadIo)}
EZOUT_VCC_COEFF VZOUT_VCC_COEFF 0 POLY(1) VCCP VCCN 1.6599264705882346
+-0.0645833333333332 -0.01348039215686276
E0 VSTB_ZERO 0 VALUE={IF( (V(STB,Vccn)/V(Vccp,Vccn)) <=
+V(VIL_STB_val) , 0 , 0.5 )}
EZOUT_IOUT_COEFF NET0355 0 VALUE={IF( I(VreadIo)>=0 , (
+Zout_Iout_coeff_MIN + (1.0 -
+Zout_Iout_coeff_MIN)*exp(-abs(I(VreadIo)/Iout_dc_tau__source)) ) , (
+Zout_Iout_coeff_MIN + (1.0 -
+Zout_Iout_coeff_MIN)*exp(-abs(I(VreadIo)/Iout_dc_tau__sink)) ) )}
EREAD_VREF NET0224 0 VREF 0 1.0

*E2 VIH_STB_VAL 0 VALUE={TABLE( V(VCCP,VCCN) , 1.8 , {1.3/1.8} , 5.0 ,
*+{4.5/5.0} )}
E2 VIH_STB_VAL 0 POLY(1) VCCP VCCN 0.6222222222222219
+0.05555555555555557

E_VDEP_SINK_2 VAL_VDEP_SINK_FILTERED 0
+VALUE={IF(V(val_vdep_sink)<=0 , 0 , V(val_vdep_sink))}
EMEAS_VOUT_DIFF VOUT_DIFF 0 VO_DIFF_PLUS VO_DIFF_MINUS 1.0
E2_REF NET241 0 VCCN 0 1.0
EILIM_SINK VB_3_SINK VDEP_SINK VB_3 0 1.0

*E3 VIL_STB_VAL 0 VALUE={TABLE( V(VCCP,VCCN) , 1.8 , {0.5/1.8} , 5.0 ,
*+{0.5/5.0} )}
E3 VIL_STB_VAL 0 POLY(1) VCCP VCCN 0.37777777777777777
+-0.05555555555555556

E_R1 NET311 VREF VALUE={I(VreadI_R1)*( R1_sink
++(R1_source-R1_sink)*1/(1+exp(-alpha_switch*(V(v_Io_val)-Io_val_switch) )
+)) }
EILIM_SOURCE VB_3_SOURCE VDEP_SOURCE VB_3 0 1.0
EVLIM_LOW_VB NET425 0 VCCN 0 1.0
E_VREF VREF 0 NET247 0 1.0
E_SR_VCC_MODULATION VOUT_DIFF__SR_VCC 0 VALUE={V(Vout_diff)*(
+0.7685661764705877 + 0.027291666666666915*V(Vccp,Vccn) +
+0.0037990196078431008*PWR(V(Vccp,Vccn),2) )}
ESTB VSTB_ONE 0 VALUE={IF( (V(STB,Vccn)/V(Vccp,Vccn)) >=
+V(VIH_STB_val) , 1 , V(VSTB_zero) )}
EZOUT VB_3 NET0236
+VALUE={V(VZout)*V(VZout_Iout_coeff)*V(VZout_Vcc_coeff)}
E_VDEP_SOURCE_2 VAL_VDEP_SOURCE_FILTERED 0
+VALUE={IF(V(val_vdep_source)>=0, 0, V(val_vdep_source))}
E_ICCSAT_HIGH ICC_OUT_HIGH 0 POLY(1) VCCP VCCN 0
E_READIO V_IO_VAL 0 VALUE={I(VreadIo)}
E_VDEP_SOURCE_3 VDEP_SOURCE 0 VALUE={IF( abs(I(VreadIo))<1m , 0 ,
+V(val_vdep_source_filtered))}
E_VDEP_SINK_3 VDEP_SINK 0 VALUE={IF( abs(I(VreadIo))<1m , 0 ,
+V(val_vdep_sink_filtered))}
E_ICCSAT_LOW ICC_OUT_LOW 0 POLY(1) VCCP VCCN -6.574632352941173E-5
+4.014583333333334E-5 -1.5931372549019734E-7
EVLIM_HIGH_VB NET416 0 VCCP 0 1.0
E_VDEP_SOURCE_1 VAL_VDEP_SOURCE 0 VALUE={ ( -106.12500000000007 +
+82.70833333333343*V(Vccp,Vccn) + 2.0833333333333175*PWR(V(Vccp,Vccn),2) )
+ -5000*I(VreadIo)}
E1_REF NET287 0 VCCP 0 1.0
E_ICC ICC_VAL 0 POLY(1) VCCP VCCN 4.027205882352942E-5
+3.958333333333329E-6 -1.2254901960784258E-7
EMEAS_VB_VREF VB_VREF 0 VB VREF 1.0
CSTB_CTRL VSTB_CTRL 0 1n
CZOUT_IOUT_COEFF VZOUT_IOUT_COEFF 0 1n
COUT2 VZOUT 0 {Cout2}
COUT NET0314 0 {Cout}
C_RO2_1 VB_2 VREF 10p
CDIFF_PARASITIC VO_DIFF_PLUS VO_DIFF_MINUS 72p
CIN_DIFF VM VP {CIN_DIFF}
CIN_CM_VP VP VREF {CIN_CM_VP}
CCOMP VB VB_2 {Ccomp}
CIN_CM_VM VM VREF {CIN_CM_VM}
DILIM_SOURCE VB_3 VB_3_SOURCE DIODE_ILIM
DPROT_IN_P_VCCP NET423 NET388 DIODE_VLIM
DVLIM_HIGH_VB VB NET400 DIODE_VLIM
DPROT_IN_M_VCCP VM NET398 DIODE_VLIM
DVLIM_LOW_VB NET426 VB DIODE_VLIM
D_OUTVLIM_LOW NET412 VB_3 DIODE_NOVd
D_OUTVLIM_HIGH VB_3 NET382 DIODE_NOVd
DPROT_IN_M_VCCN NET409 VM DIODE_VLIM
DPROT_IN_P_VCCN NET405 NET423 DIODE_VLIM
DILIM_SINK VB_3_SINK VB_3 DIODE_ILIM
V_IEE IEE_VAL 0 DC {IEE}
VREADIO NET0236 VS_STB DC 0
VPROT_IN_M_VCCP NET253 NET398 DC {V_DPROT}
VREADI_R1 VB NET311 DC 0
VVLIM_LOW_VB NET425 NET426 DC -770m
V_ENHANCE_VCCN VCCN_ENHANCED VCCN DC {VCCN_enhance}
VPROT_IN_P_VCCP NET421 NET388 DC {V_DPROT}
VOS NET423 VP DC 0
VVLIM_HIGH_VB NET400 NET416 DC -770m
V_OUTVLIM_LOW NET411 NET412 DC {Vd_compensazione}
VPROT_IN_M_VCCN NET409 NET243 DC {V_DPROT}
VPROT_IN_P_VCCN NET405 NET406 DC {V_DPROT}
V_OUTVLIM_HIGH NET382 NET408 DC {Vd_compensazione}
V_ENHANCE_VCCP VCCP_ENHANCED VCCP DC {VCCP_enhance}
M_NMOS2 VO_DIFF_MINUS VM VEE_N VCCN_ENHANCED MOS_N L={L} W={W}
M_NMOS1 VO_DIFF_PLUS NET423 VEE_N VCCN_ENHANCED MOS_N L={L} W={W}
*.ENDS
*** End of subcircuit definition.
*
* MODELS/SUBCKTS and PARAMS used by TSV639x subckt:
*
.PARAM RINCM=2.0828E+11
.PARAM CINCM=6.6478E-12
.PARAM RIN_CM_VM={2*RINCM}
.PARAM RIN_CM_VP={2*RINCM}
.PARAM CIN_CM_VM={CINCM/2}
.PARAM CIN_CM_VP={CINCM/2}
.PARAM CINDIFF=3.5657E-12
.PARAM CIN_DIFF={CINDIFF - CINCM/2}
.PARAM RD=1k
.PARAM VCCP_enhance=150m
.PARAM VCCN_enhance=-1100m
.PARAM GB=95m
.PARAM Ro = 223872
.PARAM A0_source = 5.959352977968012e+7
.PARAM A0_sink = 0.6e+6
.PARAM alpha_switch = 1e6
.PARAM Io_val_switch = -7u
.PARAM Ccomp=2.65p
.PARAM IEE=3u
.PARAM W=1.06u
.PARAM L=1u
.PARAM gm_mos=3.990140517663634e-05
.PARAM Lout = 220u
.PARAM Rout = 1.95k
.PARAM Cout = 105p
.PARAM Cout2 = 3p
.PARAM Zout_Iout_coeff_MIN= 0.04
.PARAM Iout_dc_tau__source = 0.17m
.PARAM Iout_dc_tau__sink = 0.03m
.PARAM Ro2_2=1e-3
.PARAM Ro2_1={ Ro - Ro2_2 }
.PARAM R1_sink={A0_sink/(gm_mos*GB*Ro2_1)}
.PARAM R1_source={A0_source/(gm_mos*GB*Ro2_1)}
.PARAM V_DPROT=150m
.PARAM Vd_compensazione=-788.4u
.PARAM ICC_STB = 5n
.PARAM Iout_leak_STB = 50p
.PARAM RSTB_ctrl = 33
.PARAM Iil_STB = 10p
.PARAM Iih_STB = 10p

.MODEL MOS_N NMOS LEVEL=1 VTO=+0.65 KP=500E-6
.MODEL DIODE_NOVd D LEVEL=1 IS=10E-15 N=0.001
.MODEL DIODE_VLIM D LEVEL=1 IS=0.8E-15
.MODEL DIODE_ILIM D LEVEL=1 IS=0.8E-15
.MODEL SW_VB2_VS VSWITCH VON=0.9 VOFF=0.1 RON=1T ROFF=1m
.MODEL SW_OUT VSWITCH VON=0.9 VOFF=0.1 RON=1m ROFF=1T
.MODEL SW_LEAK VSWITCH VON=0.9 VOFF=0.1 RON=1T ROFF={2.5/Iout_leak_STB -2e3}
.MODEL SW_VB_VREF VSWITCH VON=0.9 VOFF=0.1 RON=1T ROFF=1m
.ENDS
