initial commit

This commit is contained in:
Joseph Hopfmüller
2023-01-23 08:17:09 +01:00
commit 1d8dca1c6c
11733 changed files with 1219458 additions and 0 deletions

211
lib/sub/MAX40023.lib Normal file
View File

@@ -0,0 +1,211 @@
* Copyright (c) 1998-2022 Analog Devices, Inc. All rights reserved.
*
.subckt MAX40023 1 2 3 4 5 6
C1 Clamp MID {Cfp1}
B1 MID Clamp I=Uplim(Dnlim({Avo2/1Meg}* V(Avo1,MID), {Isink}, 5m), {Isrc}, 5m)
G2 0 Vcc_Int N028 0 1
G3 0 Vee_Int N030 0 1k
R6 Vcc_Int 0 1 Noiseless
R7 Vee_Int 0 1m Noiseless
Cinp MID Inp1 {Ccm}
Cinn Inn1 MID {Ccm}
Cdiff Inp1 Inn1 {Cdiff}
Rinn Inn1 MID {Rcm} Noiseless
Rinp MID Inp1 {Rcm} Noiseless
G14 MID Inn2 Inn1 MID 1m
R43 MID Inn2 1k Noiseless
C12 Inn2 MID 1f
C14 Vcc_Int 0 1n
C15 Vee_Int 0 1n
S3 3 N009 N009 3 ESDI
S4 3 Inn2 Inn2 3 ESDI
S5 N009 4 4 N009 ESDI
S6 Inn2 4 4 Inn2 ESDI
R1 Inp1 1 {Rser} Noiseless
R2 Inn1 2 {Rser} Noiseless
Rdiff Inp1 Inn1 {Rdiff} Noiseless
S1 3 5 5 3 ESDO
S2 5 4 4 5 ESDO
G21 N017 N016 N022 MID 1m
R59 N017 N016 1k Noiseless
C27 N022 N021 {C1a_PSRp}
G22 MID N021 Vcc_Int MID {G1_PSRp}
R60 N021 MID 1 Noiseless
R61 N022 N021 {R1a_PSRp} Noiseless
R62 N022 MID {R2a_PSRp} Noiseless
G26 MID N016 N012 MID 1k
R72 MID N016 1m Noiseless
G27 MID Inp2 N017 MID 1m
R73 MID Inp2 1k Noiseless
C30 N002 N001 {C1a_CMR}
R58 N001 MID 1 Noiseless
R74 N002 N001 {R1a_CMR} Noiseless
R77 N002 MID {R2a_CMR} Noiseless
G31 MID N001 Inp1 MID {G1_CMR}
G32 N011 N012 N005 MID 1m
R82 N012 N011 1k Noiseless
G33 MID N009 Inp1 MID 1k
R83 MID N009 1m Noiseless
C32 N009 MID 1p
R134 N010 N009 1k Noiseless
B12 N009 N010 I=1m*({Vos+Drift* (Temp-27)})
R135 N011 N010 1k Noiseless
C19 5 MID 2f
DGP N024 Clamp DG
DGN Clamp N025 DG
G28 MID N024 GRpi MID 1k
G41 MID N025 GRni MID 1k
R14 N024 MID 1m Noiseless
R37 N025 MID 1m Noiseless
R42 GRpi MID 1k Noiseless
R48 GRni MID 1k Noiseless
C10 GRni MID 10p
C11 GRpi MID 10p
C18 Clamp N024 1f
C24 Clamp N025 1f
DOP Vsatp N013 DO
DON N013 Vsatn DO
G48 MID Vsatp Satp MID 1k
R11 Vsatp MID 1m
G49 MID Vsatn Satn MID 1k
R49 Vsatn MID 1m
C56 N013 Vsatp 1f
C57 N013 Vsatn 1f
C59 Vsatp MID 1n
C60 Vsatn MID 1n
C61 Avo1 MID 1e-18
G4 N010 N011 E_n MID 1m
R45 Satp 3 1k
C4 Satp 3 1n
R46 Satn 4 1k
C21 Satn 4 1n
I2 Inn1 MID {Ib-Ios}
B2 Inp1 MID I=If(Temp>=41.58, {Iba}+Temp*{Ibb}+ {Ibc}*Temp**2+ {Ibd}*Temp**3, 100f)
G7 MID Avo1 Inp2 Inn2 100<30>
DOI N013 5 LIM
COI 5 N013 1p
C8 MID 1 1f
R24 N018 MID 1Meg Noiseless
G5 MID N018 Clamp MID 1<>
C13 N018 MID {Cfp2}
G20 MID N013 N007 MID {1/Zo_dc}
R18 N028 3 10m Noiseless
R20 N030 4 10m Noiseless
I3 MID GRpi {GR}
I4 GRni MID {GR}
A1 N028 N030 MID MID MID MID Vsmin MID SCHMITT Vt={Vsmin-80m} Trise={2*ENTon}
A2 3 4 MID MID MID Vsmax MID MID SCHMITT Vt={Vsmax} Trise={2*ENTon} Vh=0
A3 Vsmin MID _SHDN MID Vsmax MID EN MID AND Trise=10n
Biq N028 N030 I=IF(V(EN,MID)>0.5, {Iq_on},{Iq_off})
C5 EN MID 10p Rpar=1G
C9 Vsmin MID 10p Rpar=1G
C16 Vsmax MID 10p Rpar=1G
C17 _SHDN MID 10p Rpar=1G
A4 N032 MID MID MID MID MID _SHDN MID SCHMITT Vt=0.5 Vh=0.2 Trise={2*ENTonsd}
C26 6 MID 1p Rpar=18Meg
B4 MID N032 I=1m*(V(6,4)/ (V(3,4)+1m)) Rpar=1k Cpar=10p
S7 MID Avo1 EN MID ENA
S8 MID Clamp EN MID ENA
S9 MID N013 EN MID ENZ
R33 N007 N006 {R2x_Avo} Noiseless
R51 N006 N008 {R1x_Avo} Noiseless
Rx2 N019 N008 {Rx_Avo} Noiseless
Cx2 N019 MID {Cx_Avo}
G16 MID N007 N019 N006 1Meg
R52 MID N007 1 Noiseless
R53 N008 MID 1 Noiseless
G29 MID N008 N018 MID 1
R21 N003 N004 {R1b_CMR} Noiseless
R22 N004 MID {R2b_CMR} Noiseless
G6 MID N005 N004 MID {G2_CMR}
C23 N004 N003 {C1b_CMR}
R23 N003 MID 1 Noiseless
G8 MID N003 N002 MID 1
R29 N005 MID 1 Noiseless
A5 MID Inp1 MID MID MID MID MID MID OTA G=0 In={In}
A6 MID Inn1 MID MID MID MID MID MID OTA G=0 In={In}
A7 MID MID MID MID MID MID E_n MID OTA G=10u Iout=1m Vhigh=1k Vlow=-1k En=Table(freq, 0.1, 1n, 1, 100n, 1.03, 129n, 1.97, 100n, 2.62, 86.3n, 5.1, 67.5n, 10.8, 59.6n, 19.8, 49.3n, 30.6, 49n, 43.6, 45.8n, 109, 41.2n, 238, 38.9n, 467, 33.7n, 775, 31.8n, 2.01k, 31.8n, 6.44k, 29.8n, 17k, 31.6n, 21.2k, 33.1n, 29.9k, 39.6n, 47.2k, 56.2n)
R4 E_n MID 100k Noiseless
R5 N026 Vcc_Int 1Meg Noiseless
R8 N026 Vee_Int 1Meg Noiseless
C2 N026 0 1
E1 MID 0 N026 0 1
R9 MID 0 1Meg Noiseless
C6 MID 0 1n
I1 Satp 3 11.3<EFBFBD>
I5 4 Satn 11.3<EFBFBD>
B3 N028 N030 I=I(DOI)
D1 CMp Inp2 DO
D2 Inp2 CMn DO
I6 3 CMp {1k*Vcm_max}
R3 3 CMp 1m
C3 3 CMp 1n
I7 4 CMn {1k*Vcm_min}
R10 4 CMn 1m
C20 4 CMn 1n
C22 2 MID 1f
.param Vos=109u Drift=1u
.param Ib=0.1p Ios=0.5p
.param Iba=-966f Ibb=-238f
.param Ibc=-6.6e-17 Ibd=1.54e-16
.param Vcm_min=-0.1 Vcm_max=-0.1
.param Iscp=10m Iscn={-Iscp}
.param Iq_on=17u Iq_off=55n
.param Vsmin=1.6 Vsmax=4
.param ENTon=50u ENTonsd=30u
.param In=10f
.model LIM D(Vfwd=1n Vrev=1n Ron=1m Roff=1m Ilimit={Iscp} Revilimit={-Iscn} Epsilon=1u Noiseless)
.model DO D(Vfwd=1k Vrev=0 Revepsilon=0.1 Ron=1m Noiseless)
.model DG D(Vfwd=8k Vrev=0 Revepsilon=0.5 Ron=1m Noiseless)
.model ENA SW(Ron=1Meg Roff=1u Vt=500m Vh=-100m Noiseless)
.model ENZ SW(Ron={Zo_dc} Roff=1u Vt=500m Vh=-100m Noiseless)
.model ESDI SW(Ron=50 Roff=1T Vt=0.5 Vh=-0.1 Vser=0.1 Noiseless)
.model ESDO SW(Ron=50 Roff=1G Vt=0.5 Vh=-0.1 Vser=0.6 Ilimit=4m Lser=1n Noiseless)
.param gain_PSRp = {pow(10, (-Rej_dc_PSRp/20))}
.param C1a_PSRp = {1 / (2 * pi * R1a_PSRp * fz1_PSRp)}
.param R2a_PSRp = {R1a_PSRp/ ((2 * pi * fp1_PSRp * C1a_PSRp
+* R1a_PSRp) - 1)}
.param actual1_PSRp = {R2a_PSRp / (R1a_PSRp + R2a_PSRp)}
.param G1_PSRp = {gain_PSRp/actual1_PSRp}
.param Rej_dc_PSRp=100
.param R1a_PSRp=100k
.param fz1_PSRp=2
.param fp1_PSRp=100k
.param Avo=113.32
.param SRp=65m SRn=-33m
.param fp1=0.4 fp2=150k
.param Rser=110m
.param Ccm=1p Rcm=15T
.param Cdiff=1f Rdiff=1T
.param Avo2_dB = {Avo-40+1}
.param Avo2 = {pwr(10, (Avo2_dB)/20)}
.param Cfp1={1 / (2 * pi * fp1 * 1Meg)}
.param Cfp2={1 / (2 * pi * fp2 * 1Meg)}
.param Isrc = {Cfp1 * SRp * 1Meg} Isink = {Cfp1 * SRn * 1Meg}
.param Zo_dc=1k
.param Rx_Avo=1k
.param R2x_Avo=10k
.param fpx_Avo=99G
.param fzx_Avo=200k
.param Cx_Avo={1/(2*pi*Rx_Avo*fpx_Avo)}
.param R1x_Avo={(fzx_Avo*R2x_Avo)/fpx_Avo}
.param gain_CMR = {pow(10, (-Rej_dc_CMR/20))}
.param C1a_CMR = {1 / (2 * pi * R1a_CMR * fz1_CMR)}
.param R2a_CMR = {R1a_CMR/ ((2 * pi * fp1_CMR * C1a_CMR
+* R1a_CMR) - 1)}
.param actual1_CMR = {R2a_CMR / (R1a_CMR + R2a_CMR)}
.param G1_CMR = {gain_CMR/actual1_CMR}
.param Rej_dc_CMR=91.5
.param R1a_CMR=100Meg
.param fz1_CMR=30
.param fp1_CMR=1.4k
.param R1b_CMR=1Meg
.param fz2_CMR=21k
.param fp2_CMR=65k
.param C1b_CMR={1 / (2 * pi * R1b_CMR * fz2_CMR)}
.param R2b_CMR = {R1b_CMR/ ((2 * pi * fp2_CMR * C1b_CMR
+* R1b_CMR) - 1)}
.param actual2_CMR = {R2b_CMR / (R1b_CMR + R2b_CMR)}
.param G2_CMR= {1/actual2_CMR}
.param GR=15m
.ends MAX40023