This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Is the THS3491 simulation model supposed to be able to do a reasonable job of modelling noise ? I ask because I'm getting 300% higher noise predictions in simulation from the THS3491 compared to THS3001. From my calculations using the datasheet values for the THS3001 at x2 gain I get pretty good correlation between calculation and simulation model, but for the THS3491 ditto between THS3001 and THS3491 using datasheet vales but enter the simulation model noise is way off 3x higher. Is this a known issue ? Any workarounds ? Would really like to be able to get some good simulation results for noise !
morning Steve,
I was working on model tests anyway here, which one are you using? there is RGT and DDA models and updates over time, a file attach would be best
Morning Mike, I'm using the RGT model (see below)
*****************************************************************************
** This model is designed as an aid for customers of Texas Instruments.
** TI and its licensors and suppliers make no warranties, either expressed
** or implied, with respect to this model, including the warranties of
** merchantability or fitness for a particular purpose. The model is
** provided solely on an "as is" basis. The entire risk as to its quality
** and performance is with the customer.
*****************************************************************************
*
** Released by: WEBENCH(R) Design Center, Texas Instruments Inc.
* Part: THS3491RGT
* Date: 2/16/18
* Model Type: All In One
* Simulator: TINA-TI
* Simulator Version: 9.3.150.328 SF-TI
* EVM Order Number: N/A
* EVM Users Guide: N/A
* Datasheet: SBOS875 - August 2017
*
* Model Version: 1.0
*
*****************************************************************************
*
* Updates:
*
* Version 1.0 : Release to Web
*
*
*****************************************************************************
* Notes:
* 1. The model aligns with the data sheeet for +15V, -15V operation
* for the following parameters at T =25C:
* BW for G = 5 V/V, Slew rate, Noise, VOUT versus IOUT ,
* CMRR, PSRR, Enable time, Disable Time, VOS, IIB, VOH, VOL
* 2. The PD threshold is 1V above the REF voltage
* 3. The model does not duplicate the real device operation over temperature.
* 4. The model may not align with device operation at power supplies lower than
* +15V/-15V or 30V.
*****************************************************************************
*
*
.SUBCKT THS3491RGT INP INN FB OUT PD_not VCC VEE GND
RFB OUT FB 1u
VREF REF GND 0
R_R23 0 MID 1k TC=0,0
G_G5 INP GNDF INP GNDF 2e-5
R_R9 CNTRL_AND_SHDN IN_COMP 1000 TC=0,0
E_E9 N1561220 GND INPUTP_ICMR GND 0.9992
R_R15 INPUTN_GBW GNDF 0.001 TC=0,0
D_D3 GND N1561570 D_IN_CLMP
E_E5 INPUTP_CMRR INPUTP_ICMR OUT_CMRR GNDF 0
R_R4 INN INPUT_OUTN 0.1 TC=0,0
X_U119 N_AND_SHDN SHDN GNDF GND N1561298 NAND2
C_C6 GNDF IN_COMP 0.07n TC=0,0
C_C10 N1623290 INPUTN_ICMR 20p TC=0,0
X_U124 INPUTP_CMRR N1563258 VICM VCC VEE GNDF VOS
D_D2 N1561570 GND D_IN_CLMP
X_U120 N1561298 N1561298 GNDF GND CNTRL_AND_SHDN NAND2
R_R19 REF 0 1e6 TC=0,0
R_R24 FULL N1560624 1 TC=0,0
X_U105 INN_OUT_CNTRL INN VCC VEE GNDF DEV_DIS
X_U118 AND_CNTRLS AND_CNTRLS GNDF GND N_AND_SHDN NAND2
R_R21 EN N1560848 1 TC=0,0
R_R18 N1622379 N1561294 15 TC=0,0
R_R30 N1622379 N1623290 50 TC=0,0
E_E4 INPUTN_CMRR INPUTN_ICMR OUT_CMRR GNDF 0
D_D1 IN_COMP CNTRL_AND_SHDN Dpdn
E_E3 GNDF 0 N1561272 N1561036 0.5
D_D4 GND N1561616 D_IN_CLMP
X_U108 GNDF INPUT_OUTN femt_inv
E_E1 N1561272 0 VCC 0 1
E_E10 N1560610 GNDF INPUT_TF GNDF 2
C_C7 GNDF N1560200 457f TC=0,0
*C_C7 GNDF N1560200 559f TC=0,0
R_R20 PD_NOT 0 1e6 TC=0,0
X_U114 INP_OUT_CNTRL INN_OUT_CNTRL GNDF GND AND_CNTRLS NAND2
X_U121 VCC VEE INPUT_OUTN INPUTN_CMRR GNDF PSRR
D_D5 N1561616 GND D_IN_CLMP
R_R10 GNDF EN 10k TC=0,0
C_C12 INPUTN_ICMR GNDF 1.2p TC=0,0
X_U111 INPUTP_CMRR GNDF VICM VCC VEE N1561920 GNDF IIBP
X_U106 INP_OUT_CNTRL INP VCC VEE GNDF DEV_DIS
X_U104 EN IN_COMP N1562372 GNDF COMPARATOR
R_R25 N1560610 N1560200 50 TC=0,0
X_U126 INPUT_TF INPUTP_GBW INPUTN_GBW FULL EN VCC VEE GNDF
+ gbw_slew_ovrdrv_lim
X_ZOUT INPUT_AMMETER OUTPUT_CLAMP ZOL
E_E2 N1561036 0 VEE 0 -1
X_U127 VCC VEE INPUT_VCLAMP OUTPUT_CLAMP VIMON EN GNDF VOUTvsIOUT_NROS_SHDN
L_L4 INPUTN_ICMR N1622379 3.5nH
R_R29 N1623290 INPUTN_ICMR 25 TC=0,0
*C_C9 GNDF N1559782 4.7p TC=0,0
C_C9 GNDF N1559782 4p TC=0,0
V_V5 N1561920 GNDF 1Vdc
R_R16 GNDF INPUTP_GBW 0.001 TC=0,0
X_U112 VCC VEE N1560624 MID LOW N1560848 VIMON GNDF IQ_MODES
X_F1 N1561220 N1561294 INPUTP_GBW INPUTN_GBW DEV_SCH3_F1
R_R13 OUTPUT_TF INPUT_VCLAMP 1 TC=0,0
L_L2 N1560200 N1559762 3.29nH
*L_L2 N1560200 N1559762 4.018nnH
X_U110 INPUTN_CMRR GNDF VICM VCC VEE N1562100 GNDF IIBN
V_V6 N1562100 GNDF 1Vdc
E_E12 OUTPUT_TF GNDF N1559782 GNDF 1
R_R22 0 LOW 1k TC=0,0
C_C8 GNDF N1559762 2.99p TC=0,0
*C_C8 GNDF N1559762 3.65p TC=0,0
X_U122 VICM INP INN GNDF VICM
R_R17 INPUTN_GBW INPUTP_GBW 0.002 TC=0,0
X_U107 N1563258 GNDF femt
E_E11 N1559770 GNDF N1559762 GNDF 1.052
X_U113 REF PD_NOT VCC VEE GND GNDF FULL MID LOW SHDN MODE_CNTRL_2BITS
R_R26 GNDF N1559762 50 TC=0,0
L_L1 OUT_CMRR N1563334 8uH
V_V4 N1562372 GNDF 0.5Vdc
*R_R28 GNDF N1559782 280 TC=0,0
R_R28 GNDF N1559782 200 TC=0,0
G_G1 OUT_CMRR GNDF VICM GNDF 0
C_C11 GNDF INP 1.5p TC=0,0
X_U123 INPUT_OUTP N1563258 vnse
R_R27 N1559770 N1559776 20 TC=0,0
*R_R27 N1559770 N1559776 26.1 TC=0,0
X_U103 INPUT_AMMETER OUT VIMON GNDF AMETER
R_R3 INP INPUT_OUTP 0.1 TC=0,0
*L_L3 N1559776 N1559782 3.6nH
L_L3 N1559776 N1559782 2nH
R_R5 N1563334 GNDF 1 TC=0,0
.model D_IN_CLMP d is=1e-014 n=0.02 rs=1
.MODEL Dpdn D IS=10f
.ENDS
*$
.subckt DEV_SCH3_F1 1 2 3 4
F_F1 3 4 VF_F1 -1000
VF_F1 1 2 0V
.ends DEV_SCH3_F1
*$
*
*
.SUBCKT NAND2 A B GNDF GND Y
.PARAM VTHRESH = 0.5
.PARAM VTRUE = 1
.PARAM VFALSE = 0
E_ABMGATE Y GNDF VALUE = {VTRUE - (IF((V(A,GNDF) > VTHRESH) & (V(B,GNDF) > VTHRESH),VTRUE,VFALSE))}
.ENDS
*
*
.SUBCKT AND2 A B GNDF Y
.PARAM VTHRESH = 0.5
.PARAM VTRUE = 1
.PARAM VFALSE = 0
E_ABMGATE YINT GNDF VALUE = {IF((V(A,GNDF) > VTHRESH) & (V(B,GNDF) > VTHRESH),VTRUE,VFALSE)}
.ENDS
*$
*
*
.SUBCKT VOS OUT IN VICM VCC VEE GNDF
.PARAM SCALE = 1e-6
.PARAM DRIFT = 3u
.PARAM VICM_SHIFT = 1u
.PARAM VCC_SHIFT = 1u
.PARAM VOS_TYP = 1000
EDRIFT NDRIFT 0 VALUE = {DRIFT*(TEMP - 27)}
ESHIFT NSHIFT 0 VALUE = {VICM_SHIFT*V(VICM,GNDF)}
EVCC NVCC 0 VALUE = {V(VCC,VEE)}
EVCCSHIFT NVCCSHIFT 0 VALUE = {VCC_SHIFT*V(NVCC)}
EVOS OUT IN VALUE = {SCALE*(VOS_TYP + V(NDRIFT) + V(NSHIFT) + V(NVCCSHIFT))}
.ENDS
*$
*
*
.SUBCKT dev_dis OUT_CNTRL IN VCC VEE GNDF
.PARAM VSmax = 33
.PARAM VSmin = 14
.PARAM VINHR = 3.8
*
EIN1 NIN1 0 VALUE = {V(VCC,IN)}
EIN2 NIN2 0 VALUE = {V(IN,VEE)}
EVCC NVCC 0 VALUE = {V(VCC,VEE)}
*
EN1 N1 GNDF VALUE = {0.5*(1 + SGN(VSmax - V(NVCC)))}
EN2 N2 GNDF VALUE = {0.5*(1 + SGN(V(NVCC) - VSmin))}
EN3 N3 GNDF VALUE = {0.5*(1 + SGN(V(NIN1) - VINHR))}
EN4 N4 GNDF VALUE = {0.5*(1 + SGN(V(NIN2) - VINHR))}
EOUT OUT_CNTRL GNDF VALUE = {V(N1,GNDF)*V(N2,GNDF)*V(N3,GNDF)*V(N4,GNDF)}
.ENDS
*$
*
*
.SUBCKT FEMT_INV 1 2
.PARAM NLFF = 100000
.PARAM FLWF = 100
.PARAM NVRF = 20000
.PARAM GLFF={PWR(FLWF,0.25)*NLFF/1164}
.PARAM RNVF={1.184*PWR(NVRF,2)}
.MODEL DVNF D KF={PWR(FLWF,0.5)/1E11} IS=1.0E-16
I1 0 7 10E-3
I2 0 8 10E-3
D1 7 0 DVNF
D2 8 0 DVNF
E1 3 6 7 8 {GLFF}
R1 3 0 1E9
R2 3 0 1E9
R3 3 6 1E9
E2 6 4 5 0 10
R4 5 0 {RNVF}
R5 5 0 {RNVF}
R6 3 4 1E9
R7 4 0 1E9
G1 1 2 3 4 1E-6
C1 1 0 1E-15
C2 2 0 1E-15
C3 1 2 1E-15
.ENDS
*$
*
*
.SUBCKT PSRR VDD VSS VI VO GNDF
.PARAM PSRRP = 82
.PARAM PSRRN = 80
.PARAM fpsrr = 1
.PARAM PI = 3.141592
.PARAM RPSRR = 1
.PARAM GPSRRP = {PWR(10,-PSRRP/20)/RPSRR}
.PARAM GPSRRN = {PWR(10,-PSRRN/20)/RPSRR}
.PARAM LPSRR = {RPSRR/(2*PI*fpsrr)}
.PARAM VCC_NOM = 24
EVCC NVCC 0 VALUE = {ABS(V(VDD,0) - VCC_NOM/2)}
EVSS NVSS 0 VALUE = {ABS(V(VSS,0) + VCC_NOM/2)}
G1 0 1 NVCC 0 {GPSRRP}
R1 1 2 {RPSRR}
L1 2 0 {LPSRR}
*
G2 0 3 NVSS 0 {GPSRRN}
R2 3 4 {RPSRR}
L2 4 0 {LPSRR}
G3 6 0 VALUE = {ABS(V(1,0))}
G4 6 0 VALUE = {ABS(V(3,0))}
R3 6 0 1
E1 VO VI 6 0 1
.ENDS
*
*
*
.SUBCKT IIBP OUT IN INP VCC VEE MODE GNDF
.PARAM SCALE = 1u
.PARAM IIB_LOW = 0
.PARAM MAX_IIB_LOW = 0
.PARAM DRIFT_LOW = 0
*.PARAM IIB_HI = 1.5
.PARAM IIB_HI = 1.5
.PARAM MAX_IIB_HI = 10
.PARAM DRIFT_HI = 0.015
**
EIIB_HI NIIB_HI 0 VALUE = {MAX(MIN((IIB_HI + DRIFT_HI*(TEMP - 27)),MAX_IIB_HI),-MAX_IIB_HI)}
EIIB_LOW NIIB_LOW 0 VALUE = {MAX(MIN((IIB_LOW + DRIFT_LOW*(TEMP - 27)),MAX_IIB_LOW),-MAX_IIB_LOW)}
****
GOUT IN OUT VALUE = {SCALE*((1-V(MODE,GNDF))*V(NIIB_LOW) + V(MODE,GNDF)*V(NIIB_HI))}
**
.ENDS
*$
*
*
.SUBCKT COMPARATOR OUT IN REF GNDF
.PARAM VOUT_MAX = 1
.PARAM VOUT_MIN = 0
.PARAM GAIN = 1e4
EOUT OUT GNDF VALUE = {MAX(MIN(GAIN*V(IN,REF),VOUT_MAX),VOUT_MIN)}
.ENDS
*$
*
*
.SUBCKT GBW_SLEW_OVRDRV_LIM VO VIP VIM FULL SHDN VCC VEE GNDF
***
* FULL, MID, LOW are nodes that control BW modes.
* For active state they should equal V(x,GNDF) = 1V where x = FULL,MID or LOW
* The nodes should made active one at a time.
***
.PARAM Aol = 140
.PARAM GBW_FULL = 22e10
.PARAM SRP = 9000e6
.PARAM SRN = 9000e6
.PARAM IT = 0.001
.PARAM PI = 3.141592
.PARAM IP = {IT*MAX(1,SRP/SRN)}
.PARAM IN = {IT*MIN(-1,-SRN/SRP)}
.PARAM CC = {IT*MAX(1/SRP,1/SRN)}
**
.PARAM FP_FULL = {GBW_FULL/PWR(10,AOL/20)}
.PARAM RC_FULL = {1/(2*PI*CC*FP_FULL)}
.PARAM GC_FULL = {PWR(10,AOL/20)/RC_FULL}
**
**
GFULLp GNDF OUTG1pFULL VALUE = {MAX(MIN(GC_FULL*V(FULL,GNDF)*V(SHDN,GNDF)*V(VIP,VIM),IP),IN)}
**
**
RG1pFULL OUTG1pFULL GNDF {RC_FULL}
Cg1dpFULL OUTG1pFULL GNDF {CC} IC=0
S1pFULLp OUTG1pFULL N1pFULLp OUTG1pFULL N1pFULLp SW1pFULLp
S1pFULLn OUTG1pFULL N1pFULLn OUTG1pFULL N1pFULLn SW1pFULLn
E1pFULLp N1pFULLp GNDF VALUE = {V(VCC,GNDF) - 1.3}
E1pFULLn N1pFULLn GNDF VALUE = {V(VEE,GNDF) + 1.3}
.MODEL SW1pFULLp VSWITCH RON = 200k ROFF = 1e9 VON = 0.1 VOFF = 0.0
.MODEL SW1pFULLn VSWITCH RON = 200k ROFF = 1e9 VON = -0.1 VOFF = 0.0
**
**
EHIZN NHIZN GNDF VALUE = {V(SHDN,GNDF)*(V(OUTG1pFULL,GNDF))}
E1OUT VO GNDF VALUE = {MAX(MIN(V(NHIZN,GNDF), 100*V(VCC,GNDF)),100*V(VEE,GNDF))}
**
**
.ENDS
*$
*
*
.SUBCKT ZOL OUT_ZOL IN_ZOL
E_E7 N165882 0 N_SUM 0 1
E_E3 AOL_ZO_IN 0 IN_ZOL OUT_ZOL 1
C_C5 N181461 Z2 1000e-5p TC=0,0
R_R9 0 Z2 1k TC=0,0
R_R6 OUT_E4_ZO OUT_ZOL 3600 TC=0,0
E_E4 OUT_E4_ZO 0 N173483 0 1
R_R8 N173483 N165882 1k TC=0,0
R_R10 P1 N169815 1k TC=0,0
G_G3 N_SUM 0 P1 0 -1
E_E5 N176951 0 AOL_ZO_IN 0 100
C_C7 0 P1 1.4p TC=0,0
G_G4 N_SUM 0 N176951 0 -1
C_C4 N166300 Z1 762p TC=0,0
G_G6 N_SUM 0 P2 0 -1
R_R7 0 Z1 1k TC=0,0
C_C6 0 P2 0.531 TC=0,0
R_R12 P2 N190211 10k TC=0,0
G_G5 N_SUM 0 Z2 0 -1
E_E6 N166300 0 AOL_ZO_IN 0 3100
E_E8 N181461 0 AOL_ZO_IN 0 3100
R_R5 0 N_SUM 1 TC=0,0
E_E9 N169815 0 Z1 0 1
E_E10 N190211 0 AOL_ZO_IN 0 3100
R_R11 0 OUT_ZOL 360 TC=0,0
.ENDS
*
*
.SUBCKT vclamp_w_sense VI VO VDD VSS VIMON GNDF
.PARAM ISC = 0.620
.PARAM ROS = 160
.PARAM REQ = 158
E1P N1P GNDF VALUE = {V(VIMON,GNDF)*REQ}
E2P N2P GNDF VALUE = {ISC*ROS-V(VDD,GNDF)}
EHRPOS HRPOS GNDF VALUE = {MIN(V(N1P,GNDF),V(N2P,GNDF))}
EHRNEG HRNEG GNDF VALUE = {MAX(V(VIMON,GNDF)*REQ,-ISC*ROS-V(VSS,GNDF))}
EPCLIP VDD_CLP GNDF VALUE = {V(VDD,GNDF) - 1.4 + V(HRPOS,GNDF)}
ENCLIP VSS_CLP GNDF VALUE = {V(VSS,GNDF) + 1.4 + V(HRNEG,GNDF)}
ECLAMP VO GNDF VALUE = {LIMIT(V(VI,GNDF), V(VSS_CLP,GNDF), V(VDD_CLP,GNDF))}
.ENDS
*$
*
*
.SUBCKT VOUTvsIOUT_NROS_SHDN VCC VEE VI VO VIMON SHDN GNDF
*
.PARAM ISC_POS = 0.620
.PARAM ISC_NEG = -0.620
.PARAM IMAXLIN_POS = 0.540
.PARAM IMAXLIN_NEG = -0.540
.PARAM VOUTMAXLIN = 13.1
.PARAM VOUTMINLIN = -13.1
.PARAM VHR_VCC = -1.4
.PARAM VHR_VEE = 1.4
.PARAM VCC_DATASHEET = 15
.PARAM VEE_DATASHEET = -15
.PARAM VMID_DATASHEET = {(VCC_DATASHEET + VEE_DATASHEET)/2}
.PARAM VHR_MAX_LINEAR = {VOUTMAXLIN - VCC_DATASHEET}
.PARAM VHR_MIN_LINEAR = {VOUTMINLIN - VEE_DATASHEET}
ER1 NR1 GNDF VALUE = {(VOUTMAXLIN - (VCC_DATASHEET + VHR_VCC))/IMAXLIN_POS}
ER2 NR2 GNDF VALUE = {(VOUTMINLIN - (VEE_DATASHEET + VHR_VEE))/IMAXLIN_NEG}
EVOUT1pos NVOUT1_MAX GNDF VALUE = {(V(VCC,GNDF) + VHR_VCC) + V(NR1,GNDF)*V(VIMON,GNDF)}
EVOUT1neg NVOUT1_MIN GNDF VALUE = {(V(VEE,GNDF) + VHR_VEE) + V(NR2,GNDF)*V(VIMON,GNDF)}
EM1 NM1 GNDF VALUE = {(VOUTMAXLIN - VMID_DATASHEET)/(IMAXLIN_POS - ISC_POS)}
EM2 NM2 GNDF VALUE = {(VOUTMINLIN - VMID_DATASHEET)/(IMAXLIN_NEG - ISC_NEG)}
EVMID NVMID GNDF VALUE = {(V(VCC,GNDF) + V(VEE,GNDF))/2}
E1 N1 GNDF VALUE = {V(VCC,GNDF) + VHR_MAX_LINEAR}
E2 N2 GNDF VALUE = {V(VEE,GNDF) + VHR_MIN_LINEAR}
EV1 NV1 GNDF VALUE = {V(NVMID,GNDF) + (V(N1,GNDF) - V(NVMID,GNDF))/(1 - IMAXLIN_POS/ISC_POS)}
EV2 NV2 GNDF VALUE = {V(NVMID,GNDF) + (V(N2,GNDF) - V(NVMID,GNDF))/(1 - IMAXLIN_NEG/ISC_NEG)}
EVOUT2pos NVOUT2_MAX GNDF VALUE = {V(NV1,GNDF) + V(VIMON,GNDF)*V(NM1,GNDF)}
EVOUT2neg NVOUT2_MIN GNDF VALUE = {V(NV2,GNDF) + V(VIMON,GNDF)*V(NM2,GNDF)}
EHRPOS HRPOS GNDF VALUE = {MIN(V(NVOUT1_MAX,GNDF),V(NVOUT2_MAX,GNDF))}
EHRNEG HRNEG GNDF VALUE = {MAX(V(NVOUT1_MIN,GNDF),V(NVOUT2_MIN,GNDF))}
*
*** Clamp output if req'd
ECLAMP VO GNDF VALUE = {V(SHDN,GNDF)*MAX(MIN(V(VI,GNDF), V(HRPOS,GNDF)), V(HRNEG,GNDF))}
**
*
.ENDS
*
*
.SUBCKT IQ_MODES VCC VEE FULL MID LOW SHDN VIMON GNDF
.PARAM IQ_FULL = 0.0168
.PARAM IQ_MID = 0.0162
.PARAM IQ_LOW = 0.0112
.PARAM IQ_SHDN = 0.000670
GIQ VCC VEE VALUE = {IQ_FULL*V(FULL,GNDF)*V(SHDN,GNDF) + IQ_MID*V(MID,GNDF)
+ + IQ_LOW*V(LOW,GNDF) + IQ_SHDN*(1 - V(SHDN,GNDF))}
*
GOUTP VCC GNDF VALUE = {IF(V(VIMON,GNDF) > 0, V(VIMON,GNDF)*V(SHDN,GNDF),0)}
GOUTN GNDF VEE VALUE = {IF(V(VIMON,GNDF) <= 0, V(VIMON,GNDF)*V(SHDN,GNDF),0)}
.ENDS
*$
*
*
.SUBCKT IIBN OUT IN INN VCC VEE MODE GNDF
.PARAM SCALE = 1u
.PARAM IIB_LOW = 0
.PARAM MAX_IIB_LOW = 0
.PARAM DRIFT_LOW = 0
.PARAM IIB_HI = 1
.PARAM MAX_IIB_HI = 20
.PARAM DRIFT_HI = 0.015
**
EIIB_HI NIIB_HI 0 VALUE = {MAX(MIN((IIB_HI + DRIFT_HI*(TEMP - 27)),MAX_IIB_HI),-MAX_IIB_HI)}
EIIB_LOW NIIB_LOW 0 VALUE = {MAX(MIN((IIB_LOW + DRIFT_LOW*(TEMP - 27)),MAX_IIB_LOW),-MAX_IIB_LOW)}
****
GOUT OUT IN VALUE = {SCALE*((1-V(MODE,GNDF))*V(NIIB_LOW) + V(MODE,GNDF)*V(NIIB_HI))}
.ENDS
*$
*
*
.SUBCKT VICM OUT INP INN GNDF
EOUT OUT GNDF VALUE = {0.5*(V(INP,GNDF) + V(INN,GNDF))}
.ENDS
*$
*
*
.SUBCKT FEMT 1 2
.PARAM NLFF = 100000
.PARAM FLWF = 100
.PARAM NVRF = 15000
.PARAM GLFF={PWR(FLWF,0.25)*NLFF/1164}
.PARAM RNVF={1.184*PWR(NVRF,2)}
.MODEL DVNF D KF={PWR(FLWF,0.5)/1E11} IS=1.0E-16
* END CALC VALS
I1 0 7 10E-3
I2 0 8 10E-3
D1 7 0 DVNF
D2 8 0 DVNF
E1 3 6 7 8 {GLFF}
R1 3 0 1E9
R2 3 0 1E9
R3 3 6 1E9
E2 6 4 5 0 10
R4 5 0 {RNVF}
R5 5 0 {RNVF}
R6 3 4 1E9
R7 4 0 1E9
G1 1 2 3 4 1E-6
C1 1 0 1E-15
C2 2 0 1E-15
C3 1 2 1E-15
.ENDS
*$
*
*
.SUBCKT MODE_CNTRL_2BITS B1_IN B2_IN VCC VEE GND GNDF FULL MID LOW SHDN
* REF PD_NOT VCC VEE GND GNDF FULL MID LOW SHDN
.PARAM VTHRESH = 1.0
.PARAM B1_POS_HR = -5
.PARAM B1_NEG_HR = 0
.PARAM VTRUE = 1
.PARAM VFALSE = 0
*
EREF_HI NREF_HI GNDF VALUE = {0.5*(1 + SGN(V(VCC,B1_IN) + B1_POS_HR))}
EREF_LOW NREF_LOW GNDF VALUE = {0.5*(1 + SGN(V(B1_IN,VEE) + B1_NEG_HR + 1p))}
EPDz NPDZ GNDF VALUE = {0.5*(1 + SGN(V(B2_IN,B1_IN) - VTHRESH))}
EPDZ_HI NPDZ_HI GNDF VALUE = {0.5*(1 + SGN(V(VCC,GNDF) - V(B2_IN,GNDF)))}
EPDZ_LOW NPDZ_LOW GNDF VALUE = {0.5*(1 + SGN(V(B2_IN,GNDF) - V(VEE,GNDF)))}
*
EFULL FULL GNDF VALUE = {VTRUE}
EMID MID GNDF VALUE = {VFALSE}
ELOW LOW GNDF VALUE = {VFALSE}
*ESHDN SHDN GNDF VALUE = {V(NREF_HI,GNDF)*V(NREF_LOW,GNDF)*V(NPDZ,GNDF)*V(NPDZ_HI,GNDF)*V(NPDZ_LOW,GNDF)}
ESHDN SHDN GNDF VALUE = {V(NPDZ,GNDF)}
*
.ENDS
*$
*
*
.SUBCKT VNSE 1 2
.PARAM NLF = 30
.PARAM FLW = 10
.PARAM NVR = 1.7
.PARAM GLF={PWR(FLW,0.25)*NLF/1164}
.PARAM RNV={1.184*PWR(NVR,2)}
.MODEL DVN D KF={PWR(FLW,0.5)/1E11} IS=1.0E-16
* END CALC VALS
I1 0 7 10E-3
I2 0 8 10E-3
D1 7 0 DVN
D2 8 0 DVN
E1 3 6 7 8 {GLF}
R1 3 0 1E9
R2 3 0 1E9
R3 3 6 1E9
E2 6 4 5 0 10
R4 5 0 {RNV}
R5 5 0 {RNV}
R6 3 4 1E9
R7 4 0 1E9
E3 1 2 3 4 1
C1 1 0 1E-15
C2 2 0 1E-15
C3 1 2 1E-15
.ENDS
*$
*
*
.SUBCKT AMETER VI VO VIMON GNDF
.PARAM GAIN = 1
VSENSE VI VO DC = 0
EMETER VIMON GNDF VALUE = {I(VSENSE)*GAIN}
.ENDS
*$
Are you using LTSpice or TINA? Can you show your test set up? Oddly, I am headed down porting the THS3491 into LTSpice also - not there yet.
Hi Mike, for some reason it won't let me reply directly to your last post. I'm using LTSpice as I've been using it for years so can work much faster. Also I have a library of parts and designs I've built up over the years, ADI, LT, Maxim, TI, Apex etc so easier to stick with LTSpice and add new TI parts than try to learn/port everything to Tina.
So the THS3491 is coming up from a few places, I did run through some noise sims on the model you inserted above - it seems to have trouble simulating on the direct inverting current noise test (crashed TINA a number of times) but I changed freq sweep range and it ran, the original model also ran fine. If it runs, the current model seems to have the correct noise terms - if you are seeing higher output noise.
1. Provide your test setup circuit
2. Maybe it is an LTSpice artifact.
3021.THS3491 model noise testing Jan2022.docx
Oh and incidentally, the last I looked the THS3001 was not recommended for new design - it has a production variation issue that bites occasionally,