Changing Temperature with altergroups in SpectreMDL

Discussion in 'Cadence' started by jacunski, Feb 8, 2005.

  1. jacunski

    jacunski Guest

    I'm wondering if anyone knows how to change temperature using
    altergroups in SpectreMDL.

    In the MDL User Guide tutorial section on running corners, I see that I
    can run different altergroups as follows:

    run alter_ss
    run trans as trans_ss
    run acrun as acrun_ss
    run dcrun as dcrun_ss

    run alter_ff
    run trans as trans_ff
    run acrun as acrun_ff
    run dcrun as dcrun_ff

    The problem is that I'd also like to change the temperature for each
    corner, and I'm not sure that I can do that from within an altergroup.
    (I believe that temp must be changed using an alter statement, which
    resides outside of the altergroup.)

    Any ideas?

    Thanks.

    -- Mark
     
    jacunski, Feb 8, 2005
    #1
  2. I can't spot a way of doing it. I tried putting an options statement inside
    the altergroup (but that is illegal, according to messages displayed by the
    new spectre front end in IC5141 (+csfe argument) or MMSIM60; the old front end
    silently ignores it).

    I also tried doing:

    parameters temper=27

    myOptions options temp=temper

    and then varying the parameter temper in the altergroup. That doesn't seem to
    work either...

    I think you'll need to file a service request to get this done somehow.

    Andrew.
     
    Andrew Beckett, Feb 14, 2005
    #2
  3. jacunski

    jacunski Guest

    I managed to figure this one out on my own, so I thought that I'd share
    the solution with others.

    Basically, to "set" the altergroup params, we simply run the
    altergroup:

    run alter_ss

    and then we run the analyes:

    run trans as trans_ss
    run acrun as acrun_ss
    run dcrun as dcrun_ss

    So, if we want to set the temp, we need to run the alter as well. If
    we have an alter statement named tss, then we'd do the following:

    run alter_ss (runs the altergroup statement)
    run tss (runs the alter statement, setting T)
    run trans as trans_ss (run the various analyses).
    run acrun as acrun_ss
    run dcrun as dcrun_ss

    So, although it'd be nice to be able to change the temp from within an
    altergroup, you can see that there's a pretty simple way around it.

    -- Mark
     
    jacunski, Feb 14, 2005
    #3
  4. jacunski

    fogh Guest

    I am trying, directly in an scs, to have temp assigned an expression of
    "time". That failed so far. I can have model or instance parameters be
    an expression of time, and probaly "trise" as well, but could not find
    how to affect temp.

    Is this a doomed attempt ? I know this was an issue with spice. Maybe
    the spectre loops can simply not cope with that.

    A solution involving MDL , or verilogA would be OK too. Maybe
    converting time to electrical and then electrical to temperature ? I
    just want to see hysteresis with temperature during a transient. Maybe
    the same can be achieved with sweeps that reuse initial conditions ?

    Any hint is welcome( except "get another job").
     
    fogh, Feb 14, 2005
    #4
  5. Frederic,

    It's currently not possible (at least not during a transient). There's an
    enhancement PCR for this:

    PCR: 328374
    Title: change temperature during the simulation run

    Since a number of models now have self-heating effects, there already is
    some support for localized temperature change during a simulation, but a
    general mechanism isn't there yet. There would be a need for model equations
    to be updated to reflect the changed temperature, and that doesn't happen
    right now.

    Regards,

    Andrew.
     
    Andrew Beckett, Feb 15, 2005
    #5
  6. Frederic,

    No, neither of these things will work. As I said, the general mechanism is not
    there, but it may be made easier to implement because of the work to implement
    self-heating a while back.

    Andrew.
     
    Andrew Beckett, Feb 16, 2005
    #6
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.