The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl Simulators >> Circuit Simulators >> sweeping temperature in transient analysis https://designers-guide.org/forum/YaBB.pl?num=1176458187 Message started by vivkr on Apr 13th, 2007, 2:56am |
Title: sweeping temperature in transient analysis Post by vivkr on Apr 13th, 2007, 2:56am Hi, Is it possible to change temperature during a running transient analysis? What kind of convergence issues would one need to look out for in case this is possible? Regards Vivek |
Title: Re: sweeping temperature in transient analysis Post by Andrew Beckett on Apr 13th, 2007, 6:07am In spectre, this is not yet (directly) possible. There is an enhancement request for this, and I believe work is underway to support it. That said, if you have device models which support self-heating, then this should be taken into account. One way of changing the temperature during a transient would be to run a sequence of transients using the save state/recover state options (see spectre -h tran), and alter to change the temperature. You'd need to ensure that the temperature changed smoothly that you didn't end up with a big discontinuity caused by the operating point changing significantly. Here's a wildly exaggerated example: Code:
Note that I used saveperiod instead of savetime to avoid it getting a suffix on the state filename. However, the saveperiod needs to be set to the duration of each transient analysis for this to work... I did try putting it in a sweep analysis - but this is not supported at the moment (it says that recover can't be used on a tran within a sweep). By the way, in the above example, it's intentionally not smooth - so I could see it having an effect! Regards, Andrew. |
Title: Re: sweeping temperature in transient analysis Post by vivkr on Apr 19th, 2007, 6:19am Dear Andrew, Thanks! I will try this example. Regards Vivek |
Title: Re: sweeping temperature in transient analysis Post by Ken Kundert on Apr 20th, 2007, 8:35am I hope the enhancement to Spectre is more general than simply providing the ability to sweep temperature in transient. It should be possible to create an arbitrary temperature profile versus time. That way one could simulate the effect of a thermal shock. Perhaps what is needed is a tsource. -Ken |
Title: Re: sweeping temperature in transient analysis Post by MichaelTian on Apr 30th, 2007, 6:08am Ken, The implementation in Spectre will be generic to sweep any parameters during transient, not just temperature. User needs to supply a vector profile (which will be interpreted as a step function, instead of pwl). Here is the syntax: dotran tran stop=100ns param=param_name param_vec=[ t1 val1 t2 val2 ...] [dev=x1 | mod= | sub=] ] param_step=0 or dotran tran stop=100ns param=param_name param_file="time_value_file" [dev=x1 | mod= | sub= ] param_step=0 and here are a few examples: dotran tran stop=100ns param=temp param_vec=[0ns 20 50ns 25 100ns 75] param_step=0 dotran tran stop=100ns param=reltol param_vec=[0ns 1.0e-3 100ns 1.0e-2] param_step=0 pset1 paramset { time reltol temp p1 m1:l 0n 1e-3 27 1 1u 10n 1e-3 50 2 1u 20n 1e-4 50 2 2u 30n 1e-5 75 3 2u } dotran tran paramset=pset1 stop=100n param_step=0 Comments are welcome, Thanks, Mike |
The Designer's Guide Community Forum » Powered by YaBB 2.2.2! YaBB © 2000-2008. All Rights Reserved. |