Re: No BNF support for .module_output_variable_identifier

From: David Miller <David.L.Miller_at_.....>
Date: Wed Aug 05 2009 - 08:13:14 PDT
Ok, I am a little confused here.

paramset smnpn npn; // small npn paramset
   (*desc="cut-off frequency"*) real ft;
   .is=2.0e-17; .bf=120.0; .br=10; rb=145; .rc=75; .re=12;
   .cje=2.0e-14; .vje=0.9; .mje=0.4;
   .cjc=3.0e-14; .vjc=0.6; .mjc=0.3; .xcjc=0.2;
   ft = .gm/(‘M_TWO_PI*(.cpi + .cmu));
endparamset

so does this mean that the module npn will automatically get a real variable ft 
when instantiated via this paramset smnpn?

If the variable ft exists in the moduel npn already, it says we replace it. 
Consider this silly example:

module npn(...);
   (*desc="cut-off frequency"*) real ft;
   (*desc="gm") real gm;
   (*desc="cpi") real cpi;
   (*desc="cmu") real cmu;

   analog begin
     @(initial_step) begin
       gm = 1.0;
       cpi = 1.0;
       cmu = 1.0;
       ft = 2;
     end
     @(timer(5n))
       ft = 0;
   end
endmodule

At the end of the initial step is the value for ft 2 or 1/(2*`M_TWO_PI).

At time 5ns, is its value now 0?

I am just unsure how this "replacing" actually works.
I was misunderstanding how this paramset output variable is being used. I don't 
think it should be part of the paramset_constant_expression, as it is certainly 
not constant in any sense.

Cheers...
Dave



Geoffrey.Coram wrote:
> David -
> In the expression for "ft" that you cite, gm, cpi, and cmu are all
> output variables -- that is, they depend on the operating point
> and are dynamic quantities.
> 
> We do need a definition for paramset_constant_expression (it's used,
> but I don't see a definition in 2.3.1).  I think I'm agreeing with
> Marq, though, that module_output_parameter_identifier need not go
> in this list; I think it could be circular to allow this, since
> the paramset_constant_expression could be used in assigning module
> (input) parameters, which are then used to compute the "output
> parameters."
> 
> But also in paramset_statement, where we have analog_function_statement,
> we need some BNF to allow the ft statement.  Analog functions,
> as I recall, aren't allowed to access module parameters.
> 
> -Geoffrey
> 
> 
> David Miller wrote:
>> Hello Surya,
>> it appears to be an oversight. We don't have a rule to match the 
>> module_output_variable reference in:
>>
>> ft = .gm/(‘M_TWO_PI*(.cpi + .cmu));
>>
>> So .gm, .cpi, .cmu are module output variables. We don't seem to have 
>> any concept in the language of output parameters, only variables 
>> according to 3.2.1 (I guess it may just have been implicitly implied).
>>
>> So it looks like we should also extend 3.2.1 to allow output 
>> parameters as well as output variables.
>>
>> And the paramset should only be referring to module output parameters, 
>> i.e. constants. The shouldn't be referring to variables (dynamic).
>>
>> I believe this is what we would need in the grammar:
>>
>> paramset_constant_expression ::=
>>    constant_primary
>>  | hierarchical_parameter_identifier
>>  | module_output_parameter_identifier
>>  | unary_operator { attribute_instance } constant_primary
>>  | paramset_constant_expression binary_operator { attribute_instance }
>>       paramset_constant_expression
>>  | paramset_constant_expression ? { attribute_instance }
>>       paramset_constant_expression : paramset_constant_expression
>>
>> module_output_parameter_identifier ::=
>>    '.'module_parameter_identifier
>>
>> Does this make sense?
>>
>> If anyone sees something I am missing here, please speak up.
>>
>> Thank you for raising this, I will add it to the Mantis database as 
>> something to address.
>>
>> Regards
>> Dave
>>
>>
>> Surya Pratik Saha wrote:
>>> Hi,
>>> In Verilog AMS 2.3.1, section 6.4.3 Paramset output variables, there is
>>> an example of ".module_output_variable_identifier". But I could not see
>>> this in the BNF of paramset. Is it intentional or a oversight of LRM?
>>>
>>
> 
> 

-- 
==============================================
-- It's a beautiful day
-- Don't let it get away
--
-- David Miller
-- Design Technology (Austin)
-- Freescale Semiconductor
-- Ph : 512 996-7377 Fax: x7755
==============================================

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Wed Aug 5 08:17:03 2009

This archive was generated by hypermail 2.1.8 : Wed Aug 05 2009 - 08:17:16 PDT