Re: $mfactor in Verilog-style netlists

From: Geoffrey.Coram <Geoffrey.Coram@analog.com>
Date: Fri Apr 09 2004 - 05:35:42 PDT

Kevin Cameron wrote:
> Mfactor appears to me to be Spice "hack" that doesn't really belong
> in a proper HDL.

Mfactor is a shorthand. I don't see how it's any different than
the instance arrays, which are shorthand for having to write them
out individually and connect the right bit of the bus.

> The "right" answer? Since we are trying to model hardware I suspect that
> linear scaling is never the right answer.

The right answer from a simulation standpoint. If the two options
are: write each instance individually, or write them with mfactor,
then applying the simple rules makes these two give the same answer.

Sure, there are differences from the hardware, eg the differences in
interconnect to the multiple instances, but that's not the point of
mfactor.

In fact, at ADI, we don't make much use of m; we added "fingers"
to our BSIM3 model to account for the reduced capacitance of
multi-gate devices compared to individual parallel instances
(standard BSIM4 now has it, too). But it is used, heavily I'm
told, elsewhere, particularly it seems at Motorola for
reducing the effects of mismatch.

  module my_res(inout a,b);
    parameter real r0 = 5;

    real reff (* desc="effective resistance" *)
 
    analog begin
      V(a,b) <+ I(a,b) * r0;
      reff = r0/$mfactor;
    end
  endmodule

> Apart from it being in Spice what is the rationale for adding this
> functionality? And under what circumstances would you require a
> fractional multiplier?

Apart from it being heavily used by analog designers, what
rationale do I need?

In the conf call Tuesday, Colin said designers sometimes use an
mfactor of 1.667 on one device, leaving a second with mfactor=1,
to model what will likely become a 5:3 ratio. You can use the
fraction instead of having to convert it to a ratio of integers.

-Geoffrey
Received on Fri Apr 9 05:36:01 2004

This archive was generated by hypermail 2.1.8 : Fri Apr 09 2004 - 05:36:09 PDT