Monte-Carlo with foundry model

  • Justin Fisher
    Justin Fisher


    I'm wondering if someone could point me in the right direction regarding MC simulations using foundry models?

    If I look at the examples, I see the models and MC parameters are all included in the run deck. So in that case the user defined how the models would vary.

    If I look at a foundry spice deck I get somethig like this?

    .LIB TT
    .lib 'mylib.lib' CCO_pre_simu
    +toxn = 2.5E-09
    .ENDL TT

    which is then used to modify another parameter in another model, which is in turn used in yet another model.

    Is there a simple way of accounting for this in the .control section? I notice I can't just point to the model deck and make it work, so I'm clearly missing something.

    Kind regards,

    Justin Fisher.

  • Holger Vogt
    Holger Vogt


    unfortunately not with the actual code.
    AGAUSS is evaluated upfront, before circuit parsing, and so no more accessible from a .control section. You may only restart ngspice without rndseed set, then each time you will get a different AGAUSS output. With foundry models and their long setup time, this of course is not very efficient.

    Basically we might consider treating AGAUSS similar to TEMPER, which is no longer evaluated upfront, by later during simulation runs, so to catch temperature sweeps. We have to discuss this among developpers, because a certain effort in coding is required.

    I would be happy to get some user comments, if this would be a generally worthwhile activity.