Hi John, but that does not restrict to a variable in general, would be specific to properties/sequences? ed > -----Original Message----- > From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On > Behalf Of John Havlicek > Sent: Friday, October 13, 2006 7:18 AM > To: sv-ac@eda.org > Subject: Re: [sv-ac] IEEE 1800 SV-AC : minutes of meeting on > 10/10 2006 > > Hi All: > > I am not tracking this discussion yet, but I have envisioned using > argument direction "output" or "inout" for specifying that a formal > argument must be bound to an actual argument that is a local variable. > > J.H. > > > X-Authentication-Warning: server.eda-stds.org: majordom set > sender to owner-sv-ac@eda.org using -f > > X-MIMEOLE: Produced By Microsoft Exchange V6.5 > > Content-class: urn:content-classes:message > > Date: Fri, 13 Oct 2006 11:06:23 +0200 > > X-MS-Has-Attach: > > X-MS-TNEF-Correlator: > > Thread-Topic: [sv-ac] IEEE 1800 SV-AC : minutes of meeting > on 10/10 2006 > > Thread-index: > Acbsk50COrJUBI3iQfufOxS3GcaIZgAbe6+AADM5SDAAEENIYAAlvJpg > > From: "Miller Hillel-R53776" <r53776@freescale.com> > > Cc: "Miller Hillel-R53776" <r53776@freescale.com> > > X-MIME-Autoconverted: from quoted-printable to 8bit by > server.eda-stds.org id k9D96V4Q011340 > > Sender: owner-sv-ac@eda.org > > X-OriginalArrivalTime: 13 Oct 2006 09:06:58.0362 (UTC) > FILETIME=[EFE8A1A0:01C6EEA6] > > > > Ed, Dmitry > > > > The user will still need to guess that 'lv' is a local > variable given > > the sequences s2 and s1. For example he would need to pass > a variable > > and not an expression. We do not have an explicit way of > specifying that > > a formal parameter needs to be local. > > > > Thanks > > Hillel > > > > > > -----Original Message----- > > From: Eduard Cerny [mailto:Eduard.Cerny@synopsys.com] > > Sent: Thursday, October 12, 2006 5:03 PM > > To: Korchemny, Dmitry; Miller Hillel-R53776; Eduard Cerny; > sv-ac@eda.org > > Subject: RE: [sv-ac] IEEE 1800 SV-AC : minutes of meeting > on 10/10 2006 > > > > Hi Dmitry, > > > > the form using existing rules that you have at the end > would be OK, it > > seems to me > > > > ed > > > > > -----Original Message----- > > > From: Korchemny, Dmitry [mailto:dmitry.korchemny@intel.com] > > > Sent: Thursday, October 12, 2006 3:56 AM > > > To: Miller Hillel-R53776; Eduard Cerny; sv-ac@eda.org > > > Subject: RE: [sv-ac] IEEE 1800 SV-AC : minutes of meeting > on 10/10 > > > 2006 > > > > > > Hi Hillel, Ed, > > > > > > I think everything used in a sequence/property should be > (implicitly) > > > defined before its usage. I.e., it should be: > > > * a sequence/property argument > > > * a sequence local variable > > > * objects visible in sequence/property from outside (as > stated in the > > > LRM: Variables used in a sequence that are not formal > arguments to the > > > > > sequence are resolved according to the scoping rules from > the scope in > > > > > which the sequence is declared.) > > > > > > In the below example lv is not visible in p, and > therefore should be > > > forbidden. > > > > > > I would like to understand where this example comes from. > > > > > > If it is pure theoretic, we can just forbid such cases > (the easiest > > > solution). > > > > > > If the goal is to divide a big sequence into parts for better > > > modularity, the natural solution would be to allow nested > sequences. > > > In this case your example will look like: > > > > > > property p; > > > int lv; > > > > > > sequence s1; > > > (exp1, lv = exp2); > > > endsequence > > > > > > sequence s2; > > > s ##1 (lv == exp3); > > > endsequence > > > > > > s2; > > > endproperty > > > > > > If the goal is to provide a generic solution, we need a mean to > > > specify a type of the name of a sequence as an argument. > If we assume > > > a functional notation (I am not suggesting it as an > actual sequence, > > > just want to be precise): int -> sequence, then you > example will look > > > like: > > > > > > sequence s1(int flv); > > > (exp1, flv = exp2); > > > endsequence > > > > > > sequence s2(int->sequence s); > > > int lv; > > > s(lv) ##1 (lv == exp3); > > > endsequence > > > > > > property p; > > > s2(s1); > > > endproperty > > > > > > Explanation: sequence s2 has an argument which is a NAME > of sequence > > > having one integer argument. In property p we pass to s2 > a NAME of s1, > > > > > and not the SEQUENCE s1. > > > > > > We should consider a type sequence proposed by Lisa not > as a template > > > of a sequence, but as a result of a sequence. We have a similar > > > situation with functions: f(g(x)) - f takes a result of the > > > application of a function g to its argument x, and not > the function > > > itself. If we want to APPLY a function g inside f, we > should pass the > > > NAME of the function (in C it will be a pointer to the function). > > > > > > But again, as a user I would just rewrite your example as: > > > > > > sequence s1(int flv); > > > (exp1, flv = exp2); > > > endsequence > > > > > > sequence s2(sequence s, int lv); > > > s(lv) ##1 (lv == exp3); > > > endsequence > > > > > > property p; > > > int lv; > > > s2(s1(lv)); > > > endproperty > > > > > > using existing SVA rules. > > > > > > Thanks, > > > Dmitry > > > > > > -----Original Message----- > > > From: owner-sv-ac@server.eda.org > > > [mailto:owner-sv-ac@server.eda.org] On Behalf Of Miller > Hillel-R53776 > > > Sent: Wednesday, October 11, 2006 9:31 AM > > > To: Eduard Cerny; sv-ac@server.eda.org > > > Subject: RE: [sv-ac] IEEE 1800 SV-AC : minutes of meeting > on 10/10 > > > 2006 > > > > > > Ed, > > > > > > I think the intention is not to provide formal/actual > arguments of a > > > sequence when specifying a sequence as formal type. As > doron an dmitry > > > > > said the formal argument should not include the signiture. > > > The sequence > > > type can be assigned with any legal sequence instance. So > the example > > > should reduce down to this. > > > > > > sequence s1(int flv); > > > (exp1, flv = exp2); > > > endsequence > > > > > > sequence s2(sequence s); // formal arg on a formal arg? > > > int lv; > > > s ##1 (lv == exp3); // lv as arg?? > > > endsequence > > > property p; > > > s2(s1(lv)); > > > endproperty > > > > > > My concern in this example is that the user whom is using > the sequence > > > s2 needs to be aware of s2's local variables . If we do: > > > > > > property p; > > > s2(s1(lv_arg)); > > > endproperty > > > > > > Will this result in a undeclared variable error? > > > > > > If this is the case then this use model is problematic > from a language > > > > > perspective. > > > I think it is generally expected in a modular programming > framework to > > > > > have a well defined interface as part of the code, that > is, in this > > > example one would need to specify how to use sequence s2. > Not having > > > the name of the local variable specified in the header of > the sequence > > > > > does not pack the sequence s2 well for external usage. > > > > > > Thanks > > > Hillel > > > > > > -----Original Message----- > > > From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On > Behalf Of > > > Eduard Cerny > > > Sent: Tuesday, October 10, 2006 7:44 PM > > > To: sv-ac@eda.org > > > Subject: [sv-ac] IEEE 1800 SV-AC : minutes of meeting on > 10/10 2006 > > > > > > Please find attached the minutes of the SV-AC meeting > earlier today. > > > Let me know if you see any discrepancies. > > > > > > Best regards, > > > ed > > > > > >Received on Fri Oct 13 07:06:45 2006
This archive was generated by hypermail 2.1.8 : Fri Oct 13 2006 - 07:06:59 PDT