HI Doron, at a quick look it seems reasonable. I will read more carefully later. Yes, the workaround for pass by value could be as you indicated. Best regards, ed > -----Original Message----- > From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On > Behalf Of Doron Bustan > Sent: Tuesday, May 09, 2006 2:32 PM > To: Eduard Cerny > Cc: sv-ac@eda.org > Subject: [sv-ac] recursive properties > > Ed, > > looking at the current restrictions, it seems that the > relevant one is: > > RESTRICTION 4: For every recursive instance of property q in the > declaration of property p, each > actual argument expression e of the instance satisfies at > least one of > the following conditions: > - e is itself a formal argument of p. > - No formal argument of p appears in e. > - e is passed to a formal argument of q that is typed and the set of > values for the type is bounded. > > in this restriction I think that only > > - e is passed to a formal argument of q that is typed and the set of > values for the type is bounded. > > may introduce a problem. One way to solve it is to remove this option > having: > > RESTRICTION 4: For every recursive instance of property q in the > declaration of property p, each > actual argument expression e of the instance satisfies at > least one of > the following conditions: > - e is itself a formal argument of p. > - No formal argument of p appears in e. > > Note, that we can still pass a design signal using one of the > remaining > options. > > I think that argument that are typed with bounded type, should be > allowed to be pass by value > (copied to the argument), but I don't think we have that way > of passing > argument in SVA properties. > > This can be done using local variables, right? > > something like > > property p1(int i, j); > int i1; > > (1,i1 = i) ##0 > (j == 7) or > ( > (i > 0) and > ((a ##1 b) |-> p1(i1+2, j)) > ); > endproperty > > Doron > >Received on Tue May 9 11:43:13 2006
This archive was generated by hypermail 2.1.8 : Tue May 09 2006 - 11:43:19 PDT