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

329
lib/sub/ADA4930-1.lib Normal file
View File

@@ -0,0 +1,329 @@
* Copyright (c) 1998-2022 Analog Devices, Inc. All rights reserved.
*
.subckt ADA4930-1 1 2 3 4 5 6 7 8 9 10
R11 BOOST1 N024 {Rf1} Noiseless
C2 Clamp COM {Cfp1}
G1 COM BOOST1 Clamp N024 1k
C1 BOOST1 COM 1f
C3 N024 N028 {Cboost1}
L1 N028 N029 {Lboost1}
R2 N029 COM {Rg1} Noiseless
R1 BOOST1 COM 1 Noiseless
R32 BOOST2 N025 {Rf2} Noiseless
G24 COM BOOST2 BOOST1 N025 1k
C22 BOOST2 COM 1f
C23 N025 N030 {Cboost2}
L2 N030 N031 {Lboost2}
R33 N031 COM {Rg2} Noiseless
R34 BOOST2 COM 1 Noiseless
G25 COM N014 BOOST2 COM 1<>
R35 N014 COM 1Meg Noiseless
C4 7 COM 1p Rpar=8.3k Noiseless
R14 COM N054 1Meg Noiseless
C5 N054 COM {Cfp1o}
B1 COM Zo_inp I=0.5m*(V(Avo,COM)+ V(ComAdj,COM)) Rpar=1k Cpar=0.1f
B2 COM Zo_inn I=0.5m*V(ComAdj, Avo) Rpar=1k Cpar=0.1f
Cinp COM N012 {Ccm}
Cinn N017 COM {Ccm}
R22 N012 1 {Rser} Noiseless
Cdiff N012 N017 {Cdiff}
R21 N017 2 {Rser} Noiseless
R12 N012 N017 {Rdiff} Noiseless
R13 COM N012 {Rcm} Noiseless
R23 N017 COM {Rcm} Noiseless
R24 Zo_outp ComSense 1Meg Noiseless
R25 ComSense Zo_outn 1Meg Noiseless
R7 9 3 1m Noiseless
R26 8 4 1m Noiseless
C6 N036 N035 {C1a_CMR}
G9 COM N035 N050 COM {G1_CMR}
R28 N035 COM 1 Noiseless
R29 N036 N035 {R1a_CMR} Noiseless
R30 N036 COM {R2a_CMR} Noiseless
R31 N039 N040 {R1b_CMR} Noiseless
R42 N040 COM {R2b_CMR} Noiseless
G10 COM N041 N040 COM {G2_CMR}
C7 N040 N039 {C1b_CMR}
G11 COM N037 N036 COM 1
R44 N043 COM 1 Noiseless
R45 N043 N044 {R1c_CMR} Noiseless
R46 N044 COM {R2c_CMR} Noiseless
G12 COM CMR N044 COM {G3_CMR}
C8 N044 N043 {C1c_CMR}
R47 CMR COM 1 Noiseless
R48 N041 N042 {R1b_CMR} Noiseless
R49 N042 COM {R2b_CMR} Noiseless
G13 COM N043 N042 COM {G2_CMR}
C9 N042 N041 {C1b_CMR}
R50 N041 COM 1 Noiseless
C10 N038 N037 {C1a_CMR}
R51 N037 COM 1 Noiseless
R52 N038 N037 {R1a_CMR} Noiseless
R53 N038 COM {R2a_CMR} Noiseless
G14 COM N039 N038 COM {G1a_CMR}
B4 COM N050 I=1m*((V(1,COM)+ V(2,COM))/2)
R54 N050 COM 1k Noiseless
G15 COM N005 IVR COM 1k
R55 COM N005 1m Noiseless
C11 N005 COM 1f
G16 N006 N007 CMR COM 1m
R56 N007 N006 1k Noiseless
C12 N058 N057 {C1a_PSRp}
G17 COM N057 5 6 {G1_PSRp}
R57 N057 COM 1 Noiseless
R58 N058 N057 {R1a_PSRp} Noiseless
R59 N058 COM {R2a_PSRp} Noiseless
R60 N059 N060 {R1b_PSRp} Noiseless
R61 N060 COM {R2b_PSRp} Noiseless
G18 COM PSR N060 COM {G2_PSRp}
C13 N060 N059 {C1b_PSRp}
R62 N059 COM 1 Noiseless
R63 PSR COM 1 Noiseless
G19 COM N059 N058 COM 1
G20 N007 N008 PSR COM 1m
R64 N008 N007 1k Noiseless
R65 N004 COM 100k Noiseless
R66 E_n COM 100k Noiseless
A2 COM COM COM COM COM COM N004 COM OTA G=10u Iout=1m En={fA}/(freq**{M}) Vhigh=1k Vlow=-1k
A3 COM N004 COM COM COM COM E_n COM OTA G=10u Iout=1m En={BB/2} Vhigh=1k Vlow=-1k
G21 N008 N009 E_n COM 1m
R67 N009 N008 1k Noiseless
C14 BAL N061 {C1a_BAL}
G32 COM N061 8 9 {G1_BAL}
R70 N061 COM 1 Noiseless
R71 BAL N061 {R1a_BAL} Noiseless
R72 BAL COM {R2a_BAL} Noiseless
G8 COM N047 7 COM 1k
R27 COM N047 1m Noiseless
C15 N047 COM 1f
G33 N047 N046 BAL COM 1m
R73 N046 N047 1k Noiseless
R81 N006 N005 1k Noiseless
B5 N005 N006 I=1m*{Vos+Drift* (Temp-27)}
BIb N012 COM I={Ib}+{Ibd}* (Temp-27)
BIos N017 COM I={Ib-Ios}+{Ibd}* (Temp-27)
A6 5 6 COM COM COM COM N053 COM SCHMITT Vt={Vs_min} Vh=0 Trise=10n
A8 5 6 COM COM COM N052 COM COM SCHMITT Vt={Vs_max} Vh=0 Trise=10n
A9 N052 COM N053 COM _SHDN COM EN COM AND Trise={ENTon} Tfall={ENToff}
G34 0 Vcc_Int 5 0 1k
G35 0 Vee_Int 6 0 1k
R18 Vcc_Int 0 1m Noiseless
R74 Vee_Int 0 1m Noiseless
C16 Vcc_Int 0 1<>
C17 Vee_Int 0 1<>
BIq 5 6 I=IF(V(EN,COM)>0.5, {Iq_on},{Iq_off})
G36 5 6 Vimonp Vimonn 1
R77 N051 Vcc_Int 1Meg Noiseless
R82 N051 Vee_Int 1Meg Noiseless
C20 N051 0 1
C21 COM 0 1n
E3 COM 0 N051 0 1
R83 COM 0 1Meg Noiseless
C32 EN COM 10p Rpar=1G
C34 N053 COM 10p Rpar=1G
C35 N052 COM 10p Rpar=1G
Vimonp Zo_outp 8 0
Vimonn Zo_outn 9 0
R85 Vimonp COM 1k Noiseless
F1 COM Vimonp Vimonp 1m
C36 Vimonp COM 159f
R86 Vimonn COM 1k Noiseless
F2 COM Vimonn Vimonn 1m
C37 Vimonn COM 159f
BIpd 10 COM I=IF(V(EN,COM)>0.5, {Ipd_on},{Ipd_off})
A7 10 6 COM COM COM COM _SHDN COM SCHMITT Vt={ENVt-10m} Vh={ENVh} Trise={ENTon} Tfall={ENToff}
S1 COM Gain1 EN COM ENA
S2 COM Clamp EN COM ENA
G37 COM IVR N012 COM 1m
R9 COM IVR 1k Noiseless
C18 IVR COM 1f
B10 COM CMpi I=1m*(V(5,COM)+{Vcm_max}) Cpar=1n
G38 COM CMp CMpi COM 1k
R10 COM CMp 1m Noiseless
B11 COM CMni I=1m*(V(6,COM)+{Vcm_min}) Cpar=1n
G39 COM CMn CMni COM 1k
R87 COM CMn 1m Noiseless
R88 CMpi COM 1k Noiseless
R89 CMni COM 1k Noiseless
DIP1 CMp IVR DI
DIN1 IVR CMn DI
C19 IVR CMn 1f
C31 IVR CMp 1f
Rx1 Zo_outp N021 {Rx_Zo} Noiseless
Rdummy1 Zo_outp COM {Rdummy_Zo} Noiseless
B12 COM N021 I=Uplim(Dnlim({G1_Zo}* V(Zo_inp,Zo_outp), {Izon}, 25m), {Izop}, 25m)
Rx2 Zo_outn N032 {Rx_Zo} Noiseless
Rdummy2 Zo_outn COM {Rdummy_Zo} Noiseless
B13 COM N032 I=Uplim(Dnlim({G1_Zo}* V(Zo_inn,Zo_outn), {Izon}, 25m), {Izop}, 25m)
B18 COM Clamp I=Uplim(Dnlim({Avo2/1Meg}*V(Gain1,COM), {Isink},1u),{Isrc},1u)
DOP1 Vsatpp Zo_outp DO
DON1 Zo_outp Vsatnp DO
G2 COM Vsatpp Vsatpi COM 1k
G3 COM Vsatnp Vsatni COM 1k
C40 Vsatpp COM 1n
C41 Vsatnp COM 1n
I1 Vsatpi 5 1.62m
R75 Vsatpi 5 1k Noiseless
C33 Vsatpi 5 1n
I2 6 Vsatni 180<38>
C38 Vsatni 6 1n
DOP2 Vsatpn Zo_outn DO
DON2 Zo_outn Vsatnn DO
G4 COM Vsatpn Vsatpi COM 1k
G5 COM Vsatnn Vsatni COM 1k
C39 Vsatpn COM 1n
C42 Vsatnn COM 1n
DGP1 N062 Clamp DG
DGN1 Clamp N063 DG
G40 COM N062 GRpi COM 1k
G41 COM N063 GRni COM 1k
R93 N062 COM 1m Noiseless
R94 N063 COM 1m Noiseless
R95 GRpi COM 1k Noiseless
R96 GRni COM 1k Noiseless
C43 GRni COM 10p
C44 GRpi COM 10p
I3 COM GRpi 20m
I4 GRni COM 20m
G42 COM ComAdj N054 COM 1<>
R15 COM ComAdj 1Meg Noiseless
C45 ComAdj COM {Cfp2o}
G44 COM N054 Vocmi ComSense 1
R5 Vocmi N046 1k Noiseless
I5 N046 Vocmi {1m*Voso}
Rpd1 COM 3 1G Noiseless
Rpd2 COM 4 1G Noiseless
C24 N014 COM {Cfp2}
G6 COM N015 N014 COM 1<>
R16 N015 COM 1Meg Noiseless
C25 N015 COM {Cfp2}
G22 COM N016 N015 COM 1<>
R36 N016 COM 1Meg Noiseless
C26 N016 COM {Cfp2}
G23 COM Avo N016 COM 1<>
R37 Avo COM 1Meg Noiseless
C27 Avo COM {Cfp2}
R39 N021 COM 1 Noiseless
R40 N032 COM 1 Noiseless
R41 I_np COM 100k Noiseless
R68 I_nn COM 100k Noiseless
G26 N012 COM I_np COM 1
G27 N017 COM I_nn COM 1
A1 N017 N009 COM COM COM COM Gain1 COM OTA G=100u Iout=1m Vhigh=1k Vlow=-1k
A4 COM COM COM COM COM COM I_np COM OTA G=10u Iout=1m En={Eni} Vhigh=1k Vlow=-1k
A5 COM COM COM COM COM COM I_nn COM OTA G=10u Iout=1m En={Eni} Vhigh=1k Vlow=-1k
R43 N039 COM 1 Noiseless
R69 Vsatpp COM 1m Noiseless
R76 Vsatnp COM 1m Noiseless
R79 Vsatni 6 1k Noiseless
R80 Vsatnn COM 1m Noiseless
R84 Vsatpn COM 1m Noiseless
.param Avo2_dB = {Avo_PB-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}
.param Isink = {Cfp1 * SRn * 1Meg}
.param Avo_PB=63
.param SRp=5.3k SRn={-SRp}
.param fp1=2Meg fp2=100G
.param Rf1=10k Boost1=2.35 f01=775k Q1=1.4
.param Rg1={Rf1/(Boost1-1)}
.param Rpar1={Pwr(1/Rf1+1/Rg1,-1)}
.param Xcl1={Rpar1*Q1}
.param Lboost1={Xcl1/(2*pi*f01)}
.param Cboost1={1/(2*pi*f01*Xcl1)}
.param Rf2=10k Boost2=1.4 f02=5G Q2=5
.param Rg2={Rf2/(Boost2-1)}
.param Rpar2={Pwr(1/Rf2+1/Rg2,-1)}
.param Xcl2={Rpar2*Q2}
.param Lboost2={Xcl2/(2*pi*f02)}
.param Cboost2={1/(2*pi*f02*Xcl2)}
.param Rf=10k
.param Rser=1m
.param Ccm=1p Rcm=3Meg
.param Cdiff=1f Rdiff=150k
.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 G1a_CMR = {1/actual1_CMR}
.param Rej_dc_CMR=68.5
.param R1a_CMR=10k
.param fz1_CMR=650k
.param fp1_CMR=800k
.param R1b_CMR=10k
.param fz2_CMR=4.2Meg
.param fp2_CMR=5.6Meg
.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 R1c_CMR=10k
.param fz3_CMR=110Meg
.param fp3_CMR=800Meg
.param C1c_CMR={1 / (2 * pi * R1c_CMR * fz3_CMR)}
.param R2c_CMR = {R1c_CMR/ ((2 * pi * fp3_CMR * C1c_CMR
+* R1c_CMR) - 1)}
.param actual3_CMR = {R2c_CMR / (R1c_CMR + R2c_CMR)}
.param G3_CMR= {1/actual3_CMR}
.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=92.73
.param R1a_PSRp=10k
.param fz1_PSRp=3.3Meg
.param fp1_PSRp=100G
.param R1b_PSRp=10k
.param fz2_PSRp=350Meg
.param fp2_PSRp=100G
.param C1b_PSRp={1 / (2 * pi * R1b_PSRp * fz2_PSRp)}
.param R2b_PSRp = {R1b_PSRp/ ((2 * pi * fp2_PSRp * C1b_PSRp
+* R1b_PSRp) - 1)}
.param actual2_PSRp = {R2b_PSRp / (R1b_PSRp + R2b_PSRp)}
.param G2_PSRp= {1/actual2_PSRp}
.param BB=140p fC=58k M=0.47 fA={BB*(fC**M)}
.param Eni=2.8p
.param gain_BAL = {pow(10, (-Rej_dc_BAL/20))}
.param C1a_BAL = {1 / (2 * pi * R1a_BAL * fz1_BAL)}
.param R2a_BAL = {R1a_BAL/ ((2 * pi * fp1_BAL * C1a_BAL
+* R1a_BAL) - 1)}
.param actual1_BAL = {R2a_BAL / (R1a_BAL + R2a_BAL)}
.param G1_BAL = {gain_BAL/actual1_BAL}
.param G1a_BAL = {1/actual1_BAL}
.param Rej_dc_BAL=56.6
.param R1a_BAL=1Meg
.param fz1_BAL=99G
.param fp1_BAL=100G
.param Vos=-176.94u Drift=0.9u
.param Ib=-23u Ios=99.2n Ibd=-50n
.param Vcm_min=0.3 Vcm_max=-2.2
.param Vs_min=3.3 Vs_max=5
.param Iscp=30m Iscn=-30m
.param Iq_on=34m Iq_off=1.8m
.param Ipd_on=90n Ipd_off=97u
.param IZop={Rx_Zo*Iscp} IZon={Rx_Zo*Iscn}
.param ENVt=2.75 ENVh=0.25
.param ENTon=12n ENToff=1u
.model DI D(Vfwd=1k Vrev=0 Revepsilon=0.1 Noiseless)
.model DG D(Vfwd=1k Vrev=0 Revepsilon=0.5 Ron=1m Noiseless)
.model DO D(Vfwd=1k Vrev=0 Revepsilon=0.1 Ron=1m Noiseless)
.model PD D(Ron=0.5 Epsilon=0.1 Noiseless)
.model ENA SW(Ron=1Meg Roff=1u Vt=500m Vh=-100m Noiseless)
.param beta_Zo=1.13
.param Rx_Zo = {100 * Zo_max}
.param Rdummy_Zo = {10 * Zo_max}
.param G1_Zo={Rx_Zo/(Zo_dc*beta_Zo)}
.param Zo_dc=100
.param Zo_max={Zo_dc}
.param Voso=350u
.param fp1o=1.55k fp2o=725Meg
.param Cfp1o={1 / (2 * pi * fp1o * 1Meg)}
.param Cfp2o={1 / (2 * pi * fp2o * 1Meg)}
.ends ADA4930-1