[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: Using .global statements in GNUcap and mult transistors



On Friday 06 March 2009, r wrote:
> > ok ....  maybe you can help solve this.
>
> Well, I'm not sure. I don't know how it is implemented in
> these simulators. I guess these guys have simply modified the
> models (they have modified quite a few other things there so
> I guess they wouldn't have minded adding "m" parameter as
> well).

If someone wants to step to the task of modifying all of the 
models, go ahead!

That's what NGspice does.  So, when you use an NGspice model as 
a Gnucap plugin, probes like "gm" are scaled.  To see what it 
takes, look at the source and see how much is changed.  Compare 
the NGspice code against the 3f5 code for the same model, or to 
the official BSIM code from Berkeley.

Please don't take this as a slam against NGspice ..  I'm just 
pointing out the work impact in taking this approach.

Part of the goal of the Gnucap plugin system is to be able to 
use the models and more from everywhere else, with a minimum of 
changes, preferably with no changes at all.  It's fine to 
change code to enhance it, but I refuse to require such 
changes.

> > Also consider that there are a bunch of parameters that can
> > be probed.  Some multiply, some divide, some are not
> > changed. There is no indication in the code of which is
> > which.  There could be hundreds of parameters that could be
> > probed.  All that is known is a name and the type (real,
> > int, string, ....) that it returns.  There is no notion of
> > across, through, or anything that helps the decision of how
> > to scale.
>
> Perhaps it could be done at the time of stamping the matrix -
> by multiplying all gm's by a factor of "m".

The Gnucap approach is to do it at the time of stamping the 
matrix by multiplying the stamp value by "m".

> Then all the 
> probes would "just work". I have no idea how it could be done
> technically, though.

They don't, because the probes are the state variables of the 
model.

> BTW, some simulators preprocess the netlist and reduce
> parallel devices into a single device with an "m" parameter
> set. This gives a huge performance boost in extracted sims.

As I said, Gnucap does "m" when the matrix is stamped, so you 
get that performance boost you speak of.  Gnucap does much 
better than most in boosting performance.

As to combining devices in the netlist to save evaluation time, 
Gnucap does some work to that effect, but not a full combine.  
I have plans for future work, which will do a lot more than 
that, but have not had the time to do it.





_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user