Re: [sv-ac] AC 196:

From: Adam Krolnik <krolnik@lsil.com>
Date: Wed Nov 17 2004 - 11:51:34 PST

Hi Hillel;

You wrote:

>Justification of both capabilities is based on the fact that most popular languages
>support both
>types of parameters. This includes SystemVerilog.

What I was thinking for justification a set of properties/sequences is provided
that you wish to write and why the pass-by-value functionality should be included.

You wrote:

>For pass by value, this:
> reg val1, val2;
> ... (val1 = parameter_a, val2 = parameter_b, property_rule6(val1, val2)) ...
>becomes, this:
> ... property_rule6(parameter_a, parameter_b) ...
>which is already simpler. It also may execute faster.

However, IMHO, the most common cases of properties and sequences would be:

     property my_simple_property_with_arguments(valid, datum) ...

This would have an error prone declaration if one chooses to formally declare
the types of the arguments (hoping to provide a safety and documentation to the
user.)

    property my_simple_property_with_arguments(
        ref reg valid, // must be ref...
        ref reg datum // must be ref...
        );
   ...

Should the user forget to add the 'ref' keyword, they obtain a most likely invalid
property.

    property my_simple_property_with_arguments(
        reg valid, // Whoops! only one value now!
        reg datum // Whoops! only one value now!
        );
      ...

There has not been confusion on the model of sequences and properties being module like
or task call like before. I fear choosing a task call like model provides a more
dangerous syntax and little overall benefit. This model we speak of does not even impact
the implementation of sequences and properties. Thus I would ask that consideration be
given to ease of use, when choosing a conceptual model to explain a specification from.

     Thanks.

    Adam Krolnik
    Verification Mgr.
    LSI Logic Corp.
    Plano TX. 75074
    Co-author "Assertion-Based Design"
Received on Wed Nov 17 11:51:39 2004

This archive was generated by hypermail 2.1.8 : Wed Nov 17 2004 - 11:51:49 PST