Re: Minutes of the Verilog-AMS committee call: 15 May 2008

From: Geoffrey.Coram <geoffrey.coram_at_.....>
Date: Mon May 19 2008 - 06:45:19 PDT
Boris is correct that the example has an error; I think it is useful
to have an example showing how $mfactor accumulates, so I would say
we should change the module to

module module_c(p,n);
   inout p,n;
   electrical p,n;
   parameter r=1.0;
   (* desc="effective resistance" *) real reff;
   analog begin
     I(p,n) <+ V(p,n)/r;  // mfactor scaling of currents handled automatically
     reff = r / $mfactor; // the effective resistance = 1/42
   end
endmodule


-Geoffrey



Boris Troyanovsky wrote:
> Hi,
> 
> I think there may also a pair of issues relating to the $mfactor
> specification.
> 
> Issue #1:
> In section 6.3.6 (p. 123), the LRM states: "The simulator shall issue a
> warning if it detects a misuse of the $mfactor in a manner that would
> result in double-scaling." However, just a few lines down, the LRM states:
> "The simulator will generate an error" for this situation. So I think we
> should clarify whether this is in fact an error or a warning (my
> recollection is that the original intent was to make it an error).
> 
> Issue #2:
> In Section 9.18 (page 221 / Example 1) the following module has an error:
> 
> ===========================
> module module_c(p,n);
> inout p,n;
> electrical p,n;
> parameter r=1.0;
> analog begin
> I(p,n) <+ V(p,n)/(r/$mfactor); // the effective resistance = 1/42
> end
> endmodule
> ===========================
> 
> This usage of $mfactor is prohibited; we can't make explicit contributions
> that depend on $mfactor. The example should probably be removed or altered.
> 
> Regards,
> 
> - Boris

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Mon May 19 06:45:56 2008

This archive was generated by hypermail 2.1.8 : Mon May 19 2008 - 06:46:06 PDT