kicad/spice/test/LMH5401.lib

450 lines
14 KiB
Plaintext
Raw Normal View History

2022-04-08 21:49:19 -06:00
* 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
*$