RE: Minutes of LRM Committee Call - 14 March 2004

From: Kevin Cameron <edaorg@v-ms.com>
Date: Mon Mar 22 2004 - 14:25:01 PST

[Resend for Graham Helwig]

Hello,

I have looked at the latest Annex A syntax to see what needs to be updated to include the $table_model(). Currently the analog_system_function_call syntax (in Annex A.8.2) is used to define the syntax for all the analog system functions. The $table_model() system function call is no different. Only the syntax in the section 10.9.1 of the proposal needs to be updated. Below is how I would write the table model syntax:

    table_model_function_call ::=
            $table_model ( input_arguments , table_model_filename , extrapolation_control )
            | $table_model ( input_arguments , table_model_data , extrapolation_control )
    input_arguments ::= analog_expression { , analog_expression }
    table_model_data ::= variable_identifier { , variable_identifier }
    table_model_filename ::= string
    extrapolation_control :: = string

Best to avoid making the syntax overly complex, instead define the type of arguments and then describe the structure of those argument in subsequent subsections (i.e. extrapolation control string). Also document the valid combinations of array and multiple-dimension array variables in the following subsections. Here are some semantic checks that may be worthwhile including in the proposal:
- Restrict the array variables to be real only, this will avoid 'z' and 'x' states being passed into the function.
- State that white space characters (as define in white_space syntax) in the extrapolation control string will be ignored.
- State the number of input arguments is always one less than the number of table_model variables or columns in the table model file.

Also, need to add example illustrating the use of $table_model() function with array variables.

One problem I see with using array variables in the $table_model() function is that variable initialization may becomes very long and difficult to read and maintain. As an alternative to using array variables, define a module scope analog table declaration (in a similar way as an analog function declarations) and refer to that table in the table_model function call. For example:

         analog table tableDiode
            // Id Vd
            0.000000e+00, 0.000000e+00;
            1.000000e-01, 4.669060e-13;
            ...
        endtable

            branch (p,n) diode);

        analog begin
                    I(diode) <+ $table_model(V(diode), tableDiode, "");
        end

Note, this table representation is purely analog, and it reuses existing keywords. Also it represents the table information in the same way as the files, unlike the array variable.

Regards
Graham

-----Original Message-----
From: owner-verilog-ams@eda.org [mailto:owner-verilog-ams@eda.org]On Behalf Of Chandrasekaran Srikanth-A12788
Sent: Monday, 22 March 2004 6:20 PM
To: verilog-ams@eda.org
Subject: Minutes of LRM Committee Call - 14 March 2004

* The proposal that was discussed was $table_model and the following comments, issues were raised

- The syntax proposed in Section 10.9 is not consistent with the rest of reworked BNF - also uses variable as the first argument to the $table_model function when in actuality it can be analog expression for ex: probe.
- Graham is going to take a look at this and will propose a more consistent syntax to what is being proposed.
- The degree_char in the syntax mentiones that it can be 1, 2, or 3 - this is the degree that can be used for extrapolation. There is no specification for degree being "2" in the proposal. It is suggested to create a seperate section for degree explaining what the degree relates to, and create a table similar to the extrapolation table specified in section 10.9.4
- Section 10.9.4 mentions that "spline" can be used as one of the methods for extrapolation. However, its felt that using spline for extrapolation may not be stable. Its safer to have the option as CLAMP or LINEAR when the point falls outside the range specified in the table. Doing a spline extrapolation can lead to erroneous results - error depending on how out-of-range the point is. It was suggested to restrict extrapolation to just linear/clamp.
- Control string is mandatory and an empty control string "" specifies linear extrapolation.
- In general table numbers and figure number are to be added to the document.

An updated document shall be sent.

regards,
Sri

--
....
Received on Mon Mar 22 14:25:10 2004

This archive was generated by hypermail 2.1.8 : Mon Mar 22 2004 - 14:25:12 PST