monte carlo simulation with spectremdl

Discussion in 'Cadence' started by Jos, Nov 30, 2006.

  1. Jos

    Jos Guest

    Hi,

    I'm trying to perform a MonteCarlo simulation which is controlled with
    a spectremdl file.
    My input.scs looks like this:

    monte0 montecarlo numruns=50 seed=1 variations=process
    saveprocessparams=yes savefamilyplots=yes {
    op1 dc print=yes oppoint=logfile annotate=status save=all
    ac2 ac dec=100 start=10 stop=1G annotate=status prevoppoint=yes
    }

    Runnnig this with spectre performs the MonteCarlo runs a expected.
    However, when I try to control it with the following spectremdl file,
    it fails:


    alias measurement monterun {
    run monte0
    }
    run monterun as monterun_1

    It does perform a MonteCarlo simulation, but I don't see any sign of DC
    or AC simulations being performed. Also the psg directoy only shows 3
    files: logFile, monterun_1.process.mcdata and
    monterun_1.process.mcparam.
    The other files (for example: monte0-001_ac2.ac until
    monte0-050_ac2.ac) are not present in the psf directory. They are there
    when I simulate directly from spectre. I have added the output of
    spectremdl below

    Could someone give me a hint on what I'm doing wrong? Or is this known
    behaviour in spectremdl?

    Suppose I can get the simulation working correctly, is it possible to
    perform measurements with spectremdl on the indivual monte carlo
    simulations?

    thanks for any help
    Jos


    ********************************************************
    Monte Carlo Analysis `monterun_1': iteration = (1 -> 50)
    ********************************************************

    **** Performing nominal run for `monterun_1'

    **** Performing monte carlo loop for `monterun_1'

    1 0.00%
    2 2.04%
    3 4.08%
    monterun_1: iteration = 3 (4.08 %), step = 1
    (2.04 %)
    4 6.12%
    5 8.16%
    monterun_1: iteration = 5 (8.16 %), step = 1
    (2.04 %)
    6 10.20%
    7 12.24%
    8 14.29%
    monterun_1: iteration = 8 (14.3 %), step = 1
    (2.04 %)
    9 16.33%
    10 18.37%
    monterun_1: iteration = 10 (18.4 %), step = 1
    (2.04 %)
    11 20.41%
    12 22.45%
    13 24.49%
    monterun_1: iteration = 13 (24.5 %), step = 1
    (2.04 %)
    14 26.53%
    15 28.57%
    monterun_1: iteration = 15 (28.6 %), step = 1
    (2.04 %)
    16 30.61%
    17 32.65%
    monterun_1: iteration = 17 (32.7 %), step = 1
    (2.04 %)
    18 34.69%
    19 36.73%
    20 38.78%
    monterun_1: iteration = 20 (38.8 %), step = 1
    (2.04 %)
    21 40.82%
    22 42.86%
    monterun_1: iteration = 22 (42.9 %), step = 1
    (2.04 %)
    23 44.90%
    24 46.94%
    25 48.98%
    monterun_1: iteration = 25 (49 %), step = 1
    (2.04 %)
    26 51.02%
    27 53.06%
    monterun_1: iteration = 27 (53.1 %), step = 1
    (2.04 %)
    28 55.10%
    29 57.14%
    30 59.18%
    monterun_1: iteration = 30 (59.2 %), step = 1
    (2.04 %)
    31 61.22%
    32 63.27%
    monterun_1: iteration = 32 (63.3 %), step = 1
    (2.04 %)
    33 65.31%
    34 67.35%
    35 69.39%
    monterun_1: iteration = 35 (69.4 %), step = 1
    (2.04 %)
    36 71.43%
    37 73.47%
    monterun_1: iteration = 37 (73.5 %), step = 1
    (2.04 %)
    38 75.51%
    39 77.55%
    monterun_1: iteration = 39 (77.6 %), step = 1
    (2.04 %)
    40 79.59%
    41 81.63%
    42 83.67%
    monterun_1: iteration = 42 (83.7 %), step = 1
    (2.04 %)
    43 85.71%
    44 87.76%
    monterun_1: iteration = 44 (87.8 %), step = 1
    (2.04 %)
    45 89.80%
    46 91.84%
    47 93.88%
    monterun_1: iteration = 47 (93.9 %), step = 1
    (2.04 %)
    48 95.92%
    49 97.96%
    monterun_1: iteration = 49 (98 %), step = 1
    (2.04 %)
    50 100.00%
    Total time required for montecarlo analysis `monterun_1' was 520 ms.


    Aggregate audit (3:50:08 PM, Thur Nov 30, 2006):
    Time used: CPU = 2.75 s, elapsed = 3 s, util. = 91.6%.
    Virtual memory used = 45.2 Mbytes.
    spectre completes with 0 errors, 1 warning, and 0 notices.
     
    Jos, Nov 30, 2006
    #1
  2. Jos,

    This is the expected behavior. To run a monte-carlo from MDL and
    perform measurements you have to put the montecarlo in the .mdl file
    instead, e.g.

    alias measurement tran_meas {
    run tran( stop=10n, autostop='yes )
    export real foo = cross( V(out), thresh=1.0 )
    }

    run montecarlo( numruns=50, seed=1, variations='process ) {
    run tran_meas
    }


    This will run the montecarlo, at each iteration run the tran, evaluate
    the foo measurement, and at the end print out foo at each iteration,
    mean. stddev, etc..

    I haven't tested the example above, so it may not be exactly correct
    syntax.

    Regards,
    John
     
    John O'Donovan, Dec 2, 2006
    #2
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.