Marq - I am, indeed, relying on compiler optimizations. Borrowing again from my BMAS presentation, what if you did if (analysis("noise")) begin // Extended noise equations (6.103)..(6.113) end and then ran this in a PNoise analysis. Since "noise" matches only standard Spice small-signal noise, you would get no noise in a PNoise analysis. Neither the LRM nor the compact model author should have to worry about keeping track of all the different types of noise analyses and explicitly coding for them: if (analysis("noise","pnoise","hbnoise","qpnoise","xyznoise" ... //BAD! In another case, I saw a model that had the capacitance equations in analysis("tran") -- meaning that there would be no capacitance in an ac analysis, nor in PSS! I am content to have "wildly varying run times" and I will complain loudly to those vendors that have the longer run times. I am not content to have discrepancies between ac and tran, or tran and PSS, because model writers have tried to work around limitations of the compiler. -Geoffrey Marq Kole wrote: > > Geoffrey, > > I have taken a look at your MOS11 model: I see that you have totally abstained from using initial_step and final_step, but also from the analysis functions. I assume that you're relying on compiler optimizations that let the separate sequential blocks only be run when none of the module-scope variables they use changes value. Is that correct? Doesn't that introduce wildly varying run times in the various simulators? Wouldn't analog conditional statements be a more obvious guard against unnecessary execution of these blocks? > > MarqReceived on Mon Aug 28 05:01:27 2006
This archive was generated by hypermail 2.1.8 : Mon Aug 28 2006 - 05:01:30 PDT