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