450 lines
14 KiB
Plaintext
Executable File
450 lines
14 KiB
Plaintext
Executable File
* LMH5401
|
||
*****************************************************************************
|
||
* (C) Copyright 2012 Texas Instruments Incorporated. All rights reserved.
|
||
*****************************************************************************
|
||
** 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: LMH5401
|
||
* Date: 10/20/2013
|
||
* Model Type: All In One
|
||
* Simulator: TINA9
|
||
* Simulator Version: 9.3.50.40
|
||
* EVM Order Number: N/A
|
||
* EVM Users Guide: N/A
|
||
* Datasheet: SBOS710 - October 2014
|
||
*
|
||
* Model Version: 1.2
|
||
*
|
||
*****************************************************************************
|
||
*
|
||
* Updates:
|
||
*
|
||
* Version 1.0 : Release to Web
|
||
* Version 1.1 : Add internal input resistance
|
||
* Version 1.2 : Rev CM output connections. Add current noise
|
||
*
|
||
*****************************************************************************
|
||
* Notes:
|
||
* The model meets the following specs for 5V operation, G = 4V/V:
|
||
* 1. Turn-on and turn-off time delay
|
||
* 2. Slew Rate
|
||
* 3. CMRR vs frequency
|
||
* 4. Input and output common-mode range
|
||
* 5. Input voltage noise
|
||
* 6. Output voltage swing and output current
|
||
* 7. Quiescent current for active and power-down modes
|
||
* 8. Output common-mode bandwidth, gain and offset
|
||
* 9. HD2, HD3 vs frequency
|
||
* 10 HD2, HD3 vs. VICM and VOCM
|
||
* Note:
|
||
* The model HD2 & HD3 are 4dB-8dB better than the actual device for f < 50MHz
|
||
* The model may not conform to published specs for 3.3V operation
|
||
*****************************************************************************
|
||
*
|
||
*$
|
||
.SUBCKT LMH5401 OUTP OUTN FBP FBN INP INN CM PD VCC VEE GND
|
||
X_U17 U3_OUTP U3_OUTN LIMITER_INP LIMITER_INN VMID VCC VEE IOUTP IOUTN
|
||
+ LIMITER
|
||
G_G2 VMID VEE IOUTN VMID 1
|
||
R_R20 OUTPINT OUTP 10
|
||
E_E8 OUT 0 OUTPINT OUTNINT 1
|
||
X_U30 GBW_INP LIM_INP VCC VEE VMID IN_LIM
|
||
G_G10 DIST_OUTN DIST_OUTP N1047668 N1047660 0.13
|
||
X_S2 SHDN VMID N17901 N15575 DEV_SCH_S2
|
||
E_E6 N15575 CM_OUT U2_OUTP U2_OUTN 1
|
||
G_G11 DIST_OUTN DIST_OUTP N1056358 N1055868 0.1
|
||
X_U16 U2_OUTP U2_OUTN LIMITER_INP LIMITER_INN VMID VCC VEE IOUTP IOUTN
|
||
+ LIMITER
|
||
X_U25 CM_OUT VMID N65800 CMCALC SHDN VMID CM_CL_GAIN
|
||
X_H1 N17901 OUTPINT IOUTP VMID DEV_SCH_H1
|
||
X_U18 N459295 LIM_INP vnse
|
||
R_R29 0 N1047728 2
|
||
G_G8 DIST_OUTN DIST_OUTP N1056062 N1056052 1
|
||
E_E9 N72619 VMID CMINT VMID 1
|
||
X_U22 LIMITER_INN VMID N837077 VMID VCC VEE VMID VCN_OUT VC_OUT
|
||
+ SOFT_LIM_OUTPUT
|
||
X_U28 N109210 N109423 N1047668 N1047660 N1056358 N1055868 P2P P2N ERR_1
|
||
+ ERR_2 ERR_3 VMID ERR
|
||
R_R12 FBP OUTPINT 25
|
||
R_R30 0 N1047706 2
|
||
R_R16 N109210 N109423 1k
|
||
C_C15 P2N P2P 15p
|
||
C_C16 VMID N436166 400f
|
||
R45 VMID N436166 2300
|
||
R_R41 N1047706 N1047728 4
|
||
R_R27 N1056358 N1055958 1
|
||
E_E1 VMID 0 VCC N00961 0.5
|
||
V_V3 N891663 N436166 0.25mVdc
|
||
R_R31 0 N1056062 2
|
||
*E_E3 CMCALC VMID OUTP N07972 0.5
|
||
E_E3 CMCALC VMID OUTPINT N07972 0.5
|
||
R_R33 CNTRL_OUT COMP_IN 1k
|
||
X_U21 LIMITER_INP VMID N826132 VMID VCC VEE VMID VCN_OUT VC_OUT
|
||
+ SOFT_LIM_OUTPUT
|
||
C_C10 N1047668 N1047728 125p
|
||
C_C18 N459295 N436166 100f
|
||
X_U24 CNTRL_OUT INP INN VCC VEE VMID PD GND CONTROL
|
||
R_R28 N1055868 N1055882 1
|
||
R_R10 N72619 N65800 500
|
||
C_C17 N459295 VMID 400f
|
||
R46 N459295 VMID 2300
|
||
G_G1 VCC VMID IOUTP VMID 1
|
||
R_R32 0 N1056052 2 TC=0,0
|
||
E_E2 N00961 0 0 VEE 1
|
||
C_C11 N1047660 N1047706 125p
|
||
X_U29 GBW_INN LIM_INN VCC VEE VMID IN_LIM
|
||
R_R15 VEE PD 200k
|
||
C_C9 N1055882 N1055958 8n
|
||
*X_U23 N891663 N459295 femt
|
||
X_U123 VMID N891663 femt
|
||
X_U223 N459295 VMID femt
|
||
E_E13 N837077 VMID DIST_OUTN N805589 1
|
||
X_U12 GBW_OUTP GBW_OUTN GBW_INP GBW_INN SHDN VMID GBW_SLEW_FDA
|
||
X_U26 INN INP ERR_1 VCC VEE VMID CM1_MON
|
||
C_C12 N1056358 N1056062 40p
|
||
C_C8 N1047868 N1047716 4.5n
|
||
E_E12 N798182 VMID VMID CM_OUT 1
|
||
V_VCN_OUT VCN_OUT VMID 0.01Vdc
|
||
R_R36 P2N P2P 2
|
||
R_R19 DIST_OUTN DIST_OUTP 2
|
||
E_E14 N805589 VMID VMID CM_OUT 1
|
||
E_E7 CM_OUT N15690 U3_OUTP U3_OUTN 1
|
||
C_C13 N1055868 N1056052 40p
|
||
C_C1 VMID CMINT 1f
|
||
R_R34 INN N436166 1
|
||
R_R35 INP N459295 1
|
||
V_VCMoff CM CMINT 27mVdc
|
||
X_H2 N18027 OUTNINT IOUTN VMID DEV_SCH_H2
|
||
V_VC_OUT VC_OUT VMID 1.5Vdc
|
||
G_G7 DIST_OUTN DIST_OUTP N1047728 N1047706 1
|
||
*E_E4 N07972 VMID VMID OUTN 1
|
||
E_E4 N07972 VMID VMID OUTNINT 1
|
||
R_R14 FBN OUTNINT 25
|
||
G_G9 P2P P2N GBW_OUTP GBW_OUTN -1
|
||
G_G4 DIST_OUTN DIST_OUTP N1055958 N1055882 1
|
||
R_R18 VMID DIST_OUTP 1
|
||
E_E11 N826132 VMID DIST_OUTP N798182 1
|
||
C_C4 0 N1047716 9n
|
||
I_I2 N459295 VMID DC 65.7uAdc
|
||
R_R25 N1047668 N1047716 1
|
||
C_C6 0 N1055958 16n
|
||
I_I1 N891663 VMID DC 66.3uAdc
|
||
R_R37 VMID P2P 1
|
||
V_V1 N501608 VMID 0.5
|
||
X_U27 OUTP OUTN ERR_2 ERR_3 VCC VEE VMID CM2_MON
|
||
G_G3 DIST_OUTN DIST_OUTP N1047716 N1047868 1
|
||
X_S1 SHDN VMID VCC VEE DEV_SCH_S1
|
||
X_U14 SHDN COMP_IN N501608 VMID COMPARATOR
|
||
C_C14 VMID COMP_IN 12p
|
||
C_C7 N1055882 0 16n
|
||
R_R26 N1047660 N1047868 1
|
||
R_R1 VMID CMINT 119k
|
||
C_C2 VMID N65800 0.1p
|
||
C_C5 N1047868 0 9n
|
||
R_R44 N1056052 N1056062 4
|
||
G_G5 DIST_OUTP DIST_OUTN P2P P2N -1
|
||
R_R17 DIST_OUTN VMID 1
|
||
X_S3 SHDN VMID N18027 N15690 DEV_SCH_S3
|
||
R_R21 OUTNINT OUTN 10
|
||
R_R38 P2N VMID 1
|
||
E_E10 LIM_INN VMID N891663 VMID 1.0005
|
||
.ENDS
|
||
*$
|
||
*
|
||
.subckt DEV_SCH_S2 1 2 3 4
|
||
S_S2 3 4 1 2 _S2
|
||
RS_S2 1 2 1G
|
||
.MODEL _S2 VSWITCH Roff=1e6 Ron=1.0 Voff=0.2V Von=0.8V
|
||
.ends DEV_SCH_S2
|
||
*$
|
||
*
|
||
.subckt DEV_SCH_H1 1 2 3 4
|
||
H_H1 3 4 VH_H1 1
|
||
VH_H1 1 2 0V
|
||
.ends DEV_SCH_H1
|
||
*$
|
||
*
|
||
.subckt DEV_SCH_H2 1 2 3 4
|
||
H_H2 3 4 VH_H2 -1
|
||
VH_H2 1 2 0V
|
||
.ends DEV_SCH_H2
|
||
*$
|
||
*
|
||
.subckt DEV_SCH_S1 1 2 3 4
|
||
S_S1 3 4 1 2 _S1
|
||
RS_S1 1 2 1G
|
||
.MODEL _S1 VSWITCH Roff=1700 Ron=90 Voff=0.2V Von=0.8V
|
||
.ends DEV_SCH_S1
|
||
*$
|
||
*
|
||
.subckt DEV_SCH_S3 1 2 3 4
|
||
S_S3 3 4 1 2 _S3
|
||
RS_S3 1 2 1G
|
||
.MODEL _S3 VSWITCH Roff=1e6 Ron=1.0 Voff=0.2V Von=0.8V
|
||
.ends DEV_SCH_S3
|
||
*$
|
||
.SUBCKT VNSE 1 2
|
||
.PARAM NLF = 9.5
|
||
.PARAM FLW = 100
|
||
.PARAM NVR = 1.3
|
||
.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
|
||
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 FEMT 1 2
|
||
.PARAM NLFF = 2500
|
||
.PARAM FLWF = 50e3
|
||
.PARAM NVRF = 2900
|
||
.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 IN_LIM OUT IN VCC VEE GNDF
|
||
.PARAM V1 = 1.2
|
||
.PARAM V2 = 0.2
|
||
EMAX NMAX GNDF VALUE = {V(VCC,GNDF) - V1}
|
||
EMIN NMIN GNDF VALUE = {V(VEE,GNDF) - V2}
|
||
EOUT OUT GNDF VALUE = {MAX(MIN(V(IN,GNDF),V(NMAX,GNDF)),V(NMIN,GNDF))}
|
||
.ENDS
|
||
*$
|
||
*
|
||
.SUBCKT LIMITER OUTP OUTN INP INN GNDF VCC VEE VCP VCN
|
||
.PARAM VHRP0 = 1
|
||
.PARAM VHRN0 = -1
|
||
.PARAM GAIN = 0.5
|
||
.PARAM ROUT = 100
|
||
.PARAM V_ISC = 0.1
|
||
.PARAM V_IOUT1 = 0.06
|
||
.PARAM ROS = 5
|
||
EZ1 NZ1 GNDF VALUE = {V(VCC,GNDF)}
|
||
EZ2 NZ2 GNDF VALUE = {V(VCC,GNDF)-VHRP0}
|
||
EHRK NHRK GNDF VALUE = {((V(VCC,GNDF)-VHRP0)/(V_ISC-V_IOUT1))-ROS}
|
||
EHRP VHRP GNDF VALUE = {MAX(MIN(VHRP0+(V(VCP,GNDF)-V_IOUT1)*V(NHRK,GNDF),V(VCC,GNDF)),VHRP0)}
|
||
EHRN VHRN GNDF VALUE = {MAX(MIN(VHRN0+(V(VCN,GNDF)+V_IOUT1)*V(NHRK,GNDF),VHRN0),V(VEE,GNDF))}
|
||
EUL NUL GNDF VALUE = {V(VCC,GNDF) - V(VHRP,GNDF)}
|
||
ELL NLL GNDF VALUE = {V(VEE,GNDF) - V(VHRN,GNDF)}
|
||
RVCP_TERM VCP GNDF 1k
|
||
RVCN_TERM VCN GNDF 1k
|
||
EOUT OUTP OUTN VALUE = {MIN(MAX(GAIN*V(INP,INN),V(NLL,GNDF)),V(NUL,GNDF))}
|
||
ROUT1+ OUTP GNDF {ROUT}
|
||
ROUT1- OUTN GNDF {ROUT}
|
||
.ENDS
|
||
*$
|
||
*
|
||
.SUBCKT CM_CL_GAIN OUTP OUTN INP INN SHDN GNDF
|
||
.PARAM GAIN = 1e4
|
||
E1 OUTP OUTN VALUE = {GAIN*V(INP,INN)*V(SHDN,GNDF)}
|
||
.ENDS
|
||
*$
|
||
*
|
||
*
|
||
.SUBCKT SOFT_LIM_OUTPUT OUTP OUTN INP INN VCC VEE GNDF VCN VC1
|
||
.PARAM NORDER = 5
|
||
.PARAM GAIN = 1
|
||
** VCN is the headroom to mimic the CLAW curve
|
||
** VC1 is the first threshold that begins limiting. It marks the point
|
||
** where distortion increases dramatically for increasing output swing
|
||
*EHR N_HR GNDF VALUE = {V(VCC,VCN)}
|
||
EVC1 N_VC1 GNDF VALUE = {V(VC1,GNDF)}
|
||
EHR N_OMAX GNDF VALUE = {V(VCC,VCN)}
|
||
EDV N_DV GNDF VALUE = {(2/(NORDER-2))*(V(N_OMAX,GNDF)/GAIN - V(VC1,GNDF))}
|
||
EIN N_IN GNDF VALUE = {V(INP,INN)}
|
||
EV1 N_V1 GNDF VALUE = {V(VC1,GNDF)}
|
||
EV2 N_V2 GNDF VALUE = {V(VC1,GNDF) + V(N_DV,GNDF)}
|
||
EV3 N_V3 GNDF VALUE = {V(VC1,GNDF) + 2*V(N_DV,GNDF)}
|
||
EV4 N_V4 GNDF VALUE = {V(VC1,GNDF) + 3*V(N_DV,GNDF)}
|
||
EV5 N_V5 GNDF VALUE = {V(VC1,GNDF) + 4*V(N_DV,GNDF)}
|
||
EG1 N_G1 GNDF VALUE = {GAIN}
|
||
EG2 N_G2 GNDF VALUE = {0.75*GAIN}
|
||
EG3 N_G3 GNDF VALUE = {0.50*GAIN}
|
||
EG4 N_G4 GNDF VALUE = {0.25*GAIN}
|
||
EG5 N_G5 GNDF VALUE = {0*GAIN}
|
||
EB1 N_B1 GNDF VALUE = {0}
|
||
EB2 N_B2 GNDF VALUE = {V(N_B1,GNDF) + 1*(GAIN/(NORDER-1))
|
||
+ *(V(N_V5,GNDF) - NORDER*V(N_DV,GNDF) + 1*V(N_DV,GNDF))}
|
||
EB3 N_B3 GNDF VALUE = {V(N_B1,GNDF) + 2*(GAIN/(NORDER-1))
|
||
+ *(V(N_V5,GNDF) - NORDER*V(N_DV,GNDF) + 1.5*V(N_DV,GNDF))}
|
||
EB4 N_B4 GNDF VALUE = {V(N_B1,GNDF) + 3*(GAIN/(NORDER-1))
|
||
+ *(V(N_V5,GNDF) - NORDER*V(N_DV,GNDF) + 2*V(N_DV,GNDF))}
|
||
EB5 N_B5 GNDF VALUE = {V(N_B1,GNDF) + 4*(GAIN/(NORDER-1))
|
||
+ *(V(N_V5,GNDF) - NORDER*V(N_DV,GNDF) + 2.5*V(N_DV,GNDF))}
|
||
E1U N_1U GNDF VALUE = {V(N_G1,GNDF)*V(N_IN,GNDF)}
|
||
E2U N_2U GNDF VALUE = {V(N_G2,GNDF)*V(N_IN,GNDF) + V(N_B2,GNDF)}
|
||
E3U N_3U GNDF VALUE = {V(N_G3,GNDF)*V(N_IN,GNDF) + V(N_B3,GNDF)}
|
||
E4U N_4U GNDF VALUE = {V(N_G4,GNDF)*V(N_IN,GNDF) + V(N_B4,GNDF)}
|
||
E5U N_5U GNDF VALUE = {V(N_G5,GNDF)*V(N_IN,GNDF) + V(N_B5,GNDF)}
|
||
E2L N_2L GNDF VALUE = {V(N_G2,GNDF)*V(N_IN,GNDF) - V(N_B2,GNDF)}
|
||
E3L N_3L GNDF VALUE = {V(N_G3,GNDF)*V(N_IN,GNDF) - V(N_B3,GNDF)}
|
||
E4L N_4L GNDF VALUE = {V(N_G4,GNDF)*V(N_IN,GNDF) - V(N_B4,GNDF)}
|
||
E5L N_5L GNDF VALUE = {V(N_G5,GNDF)*V(N_IN,GNDF) - V(N_B5,GNDF)}
|
||
EX1 N_X1 GNDF VALUE = {MIN(MAX(V(N_1U,GNDF),V(N_2L,GNDF)),V(N_2U,GNDF))}
|
||
EX2 N_X2 GNDF VALUE = {MIN(MAX(V(N_X1,GNDF),V(N_3L,GNDF)),V(N_3U,GNDF))}
|
||
EX3 N_X3 GNDF VALUE = {MIN(MAX(V(N_X2,GNDF),V(N_4L,GNDF)),V(N_4U,GNDF))}
|
||
EX4 OUTP OUTN VALUE = {MIN(MAX(V(N_X3,GNDF),V(N_5L,GNDF)),V(N_5U,GNDF))}
|
||
ROUTP OUTP GNDF 100
|
||
ROUTN OUTN GNDF 100
|
||
ROUTD OUTP OUTN 200
|
||
.ENDS
|
||
*$
|
||
**
|
||
.SUBCKT ERR OUT1P OUT1N OUT2P OUT2N OUT3P OUT3N INP INN IN1 IN2 IN3 GNDF
|
||
.PARAM a0 = 0
|
||
.PARAM a1 = 1
|
||
.PARAM a2 = {0.00115}
|
||
.PARAM a3 = {0.005}
|
||
.PARAM LL = -1000
|
||
.PARAM UL = 1000
|
||
Eid DIFF_IN 0 VALUE = {V(INP) - V(INN)}
|
||
EIN1 N1 0 VALUE = {V(IN1,GNDF)}
|
||
EIN2 N2 0 VALUE = {V(IN2,GNDF)}
|
||
EIN3 N3 0 VALUE = {V(IN3,GNDF)}
|
||
E1 OUT1P OUT1N VALUE = {MAX(MIN(a1*V(DIFF_IN),UL),LL)}
|
||
E2 OUT2P OUT2N VALUE = {MAX(MIN(a2*V(N1)*V(N2)*PWR(V(DIFF_IN),2),UL),LL)}
|
||
E3 OUT3P OUT3N VALUE = {MAX(MIN(a3*V(N1)*V(N3)*PWRS(V(DIFF_IN),3),UL),LL)}
|
||
RE1+ OUT1P 0 100
|
||
RE1- 0 OUT1N 100
|
||
RE1d OUT1P OUT1N 200
|
||
RE2+ OUT2P 0 100
|
||
RE2- 0 OUT2N 100
|
||
RE2d OUT2P OUT2N 200
|
||
RE3+ OUT3P 0 100
|
||
RE3- 0 OUT3N 100
|
||
RE3d OUT3P OUT3N 200
|
||
.ENDS
|
||
*$
|
||
**
|
||
.SUBCKT CONTROL OUT INP INN VCC VEE GNDF PD GND
|
||
.PARAM VS_MAX = 5.5
|
||
.PARAM VIH = 0.5
|
||
.PARAM VIL = 0.5
|
||
.PARAM VIMID = 1.1
|
||
****
|
||
EVSTEST NVSTEST GNDF VALUE = {IF(V(VCC,VEE) > VS_MAX,0,1)}
|
||
EVICM NVICM GNDF VALUE = {0.5*(V(INP,GNDF)+V(INN,GNDF))}
|
||
EVICMMAXTEST NVICMMAXTEST GNDF VALUE = {IF(V(NVICM,GNDF) > V(VCC,GNDF)+VIH,0,1)}
|
||
EVICMMINTEST NVICMMINTEST GNDF VALUE = {IF(V(NVICM,GNDF) < V(VEE,GNDF)-VIL,0,1)}
|
||
* for this version, PD is inverted and ref<65>d to ground, not VEE *
|
||
EPD NPD GNDF VALUE = {1 - MAX(MIN(1000*(V(PD,GND)-VIMID),1),0)}
|
||
EOUT OUT GNDF VALUE = {V(NVSTEST,GNDF)*V(NVICMMAXTEST,GNDF)
|
||
+*V(NVICMMINTEST,GNDF)*V(NPD,GNDF)}
|
||
.ENDS
|
||
*$
|
||
**
|
||
*
|
||
*
|
||
.SUBCKT GBW_SLEW_FDA OUTP OUTN INP INN SHDN GNDF
|
||
.PARAM Aol = 57
|
||
.PARAM GBW = 14e9
|
||
.PARAM SRP = 20e9
|
||
.PARAM SRN = 20e9
|
||
.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 = {GBW/PWR(10,AOL/20)}
|
||
.PARAM RC = {1/(2*PI*CC*FP)}
|
||
.PARAM GC = {PWR(10,AOL/20)/RC}
|
||
* Loading the VO pin with an external resistor will change the AOL.
|
||
G1p GNDF OUTP VALUE = {MAX(MIN(GC*V(SHDN,GNDF)*V(INP,INN),IP),IN)}
|
||
G1n OUTN GNDF VALUE = {MAX(MIN(GC*V(SHDN,GNDF)*V(INP,INN),IP),IN)}
|
||
RG1p OUTP GNDF {0.5*RC}
|
||
Cg1dp OUTP GNDF {2*CC}
|
||
RG1n OUTN GNDF {0.5*RC}
|
||
Cg1dn OUTN GNDF {2*CC}
|
||
.ENDS
|
||
*$
|
||
*
|
||
.SUBCKT CM1_MON IN1 IN2 OUT VCC VEE GNDF
|
||
.PARAM VOS = -0.5
|
||
.PARAM VMH = 1400
|
||
.PARAM VML = -1400
|
||
.PARAM VDH = 0.55
|
||
.PARAM VDL = -0.55
|
||
EC NC GNDF VALUE = {0.5*(V(IN1,GNDF)+V(IN2,GNDF)) - VOS}
|
||
EBL NBL 0 VALUE = {-VML*(V(VEE,GNDF)- VDL)}
|
||
EBH NBH 0 VALUE = {-VMH*(V(VCC,GNDF)- VDH)}
|
||
EL1 NLL GNDF VALUE = {VML*V(NC,GNDF) + V(NBL)}
|
||
EL2 NLH GNDF VALUE = {VMH*V(NC,GNDF) + V(NBH)}
|
||
EO1 OUT GNDF VALUE = {MAX(MAX(V(NLL,GNDF),V(NLH,GNDF)),1)}
|
||
.ENDS
|
||
*$
|
||
*
|
||
.SUBCKT CM2_MON IN1 IN2 OUT2 OUT3 VCC VEE GNDF
|
||
.PARAM VOS = 0
|
||
.PARAM VM2H = 114.3
|
||
.PARAM VM2L = -30.91
|
||
.PARAM VD2H = 1.45
|
||
.PARAM VD2L = -1.55
|
||
.PARAM VM3H = 100
|
||
.PARAM VM3L = -100
|
||
.PARAM VD3 = 1.8
|
||
EB2H NB2H 0 VALUE = {-VM2H*(V(VCC,GNDF)-VD2H)}
|
||
EB2L NB2L 0 VALUE = {-VM2L*(V(VEE,GNDF)-VD2L)}
|
||
EB3H NB3H 0 VALUE = {-VM3H*(V(VCC,GNDF)-VD3)}
|
||
EB3L NB3L 0 VALUE = {-VM3H*(V(VCC,GNDF)-VD3)}
|
||
EC NC GNDF VALUE = {0.5*(V(IN1,GNDF)+V(IN2,GNDF)) - VOS}
|
||
EH2 NH2 GNDF VALUE = {VM2H*V(NC,GNDF) + V(NB2H)}
|
||
EL2 NL2 GNDF VALUE = {VM2L*V(NC,GNDF) + V(NB2L)}
|
||
EH3 NH3 GNDF VALUE = {VM3H*V(NC,GNDF) + V(NB3H)}
|
||
EL3 NL3 GNDF VALUE = {VM3L*V(NC,GNDF) + V(NB3L)}
|
||
EO2 OUT2 GNDF VALUE = {MAX(MAX(V(NH2,GNDF),V(NL2,GNDF)),1)}
|
||
EO3 OUT3 GNDF VALUE = {MAX(MAX(V(NH3,GNDF),V(NL3,GNDF)),1)}
|
||
.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
|
||
*$
|
||
|