RE: [sv-ac] reminder to vote on mantis 1550

From: Miller Hillel-R53776 <r53776_at_.....>
Date: Thu Jan 25 2007 - 06:24:16 PST
John,

I am not sure we should make such an inconsistency it sounds troubling.

However, the reason why static variable declarartion assignments cannot
be used, is that it cannot be used by an outer module reference. If I
want to influence the initial value of a $ function that is dependent on
a module's reg, how would this be done. Would I need to rewrite the code
with the declaration assignment?

Maybe we need an additional construct for initializing the $sampled
value of a variable at the same time as assignment declaration.

Thanks


 


Hillel Miller>


-----Original Message-----
From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On Behalf Of John
Havlicek
Sent: Thursday, January 25, 2007 3:42 AM
To: sv-ac@eda-stds.org
Subject: Re: [sv-ac] reminder to vote on mantis 1550

Hillel & Ed:

I think there are several things going on here.

First, based on 9.3.1, I think that the declaration assignments for
static variables execute as part of 

   initialize the values of all nets and variables

Then the initialization events are scheduled into the time 0 slot.
This does not mean that any assignments from an initial block are
performed yet.  

Then, assuming that there is some event, we execute the time 0 slot.

Then the preponed region of the time 0 slot is executed.

Thus, the declaration assignments for static variables will influence
the preponed values in the time 0 slot.

If $sampled refers to a static variable with declaration assignment,
then I think that in the time 0 slot the value from the declaration
assignment should be used rather than the default initial value for the
type of the variable.  

The statement in the proposal that $sampled returns the default intial
value (presumably of the type) of its argument in the time 0 slot could
therefore be inconsistent with the statement that $sampled returns the
preponed value of its argument in the current time slot, and should
probably either be removed or clarified.

I think that according to 9.3.1, assignments in an initial block will be
scheduled for the active region of the time 0 slot.  These assignments
do not, I believe, affect the preponed values in the time 0 slot.  If we
consider $sampled always to return the preponed value, then initial
block assignments will not affect $sampled in the time 0 slot.

Hillel, are you asking for the defintion of $sampled to be influenced by
initial block assignments in the time 0 slot?  If so, then the
definition of $sampled needs to be changed to distinguish the time 0
slot from all the other time slots.  I would like to see a strong
rationale for such an inconsistency, one that explains, e.g., why static
variables with declaration assignments cannot be used.

Best regards,

John H.

> Content-class: urn:content-classes:message
> X-MimeOLE: Produced By Microsoft Exchange V6.5
> X-OriginalArrivalTime: 24 Jan 2007 18:30:41.0689 (UTC) 
> FILETIME=[C0BB0090:01C73FE5]
> Date: Wed, 24 Jan 2007 11:30:36 -0700
> X-MS-Has-Attach: 
> X-MS-TNEF-Correlator: 
> Thread-Topic: [sv-ac] reminder to vote on mantis 1550
> Thread-Index: 
> Acc/JcA24JDBTV1VQc2QjprTXfKfWwAlgkfgAAIJ6XAAA6aw4AAEm8jwAAAfAlA=
> From: "Miller Hillel-R53776" <r53776@freescale.com>
> 
> This is a multi-part message in MIME format.
> 
> ------_=_NextPart_001_01C73FE5.C5169280
> Content-Type: text/plain;
> 	charset="us-ascii"
> Content-Transfer-Encoding: quoted-printable
> 
> Still what is wrong with the proposal to use the value after 
> initialization at time 0? Where does this break consistency?
> 
> ________________________________
> 
> From: Eduard Cerny [mailto:Eduard.Cerny@synopsys.com]=20
> Sent: Wednesday, January 24, 2007 8:27 PM
> To: Miller Hillel-R53776; Eduard Cerny; Havlicek John-r8aaau; 
> sv-ac@eda-stds.org
> Subject: RE: [sv-ac] reminder to vote on mantis 1550
> 
> 
> Hi Hillel,
> =20
> apart from the uesr initialization, what is really the problem with 
> the current definition? Yes, it can happen when there is a clocking 
> event at time 0, or if you have $past with longer number of clocks to 
> go back, etc.
> =20
> Best regards,
> ed
> =20
> PS the forced initialization can be a feature of a tool, not the LRM.
> =20
> 
> 
> ________________________________
> 
> 	From: Miller Hillel-R53776 [mailto:r53776@freescale.com]=20
> 	Sent: Wednesday, January 24, 2007 1:14 PM
> 	To: Eduard Cerny; Havlicek John-r8aaau; sv-ac@eda-stds.org
> 	Subject: RE: [sv-ac] reminder to vote on mantis 1550
> =09
> =09
> 	Ed,
> 	=20
> 	What $ functions use $sampled values which are to be before time
0?
> 	=20
> 	Does this happen when there is a "clocking event" at time
zero?=20
> 	=20
> 	Why can't we take the route of using the values after
initialization 
> as the $sampled value in the first preponed region at time 0? What 
> does this break?
> 	=20
> 	There also needs to be away to allow the user to control the 
> initialization of the $functions at time Zero. This could be needed if

> a counter example is produced by a formal tool that needs to be 
> replayed in simulation. If the $sampled at the first preponed region 
> is from the time 0 initilization stage then this is doable.
> 	=20
> 	Thanks
> 	Hillel
> 	=20
> 	=20
> 	=20
> ________________________________
> 
> 	From: Eduard Cerny [mailto:Eduard.Cerny@synopsys.com]=20
> 	Sent: Wednesday, January 24, 2007 4:31 PM
> 	To: Miller Hillel-R53776; Havlicek John-r8aaau;
sv-ac@eda-stds.org
> 	Subject: RE: [sv-ac] reminder to vote on mantis 1550
> =09
> =09
> 	Hello Hillel,
> 	But the functions use $sampled values which are to be before
time 0. 
> Hence the initialization to the default value of the type. What else 
> would you suggest?ed
> 	=20
> 
> 
> ________________________________
> 
> 		From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org]
On Behalf Of 
> Miller Hillel-R53776
> 		Sent: Wednesday, January 24, 2007 8:53 AM
> 		To: Havlicek John-r8aaau; sv-ac@eda-stds.org
> 		Subject: RE: [sv-ac] reminder to vote on mantis 1550
> 	=09
> 	=09
> 
> 		Hi,
> 
> 		I vote no even though I am not elligible. The reason is
that it is 
> not clear what the intialized values are of the $ functions.
> 
> 		The current schedular code shows an initialization
process, before 
> going into the first preponed area (see below). This means that the 
> initial value of an expression is determined by its initilization at 
> time slot 0 and not by its default type value as specified in the 
> proposal.
> 
> 		execute_simulation {
> 
> 		T =3D 0;
> 
> 		initialize the values of all nets and variables;
> 
> 		schedule all initialization events into time 0 slot;
> 
> 		while (some time slot is nonempty) {
> 
> 		move to the next future nonempty time slot and set T;=20
> 
> 		execute_time_slot (T);
> 
> 		}
> 
> 		}
> 
> 		Hillel Miller>
> 
> 

--
This message has been scanned for viruses and dangerous content by
MailScanner, and is believed to be clean.


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Thu Jan 25 06:24:55 2007

This archive was generated by hypermail 2.1.8 : Thu Jan 25 2007 - 06:25:02 PST