I think that, as per the current proposal for 1550, there is no need to have the clocked version of the function, but if you think that this is operational, I can add it to the prposal. ed > -----Original Message----- > From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On > Behalf Of Arturo Salz > Sent: Friday, November 03, 2006 6:47 PM > To: Rich, Dave; john.havlicek@freescale.com; sv-ac@eda-stds.org > Subject: RE: [sv-ac] mantis 1550 > > That seems like a safe way forward. > > However, I believe that $sampled(x, @(posedge clk) ) is equivalent to > the corresponding clocking block definition: > > clocking cb @(posedge clk); > input #1step x; // the #1step is optional > endclocking > > And, the above declaration enables the use of: > > @(cb.x) ... > > It would seem that we can define the semantics of $sampled in terms of > the equivalent clocking block definition. I think that part of the > problem is that $sampled uses a function syntax for a > built-in construct > that may not behave as a function. > > Arturo > > -----Original Message----- > From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On Behalf Of > Rich, Dave > Sent: Friday, November 03, 2006 7:54 AM > To: john.havlicek@freescale.com; sv-ac@eda-stds.org > Subject: RE: [sv-ac] mantis 1550 > > I agree with your conclusion. > > > > -----Original Message----- > > From: owner-sv-ac@server.eda.org [mailto:owner-sv-ac@server.eda.org] > On > > Behalf Of John Havlicek > > Sent: Friday, November 03, 2006 4:53 AM > > To: sv-ac@server.eda-stds.org > > Subject: Re: [sv-ac] mantis 1550 > > > > Hi Dave: > > > > My intuition is that the generation of events from changes in the > > return values of sampled value functions will be useful as a more > > abstract view of the various changes in their arguments. > > > > Nevertheless, the reluctance to define such generated events is > > understandable in the absence of a clear use model. > > > > In this case, though, I prefer that we make illegal the usage of > > sampled value functions in contexts that require the definition of > > events generated from their changes. > > > > In that way, we can preserve the possibility of defining > those events > > at a later time. > > > > 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: Thu, 2 Nov 2006 13:19:19 -0800 > > > X-MS-Has-Attach: > > > X-MS-TNEF-Correlator: > > > Thread-Topic: [sv-ac] mantis 1550 > > > Thread-Index: > > Acb+pxg/+SSVD5vxR0KCaRZVriKPnwAAE5fgAAJ3xsAAANtMEAABftvQAAIMtPA= > > > From: "Rich, Dave" <Dave_Rich@mentor.com> > > > X-OriginalArrivalTime: 02 Nov 2006 21:19:27.0754 (UTC) > > FILETIME=[940CA6A0:01C6FEC4] > > > X-Virus-Status: Clean > > > X-MIME-Autoconverted: from quoted-printable to 8bit by server.eda- > > stds.org id kA2LJTb2022874 > > > Sender: owner-sv-ac@eda.org > > > > > > Ed, > > > Arturo and Stu raise a good point: does it even make > sense to allow > > > sampled functions to generate an event? $time does not generate > event > > > when the time changes. The reason for $time's behavior has more to > do > > > with historical Verilog-XL and the fact that it only > created events > when > > > the inputs to a function changed, not based on when the > result of a > > > function changed. > > > > > > Using that definition, $sample(x) would only be evaluated when the > raw > > > signal 'x' changes, and an update event would only be generated if > the > > > return value was different from the last evaluation. > > > > > > > > > Dave > > > > > > > > > > -----Original Message----- > > > > From: owner-sv-ac@server.eda.org > [mailto:owner-sv-ac@server.eda.org] > > > On > > > > Behalf Of Eduard Cerny > > > > Sent: Thursday, November 02, 2006 12:12 PM > > > > To: stuart@sutherland-hdl.com; sv-ac@server.eda-stds.org > > > > Subject: RE: [sv-ac] mantis 1550 > > > > > > > > Hi Stu, > > > > > > > > I guess the question was related to the following: what > happens if > you > > > > write @($smapled(x)) where will it be scheduled. In my > view and if > I > > > > understood what Arturo wrote, if $sampled changed for > the current > time > > > > step and the event control is is in a module, it will unblock in > > > active > > > > region, if it is in program it will unblock in reactive region. > > > > > > > > ed > > > > > > > > > > > > > -----Original Message----- > > > > > From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On > > > > > Behalf Of Stuart Sutherland > > > > > Sent: Thursday, November 02, 2006 2:55 PM > > > > > To: sv-ac@eda-stds.org > > > > > Subject: RE: [sv-ac] mantis 1550 > > > > > > > > > > > > > > > This message thread has me confused. I do not understand how > > > > > a "sampled" > > > > > value can have an "update" event. From my user point of > > > > > view, I expect > > > > > $sampled and $past simply return to me the STABLE value of a > > > > > signal as it > > > > > exists in the Preponed region of the specified time step. It > > > > > makes no sense > > > > > for a STABLE value to need an update event! > > > > > > > > > > I use currently use $sampled in pass/fail action blocks as a > > > > > way to print > > > > > the Preponed sampled values used by an assertion to determine > > > > > if a sequence > > > > > passed or failed. If you now tell me that the > sampled value can > be > > > a > > > > > changing value, then $sampled and $past become completely > worthless. > > > > > > > > > > Furthermore, if I am reading the message thread correctly, > > > > > there seems to be > > > > > discussion about acting on changes in the Postponed region. > > > > > This region is > > > > > very clearly defined as the point in a time step where all > > > > > activity for that > > > > > time step has been processed, and NO MORE EVENT ACTIVITY CAN > > > > > OCCUR. Once > > > > > simulation reaches the Postponed region, there are no more > > > > > iterations within > > > > > the time step to process the affects of changes, and changes > > > > > are strictly > > > > > prohibited. It is a read-only region. > > > > > > > > > > Can someone please explain to me what the AC > committee is trying > to > > > > > accomplish by looking for changes on a $sampled or > $past value? > > > > > > > > > > Stu > > > > > ~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > > Stuart Sutherland > > > > > stuart@sutherland-hdl.com > > > > > +1-503-692-0898 > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > From: owner-sv-ac@server.eda.org > > > > > > [mailto:owner-sv-ac@server.eda.org] On Behalf Of Arturo Salz > > > > > > Sent: Thursday, November 02, 2006 11:18 AM > > > > > > To: Eduard Cerny; john.havlicek@freescale.com; > > > > > > sv-ac@server.eda-stds.org > > > > > > Subject: RE: [sv-ac] mantis 1550 > > > > > > > > > > > > I believe a more accurate statement would be: > > > > > > > > > > > > "Sampled values such as those returned by the $sampled and > $past > > > > > > functions are updated in the Postponed region" > > > > > > > > > > > > However, currently writing something like > > > > > > always @($time) ... > > > > > > will not work as expected. If we expect $sampled > and $past to > > > > > > behave in > > > > > > this manner then they must be defined that way explicitly. > > > > > > > > > > > > Arturo > > > > > > > > > > > > -----Original Message----- > > > > > > From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On > Behalf > > > Of > > > > > > Eduard Cerny > > > > > > Sent: Thursday, November 02, 2006 9:51 AM > > > > > > To: john.havlicek@freescale.com; sv-ac@eda-stds.org > > > > > > Subject: RE: [sv-ac] mantis 1550 > > > > > > > > > > > > Hi John, > > > > > > > > > > > > I will try to put something like that in the text... > > > > > > > > > > > > ed > > > > > > > > > > > > > -----Original Message----- > > > > > > > From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On > > > > > > > Behalf Of John Havlicek > > > > > > > Sent: Thursday, November 02, 2006 12:47 PM > > > > > > > To: sv-ac@eda-stds.org > > > > > > > Subject: Re: [sv-ac] mantis 1550 > > > > > > > > > > > > > > Hi Ed: > > > > > > > > > > > > > > Can we have a clear statement somewhere in 17.7.3 that > > > > > says that the > > > > > > > return values of all of the sampled value functions change > > > > > > only in the > > > > > > > postponed region? > > > > > > > > > > > > > > Also, can we have a statement that update events due to > changes > > > in > > > > > > > sampled value functions are scheduled in the appropriate > > > > > > region of the > > > > > > > next time slot? [It is still not clear to me that all > > > > > these will go > > > > > > > to the active region -- maybe some will go, e.g., to the > > > reactive > > > > > > > region.] > > > > > > > > > > > > > > If the redundancy is the bottleneck, one could say > > > > > > something like, "It > > > > > > > follows from the scheduling semantics (Section 9) > that <blah > > > > > > > blah blah>." > > > > > > > > > > > > > > Best regards, > > > > > > > > > > > > > > John H. > > > > > > > > > > > > > > > X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0 > > > > > > > > Content-class: urn:content-classes:message > > > > > > > > Date: Thu, 2 Nov 2006 07:58:41 -0800 > > > > > > > > Thread-Topic: [sv-ac] mantis 1550 > > > > > > > > Thread-Index: > Acb+j4hFCYP8sfsBR0avmxNqtXjgewABQSDgAADLaVA= > > > > > > > > From: "Eduard Cerny" <Eduard.Cerny@synopsys.com> > > > > > > > > X-OriginalArrivalTime: 02 Nov 2006 15:58:42.0631 (UTC) > > > > > > > FILETIME=[C50FED70:01C6FE97] > > > > > > > > > > > > > > > > That's what I had in mind and tried to explain. > > > > > > > > ed=20 > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > > > > From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] > On=20 > > > > > > > > > Behalf Of Rich, Dave > > > > > > > > > Sent: Thursday, November 02, 2006 10:53 AM > > > > > > > > > To: john.havlicek@freescale.com; sv-ac@eda-stds.org > > > > > > > > > Subject: RE: [sv-ac] mantis 1550 > > > > > > > > >=20 > > > > > > > > > I think the semantics of the return value of these > > > > > > function is no > > > > > > > > > different then the simple Verilog system function > $time.=20 > > > > > > > > >=20 > > > > > > > > > You have to distinguish between the values returned > by=20 > > > > > > > > > references to the > > > > > > > > > function versus evaluation events scheduled by a > > > > > > > processes waiting on > > > > > > > > > the event expression. This is somewhat harder to put > into=20 > > > > > > > > > words than to > > > > > > > > > actually implement it. > > > > > > > > >=20 > > > > > > > > > I think it is OK to say that the value that will be > > > > > > > returned by the > > > > > > > > > function is updated in the postponed region because no > > > one=20 > > > > > > > > > can schedule > > > > > > > > > a call in that region. You can also say that an > > > > > update event is > > > > > > > > > scheduled for the active region of the next time slot. > > > > > > > > >=20 > > > > > > > > > Dave > > > > > > > > >=20 > > > > > > > > >=20 > > > > > > > > > > -----Original Message----- > > > > > > > > > > From: owner-sv-ac@server.eda.org > > > > > > > [mailto:owner-sv-ac@server.eda.org] > > > > > > > > > On > > > > > > > > > > Behalf Of John Havlicek > > > > > > > > > > Sent: Thursday, November 02, 2006 6:59 AM > > > > > > > > > > To: sv-ac@server.eda-stds.org > > > > > > > > > > Subject: [sv-ac] mantis 1550 > > > > > > > > > >=20 > > > > > > > > > > Hi Ed: > > > > > > > > > >=20 > > > > > > > > > > In general, I like the semantics for $sampled and > $past > > > > > > > in your 1550 > > > > > > > > > > proposal, but I have some concerns that make me vote > > > > > > > "no" at this > > > > > > > > > > time. > > > > > > > > > >=20 > > > > > > > > > > 1. I don't think we have yet clarified when the > return=20 > > > > > > > > > values of these > > > > > > > > > > functions change. You say that $sampled > is stable > > > > > > > throughout the > > > > > > > > > > simulator timestep and that $past > changes in the=20 > > > > > > > > > postponed region. > > > > > > > > > >=20 > > > > > > > > > > Can the return value of $past really > change in the > > > > > > postponed > > > > > > > > > region? > > > > > > > > > >=20 > > > > > > > > > > I think it is bad if there can be > calls/references > > > > > > > to any of the > > > > > > > > > > sampled value functions between the > point that the > > > > > > > return value > > > > > > > > > > of one changes and the point that the > return value > > > > > > of another > > > > > > > > > > changes in the same timestep. > > > > > > > > > >=20 > > > > > > > > > > 2. A related question is that of the semantics of > > > > > > > events that refer > > > > > > > > > > to sampled value functions. The > intuition seems to > > > > > > > be that the > > > > > > > > > > return values of sampled value functions > change "in > > > > > > > between" the > > > > > > > > > > simulation timesteps, so when do we schedule > > > > > something like > > > > > > > > > >=20 > > > > > > > > > > @($sampled(p)) S1 > > > > > > > > > >=20 > > > > > > > > > > when written in various contexts (e.g., in a > > > > > module, in=20 > > > > > > > > > a program)? > > > > > > > > > >=20 > > > > > > > > > >=20 > > > > > > > > > > 3. I would like to see $rose, $fell, and $stable > > > > > > > defined in terms of > > > > > > > > > > $sampled and $past. I think this should be easy. > > > > > > > > > >=20 > > > > > > > > > > We may need to get some SV-BC or other help with > > > > > > items 1 and 2. > > > > > > > > > >=20 > > > > > > > > > > Best regards, > > > > > > > > > >=20 > > > > > > > > > > John H. > > > > > > > > >=20 > > > > > > > > >=20 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >Received on Sat Nov 4 05:16:26 2006
This archive was generated by hypermail 2.1.8 : Sat Nov 04 2006 - 05:16:42 PST