Below is an example circuit that illustrates some of the new features, and some older features perhaps not widely appreciated. This also served as a test for improving MOS convergence. To run a convergence test:
This runs operating point analysis for M values from .5 to 2.5, and displays a little plot of the convergence process. In the display, `+' means an increasing gmin step, `.' is a source step, `-' is a decreasing gmin step.
Note that 100 nS is too coarse to get a decent looking plot with BSIM devices. Use ``tran 1n 10u'' in that case, since the circuit seems to be oscillating at very high frequency.
mosamp2 - mos amplifier - transient
.options abstol=10n vntol=10n noopiter mult=2 nqs=1 reltol=1e-4
*.op
.tran 0.1us 10us
.plot tran v(20) v(66)
* set below to 0 for old MOS model
.param bsim = 1
.if bsim = 1
m1 15 15 1 32 n1 w=88.9u l=25.4u m=$mult nqsmod=$nqs
m2 1 1 2 32 n1 w=12.7u l=266.7u m=$mult nqsmod=$nqs
m3 2 2 30 32 n1 w=88.9u l=25.4u m=$mult nqsmod=$nqs
m4 15 5 4 32 n1 w=12.7u l=106.7u m=$mult nqsmod=$nqs
m5 4 4 30 32 n1 w=88.9u l=12.7u m=$mult nqsmod=$nqs
m6 15 15 5 32 n1 w=44.5u l=25.4u m=$mult nqsmod=$nqs
m7 5 20 8 32 n1 w=482.6u l=12.7u m=$mult nqsmod=$nqs
m8 8 2 30 32 n1 w=88.9u l=25.4u m=$mult nqsmod=$nqs
m9 15 15 6 32 n1 w=44.5u l=25.4u m=$mult nqsmod=$nqs
m10 6 21 8 32 n1 w=482.6u l=12.7u m=$mult nqsmod=$nqs
m11 15 6 7 32 n1 w=12.7u l=106.7u m=$mult nqsmod=$nqs
m12 7 4 30 32 n1 w=88.9u l=12.7u m=$mult nqsmod=$nqs
m13 15 10 9 32 n1 w=139.7u l=12.7u m=$mult nqsmod=$nqs
m14 9 11 30 32 n1 w=139.7u l=12.7u m=$mult nqsmod=$nqs
m15 15 15 12 32 n1 w=12.7u l=207.8u m=$mult nqsmod=$nqs
m16 12 12 11 32 n1 w=54.1u l=12.7u m=$mult nqsmod=$nqs
m17 11 11 30 32 n1 w=54.1u l=12.7u m=$mult nqsmod=$nqs
m18 15 15 10 32 n1 w=12.7u l=45.2u m=$mult nqsmod=$nqs
m19 10 12 13 32 n1 w=270.5u l=12.7u m=$mult nqsmod=$nqs
m20 13 7 30 32 n1 w=270.5u l=12.7u m=$mult nqsmod=$nqs
m21 15 10 14 32 n1 w=254u l=12.7u m=$mult nqsmod=$nqs
m22 14 11 30 32 n1 w=241.3u l=12.7u m=$mult nqsmod=$nqs
m23 15 20 16 32 n1 w=19u l=38.1u m=$mult nqsmod=$nqs
m24 16 14 30 32 n1 w=406.4u l=12.7u m=$mult nqsmod=$nqs
m25 15 15 20 32 n1 w=38.1u l=42.7u m=$mult nqsmod=$nqs
m26 20 16 30 32 n1 w=381u l=25.4u m=$mult nqsmod=$nqs
m27 20 15 66 32 n1 w=22.9u l=7.6u m=$mult nqsmod=$nqs
.else
m1 15 15 1 32 n1 w=88.9u l=25.4u m=$mult
m2 1 1 2 32 n1 w=12.7u l=266.7u m=$mult
m3 2 2 30 32 n1 w=88.9u l=25.4u m=$mult
m4 15 5 4 32 n1 w=12.7u l=106.7u m=$mult
m5 4 4 30 32 n1 w=88.9u l=12.7u m=$mult
m6 15 15 5 32 n1 w=44.5u l=25.4u m=$mult
m7 5 20 8 32 n1 w=482.6u l=12.7u m=$mult
m8 8 2 30 32 n1 w=88.9u l=25.4u m=$mult
m9 15 15 6 32 n1 w=44.5u l=25.4u m=$mult
m10 6 21 8 32 n1 w=482.6u l=12.7u m=$mult
m11 15 6 7 32 n1 w=12.7u l=106.7u m=$mult
m12 7 4 30 32 n1 w=88.9u l=12.7u m=$mult
m13 15 10 9 32 n1 w=139.7u l=12.7u m=$mult
m14 9 11 30 32 n1 w=139.7u l=12.7u m=$mult
m15 15 15 12 32 n1 w=12.7u l=207.8u m=$mult
m16 12 12 11 32 n1 w=54.1u l=12.7u m=$mult
m17 11 11 30 32 n1 w=54.1u l=12.7u m=$mult
m18 15 15 10 32 n1 w=12.7u l=45.2u m=$mult
m19 10 12 13 32 n1 w=270.5u l=12.7u m=$mult
m20 13 7 30 32 n1 w=270.5u l=12.7u m=$mult
m21 15 10 14 32 n1 w=254u l=12.7u m=$mult
m22 14 11 30 32 n1 w=241.3u l=12.7u m=$mult
m23 15 20 16 32 n1 w=19u l=38.1u m=$mult
m24 16 14 30 32 n1 w=406.4u l=12.7u m=$mult
m25 15 15 20 32 n1 w=38.1u l=42.7u m=$mult
m26 20 16 30 32 n1 w=381u l=25.4u m=$mult
m27 20 15 66 32 n1 w=22.9u l=7.6u m=$mult
.endif
cc 7 9 40pf
cl 66 0 70pf
vin 21 0 AC pulse(0 5 1ns 1ns 1ns 5us 10us)
vccp 15 0 dc +15
vddn 30 0 dc -15
vb 32 0 dc -20
.if bsim
.model n1 nmos(level=8 capmod=3)
.else
.model n1 nmos(nsub=2.2e15 uo=575 ucrit=49k uexp=0.1 tox=0.11u xj=2.95u
+ level=2 cgso=1.5n cgdo=1.5n cbd=4.5f cbs=4.5f ld=2.4485u nss=3.2e10
+ kp=2e-5 phi=0.6 )
.endif