Hi Manisha: "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. When we discussed adding types, we talked about using some input/output qualification on the formal arguments to help clarify this mechanism. I think it was decided not to complicate matters at that time and therefore to leave the exporting of local variables through typed arguments illegal. My vision is that we be able to write sequence foo more clearly as something like sequence foo1(output logic v); (a, v = e) ##1 b; endsequence In this way the argument list of contains the declaration of the local variable v and also indicates that the value assigned to v is intended to flow out (i.e., be exported) to the instantiating context. I imagine one might also use "inout" if a local variable argument is supposed to get an incoming value, possibly update the value, and export a value. The fact that an argument is an "output" or "inout" tells the instantiator that a local variable actual argument must be passed to this formal argument. The specific syntax of "input", "output", "inout" is nice because it follows other portlists, but it could be changed if there is some technical objection. Best regards, John 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: Tue, 29 Aug 2006 15:21:59 -0700 > X-MS-Has-Attach: > X-MS-TNEF-Correlator: > Thread-Topic: [sv-ac] 1420 > Thread-Index: AcbHvunEk1D4ajHcTFCJGg7xJZFtQgD+Pxow > From: "Kulshrestha, Manisha" <Manisha_Kulshrestha@mentor.com> > X-OriginalArrivalTime: 29 Aug 2006 22:22:01.0374 (UTC) FILETIME=[8C87DBE0:01C6CBB9] > X-Virus-Status: Clean > X-MIME-Autoconverted: from quoted-printable to 8bit by server.eda-stds.org id k7TMM2Du002545 > Sender: owner-sv-ac@eda.org > > Hi Doron, > > 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. > > Thanks. > Manisha > > -----Original Message----- > From: owner-sv-ac@server.eda.org [mailto:owner-sv-ac@server.eda.org] On > Behalf Of Doron Bustan > Sent: Thursday, August 24, 2006 1:49 PM > To: Lisa Piper; sv-ac@server.eda-stds.org > Subject: Re: [sv-ac] 1420 > > The pdf is attached > > Doron >Received on Wed Aug 30 04:34:54 2006
This archive was generated by hypermail 2.1.8 : Wed Aug 30 2006 - 04:35:20 PDT