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.