RE: [sv-ac] 1420

From: Bresticker, Shalom <shalom.bresticker_at_.....>
Date: Mon Sep 04 2006 - 07:26:32 PDT
If the sentence referred to in 17.6.1 was misunderstood, then it should
probably be made clearer.

 
> "Exporting" of local variables is supposed to refer to the mechanism
> by which the local variables flow out of an instance of a declared
> sequence.  For example
> 
>   sequence foo(v);
>      (a, v = e) ##1 b;
>   endsequence
> 
>   property boo;
>      logic lvar;
>      en |=> foo(lvar) ##1 lvar == out;
>   endproperty
> 
>   assert property (@(posedge clk) boo);
> 
> In this case, lvar is passed into the instance foo(lvar)
> and is bound to v; v is then assigned within foo and flows out,
> and the value assigned to v is held in lvar after the end
> of the instance foo(lvar).  This is the export mechanism
> that is being referred to in 17.6.1.

> > I think there is a minor correction needed in the first example
> > (finonacci1). The arguments are typed for the property but in the
> > recursion part you are using local variables to pass to fibonacci1
> (l_b,
> > l_a etc). This is not legal as per typed argument passing rules
> defined
> > in 17.6.1 as it says "Exporting values of local variables through
> typed
> > formal arguments is not supported". Although in the properties
section
> I
> > do not see this restriction, I assume it is same for properties
also.
Received on Mon Sep 4 07:27:48 2006

This archive was generated by hypermail 2.1.8 : Mon Sep 04 2006 - 07:28:04 PDT