In the conference call yesterday (minutes coming soon),
we agreed that
a) we need a multiplicity factor
b) the simulator should handle all the "easy" rules
automatically (scale "through" contributions by m,
"through" sensors by 1/m, etc.)
c) mismatch and "rmin" are tough to handle automatically,
so give access to the multiplicity for an instance
through the function $mfactor
d) A model writer generally shouldn't use $mfactor, except
perhaps to scale "output parameters," and the simulator
should issue a warning if a contribution depends
explicitly on $mfactor. (Colin will have to live with
these warnings, or get his simulator to switch it off.)
e) For those Spice-like simulators that have an instance
parameter for the multiplicity factor, eg "m", in a
Spice netlist, this should be translated automatically
(such that $mfactor returns the correct value and the
rules in (b) are applied.
So, the missing piece is: how in a Verilog netlist does
one specify the multiplicity? Take the instance line
bsim5 #(.l(90n),.w(1u),.type("nmos")) mn1(.d(d),.g(g),.s(s),.b(b))
How do we make 5 in parallel?
We could allow .$mfactor(5) in the parameter list, but only
because we're using named overrides, and the $things aren't
supposed to be assigned to.
We could put
bsim5 #(.l(90n),.w(1u),.type("nmos");5) mn1(.d(d),.g(g),.s(s),.b(b))
Someone asked about the range item for an instance, I think
that would look like this:
bsim5 #(.l(90n),.w(1u),.type("nmos")) mn[1:5](.d(d),.g(g),.s(s),.b(b))
Am I reading the BNF right? Doesn't this mean 5 instances
in parallel? The LRM says (p 7-4)
One or more module instances (identical copies of a module definition)
can be specified in a single module instantiation statement.
How does this differ from what we mean by multiplicity? Can one change
a parameter value for just one of the instances through a defparam
statement? If the ports/nets are buses, does one bit get assigned to
each instance?
-Geoffrey
Received on Wed Apr 7 08:02:43 2004
This archive was generated by hypermail 2.1.8 : Wed Apr 07 2004 - 08:02:47 PDT