[sv-ac] Uploaded LRM changes for 196

From: Miller Hillel-R53776 <r53776@freescale.com>
Date: Tue Nov 23 2004 - 10:08:44 PST

LRM changes
===========

See A, B and C below for the required changes in the LRM.

A. BNF Changes
==============

(1) Property declaration

Change:

property_declaration ::=
  property property_identifier [ ( [ list_of_formals ] ) ] ;
  { assertion_variable_declaration }
  property_spec ;
endproperty [ : property_identifier ]

To:

property_declaration ::=
  property property_identifier [ ( [ tf_port_list ] ) ] ;
  { assertion_variable_declaration }
  property_spec ;
endproperty [ : property_identifier ]

(2) Property instance

Change:

property_instance ::=
ps_property_identifier [ ( [ actual_arg_list ] ) ]

To:

property_instance ::=
ps_property_identifier [ ( [ list_of_arguments ] ) ]

(3) Sequence declaration

Change:

sequence sequence_identifier [ ( [ list_of_formals ] ) ] ;
{ assertion_variable_declaration }
sequence_expr ;
endsequence [ : sequence_identifier ]

To:

sequence sequence_identifier [ ( [ tf_port_list ] ) ] ;
{ assertion_variable_declaration }
sequence_expr ;
endsequence [ : sequence_identifier ]

(4) Sequence instance

Change:

sequence_instance ::=
ps_sequence_identifier [ ( [ actual_arg_list ] ) ]

To:

sequence_instance ::=
ps_sequence_identifier [ ( [ list_of_arguments ] ) ]

Documentation :

B. ADD SECTION
==============
 
17.6.1 Typed formal parameters in sequence declarations

Formal parameters of sequences can optionally be typed. To declare a type for a formal
parameter of a sequence it is required to prefix the parameter with a type. A formal
parameter which is not prefixed by a type will be untyped. See above for the definition of untyped variables.
 
Exporting values of local variables thru typed formal parameters is not supported.

The supported data types for sequence formal parameters are the types which are allowed for
operands in SVA expressions (see 17.4.1). The assignment rules for assigning actual parameter expressions to formal parameters, at the time of sequence instantiation,
are the same as the general rules for doing assignment of a typed variable with a
typed expression (see section 3).
 
For example, below two equivalent ways of passing parameters are shown, the first has untyped parameters and the second has typed parameters:

sequence rule6_with_no_type(x, y);
##1 x ##[2:10] y;
endsequence
 
sequence rule6_with_type(bit x, bit y);
##1 x ##[2:10] y;
endsequence

Another example where a local variable is used to sample a formal parameter, in order to get the effect of 'pass by value'. This is needed because currently pass-by-value is not supported.
 
sequence foo(bit a, bit b);
bit loc_a;
(1'b1, loc_a = a) ##0
(t == loc_a)*[0:$] ##1 b
endsequence

C. ADD SECTION
==============
 
17.11.1 Typed formal parameters in property declarations

Formal parameters of properties can optionally be typed. To declare a type for a formal
parameter of a property it is required to prefix the parameter with a type. A formal
parameter which is not prefixed by a type will be untyped. See above for the definition of untyped variables.
 
The supported data types for properties formal parameters are the types which are allowed
for operands in SVA expressions (see 17.4.1). The assignment rules for assigning actual parameters to formal parameters, at the time of property instantiation, are the same as
the general rules for doing assignment of a typed variable with another typed expression (see section 3).
 
For example, below are two equivalent ways of passing parameters are shown, the first has untyped parameters and the second has typed parameters:

property rule6_with_no_type(x, y);
##1 x |-> ##[2:10] y;
endproperty
 
property rule6_with_type(bit x, bit y);
##1 x |-> ##[2:10] y;
endproperty
Received on Tue Nov 23 10:08:53 2004

This archive was generated by hypermail 2.1.8 : Tue Nov 23 2004 - 10:08:56 PST