Hi,
In SV 2009 draft LRM, there is an example:
sequence sub_seq2(local inout int lv);
(a ##1 !a, lv += data_in)
##1 !b[*0:$] ##1 b && (data_out == lv);
endsequence
sequence seq2;
int v1;
(c, v1 = data)
##1 sub_seq2(v1) // lv is initialized by assigning it the value of v1;
// when the instance sub_seq2(v1) matches, v1 is
// assigned the value of lv
##1 (do1 == v1);
endsequence
And later it is mentioned:
It can be useful to assign a value to a local variable within an
instance of a named sequence and reference the
local variable in the instantiating context at or after the completion
of a match of the instance. This capability
is supported under the following conditions:
— The local variable shall be declared outside the named sequence, and
its scope shall include both the
instance of the named sequence and the desired reference in the
instantiating context.
— The local variable shall be passed as an entire actual argument in
the list of arguments of the
instance of the named sequence.
—
The corresponding formal argument shall be untyped.
Whereas, in the example corresponding formal argument 'lv' is not
untyped for local variable 'v1'. Am I missing anything?
--
Regards
Surya
--
This message has been scanned for viruses and
dangerous content by
MailScanner, and is
believed to be clean.
Received on Tue Dec 23 23:12:52 2008