The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl Design Languages >> Verilog-AMS >> Indep Source models https://designers-guide.org/forum/YaBB.pl?num=1058192063 Message started by Geoffrey_Coram on Jul 14th, 2003, 7:14am |
Title: Indep Source models Post by Geoffrey_Coram on Jul 14th, 2003, 7:14am Hi, Ken - I'm looking over your "various independent source models" file, http://www.designers-guide.com/Modeling/VerilogAMS/basic-models/sources/sources.va and I think these might not work as expected in periodic-AC analysis. V(p,n) <+ dc + ac_stim( "ac", mag ) + ac_stim( "pac", mag); This is a nuisance that I've run across before: I was trying to skip some noise calculations, but I had to put if (analysis("noise", "pnoise", "qpnoise")) which pre-supposes that I know the names of all the noise-like analyses that might be run in the simulator. (Of course, once the simulator gets smart enough to make a dependency tree, I won't have to direct it to skip all the complicated computations that are only used for noise.) But my point is really that there ought to be some way to ask, "is this some kind of noise analysis?" or "is this some kind of small-signal ac analysis?" without having to know all the different analysis types in all the simulators. -Geoffrey |
Title: Re: Indep Source models Post by Ken Kundert on Jul 14th, 2003, 12:12pm Geoffrey, I don't understand your need to do this as the noise stimulus functions (white_noise(), etc.) naturally operate during all noise analyses. In that sense, the noise stimulus functions are different than the AC stimulus functions, which do tend to operate differently for each type of AC analysis (and so you can specify the analysis for which they should be active). -Ken |
Title: Re: Indep Source models Post by Geoffrey_Coram on Jul 17th, 2003, 7:57am Ken - If the simulator made a proper dependency tree, I wouldn't need this for noise, as you say. However, it doesn't, and in BSIM3, the "strongInversionNoiseEval" function is fairly complicated and the simulator is wasting time computing the expressions (and their derivatives!) because I can't put the entire function inside of the flicker_noise() call. In the case of flicker = kf * pow(abs(id), af); I(dio) <+ flicker_noise(flicker, ef, "FLICKER"); I've gotten "domain error" messages from pow() because af=0.7 and id is zero -- meaning the simulator is trying to compute the derivative of flicker, which has a pow(0, -0.3). In this case, of course, I can put the whole flicker noise expression inside the flicker_noise() call. -Geoffrey |
Title: Re: Indep Source models Post by Ken Kundert on Jul 17th, 2003, 8:49am Geoffrey, So this has nothing to do with the models I have posted in Modeling->Verilog-AMS? You would like the analysis() function enhanced so that you can specify categories of analyses? It already does this by providing the "static" choice, which matches both "dc" and "ic" and so in concept there should be no problem adding a category that matched all types of noise analysis. That seems like a reasonable request. I recommend that you suggest it to the committee that is responsible for defining Verilog-AMS. -Ken |
The Designer's Guide Community Forum » Powered by YaBB 2.2.2! YaBB © 2000-2008. All Rights Reserved. |