* Z:\home\khalils\Downloads\files\data\raw_asc\942dc4354046_stepping_opamp_models.asc
* Generated by LTspice 26.0.1 for Windows.
* Stepping Subcircuit Models\n \nThe opamp model names must be reduced to pure numbers!\n \nPlease read the restrictions in the left side txet box!
* National Semiconductor, Inc.
*
* connections: non-inverting input
* | inverting input
* | | positive power supply
* | | | negative power supply
* | | | | output
* | | | | |
* | | | | |
*.SUBCKT LM324/NS 1 2 99 50 28
*
*Features:
*Eliminates need for dual supplies
*Large DC voltage gain = 100dB
*High bandwidth = 1MHz
*Low input offset voltage = 2mV
*Wide supply range = +-1.5V to +-16V
*
*NOTE: Model is for single device only and simulated
* supply current is 1/4 of total device current.
* Output crossover distortion with dual supplies
* is not modeled.
*
****************INPUT STAGE**************
*
*^Input offset current
*Fp2=1.2 MHz
*
***********COMMON MODE EFFECT***********
*
*^Quiescent supply current
*Input offset voltage.^
*
*********OUTPUT VOLTAGE LIMITING********
*
**************SECOND STAGE**************
*
*Fp1=7.86 Hz
*
***************POLE STAGE***************
*
*Fp=2 MHz
*
*********COMMON-MODE ZERO STAGE*********
*
*Fpcm=10 KHz
*
**************OUTPUT STAGE**************
*
*
***************MODELS USED**************
*
*
*$
* .include opampmodel.txt
* Linear Technology
*
* From ltc.lib
*
*.SUBCKT LT1013D 1 2 3 4 5
*
*
* .STEP param M list 324 1013
* We use normally .include for adding models.
* I just realized there's a problem with my\nsuggestion. You have to either make sure\nthat subcircuit nodes and subcircuit device\ncurrents aren't saved(Go to Tools=>Control\nPanel=>Save Default and uncheck all but\nthe top check box) or be sure that each\nsubcircuit has exactly the same internal\ntopology as for each step.\n \n--Mike
* LM358 operational amplifier
* "macromodel" subcircuit
*
* connections:
* 1 - non-inverting input
* 2 - inverting input
* 3 - positive power supply
* 4 - negative power supply
* 5 - output
*
*.subckt LM358/MC 1 2 3 4 5
*
*$
* .param M 358
* .STEP param M list 358 1013
* ok
* ok
* wrong without .save
* wrong without .save
* .save V(in) V(out) V(n001) V(n002) V(-12) V(+12)
* Oh, yes, sorry, now I see the problem.\nI will fix it but it's non-trivial so it might\nnot happen until next year. In the meanwhile,\nthe technique will only work if you specify\nwhat nodes you wish to save and each one\nyou specify exists in each .step run. For\nexample, your circuit will run if you add\nthe SPICE directive\n \n.save V(in) V(out) V(n001) V(n002) V(-12) V(+12)\n \nRegards,\n \n--Mike
* Use at least .save V(...) for the voltages you are interested!
+ -50E6 50E6 50E6 -50E6
E1 99 23 99 15 1
R5 98 9 101.2433MEG
R12 98 15 1MEG
Q1 5 2 4 QX
Q2 12 101 14 QM2
V3 10 50 .635
FB 7 99 POLY(5) VB VC VE VLP VLN 0 2.475E9 -2E9 2E9 2E9 -2E9
DC 8 53 DX
RC1 4 11 8.841E3
VLP 91 0 DC 25
R1 1 3 500K
RB1 2 102 400
Q1 11 102 13 QM1
R13 17 16 1K
VCMC 105 4 DC 0.4
V7 22 27 .63V
DLP 90 91 DX
V2 99 8 1.63
R16 24 23 17.5
egnd 99 0 poly(2) (3,0) (4,0) 0 .5 .5
R3 5 50 517
cee 10 99 388.6E-15
V2 -12 0 -12
C4 5 6 128.27P
fb 7 99 poly(5) vb vc ve vlp vln 0 48.23E6
R1 N001 out 20k
C3 98 9 200P
desd2 2 3 dx
RO2 7 99 25
D1 9 8 DX
RC2 4 12 8.841E3
EH 99 98 99 49 1
R9 49 50 60K
iee 3 10 dc 2.543E-6
D4 21 15 DX
G4 98 16 3 49 5.6234E-8
D2 10 9 DX
RO1 8 5 80
VE 54 4 DC .61
IP 3 4 328E-6
q1 11 2 13 qx
q2 12 1 14 qx
dlp 90 91 dx
F6 50 99 POLY(1) V6 300U 1
ga 6 0 11 12 41.47E-6
G1 98 9 POLY(1) 5 6 0 9.8772E-4 0 .3459
IOS 2 1 5N
V5 22 21 0.27V
V3 in 0 PULSE(-2 2 0 1u 1u 99u 200u)
RL3 22 28 100K
I1 99 4 100U
c1 11 12 3.000E-12
ree 10 99 78.65E6
c2 6 7 6.000E-12
R4 6 50 517
vln 0 92 dc 40
RB2 1 101 400
dc 5 53 dx
V1 +12 0 12
IEE 3 10 DC 12.03E-6
rc1 4 11 24.11E3
V6 26 22 .63V
C2 6 7 30.00E-12
hlim 90 0 vlim 1K
DCM2 105 101 DX
L2 98 17 15.9M
D3 15 20 DX
RE2 14 10 4.519E3
gcm 0 6 10 99 414.7E-12
rc2 4 12 24.11E3
ro2 7 99 25
DLN 92 90 DX
de 54 5 dx
vlim 7 8 dc 0
V4 20 22 0.27V
Q2 6 7 4 QX
re2 14 10 3.043E3
C1 11 12 8.661E-12
DP 4 3 DX
G3 98 15 9 49 1E-6
EGND 99 0 POLY(2) (3,0) (4,0) 0 .5 .5
dln 92 90 dx
ve 54 4 dc .88
R3 in N002 5k
dp 4 3 dx
GA 6 0 11 12 113.1E-6
rp 3 4 37.62E3
VLN 0 92 DC 25
RE1 13 10 4.519E3
R2 6 9 100.0E3
L3 22 28 500P
GCM 0 6 10 99 225.7E-12
VC 3 53 DC 1.610
R17 23 25 17.5
C5 98 15 7.9577E-14
D5 26 24 DX
vc 3 53 dc 1.800
vb 9 0 dc 0
R2 3 2 500K
EOS 7 1 POLY(1) 16 49 2E-3 1
vlp 91 0 dc 40
re1 13 10 3.043E3
ro1 8 5 50
D6 25 27 DX
VLIM 7 8 DC 0
R8 99 49 60K
VB 9 0 DC 0
DE 54 8 DX
r2 6 9 100.0E3
DCM1 105 102 DX
REE 10 99 16.63E6
R2 0 N001 10k
XU1 N002 N001 +12 -12 out {M} ;pnba In+)In-)V+)V-)OUT
I2 99 50 75U
HLIM 90 0 VLIM 1K
desd1 1 3 dx
.tran 0 500u 0 0.1u
.SUBCKT 324 1 2 99 50 28
.MODEL DX D(IS=1E-15)
.MODEL QX PNP(BF=1.111E3)
.ENDS
.SUBCKT 1013 1 2 3 4 5
.MODEL DX D(IS=800.0E-18)
.MODEL QM1 PNP (IS=8.000E-16 BF=3.974E+02)
.MODEL QM2 PNP (IS=8.062E-16 BF=4.027E+02)
.ENDS LT1013D
.subckt 358 1 2 3 4 5
.model dx D(Is=800.0E-18)
.model qx PNP(Is=800.0E-18 Bf=32.03)
.ends
.STEP param M list 324 1013 358
.save V(out)
.backanno
.end

* LTspice schematic (.asc):
Version 4
SHEET 1 2808 2316
WIRE 208 -368 208 -384
WIRE 208 -304 208 -288
WIRE 240 -336 288 -336
WIRE 176 -352 144 -352
WIRE 176 -320 112 -320
WIRE 144 -352 144 -496
WIRE 144 -496 192 -496
WIRE 144 -496 112 -496
WIRE 288 -336 288 -496
WIRE 288 -336 336 -336
WIRE 288 -496 272 -496
WIRE 32 -496 0 -496
WIRE 480 -368 480 -336
WIRE 624 -368 624 -336
WIRE 624 -448 624 -480
WIRE 480 -448 480 -480
WIRE 32 -320 -16 -320
WIRE -16 -320 -16 -272
WIRE -16 -192 -16 -160
WIRE -16 -352 -16 -320
IOPIN 336 -336 Out
IOPIN -16 -352 Out
SYMBOL voltage 624 -464 R0
SYMATTR InstName V2
SYMATTR Value -12
SYMBOL Opamps\\opamp2 208 -400 R0
SYMATTR InstName U1
SYMATTR Value {M}
SYMBOL res 176 -480 R270
WINDOW 0 32 56 VTop 0
WINDOW 3 0 56 VBottom 0
SYMATTR InstName R1
SYMATTR Value 20k
SYMBOL voltage 480 -464 R0
SYMATTR InstName V1
SYMATTR Value 12
SYMBOL res 16 -304 R270
WINDOW 0 32 56 VTop 0
WINDOW 3 0 56 VBottom 0
SYMATTR InstName R3
SYMATTR Value 5k
SYMBOL voltage -16 -288 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V3
SYMATTR Value PULSE(-2 2 0 1u 1u 99u 200u)
SYMBOL res 16 -480 R270
WINDOW 0 32 56 VTop 0
WINDOW 3 0 56 VBottom 0
SYMATTR InstName R2
SYMATTR Value 10k
FLAG 0 -496 0
FLAG 208 -384 +12
FLAG 208 -288 -12
FLAG 480 -336 0
FLAG 624 -336 0
FLAG 480 -480 +12
FLAG 624 -480 -12
FLAG -16 -160 0
FLAG 336 -336 out
FLAG -16 -352 in
TEXT -16 -600 Left 0 !.tran 0 500u 0 0.1u
TEXT -24 -1136 Left 0 ;Stepping Subcircuit Models\n \nThe opamp model names must be reduced to pure numbers!\n \nPlease read the restrictions in the left side txet box!
TEXT 776 -872 Left 0 !* National Semiconductor, Inc.  \n*\n* connections:      non-inverting input\n*                   |   inverting input\n*                   |   |   positive power supply\n*                   |   |   |   negative power supply\n*                   |   |   |   |   output\n*                   |   |   |   |   |\n*                   |   |   |   |   |\n*.SUBCKT LM324/NS    1   2  99  50  28\n.SUBCKT  324    1   2  99  50  28\n*\n*Features:\n*Eliminates need for dual supplies\n*Large DC voltage gain =             100dB\n*High bandwidth =                     1MHz\n*Low input offset voltage =            2mV\n*Wide supply range =        +-1.5V to +-16V\n*\n*NOTE: Model is for single device only and simulated\n*      supply current is 1/4 of total device current.\n*      Output crossover distortion with dual supplies\n*      is not modeled.\n*\n****************INPUT STAGE**************\n*\nIOS 2 1 5N\n*^Input offset current\nR1 1 3 500K\nR2 3 2 500K\nI1 99 4 100U\nR3 5 50 517\nR4 6 50 517\nQ1 5 2 4 QX\nQ2 6 7 4 QX\n*Fp2=1.2 MHz\nC4 5 6 128.27P\n*\n***********COMMON MODE EFFECT***********\n*\nI2 99 50 75U\n*^Quiescent supply current\nEOS 7 1 POLY(1) 16 49 2E-3 1\n*Input offset voltage.^\nR8 99 49 60K\nR9 49 50 60K\n*\n*********OUTPUT VOLTAGE LIMITING********\nV2 99 8 1.63\nD1 9 8 DX\nD2 10 9 DX\nV3 10 50 .635\n*\n**************SECOND STAGE**************\n*\nEH 99 98 99 49 1\nG1 98 9 POLY(1) 5 6 0 9.8772E-4 0 .3459\n*Fp1=7.86 Hz\nR5 98 9 101.2433MEG\nC3 98 9 200P\n*\n***************POLE STAGE***************\n*\n*Fp=2 MHz\nG3 98 15 9 49 1E-6\nR12 98 15 1MEG\nC5 98 15 7.9577E-14\n*\n*********COMMON-MODE ZERO STAGE*********\n*\n*Fpcm=10 KHz\nG4 98 16 3 49 5.6234E-8               \nL2 98 17 15.9M\nR13 17 16 1K\n*\n**************OUTPUT STAGE**************\n*\nF6 50 99 POLY(1) V6 300U 1\nE1 99 23 99 15 1\nR16 24 23 17.5\nD5 26 24 DX\nV6 26 22 .63V\nR17 23 25 17.5\nD6 25 27 DX\nV7 22 27 .63V\nV5 22 21 0.27V\nD4 21 15 DX\nV4 20 22 0.27V\nD3 15 20 DX\nL3 22 28 500P\nRL3 22 28 100K\n*\n***************MODELS USED**************\n*\n.MODEL DX D(IS=1E-15)\n.MODEL QX PNP(BF=1.111E3)\n*\n.ENDS\n*$
TEXT -16 -648 Left 0 ;.include  opampmodel.txt
TEXT -24 88 Left 0 !* Linear Technology\n*\n* From ltc.lib\n*\n*.SUBCKT LT1013D    1 2 3 4 5\n.SUBCKT 1013   1 2 3 4 5\n*\nC1 11 12 8.661E-12\nC2 6 7 30.00E-12\nDC 8 53 DX\nDE 54 8 DX\nDLP 90 91 DX\nDLN 92 90 DX\nDP 4 3 DX\nEGND 99 0 POLY(2) (3,0) (4,0) 0 .5 .5\nFB 7 99 POLY(5) VB VC VE VLP VLN 0 2.475E9 -2E9 2E9 2E9 -2E9\nGA 6 0 11 12 113.1E-6\nGCM 0 6 10 99 225.7E-12\nIEE 3 10 DC 12.03E-6\nHLIM 90 0 VLIM 1K\nQ1 11 102 13 QM1\nQ2 12 101 14 QM2\nRB1 2 102 400\nRB2 1 101 400\nDCM1 105 102 DX\nDCM2 105 101 DX\nVCMC 105 4 DC 0.4\nR2 6 9 100.0E3\nRC1 4 11 8.841E3\nRC2 4 12 8.841E3\nRE1 13 10 4.519E3\nRE2 14 10 4.519E3\nREE 10 99 16.63E6\nRO1 8 5 80\nRO2 7 99 25\nIP 3 4 328E-6\nVB 9 0 DC 0\nVC 3 53 DC 1.610\nVE 54 4 DC .61\nVLIM 7 8 DC 0\nVLP 91 0 DC 25\nVLN 0 92 DC 25\n.MODEL DX D(IS=800.0E-18)\n.MODEL QM1 PNP (IS=8.000E-16 BF=3.974E+02)\n.MODEL QM2 PNP (IS=8.062E-16 BF=4.027E+02)\n.ENDS LT1013D\n*
TEXT -16 -920 Left 0 ;.STEP param M list 324 1013
TEXT -16 -680 Left 0 ;We use normally  .include   for adding models.
TEXT -600 -1008 Left 0 ;I just realized there's a problem with my\nsuggestion. You have to either make sure\nthat subcircuit nodes and subcircuit device\ncurrents aren't saved(Go to Tools=>Control\nPanel=>Save Default and uncheck all but\nthe top check box) or be sure that each\nsubcircuit has exactly the same internal\ntopology as for each step.\n \n--Mike
TEXT -664 72 Left 0 !* LM358 operational amplifier\n* "macromodel" subcircuit\n*\n* connections:\n*    1 -  non-inverting input\n*    2 -  inverting input\n*    3 -  positive power supply\n*    4 -  negative power supply\n*    5 -  output\n*\n*.subckt LM358/MC  1 2 3 4 5\n.subckt 358  1 2 3 4 5\n*\n  c1   11 12 3.000E-12\n  c2    6  7 6.000E-12\n  cee  10 99 388.6E-15\n  dc    5 53 dx\n  de   54  5 dx\n  dlp  90 91 dx\n  dln  92 90 dx\n  dp    4  3 dx\n  egnd 99  0 poly(2) (3,0) (4,0) 0 .5 .5\n  fb    7 99 poly(5) vb vc ve vlp vln 0 48.23E6\n+ -50E6 50E6 50E6 -50E6\n  ga    6  0 11 12 41.47E-6\n  gcm   0  6 10 99 414.7E-12\n  iee   3 10 dc 2.543E-6\n  hlim 90  0 vlim 1K\n  q1   11  2 13 qx\n  q2   12  1 14 qx\n  r2    6  9 100.0E3\n  rc1   4 11 24.11E3\n  rc2   4 12 24.11E3\n  re1  13 10 3.043E3\n  re2  14 10 3.043E3\n  ree  10 99 78.65E6\n  ro1   8  5 50\n  ro2   7 99 25\n  rp    3  4 37.62E3\n  vb    9  0 dc 0\n  vc    3 53 dc 1.800\n  ve   54  4 dc .88\n  vlim  7  8 dc 0\n  vlp  91  0 dc 40\n  vln   0 92 dc 40\n  desd1  1  3 dx\n  desd2  2  3 dx\n.model dx D(Is=800.0E-18)\n.model qx PNP(Is=800.0E-18 Bf=32.03)\n.ends\n*$
TEXT -16 -960 Left 0 ;.param M 358
TEXT -16 -880 Left 0 ;.STEP param M list 358 1013
TEXT -16 -848 Left 0 !.STEP param M list 324 1013 358
TEXT 408 -960 Left 0 ;ok
TEXT 408 -920 Left 0 ;ok
TEXT 408 -880 Left 0 ;wrong without .save
TEXT 408 -848 Left 0 ;wrong without .save
TEXT -16 -736 Left 0 ;.save V(in) V(out) V(n001) V(n002) V(-12) V(+12)
TEXT -608 -608 Left 0 ;Oh, yes, sorry, now I see the problem.\nI will fix it but it's non-trivial so it might\nnot happen until next year.  In the meanwhile,\nthe technique will only work if you specify\nwhat nodes you wish to save and each one\nyou specify exists in each .step run.  For\nexample, your circuit will run if you add\nthe SPICE directive\n \n.save V(in) V(out) V(n001) V(n002) V(-12) V(+12)\n \nRegards,\n \n--Mike
TEXT -16 -768 Left 0 !.save V(out)
TEXT -16 -800 Left 0 ;Use at least .save V(...)  for the voltages you are interested!