Subversion Repositories Electronics.Rangefider

Rev

Rev 1 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 florent_ba 1
* OPA858
2
*****************************************************************************
3
* (C) Copyright 2018 Texas Instruments Incorporated. All rights reserved.
4
*****************************************************************************
5
** This model is designed as an aid for customers of Texas Instruments.
6
** TI and its licensors and suppliers make no warranties, either expressed
7
** or implied, with respect to this model, including the warranties of 
8
** merchantability or fitness for a particular purpose.  The model is
9
** provided solely on an "as is" basis.  The entire risk as to its quality
10
** and performance is with the customer.
11
*****************************************************************************
12
*
13
** Released by: Texas Instruments Inc.
14
* Part: OPA858
15
* Date: 09/28/2018
16
* Model Type: All In One
17
* Simulator: Pspice
18
* Simulator Version: 17.2
19
* EVM Order Number: N/A 
20
* EVM Users Guide:  N/A 
21
* Datasheet: May 2017
22
*
23
* Model Version: 2.0
24
*
25
*****************************************************************************
26
*
27
* Updates:
28
*
29
* Version 1.0 : Release to Web
30
*         2.0 : Improving convergence  
31
*         2.1 : Matching the recovery time with Figure 22 of the datasheet
32
*
33
*****************************************************************************
34
* The following parameters are modeled: 
35
* Input Offset Voltage, Input Bias Current, VIH/VIL, DC CMRR,
36
* small signal freq response, Input Referred Voltage Noise, 
37
* Input Referred Current Noise, Slew Rate,
38
* Short Circuit Output Current, VOH/VOL, VOH/VOL vs. Output Current
39
* Iq_on, Iq_off, PSRR
40
*****************************************************************************
41
 
42
 
43
 
44
.subckt OPA858 INP INN VCC VEE OUT
45
XI0 VEE VCC INN INP OUT PD VFA_HT5
46
RPD PD 0 1G 
47
.ends
48
 
49
 
50
 
51
 
52
 
53
 
54
 
55
 
56
.subckt ESDDIODES VCC VEE VIN VOUT PARAMS: VESDL=-700e-3 VESDH=-700e-3
57
XIDVIH NET12 NET16 DiodeIdeal
58
XIDVIL NET16 NET20 DiodeIdeal
59
R0 VIN NET16  1e-3
60
V0 NET16 VOUT 0
61
VESDL NET20 VEE {VESDL} 
62
VESDH VCC NET12 {VESDH} 
63
.ends ESDDIODES
64
 
65
 
66
.subckt VINRANGE3 SIGNAL1 SIGNAL2 VCC VEE VINM VINP PARAMS: SignalGain=1 VIL=100e-3 VIH=100e-3
67
XIDVIL NET13 NET074 DiodeIdeal
68
XIDVIH NET076 NET13 DiodeIdeal
69
FVIL2 SIGNAL2 VEE VIL   {SignalGain} 
70
FVIL1 SIGNAL1 VEE VIL   {SignalGain} 
71
FVIH1 VCC SIGNAL1 VIH   {SignalGain} 
72
FVIH2 VCC SIGNAL2 VIH   {SignalGain} 
73
E1 NET8 0 VINM 0 1
74
E0 NET6 0 VINP 0 1
75
VIL NET074 VEE {VIL} 
76
VIH VCC NET076 {VIH} 
77
R7 NET8 NET13  1
78
R6 NET6 NET13  1
79
.ends VINRANGE3
80
 
81
 
82
.subckt ZIN IN1 IN2 OUT1 OUT2 PARAMS: R5=100e-3 R4=100e-3 C3=50e-15 C2=50e-15
83
+ C1=50e-15 R2=10e9 R1=10e9 R3=1e9
84
 
85
R5 IN2 OUT2   {R5} 
86
R4 IN1 OUT1   {R4} 
87
C3 OUT1 OUT2   {C3} 
88
C2 OUT2 0   {C2} 
89
C1 OUT1 0   {C1} 
90
GR2 OUT2 0 OUT2 0  {1/R2} 
91
GR1 0 OUT1 0 OUT1  {1/R1} 
92
GR3 OUT1 OUT2 OUT1 OUT2  {1/R3} 
93
.ends ZIN
94
 
95
 
96
.subckt DOMPOLE A B C PARAMS: R2=1e-3 R1=2.653e6 C2=1e-15 C1=10e-12
97
R2 NET7 A   {R2} 
98
R1 B A   {R1} 
99
C2 NET7 C   {C2} 
100
C1 A B   {C1} 
101
.ends DOMPOLE
102
 
103
 
104
.subckt PHASEDELAY A B VIN VOUT PARAMS: R1=1 R2=1e9 C1=1e-15 C2=1e-15 Gain=1 L=1e-12
105
R5 VOUT NET026  1e-3
106
R3 NET15 NET024  1e-3
107
R1 NET27 NET15   {R1} 
108
R4 NET15 A  1e9
109
R2 VOUT B   {R2} 
110
C1 NET024 A   {C1} 
111
C2 NET026 B   {C2} 
112
E0 NET27 0 VIN 0  {Gain} 
113
L0 NET15 VOUT  {L} 
114
.ends PHASEDELAY
115
 
116
 
117
.subckt NONDOMPOLE C VIN VOUT PARAMS: L=1e-12 Gain=1 C=226.7e-12 Rp=1e9 Rs=1
118
L0 NET020 VOUT  {L} 
119
E0 NET4 0 VIN 0  {Gain} 
120
C1 NET019 C   {C} 
121
R3 VOUT C   {Rp} 
122
R2 VOUT NET019  1e-3
123
R1 NET020 NET4   {Rs} 
124
.ends NONDOMPOLE
125
 
126
 
127
.subckt ANALOG_BUFFER VOUT VIN
128
R0 VIN 0  1e9
129
R1 VOUT 0  1e9
130
E0 VOUT 0 VIN 0 1
131
.ends ANALOG_BUFFER
132
 
133
 
134
.subckt OUTPUTCIR PD VCC VCCMAIN VEE VEEMAIN VIN VOUT
135
*XI25 NET75 NET092 OutputCir_IscDiodeIdeal PARAMS: IS=10e-15 N=50e-3
136
*XI23 NET79 NET76 OutputCir_IscDiodeIdeal PARAMS: IS=10e-15 N=50e-3
137
 
138
**XIVOL VOL VEE VIMONINV OutputCir_VOHVOL PARAMS: VSUPPLYREF=-2.5 VOUTvsIOUT_X1=
139
**+ {ABS(0)}  VOUTvsIOUT_Y1=-2.3 VOUTvsIOUT_X2= {ABS(-100e-3)}  VOUTvsIOUT_Y2=-2
140
**+ 
141
**XIVOH VCC VOH VIMON OutputCir_VOHVOL PARAMS: VSUPPLYREF=2.5 VOUTvsIOUT_X1= {ABS(0)}
142
**+ VOUTvsIOUT_Y1=2.3 VOUTvsIOUT_X2= {ABS(100e-3)}  VOUTvsIOUT_Y2=2
143
 
144
 
145
*XIVOL VOL VEE VIMONINV OutputCir_VOHVOL PARAMS: VSUPPLYREF=-2.5 VOUTvsIOUT_X1=
146
*+ {ABS(0)}  VOUTvsIOUT_Y1=-1.25 VOUTvsIOUT_X2= {ABS(-18.6724e-3)}  VOUTvsIOUT_Y2=-1.23448
147
*+ 
148
*XIVOH VCC VOH VIMON OutputCir_VOHVOL PARAMS: VSUPPLYREF=2.5 VOUTvsIOUT_X1= {ABS(0)}
149
*+ VOUTvsIOUT_Y1=1.25 VOUTvsIOUT_X2= {ABS(19.51225e-3)}  VOUTvsIOUT_Y2=1.09755
150
 
151
 
152
EVOH VCC VOH TABLE { V(VIMON) } =  
153
+ (0,0.9)
154
+ (60m,1.3)
155
+ (80m,1.45)
156
+ (100m,1.7414)
157
+ (105m,1.9778)
158
+ (106m,5)
159
 
160
 
161
EVOL VOL VEE TABLE { V(VIMONINV) } =  
162
+ (0,1.05)
163
+ (100m,1.68)
164
+ (105m,1.72)
165
+ (106m,5)
166
 
167
 
168
 
169
**XISOURCEVLIMIT NET064 NET76 VCC VEE OutputCir_IscVlimit PARAMS: RIsc=1 IscVsVsupply_X1=3
170
**+ IscVsVsupply_Y1= {ABS(75e-3)}  IscVsVsupply_X2=5 IscVsVsupply_Y2= {ABS(100e-3)}
171
**+ 
172
**XISINKVLIMIT NET047 NET092 VCC VEE OutputCir_IscVlimit PARAMS: RIsc=1 IscVsVsupply_X1=3
173
**+ IscVsVsupply_Y1= {ABS(-75e-3)}  IscVsVsupply_X2=5 IscVsVsupply_Y2= {ABS(-100e-3)}
174
**+
175
 
176
*XISOURCEVLIMIT NET064 NET76 VCC VEE OutputCir_IscVlimit PARAMS: RIsc=1 IscVsVsupply_X1=3
177
*+ IscVsVsupply_Y1= {ABS(125.446e-3)}  IscVsVsupply_X2=5 IscVsVsupply_Y2= {ABS(125.446e-3)}
178
*+ 
179
*XISINKVLIMIT NET047 NET092 VCC VEE OutputCir_IscVlimit PARAMS: RIsc=1 IscVsVsupply_X1=3
180
*+ IscVsVsupply_Y1= {ABS(-133.879e-3)}  IscVsVsupply_X2=5 IscVsVsupply_Y2= {ABS(-133.879e-3)}
181
*+ 
182
 
183
XI14 NET070 NET15 DiodeIdeal
184
XI15 NET068 VOL DiodeIdeal
185
XI0 VCCMAIN VEEMAIN VIMON PD OutputCir_ILOAD
186
 
187
**XI1 NET53 NET22 VIMON OutputCir_Rout PARAMS: Ro_Iout_0A=100 RIsc=1 Isc=100e-3 Islope_const=10e-3
188
**XI1 NET53 NET22 VIMON OutputCir_Rout PARAMS: Ro_Iout_0A=100 RIsc=1 Isc=129.6625e-3 Islope_const=10e-3
189
**XI1 NET53 NET22 VIMON OutputCir_Rout PARAMS: Ro_Iout_0A=12 RIsc=1 Isc=129.6625e-3 Islope_const=10e-3
190
*XI1 NET53 NET22 VIMON OutputCir_Rout PARAMS: Ro_Iout_0A=11.76 RIsc=1 Isc=129.6625e-3 Islope_const=10e-3
191
ROUT NET53 NET22 10.76
192
 
193
*XI6 NET22 NET0100 0 NET043 VCC VEE RECOVERYSIGNAL OutputCir_RecoveryAssist
194
*XAHDLI43 NET055 NET054 RECOVERYSIGNAL VCC VEE HPA_OR2
195
*XAHDLI41 VOUT NET067 NET055 VCC VEE HPA_COMP_IDEAL
196
*XAHDLI42 NET059 VOUT NET054 VCC VEE HPA_COMP_IDEAL
197
HVIMONINV VIMONINV 0 VCURSINKDETECT  1
198
HVIMON VIMON 0 VCURSOURCEDETECT  1
199
 
200
**RP NET092 NET0146  1e-3
201
 
202
RVIMONINV VIMONINV 0  1e9
203
RVIMON VIMON 0  1e9
204
RISC NET092 NET15  1
205
*VRISC NET092 NET15  0
206
 
207
**ROUTMINOR NET0100 NET17  10
208
**ROUTMINOR NET0100 NET17  1
209
ROUTMINOR NET0100 NET17  14
210
 
211
*XI11 NET76 NET15 ANALOG_BUFFER
212
XI2 NET22 VIN ANALOG_BUFFER
213
VPROBE3 NET070 VOH 0
214
*VPROBE2 NET043 NET0100 0
215
*VTRIGGERVOL NET059 VOL 10e-3
216
*VTRIGGERVOH VOH NET067 10e-3
217
*V3 NET79 NET047 0
218
*V4 NET75 NET064 0
219
VPROBE4 NET068 NET15 0
220
VCURSOURCEDETECT NET15 NET34 0
221
VCURSINKDETECT VOUT NET34 0
222
VPROBE1 NET53 NET17 0
223
 
224
**LOUT NET17 NET092 500e-12
225
 
226
**LOUT NET17 NET092 1.3e-8
227
LOUT NET17 NET092 3.5e-10
228
 
229
**CBYP NET17 NET0017 50e-11
230
CBYP NET17 NET0017 6e-12
231
**RBYP NET0017 NET17092 60
232
***RBYP NET0017 NET092 11
233
RBYP NET0017 NET092 12
234
 
235
**CP NET0146 0  1e-13
236
CP NET0146 0  5e-13
237
**RP NET092 NET0146  20
238
RP NET092 NET0146  28
239
 
240
**CP NET0146 0  1e-15
241
**COUT NET22 NET0100  1e-15
242
**COUT NET22 NET0100  1.8e-9
243
COUT NET22 NET0100  1e-8
244
.ends OUTPUTCIR
245
 
246
 
247
.subckt RECOVERYCIRCUIT A B VCC VEE PARAMS: VRecL=-10e-3 VRecH=-10e-3
248
XI2 NET8 NET014 DiodeIdeal
249
XI3 NET014 NET9 DiodeIdeal
250
VBRIDGE NET014 A 0
251
VPROBE A B 0
252
VRECL NET9 VEE {VRecL} 
253
VRECH VCC NET8 {VRecH} 
254
.ends RECOVERYCIRCUIT
255
 
256
 
257
.subckt VFA_HT5 VEE VCC VINM VINP VOUT PD
258
XI67 VCC_INT VEE_INT NET21 VINP_INT ESDDIODES PARAMS: VESDL=-250e-3 VESDH=1.25
259
XI68 VCC_INT VEE_INT NET22 VINM_INT ESDDIODES PARAMS: VESDL=-250e-3 VESDH=1.25
260
 
261
**XI66 HIGHZ NET56 VCC_INT VEE_INT NET22 NET21 VINRANGE3 PARAMS: SignalGain=1 VIL=100e-3 VIH=100e-3
262
*XI66 HIGHZ NET56 VCC_INT VEE_INT NET22 NET21 VINRANGE3 PARAMS: SignalGain=1 VIL=-250e-3 VIH=1.25
263
 
264
**XI60 VINP_INT VINM_INT Ibias PARAMS: Choice=1 Ibias=-10e-6 Ioffset=150e-9 TA=25
265
**+ IbiasDrift=0 IoffsetDrift=0 Ibiasp=-9.925e-6 Ibiasm=-10.075e-6
266
 
267
**XI60 VINP_INT VINM_INT Ibias PARAMS: Choice=1 Ibias=29.6478e-15 Ioffset=-1.177882e-15 TA=25
268
**+ IbiasDrift=299.258e-15 IoffsetDrift=0.540206e-15 Ibiasp=29.058859e-15 Ibiasm=30.236741e-15
269
 
270
**XI60 VINP_INT VINM_INT Ibias PARAMS: Choice=1 Ibias=28.9414e-15 Ioffset=0.726059e-15 TA=25
271
**+ IbiasDrift=299.258e-15 IoffsetDrift=0.540206e-15 Ibiasp=29.3044295e-15 Ibiasm=28.5783705e-15
272
 
273
XI60 VINP_INT VINM_INT Ibias PARAMS: Choice=1 Ibias=-570.3222e-15 Ioffset=1.582118e-15 TA=25
274
+ IbiasDrift=299.258e-15 IoffsetDrift=0.540206e-15 Ibiasp=29.3044295e-15 Ibiasm=28.5783705e-15
275
 
276
**XI21 NET12 NET22 NET12 CMRR PARAMS: CMRR_DC=-100 CMRR_f3dB=50e3 CMRR_f3dB_FudgeFactor=3.4
277
 
278
**XI21 NET12 NET22 NET12 CMRR PARAMS: CMRR_DC=-113.076 CMRR_f3dB=1238.346e3 CMRR_f3dB_FudgeFactor=3.4
279
 
280
**XI21 NET12 NET22 NET12 CMRR PARAMS: CMRR_DC=-125 CMRR_f3dB=1238.346e3 CMRR_f3dB_FudgeFactor=1
281
 
282
XI21 NET12 NET22 NET12 CMRR PARAMS: CMRR_DC=-140.076 CMRR_f3dB=1.238346e6 CMRR_f3dB_FudgeFactor=4
283
 
284
**XI19 VCC_INT VEE_INT NET2 NET12 PSRR PARAMS: PSRRP_DC=-100 PSRRP_f3dB=100e3
285
**+ PSRRN_DC=-90 PSRRN_f3dB=90e3
286
 
287
XI19 VCC_INT VEE_INT NET2 NET12 PSRR PARAMS: PSRRP_DC=-96.9149 PSRRP_f3dB=100e3
288
+ PSRRN_DC=-79.5666 PSRRN_f3dB=90e3
289
 
290
**XI53 VINP VINM NET1 NET2 ZIN PARAMS: R5=100e-3 R4=100e-3 C3=50e-15 C2=50e-15
291
**+ C1=50e-15 R2=10e9 R1=10e9 R3=1e9
292
 
293
XI53 VINP VINM NET1 NET2 ZIN PARAMS: R5=100e-3 R4=100e-3 C3=200e-15 C2=620.054e-15
294
+ C1=620.054e-15 R2=124.81e9 R1=124.81e9 R3=123.686e9
295
 
296
**XI58 HIGHZ NET32 0 DOMPOLE PARAMS: R2=1e-3 R1=2.653e6 C2=1e-15 C1=10e-12
297
**XI58 HIGHZ NET32 0 DOMPOLE PARAMS: R2=1e-3 R1=3.724e+05 C2=1e-15 C1=5.88e-13
298
***XI58 HIGHZ NET32 0 DOMPOLE PARAMS: R2=1e-3 R1=3.995E+05 C2=1e-15 C1=5.88e-13
299
XI58 HIGHZ NET32 0 DOMPOLE PARAMS: R2=1e-3 R1=3.995E+05 C2=1e-15 C1=5.88e-13
300
 
301
**XI18 NET11 0 Inoise PARAMS: X=1e-3 Y=100e-15 Z=1e-15
302
**XI63 NET2 0 Inoise PARAMS: X=1e-3 Y=100e-15 Z=1e-15
303
 
304
XI18 NET11 0 Inoise PARAMS: X=0.1e-3 Y=432e-15 Z=4.32e-15
305
XI63 NET2 0 Inoise PARAMS: X=0.1e-3 Y=432e-15 Z=4.32e-15
306
 
307
**XI52 VINP_INT VINM_INT NET32 NET31 VEE_INT VCC_INT POWER GmItail PARAMS: Choice=2
308
**+ Gm=37.7e-3 SBF=1 ITAILMAX_X1=3 ITAILMAX_Y1=1e-3 ITAILMAX_X2=5 ITAILMAX_Y2=1e-3
309
**+ ITAILMIN_X1=3 ITAILMIN_Y1=1e-3 ITAILMIN_X2=5 ITAILMIN_Y2=1e-3
310
 
311
**XI52 VINP_INT VINM_INT NET32 NET31 VEE_INT VCC_INT POWER GmItail PARAMS: Choice=2
312
**+ Gm=2.062e-02 SBF=1 ITAILMAX_X1=3 ITAILMAX_Y1=10 ITAILMAX_X2=5 ITAILMAX_Y2=10
313
**+ ITAILMIN_X1=3 ITAILMIN_Y1=10 ITAILMIN_X2=5 ITAILMIN_Y2=10
314
 
315
**XI52 VINP_INT VINM_INT NET32 NET31 VEE_INT VCC_INT POWER GmItail PARAMS: Choice=2
316
**+ Gm=2.062e-02 SBF=1 ITAILMAX_X1=3 ITAILMAX_Y1=53m ITAILMAX_X2=5 ITAILMAX_Y2=53m
317
**+ ITAILMIN_X1=3 ITAILMIN_Y1=53m ITAILMIN_X2=5 ITAILMIN_Y2=53m
318
 
319
**XI52 VINP_INT VINM_INT NET32 NET31 VEE_INT VCC_INT POWER GmItail PARAMS: Choice=11
320
**+ Gm=2.062e-02 SBF=1 ITAILMAX_X1=3 ITAILMAX_Y1=53m ITAILMAX_X2=5 ITAILMAX_Y2=53m
321
**+ ITAILMIN_X1=3 ITAILMIN_Y1=53m ITAILMIN_X2=5 ITAILMIN_Y2=53m
322
 
323
**XI52 VINP_INT VINM_INT NET32 NET31 VEE_INT VCC_INT POWER GmItail PARAMS: Choice=1
324
**+ Gm=2.062e-02 SBF=1 ITAILMAX_X1=3 ITAILMAX_Y1=1.08m ITAILMAX_X2=5 ITAILMAX_Y2=1.08m
325
**+ ITAILMIN_X1=3 ITAILMIN_Y1=1.08m ITAILMIN_X2=5 ITAILMIN_Y2=1.08m
326
 
327
**XI52 VINP_INT VINM_INT NET32 NET31 VEE_INT VCC_INT POWER GmItail PARAMS: Choice=1
328
**+ Gm=2.058E-02 SBF=1 ITAILMAX_X1=3 ITAILMAX_Y1=1.08m ITAILMAX_X2=5 ITAILMAX_Y2=1.08m
329
**+ ITAILMIN_X1=3 ITAILMIN_Y1=1.08m ITAILMIN_X2=5 ITAILMIN_Y2=1.08m
330
 
331
XI52 VINP_INT VINM_INT NET32 NET31 VEE_INT VCC_INT POWER GmItail PARAMS: Choice=1
332
+ Gm=2.058E-02 SBF=1 ITAILMAX_X1=3 ITAILMAX_Y1=1m ITAILMAX_X2=5 ITAILMAX_Y2=1m
333
+ ITAILMIN_X1=3 ITAILMIN_Y1=1m ITAILMIN_X2=5 ITAILMIN_Y2=1m
334
 
335
 
336
 
337
XI85 0 0 NET61 NET71 PHASEDELAY PARAMS: R1=1 R2=1e9 C1=1e-15 C2=1e-15 Gain=1 L=1e-12
338
 
339
**XI26 0 NET51 NET61 NONDOMPOLE PARAMS: L=1e-12 Gain=1 C=226.7e-12 Rp=1e9 Rs=1
340
**XI26 0 NET51 NET61 NONDOMPOLE PARAMS: L=1e-12 Gain=1 C=1.275e-11 Rp=1e9 Rs=1
341
**XI26 0 NET51 NET61 NONDOMPOLE PARAMS: L=1e-12 Gain=1 C=6.275e-12 Rp=1e9 Rs=1
342
 
343
**XI26 0 NET51 NET61 NONDOMPOLE PARAMS: L=1e-12 Gain=1 C=2.209E-11 Rp=1e9 Rs=1
344
*JB_06MAR2017*XI26 0 NET51 NET61 NONDOMPOLE PARAMS: L=1e-12 Gain=1 C=2.109E-11 Rp=1e9 Rs=1
345
****XI26 0 NET51 NET61 NONDOMPOLE PARAMS: L=1e-12 Gain=1 C=7.25E-11 Rp=1e9 Rs=1
346
**XI26 0 NET51 NET61 NONDOMPOLE PARAMS: L=1e-12 Gain=1 C=1.100E-11 Rp=1e9 Rs=1
347
XI26 0 NET51 NET61 NONDOMPOLE PARAMS: L=1e-12 Gain=1 C=7.100E-11 Rp=1e9 Rs=1
348
 
349
 
350
 
351
**XI17 NET1 NET11 Vnoise PARAMS: X=1e-3 Y=100e-9 Z=5e-9
352
XI17 NET1 NET11 Vnoise PARAMS: X=0.1e-3 Y=246e-9 Z=2.46e-9
353
 
354
**XI59 NET21 NET11 Vinoffset PARAMS: TA=25 VOS=500e-6 DRIFT=10e-6
355
**XI59 NET21 NET11 Vinoffset PARAMS: TA=25 VOS=78.8929e-6 DRIFT=1.25929e-6
356
XI59 NET21 NET11 Vinoffset PARAMS: TA=25 VOS=76.3758e-6 DRIFT=1.25929e-6
357
 
358
XI30 POWER VCC_INT VCC VEE_INT VEE NET71 VOUT OUTPUTCIR
359
 
360
**XI28 NET41 NET51 VCC_INT VEE_INT RECOVERYCIRCUIT PARAMS: VRecL=-10e-3 VRecH=-10e-3
361
XI28 NET41 NET51 VCC_INT VEE_INT RECOVERYCIRCUIT PARAMS: VRecL=-10m VRecH=-10m
362
 
363
**XI40 VCC VEE POWER VEE_INT VCC_INT Iq PARAMS: IOFF=1e-9 ION_X1=0 ION_Y1=1e-3
364
**+ ION_X2=1.6 ION_Y2=1e-3 ION_X3=1.9 ION_Y3=1e-3 ION_X4=12 ION_Y4=1e-3
365
 
366
XI40 VCC VEE POWER VEE_INT VCC_INT Iq PARAMS: IOFF=66.5902e-6 ION_X1=0 ION_Y1=20.2177e-3
367
+ ION_X2=1.6 ION_Y2=20.2177e-3 ION_X3=1.9 ION_Y3=20.2177e-3 ION_X4=12 ION_Y4=20.2177e-3
368
 
369
VPROBE2 HIGHZ NET41
370
VDOMPOLEBIAS NET32 0 0
371
VPROBE1 NET31 HIGHZ
372
*R0 NET56 0  1e3
373
R14 VCC_INT PD  10e6
374
XAHDLINV3 PD PDINV VCC_INT VEE_INT HPA_INV_IDEAL
375
XAHDLINV1 PDINV POWER VCC_INT VEE_INT HPA_INV_IDEAL
376
XI13 VEE_INT VEE ANALOG_BUFFER
377
XI12 VCC_INT VCC ANALOG_BUFFER
378
.ends VFA_HT5
379
 
380
 
381
 
382
 
383
.SUBCKT HPA_OR2 1 2 3 VDD VSS
384
E1 4 0 VALUE = { IF( ((V(1)< (V(VDD)+V(VSS))/2 ) & (V(2)< (V(VDD)+V(VSS))/2 )), V(VSS), V(VDD) ) }
385
R1 4 3 1
386
C1 3 0 1e-12
387
.ENDS
388
 
389
 
390
.SUBCKT HPA_INV_IDEAL 1 2 VDD VSS
391
E1 2 0 VALUE = { IF( V(1)> (V(VDD)+V(VSS))/2, V(VSS), V(VDD) ) }
392
.ENDS
393
 
394
 
395
.SUBCKT HPA_COMP_IDEAL INP INN OUT VDD VSS
396
E1 OUT 0 VALUE = { IF( (V(INP) > V(INN)), V(VDD), V(VSS) ) }
397
.ENDS
398
 
399
 
400
.SUBCKT AVG VIN1 VIN2 VOUT
401
E1 VOUT 0 VALUE = { ( V(VIN1) + V(VIN2) ) / 2 }
402
.ENDS
403
 
404
 
405
 
406
 
407
 
408
 
409
.SUBCKT CMRR A B C PARAMS:
410
 
411
+ CMRR_DC 	        = -100
412
+ CMRR_f3dB             = 50e3
413
+ CMRR_f3dB_FudgeFactor = 3.4
414
 
415
.PARAM CMRR       = {0-CMRR_DC}
416
.PARAM FCMRR	  = {CMRR_f3dB * CMRR_f3dB_FudgeFactor}
417
 
418
X1 A B C 0 CMRR_NEW PARAMS: CMRR = {CMRR} FCMRR = {FCMRR}
419
.ENDS
420
 
421
 
422
.SUBCKT DiodeIdeal NEG POS
423
 
424
 
425
 
426
 
427
 
428
 
429
 
430
 
431
 
432
 
433
 
434
G1 POS NEG VALUE = { IF ( V(POS,NEG) <= 0 , 0, V(POS,NEG)*0.01G ) }
435
R0 POS NEG 1000G
436
 
437
 
438
 
439
.ENDS
440
 
441
 
442
.SUBCKT DomPoleBias VIN1 VIN2 VOUT
443
E1 VOUT 0 VALUE = { ( V(VIN1) + V(VIN2) ) / 2 * 1/2}
444
R1 VOUT 0 1G
445
 
446
 
447
.ENDS
448
 
449
 
450
.SUBCKT GmItail  Vinp Vinm Ioutp Ioutm VEE VCC PD PARAMS:
451
+ Choice 	= 2
452
 
453
+ Gm 	        = 3.77e-2
454
+ SBF		= 1 
455
 
456
+ ITAILMAX_X1 	= { 3.0 }
457
+ ITAILMAX_Y1 	= { 10m }
458
 
459
+ ITAILMAX_X2 	= { 5.0 }
460
+ ITAILMAX_Y2 	= { 10m }
461
 
462
+ ITAILMIN_X1 	= { 3.0 }
463
+ ITAILMIN_Y1 	= { 10m }
464
 
465
+ ITAILMIN_X2 	= { 5.0 }
466
+ ITAILMIN_Y2 	= { 10m }
467
 
468
 
469
 
470
 
471
.PARAM Choice1 		= { IF ( Choice == 1,  1, 0 ) }
472
.PARAM Choice2 		= { IF ( Choice == 2,  1, 0 ) }
473
.PARAM Choice3		= { IF ( Choice == 3,  1, 0 ) }
474
.PARAM Choice11 	= { IF ( Choice == 11, 1, 0 ) }
475
 
476
 
477
X1 PD PDINV VCC VEE LOGIC1 0 DLSINV
478
VLOGIC1 LOGIC1 0 1
479
 
480
 
481
 
482
 
483
.PARAM ITAILMAX_SLOPE = 
484
+ { ( ITAILMAX_Y2 - ITAILMAX_Y1 ) / ( ITAILMAX_X2 - ITAILMAX_X1 ) }
485
.PARAM ITAILMAX_INTCP = 
486
+ { ITAILMAX_Y1 - ITAILMAX_SLOPE * ITAILMAX_X1 }
487
 
488
EITAILMAX ITAILMAX 0 VALUE = 
489
+ { ITAILMAX_SLOPE * V(VCC,VEE) + ITAILMAX_INTCP  }
490
 
491
 
492
 
493
 
494
.PARAM ITAILMIN_SLOPE = 
495
+ { ( ITAILMIN_Y2 - ITAILMIN_Y1 ) / ( ITAILMIN_X2 - ITAILMIN_X1 ) }
496
.PARAM ITAILMIN_INTCP = 
497
+ { ITAILMIN_Y1 - ITAILMIN_SLOPE * ITAILMIN_X1 }
498
 
499
EITAILMIN ITAILMIN 0 VALUE = 
500
+ { ITAILMIN_SLOPE * V(VCC,VEE) + ITAILMIN_INTCP  }
501
 
502
 
503
 
504
 
505
 
506
 
507
G1 IOUTP IOUTM VALUE = { ( 1-V(PDINV) ) * (
508
+ Choice1  * ( LIMIT ( Gm * V(VINP,VINM) , -V(ITAILMIN), V(ITAILMAX) ) ) +
509
+ Choice2  * ( Gm * (V(ITAILMAX)/Gm) * TANH( V(VINP,VINM) / (V(ITAILMAX)/Gm) )   ) +	
510
+ Choice3  * ( Gm * V(VINP,VINM) / ( 1 + Gm/V(ITAILMAX) * ABS( V(VINP,VINM) ) ) ) +              		
511
+ Choice11 * ( LIMIT ( ( Gm * EXP ( LIMIT ( SBF * ABS(V(VINP,VINM)) , -LOG(1E100), LOG(1E100) ) ) ) 
512
+                     * V(VINP,VINM) , -V(ITAILMIN), V(ITAILMAX) ) ) +
513
 
514
+ 0					   )	}
515
 
516
.ENDS
517
 
518
.SUBCKT Ibias VINP VINM PARAMS:
519
+ Choice       = 1
520
 
521
+ Ibias        = -10u
522
+ Ioffset      = 150n
523
 
524
+ TA           = 25
525
+ IbiasDrift   = 0
526
+ IoffsetDrift = 0
527
 
528
+ Ibiasp       =  -9.925u
529
+ Ibiasm       = -10.075u
530
 
531
.PARAM Choice1 = { IF ( Choice == 1, 1, 0 ) }
532
.PARAM Choice2 = { IF ( Choice == 2, 1, 0 ) }
533
 
534
.PARAM Ib = { Choice1 * Ibias   + Choice2 * (Ibiasp + Ibiasm)/2  }
535
.PARAM Io = { Choice1 * Ioffset + Choice2 * ABS(Ibiasp - Ibiasm) } 
536
 
537
EIb Ib 0 VALUE = { IbiasDrift   * TEMP + ( Ib - IbiasDrift   * TA ) }
538
EIo Io 0 VALUE = { IoffsetDrift * TEMP + ( Io - IoffsetDrift * TA ) }
539
 
540
GIbp VINP 0 VALUE = { V(Ib) + V(Io)/2 }
541
GIbm VINM 0 VALUE = { V(Ib) - V(Io)/2 }
542
 
543
.ENDS
544
 
545
 
546
.SUBCKT Inoise A B PARAMS:
547
+ X = { 1m  }
548
+ Y = { 100f }
549
+ Z = { 1f }
550
X1 A B FEMT PARAMS: NLFF = { Y/1f }  FLWF = { X } NVRF = { Z/1f }
551
.ENDS
552
 
553
 
554
.subckt Iq VCCmain VEEmain PD VEE VCC PARAMS:
555
+ IOFF = { 1n }
556
 
557
+ ION_X1 = { 0.0 }
558
+ ION_Y1 = { 1m }
559
 
560
+ ION_X2 = { 1.6 }
561
+ ION_Y2 = { 1m }
562
 
563
+ ION_X3 = { 1.9 }
564
+ ION_Y3 = { 1m }
565
 
566
+ ION_X4 = { 12.0 }
567
+ ION_Y4 = { 1m }
568
 
569
 
570
 
571
 
572
 
573
 
574
 
575
 
576
 
577
 
578
 
579
 
580
 
581
 
582
 
583
 
584
 
585
 
586
 
587
EION_SEG1 ION_SEG1 0 VALUE = { IF ( 		          V(VCC,VEE) <= ION_X2, 1, 0 ) }
588
EION_SEG2 ION_SEG2 0 VALUE = { IF ( V(VCC,VEE) > ION_X2 & V(VCC,VEE) <= ION_X3, 1, 0 ) }
589
EION_SEG3 ION_SEG3 0 VALUE = { IF ( V(VCC,VEE) > ION_X3		              , 1, 0 ) }
590
 
591
 
592
 
593
.PARAM ION_SEG1_SLOPE = { ( ION_Y2 - ION_Y1 ) / ( ION_X2 - ION_X1 ) }
594
.PARAM ION_SEG1_INTCP = { ION_Y1 - ION_SEG1_SLOPE * ION_X1 }
595
 
596
.PARAM ION_SEG2_SLOPE = { ( ION_Y3 - ION_Y2 ) / ( ION_X3 - ION_X2 ) }
597
.PARAM ION_SEG2_INTCP = { ION_Y2 - ION_SEG2_SLOPE * ION_X2 }
598
 
599
.PARAM ION_SEG3_SLOPE = { ( ION_Y4 - ION_Y3 ) / ( ION_X4 - ION_X3 ) }
600
.PARAM ION_SEG3_INTCP = { ION_Y3 - ION_SEG3_SLOPE * ION_X3 }
601
 
602
 
603
 
604
EION ION 0 VALUE = { 	V(ION_SEG1) * ( ION_SEG1_SLOPE * V(VCC,VEE) + ION_SEG1_INTCP ) +
605
+			V(ION_SEG2) * ( ION_SEG2_SLOPE * V(VCC,VEE) + ION_SEG2_INTCP ) +
606
+ 			V(ION_SEG3) * ( ION_SEG3_SLOPE * V(VCC,VEE) + ION_SEG3_INTCP ) 	}
607
 
608
 
609
 
610
X1 PD PDINV VCC VEE LOGIC1 0 DLSINV
611
VLOGIC1 LOGIC1 0 1
612
 
613
G1 VCCMAIN VEEMAIN VALUE = { V(ION) * ( 1-V(PDINV) ) + IOFF * V(PDINV) }  
614
 
615
.ends
616
 
617
 
618
.SUBCKT OutputCir_ILOAD  VDD VSS VIMON PD
619
X1 PD PDINV VDD VSS LOGIC1 0 DLSINV
620
VLOGIC1 LOGIC1 0 1
621
 
622
G1 VDD 0 VALUE = {IF(V(VIMON) >= 0, V(VIMON)*( 1-V(PDINV) ), 0)}
623
G2 VSS 0 VALUE = {IF(V(VIMON)  < 0, V(VIMON)*( 1-V(PDINV) ), 0)}
624
 
625
.ENDS
626
 
627
 
628
.SUBCKT OutputCir_IscDiodeIdeal NEG POS PARAMS: 
629
+ IS = 1E-14
630
+ N  = 50m
631
 
632
 
633
 
634
G1 POS NEG_INT VALUE = { IF ( V(POS,NEG_INT) <= 0 , IS,  
635
+                             IS * ( EXP ( V(POS,NEG_INT)/25m * 1/N ) - 0 )  ) }  
636
 
637
 
638
V1 NEG_INT NEG {-N*0.8}
639
 
640
 
641
 
642
 
643
 
644
 
645
 
646
 
647
 
648
 
649
 
650
.ENDS
651
 
652
 
653
.SUBCKT OutputCir_IscVlimit A B VCC VEE PARAMS:
654
+RIsc 		 = { 1 }
655
 
656
+IscVsVsupply_X1 = { 3.0 }
657
+IscVsVsupply_Y1 = { 75m }
658
 
659
+IscVsVsupply_X2 = { 5.0 }
660
+IscVsVsupply_Y2 = { 100m }
661
 
662
.PARAM IscVsVsupply_SLOPE = 
663
+ { ( IscVsVsupply_Y2 - IscVsVsupply_Y1 ) / ( IscVsVsupply_X2 - IscVsVsupply_X1 ) }
664
.PARAM IscVsVsupply_INTCP = 
665
+ { IscVsVsupply_Y1 - IscVsVsupply_SLOPE * IscVsVsupply_X1 }
666
 
667
EIscVsVsupply IscVsVsupply 0 VALUE = 
668
+ { IscVsVsupply_SLOPE * V(VCC,VEE) + IscVsVsupply_INTCP  }
669
 
670
E1 A B VALUE = { V(IscVsVsupply) * RIsc }
671
 
672
.ENDS
673
 
674
 
675
.SUBCKT OutputCir_RecoveryAssist  VINP VINM IOUTP IOUTM VCC VEE RecoverySignal
676
 
677
 
678
 
679
X1 RecoverySignal RS VCC VEE LOGIC1 0 DLS
680
VLOGIC1 LOGIC1 0 1
681
 
682
G1 IOUTP IOUTM VALUE = { LIMIT ( 1m * V(VINP,VINM) *  V(RS) , -100m, 100m ) }
683
 
684
.ENDS
685
 
686
 
687
.SUBCKT OutputCir_Rout B A VIMON PARAMS:
688
+ Ro_Iout_0A = 100
689
+ RIsc = 1
690
+ Isc = 100m
691
+ Islope_const = 1/100
692
 
693
.PARAM Islope = { Islope_const * Isc }
694
 
695
 
696
 
697
 
698
 
699
 
700
 
701
 
702
 
703
 
704
G1 A B VALUE = { V(A,B) * 1 / ( (Ro_Iout_0A - RIsc) * Islope / ( Islope + ABS(V(VIMON)) ) )   }
705
 
706
 
707
 
708
.ENDS
709
 
710
 
711
.SUBCKT OutputCir_VOHVOLDiodeIdeal NEG POS
712
 
713
G1 POS NEG VALUE = { IF ( V(POS,NEG) <= 0 , 0, V(POS,NEG)*0.01G ) }
714
R0 POS NEG 1000G
715
 
716
 
717
.ENDS
718
 
719
 
720
.SUBCKT OutputCir_VOHVOL A B C  PARAMS:
721
+ VSUPPLYREF    = {2.5} 
722
 
723
+ VOUTvsIOUT_X1 = { ABS(0) }
724
+ VOUTvsIOUT_Y1 = { 2.4 }
725
 
726
+ VOUTvsIOUT_X2 = { ABS(100m) }
727
+ VOUTvsIOUT_Y2 = { 2.1 }
728
 
729
 
730
.PARAM VDROPvsIOUT_X1 = { VOUTvsIOUT_X1 }
731
.PARAM VDROPvsIOUT_Y1 = { ABS(VSUPPLYREF-VOUTvsIOUT_Y1) }
732
 
733
.PARAM VDROPvsIOUT_X2 = { VOUTvsIOUT_X2 }
734
.PARAM VDROPvsIOUT_Y2 = { ABS(VSUPPLYREF-VOUTvsIOUT_Y2) }
735
 
736
 
737
.PARAM VDROPvsIOUT_SLOPE = 
738
+ { ( VDROPvsIOUT_Y2 - VDROPvsIOUT_Y1 ) / ( VDROPvsIOUT_X2 - VDROPvsIOUT_X1 ) }
739
.PARAM VDROPvsIOUT_INTCP = 
740
+ { VDROPvsIOUT_Y1 - VDROPvsIOUT_SLOPE * VDROPvsIOUT_X1 }
741
 
742
 
743
EVDROPvsIOUT VDROPvsIOUT 0 VALUE = 
744
+ { VDROPvsIOUT_SLOPE * V(C) + VDROPvsIOUT_INTCP  }
745
 
746
E1 A B VALUE = { V(VDROPvsIOUT) }
747
 
748
 
749
 
750
.ENDS
751
 
752
 
753
 
754
 
755
 
756
 
757
 
758
.SUBCKT PSRR VDD VSS A B PARAMS:
759
 
760
+ PSRRP_DC    = -100
761
+ PSRRP_f3dB  = 100k
762
 
763
+ PSRRN_DC    = -90
764
+ PSRRN_f3dB  = 90k
765
 
766
.PARAM PSRRP       = {0-PSRRP_DC}
767
.PARAM PSRRN       = {0-PSRRN_DC}
768
.PARAM FPSRRP      = {PSRRP_f3dB}
769
.PARAM FPSRRN      = {PSRRN_f3dB}
770
 
771
 
772
X1 VDD VSS A B 0 PSRR_DUAL_NEW PARAMS:
773
+ PSRRP = {PSRRP} FPSRRP = {FPSRRP}
774
+ PSRRN = {PSRRN} FPSRRN = {FPSRRN}
775
.ENDS
776
 
777
 
778
.SUBCKT RecoveryCircuit_DiodeIdeal NEG POS
779
 
780
G1 POS NEG VALUE = { IF ( V(POS,NEG) <= 0 , 0, V(POS,NEG)*0.01G ) }
781
R0 POS NEG 1000G
782
 
783
 
784
.ENDS
785
 
786
 
787
.SUBCKT Vinoffset POS NEG PARAMS: 
788
+ TA     = 25
789
+ VOS    = 500u
790
+ DRIFT  = 10u 
791
 
792
 
793
 
794
 
795
E1 POS NEG VALUE = { DRIFT * TEMP + ( VOS - DRIFT * TA     ) }
796
 
797
 
798
 
799
.ENDS
800
 
801
 
802
.SUBCKT Vinrange_DiodeIdeal NEG POS
803
 
804
G1 POS NEG VALUE = { IF ( V(POS,NEG) <= 0 , 0, V(POS,NEG)*100k ) }
805
R0 POS NEG 1000G
806
 
807
 
808
.ENDS
809
 
810
 
811
.SUBCKT Vnoise A B PARAMS:
812
+ X = { 1m  }
813
+ Y = { 100n }
814
+ Z = { 5n  }
815
X1 A B VNSE PARAMS: NLF = { Y/1n } FLW = { X }  NVR = { Z/1n }
816
.ENDS
817
 
818
 
819
 
820
 
821
 
822
 
823
 
824
 
825
 
826
 
827
 
828
 
829
.SUBCKT VNSE  1 2 PARAMS: NLF = 10 FLW = 4  NVR = 4.6
830
.PARAM GLF={PWR(FLW,0.25)*NLF/1164}
831
.PARAM RNV={1.184*PWR(NVR,2)}
832
.MODEL DVN D KF={PWR(FLW,0.5)/1E11} IS=1.0E-16
833
I1 0 7 10E-3
834
I2 0 8 10E-3
835
D1 7 0 DVN
836
D2 8 0 DVN
837
E1 3 6 7 8 {GLF}
838
R1 3 0 1E9
839
R2 3 0 1E9
840
R3 3 6 1E9
841
E2 6 4 5 0 10
842
R4 5 0 {RNV}
843
R5 5 0 {RNV}
844
R6 3 4 1E9
845
R7 4 0 1E9
846
E3 1 2 3 4 1
847
C1 1 0 1E-15
848
C2 2 0 1E-15
849
C3 1 2 1E-15
850
.ENDS
851
 
852
 
853
 
854
.SUBCKT FEMT  1 2 PARAMS: NLFF = 0.1 FLWF = 0.001 NVRF = 0.1
855
.PARAM GLFF={PWR(FLWF,0.25)*NLFF/1164}
856
.PARAM RNVF={1.184*PWR(NVRF,2)}
857
.MODEL DVNF D KF={PWR(FLWF,0.5)/1E11} IS=1.0E-16
858
I1 0 7 10E-3
859
I2 0 8 10E-3
860
D1 7 0 DVNF
861
D2 8 0 DVNF
862
E1 3 6 7 8 {GLFF}
863
R1 3 0 1E9
864
R2 3 0 1E9
865
R3 3 6 1E9
866
E2 6 4 5 0 10
867
R4 5 0 {RNVF}
868
R5 5 0 {RNVF}
869
R6 3 4 1E9
870
R7 4 0 1E9
871
G1 1 2 3 4 1E-6
872
C1 1 0 1E-15
873
C2 2 0 1E-15
874
C3 1 2 1E-15
875
.ENDS
876
 
877
 
878
 
879
 
880
 
881
 
882
.SUBCKT PSRR_SINGLE   VDD  VSS  VI  VO  GNDF PARAMS: PSRR = 130 FPSRR = 1.6
883
.PARAM PI = 3.141592
884
.PARAM RPSRR = 1
885
.PARAM GPSRR = {PWR(10,-PSRR/20)/RPSRR}
886
.PARAM LPSRR = {RPSRR/(2*PI*FPSRR)}
887
G1  GNDF 1 VDD VSS {GPSRR}
888
R1  1 2 {RPSRR}
889
L1  2 GNDF {LPSRR}
890
E1  VO VI 1 GNDF 1
891
C2  VDD VSS 10P
892
.ENDS
893
 
894
.SUBCKT PSRR_SINGLE_NEW   VDD  VSS  VI  VO  GNDF PARAMS: PSRR = 130 FPSRR = 1.6
895
.PARAM PI = 3.141592
896
.PARAM RPSRR = 1
897
.PARAM GPSRR = {PWR(10,-PSRR/20)/RPSRR}
898
.PARAM LPSRR = {RPSRR/(2*PI*FPSRR)}
899
G1  GNDF 1 VDD VSS {GPSRR}
900
R1  1 2 {RPSRR}
901
L1  2 GNDF {LPSRR}
902
 
903
EA  101 GNDF 1 GNDF 1
904
GRA  101 102 VALUE = { V(101,102)/1e6 }
905
CA  102 GNDF 1e3
906
EB  1 1a VALUE = {V(102,GNDF)}
907
 
908
E1  VO VI 1a GNDF 1
909
C2  VDD VSS 10P
910
.ENDS
911
 
912
.SUBCKT PSRR_DUAL   VDD  VSS  VI  VO  GNDF 
913
+ PARAMS: PSRRP = 130 FPSRRP = 1.6
914
+ PSRRN = 130 FPSRRN = 1.6
915
.PARAM PI = 3.141592
916
.PARAM RPSRRP = 1
917
.PARAM GPSRRP = {PWR(10,-PSRRP/20)/RPSRRP}
918
.PARAM LPSRRP = {RPSRRP/(2*PI*FPSRRP)}
919
.PARAM RPSRRN = 1
920
.PARAM GPSRRN = {PWR(10,-PSRRN/20)/RPSRRN}
921
.PARAM LPSRRN = {RPSRRN/(2*PI*FPSRRN)}
922
G1  GNDF 1 VDD GNDF {GPSRRP}
923
R1  1 2 {RPSRRP}
924
L1  2 GNDF {LPSRRP}
925
 
926
G2  GNDF 3 VSS GNDF {GPSRRN}
927
R2  3 4 {RPSRRN}
928
L2  4 GNDF {LPSRRN}
929
 
930
E1  VO VI VALUE = {V(1,GNDF) + V(3,GNDF)}
931
C3  VDD VSS 10P
932
.ENDS
933
 
934
.SUBCKT PSRR_DUAL_NEW   VDD  VSS  VI  VO  GNDF 
935
+ PARAMS: PSRRP = 130 FPSRRP = 1.6
936
+ PSRRN = 130 FPSRRN = 1.6
937
.PARAM PI = 3.141592
938
.PARAM RPSRRP = 1
939
.PARAM GPSRRP = {PWR(10,-PSRRP/20)/RPSRRP}
940
.PARAM LPSRRP = {RPSRRP/(2*PI*FPSRRP)}
941
.PARAM RPSRRN = 1
942
.PARAM GPSRRN = {PWR(10,-PSRRN/20)/RPSRRN}
943
.PARAM LPSRRN = {RPSRRN/(2*PI*FPSRRN)}
944
 
945
G1  GNDF 1 VDD GNDF {GPSRRP}
946
R1  1 2 {RPSRRP}
947
L1  2 GNDF {LPSRRP}
948
 
949
EA  101 GNDF 1 GNDF 1
950
GRA  101 102 VALUE = { V(101,102)/1e6 }
951
CA  102 GNDF 1e3
952
EB  1 1a VALUE = {V(102,GNDF)}
953
 
954
 
955
G2  GNDF 3 VSS GNDF {GPSRRN}
956
R2  3 4 {RPSRRN}
957
L2  4 GNDF {LPSRRN}
958
 
959
EC  301 GNDF 3 GNDF 1
960
GRC  301 302 VALUE = { V(301,302)/1e6 }
961
CC  302 GNDF 1e3
962
ED  3 3a VALUE = {V(302,GNDF)}
963
 
964
 
965
E1  VO VI VALUE = {V(1a,GNDF) + V(3a,GNDF)}
966
C3  VDD VSS 10P
967
.ENDS
968
 
969
 
970
 
971
.SUBCKT CMRR_OLD   VI  VO  VX GNDF PARAMS: CMRR = 130 FCMRR = 1.6K
972
.PARAM PI = 3.141592
973
.PARAM RCMRR = 1
974
.PARAM GCMRR = {PWR(10,-CMRR/20)/RCMRR}
975
.PARAM LCMRR = {RCMRR/(2*PI*FCMRR)}
976
G1  GNDF 1 VX GNDF {GCMRR}
977
R1  1 2 {RCMRR}
978
L1  2 GNDF {LCMRR}
979
E1  VI VO 1 GNDF 1
980
.ENDS
981
 
982
.SUBCKT CMRR_NEW   VI  VO VX GNDF PARAMS: CMRR = 130 FCMRR = 1.6K
983
.PARAM PI = 3.141592
984
.PARAM RCMRR = 1
985
.PARAM GCMRR = {PWR(10,-CMRR/20)/RCMRR}
986
.PARAM LCMRR = {RCMRR/(2*PI*FCMRR)}
987
G1  GNDF 1 VX GNDF {GCMRR}
988
R1  1 2 {RCMRR}
989
L1  2 GNDF {LCMRR}
990
 
991
EA  101 GNDF 1 GNDF 1
992
GRA  101 102 VALUE = {V(101,102)/1e6}
993
CA  102 GNDF 1e3
994
EB  1 1a VALUE = {V(102,GNDF)}
995
 
996
E1  VI VO 1a GNDF 1
997
.ENDS
998
 
999
 
1000
 
1001
.SUBCKT DLS 1 2 VDD_OLD VSS_OLD VDD_NEW VSS_NEW
1002
E1 3 0 VALUE = { IF( V(1) < (V(VDD_OLD)+V(VSS_OLD))/2, V(VSS_NEW), V(VDD_NEW) ) }
1003
R1 3 2 1
1004
C1 2 0 1p
1005
.ENDS
1006
 
1007
 
1008
.SUBCKT DLSINV 1 2 VDD_OLD VSS_OLD VDD_NEW VSS_NEW
1009
E1 3 0 VALUE = { IF( V(1) > (V(VDD_OLD)+V(VSS_OLD))/2, V(VSS_NEW), V(VDD_NEW) ) }
1010
R1 3 2 1
1011
C1 2 0 1p
1012
.ENDS
1013
 
1014
 
1015
.SUBCKT SWITCH_IDEAL A B C PARAMS:
1016
+ Ron  = 100m
1017
+ Roff = 0.1G
1018
 
1019
 
1020
 
1021
 
1022
 
1023
G1 A B VALUE = { V(A,B) * 1 / ( Roff/2 * TANH( 0 - ( 20*V(C) - 5 ) ) + Roff/2 + Ron )  }
1024
 
1025
R1 A 0 1000G
1026
R2 B 0 1000G
1027
 
1028
.ENDS
1029
 
1030
 
1031
 
1032
 
1033
 
1034
 
1035
 
1036
 
1037
 
1038
.MODEL VINRANGE_DIDEAL         D N=1m
1039
.MODEL RECOVERYCIRCUIT_DIDEAL  D N=1m 
1040
 
1041
.MODEL OUTPUTCIR_ISC_DIDEAL    D N=0.1m
1042
.MODEL OUTPUTCIR_VOHVOL_DIDEAL D N=1m 
1043
.MODEL DBASIC D
1044
 
1045
 
1046
 
1047
 
1048
 
1049
 
1050