next up previous contents index
Next: Circuit 8: Verilog Pseudo-Random Up: Example Data Files Previous: Circuit 6: Function and   Contents   Index

Circuit 7: MOS Convergence Test

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:

  1. Source this circuit.
  2. Press the siminterface button in the Debug tool.
  3. Type ``set value1 = mult''.
  4. Type ``loop .5 2.5 .1 op''.

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



Stephen R. Whiteley 2022-09-18