**************************************************************************** * 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. * **************************************************************************** **** **** TS3011 Spice macromodel subckt *** *** December 2011 **** ************ CONNECTIONS: **** NON-INVERTING INPUT **** | INVERTING INPUT **** | | POSITIVE POWER SUPPLY **** | | | NEGATIVE POWER SUPPLY **** | | | | OUTPUT **** | | | | | **** | | | | | .SUBCKT TS3011 VP VM VCCP VCCN VS X_C_FALL V_VALORI_C_FALL 0 VREF V_C_FALL VCCAP_PSPICE +PARAMS: CAP_scale={CAP_SCALE} Rserie=1 X_C_VOD V_VALORI_C_VOD 0 NET0209 VREF VCCAP_PSPICE +PARAMS: CAP_scale={CAP_SCALE} Rserie=1.0 X_C_RISE V_VALORI_C_RISE 0 V_C_RISE VREF VCCAP_PSPICE +PARAMS: CAP_scale={CAP_SCALE} Rserie=1 X_C_VCC V_VALORI_C_VCC 0 NET0285 VREF VCCAP_PSPICE +PARAMS: CAP_scale={CAP_SCALE} Rserie=1 M_NMOS2 VO_DIFF_PLUS VM VEE_N VCCN_ENHANCED MOS_N L={L} W={W} M_NMOS1 VO_DIFF_MINUS NET0277 VEE_N VCCN_ENHANCED MOS_N L={L} W={W} IIN_BIAS_VM VM VREF DC 1p IEE_N VEE_N VCCN_ENHANCED DC {IEE} IIN_BIAS_VP VP VREF DC 1p V58 NET279 NET214 DC {VD_COMPENSAZIONE} V59 NET240 NET287 DC {VD_COMPENSAZIONE} VREADIO VB_4 VS DC 0 VVLIM_LOW_VB NET295 NET220 DC {VD_COMPENSAZIONE} VPROT_IN_P_VCCP NET223 NET256 DC {V_DPROT} V_ENHANCE_VCCN VCCN_ENHANCED VCCN DC {VCCN_ENHANCE} VVLIM_HIGH_VB NET244 NET291 DC {VD_COMPENSAZIONE} V_ENHANCE_VCCP VCCP_ENHANCED VCCP DC {VCCP_ENHANCE} VPROT_IN_M_VCCN NET231 NET355 DC {V_DPROT} VPROT_IN_P_VCCN NET233 NET234 DC {V_DPROT} VPROT_IN_M_VCCP NET343 NET246 DC {V_DPROT} D40 NET214 VB_D_VOD DIODE_NOVd D_ENABLE_RISE VB_D_G_RF V_C_RISE DIODE_rf DILIM_SINK VB_3_SINK VB_3 DIODE_ILIM D41 VB_D_VOD NET240 DIODE_NOVd D_ENABLE_FALL V_C_FALL VB_D_G_RF DIODE_rf DILIM_SOURCE VB_3 VB_3_SOURCE DIODE_ILIM D3 VB_D_G NET244 DIODE_NOVd DPROT_IN_M_VCCP VM NET246 DIODE_VLIM D4 NET220 NET0271 DIODE_NOVd DPROT_IN_M_VCCN NET231 VM DIODE_VLIM DPROT_IN_P_VCCP NET0277 NET256 DIODE_VLIM DPROT_IN_P_VCCN NET233 NET0277 DIODE_VLIM CSERIE_C_VOD VB_D_VOD NET0209 1u C84 VM VP 1.2p CSERIE_C_VCC VB_D_VOD_VCC NET0285 1u E_RO_3 VB_3 VB_4 VALUE={IF( I(VreadIo)>0 +,I(VreadIo)*V(Ro_3_val_VOH),I(VreadIo)*V(Ro_3_val_VOL) )} E_VDEP_SOURCE_2 VAL_VDEP_SOURCE_FILTERED 0 +VALUE={IF(V(val_vdep_source)>=0, 0, V(val_vdep_source))} * E_RO_3_VAL_VOL RO_3_VAL_VOL 0 PWL(1) VCCP VCCN ( 2.2 , 17.5 ) ( 2.7 , *+12.5 ) ( 5.0 , 2.5 ) E_RO_3_VAL_VOL RO_3_VAL_VOL 0 VALUE={TABLE( V(VCCP,VCCN) , 2.2 , 17.5 , 2.7 , +12.5 , 5.0 , 2.5 )} E65 NET279 0 VCCN 0 1.0 E_VDEP_SOURCE_1 VAL_VDEP_SOURCE 0 VALUE={( -138.01552795031046 + +114.34782608695646*V(Vccp,Vccn) +-4.968944099378868*V(Vccp,Vccn)*V(Vccp,Vccn)) -5000*I(VreadIo) } 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 4.6822981366459573E-4 +1.0065217391304365E-4 -1.6459627329192566E-5 * E_C_VOD V_VALORI_C_VOD 0 PWL(1) VP VM ( -200m , {1.6p/CAP_SCALE} ) ( *+-150m , {1.375p/CAP_SCALE} ) ( -100m , {1.09p/CAP_SCALE} ) ( -50m , *+{0.768p/CAP_SCALE} ) ( -15m , {0.5p/CAP_SCALE} ) ( -5m , *+{0.465p/CAP_SCALE} ) ( +5m , {0.43p/CAP_SCALE} ) ( +15m , *+{0.464p/CAP_SCALE} ) ( +50m , {0.687p/CAP_SCALE} ) ( +100m , *+{1p/CAP_SCALE} ) ( +150m , {1.27p/CAP_SCALE} ) ( +200m , *+{1.49p/CAP_SCALE} ) E_C_VOD V_VALORI_C_VOD 0 VALUE={TABLE( V(VP,VM) , -200m , 1.6p , +-150m , 1.375p , -100m , 1.09p , -50m , 0.768p , -15m , 0.5p , -5m , +0.465p , +5m , 0.43p , +15m , 0.464p , +50m , 0.687p , +100m , +1p , +150m , 1.27p , +200m , 1.49p)/CAP_SCALE} E_VOL VB_D_G NET0271 VALUE={0} E_VDEP_SINK_2 VAL_VDEP_SINK_FILTERED 0 +VALUE={IF(V(val_vdep_sink)<=0 , 0 , V(val_vdep_sink))} E_ICCSAT_HIGH ICC_OUT_HIGH 0 POLY(1) VCCP VCCN 4.338819875776397E-4 +3.804347826086955E-5 -7.763975155279502E-6 * E_HYST_VAL HYST_VAL 0 PWL(1) VCCP VCCN ( 2.2 , 2m ) ( 2.7 , 2m ) ( 5.0 *+, 2m ) E_HYST_VAL HYST_VAL 0 VALUE={2m} E66 NET287 0 VCCP 0 1.0 * E_RO_3_VAL_VOH RO_3_VAL_VOH 0 PWL(1) VCCP VCCN ( 2.2 , 37.5 ) ( 2.7 , *+25 ) ( 5.0 , 7.5 ) E_RO_3_VAL_VOH RO_3_VAL_VOH 0 VALUE={TABLE( V(VCCP,VCCN) , 2.2 , 37.5 , 2.7 , +25 , 5.0 , 7.5 )} EVLIM_HIGH_VB NET291 0 VCCP 0 1.0 * E_C_VCC V_VALORI_C_VCC 0 TABLE {IF(V(VP,VM)>0,V(Vccp,Vccn), *+-V(Vccp,Vccn))}=(-5 {1f/CAP_scale}) (-2.7 {1f/CAP_scale}) (-2.2 *+{0.055p/CAP_scale}) (2.2 {0.14p/CAP_scale}) (2.7 {0.08p/CAP_scale}) (5 *+{1f/CAP_scale}) E_C_VCC V_VALORI_C_VCC 0 VALUE={IF( V(VP,VM)>0, +TABLE( V(VCCP,VCCN), 2.2 , 0.14p , 2.7 , 0.08p , 5 , 1f), +TABLE( V(VCCP,VCCN), 2.2 , 0.055p , 2.7 , 1f , 5 , 1f))/CAP_scale} EILIM_SOURCE VB_3_SOURCE VDEP_SOURCE VB_3 0 1.0 * E_C_FALL V_VALORI_C_FALL 0 PWL(1) VCCP VCCN ( 2.2 , {2.46p/CAP_SCALE} *+) ( 2.7 , {1.255p/CAP_SCALE} ) ( 5.0 , {0.44p/CAP_SCALE} ) E_C_FALL V_VALORI_C_FALL 0 VALUE={TABLE( V(VCCP,VCCN) , 2.2 , 2.46p , + 2.7 , 1.255p , 5.0 , 0.44p)/CAP_SCALE} EVLIM_LOW_VB NET295 0 VCCN 0 1.0 E2_REF NET357 0 VCCN 0 1.0 * E_VIO VP NET0390 PWL(1) VCCP VCCN ( 2.2 , -0.2m ) ( 2.7 , -0.1m ) ( *+5.0 , -0.4m ) E_VIO VP NET0390 VALUE={TABLE( V(VCCP,VCCN) , 2.2 , -0.2m , 2.7 , -0.1m , +5.0 , -0.4m )} EILIM_SINK VB_3_SINK VDEP_SINK VB_3 0 1.0 E_VREF VREF 0 NET351 0 1.0 E_VDEP_SOURCE_3 VDEP_SOURCE 0 VALUE={IF( abs(I(VreadIo))<1m , 0 , +V(val_vdep_source_filtered))} E1_REF NET319 0 VCCP 0 1.0 * E_C_RISE V_VALORI_C_RISE 0 PWL(1) VCCP VCCN ( 2.2 , {2.55p/CAP_SCALE} *+) ( 2.7 , {1.58p/CAP_SCALE} ) ( 5.0 , {0.43p/CAP_SCALE} ) E_C_RISE V_VALORI_C_RISE 0 VALUE={TABLE( V(VCCP,VCCN) , 2.2 , 2.55p , + 2.7 , 1.58p , 5.0 , 0.43p)/CAP_SCALE} E_VDEP_SINK_1 VAL_VDEP_SINK 0 VALUE={( 82.5186335403726 +-60.21739130434778*V(Vccp,Vccn) +-4.03726708074535*V(Vccp,Vccn)*V(Vccp,Vccn) ) -5000*I(VreadIo) } E_HYST NET0277 NET0390 VALUE={IF( V(VCCP,VCCN)>=VCCMIN , + +V(VS,Vref)/( V(Vccp,Vccn)/V(Hyst_val)) , 0)} R_RISE_FALL VREF VB_D_G_RF {R_RISE_FALL} R_DELAY_VOD VREF VB_D_VOD {R_DELAY} R_ICCSAT_HIGH ICC_OUT_HIGH 0 1K RO_2 VB_3 VB_2 1m RO_1 VREF VB_2 {RO_1} RPROT_IN_P_VCCP NET223 VCCP 15K RPROT_IN_M_VCCP VCCP NET343 15K R_ICCSAT_LOW ICC_OUT_LOW 0 1K RD1 VCCP_ENHANCED VO_DIFF_MINUS {RD} RD2 VCCP_ENHANCED VO_DIFF_PLUS {RD} R_DELAY_VCC VREF VB_D_VOD_VCC {R_DELAY} R1_REF NET319 NET351 1Meg R_GAIN VB_D_G VREF {R1} RPROT_IN_M_VCCN VCCN NET355 15K R2_REF NET351 NET357 1Meg RPROT_IN_P_VCCN NET234 VCCN 15K G_IOUT_SOURCED VCCP 0 VALUE={IF(I(VreadIo)>0, I(VreadIo),0)} G_ICCSAT VCCP VCCN VALUE={IF( V(VS)>V(Vccp,Vccn)/2 , +V(Icc_out_high), V(Icc_out_low) ) } G_RISE_FALL VREF VB_D_G_RF VB_D_G VREF {1/R_RISE_FALL} G_GAIN VREF VB_D_G VB_D_VOD_VCC VREF 1 G_DELAY_VOD VB_D_VOD VREF VO_DIFF_MINUS VO_DIFF_PLUS {1/R_DELAY} G_OUT VREF VB_2 VB_D_G_RF VREF {1/RO_1} G_IOUT_SINKED VCCN 0 VALUE={IF(I(VreadIo)>0, 0, I(VreadIo))} G_DELAY_VCC VB_D_VOD_VCC VREF VREF VB_D_VOD {1/R_DELAY} ******************************************************************************* * .PARAM CAP_scale=1e-15 .PARAM VCCMIN=2.2 .PARAM A0=10E+06 .PARAM IEE=40u .PARAM W=100u .PARAM L=10u .PARAM gm_mos=200u .PARAM RD=10k .PARAM R_delay={RD} .PARAM R1={A0/(gm_mos*RD)} .PARAM Ro_1=20 .PARAM R_rise_fall=1000 .PARAM VCCP_enhance=150m .PARAM VCCN_enhance=-1100m .PARAM V_DPROT=150m .PARAM Vd_compensazione=-788.4u .MODEL MOS_N NMOS LEVEL=1 VTO=+0.65 KP=100E-6 .MODEL DIODE_rf D LEVEL=1 IS=10E-15 N=1 CJO=10f .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 * ******************************************************************************* .ENDS TS3011 ******************************************************* ******* SUBCKT VOLTAGE CONTROLLED CAPACITOR for SPICE ******************************************************* .SUBCKT VCCAP_PSPICE Vctrl_plus Vctrl_minus Vout_plus Vout_minus + PARAMS: CAP_scale=1u Rserie=1 *EVin 2 0 VALUE={1/V(Vctrl_plus,Vctrl_minus)} *EV2 8 Vout_plus POLY(2) 6 0 2 0 0 0 0 0 1 0 0 0 0 0 *RR1 8 Vout_minus {Rserie} *GI1 0 6 Vout_minus 8 {1/Rserie} *RR2 0 6 100G *CC1 6 0 {CAP_scale} C1 Vout_plus Vout_minus C=CAP_scale*V(Vctrl_plus,Vctrl_minus) Rser=Rserie Rpar=100G ;simplify with Arbitrary Capacitance-Based model .ENDS VCCAP_PSPICE *********************************************************