RE: [sv-ac] Mantis 1898 feedback needed

From: Bassam Tabbara <Bassam.Tabbara_at_.....>
Date: Wed Dec 05 2007 - 10:20:03 PST
Hi Lisa,
 
I don't think it's 1898, which proposal is it ? Some comments below.
 
Thx.
-Bassam.
 

________________________________

From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On Behalf Of Lisa
Piper
Sent: Tuesday, December 04, 2007 2:42 PM
To: sv-ac@eda.org
Subject: [sv-ac] Mantis 1898 feedback needed



Mantis 1898 says a clarification is needed where concurrent assertions
may appear and what kind of variables they may use. The Mantis item
states that the following restrictions should apply:

		* concurrent assertions shall not use automatic
variables

		* concurrent assertions may not appear in a fork-join
block

I have created the following text to insert. I just want agreement on
the concept at this point. I would like to also address the issue for
immediate assertions which I think is more vague. Note that I have
allowed for the for loop index variable which is an automatic variable
since 1995 assertions in loops would require this.

================================================

All data referenced in an assertion, with the exception of local
variables(see 16.9)  and for loop indices (see 12.7.1), must have a
static lifetime (exist for the whole elaboration and simulation time).
Similarly, concurrent assertions may only exist in blocks whose lifetime
is also static.  So for example, 

*	automatic variables and members or elements of dynamic variables
cannot be referenced in an assertion.   This includes class properties,
dynamically sized variables, data in automatic tasks, functions, or
blocks, and for loop variables (see 12.7.1) 
	[Bassam Tabbara] I think this is too broad a restriction on
dynamic vars. A class object for example may be persistent for duration
of sim or some part of it so disallowing use of properties is overkill.
*	Class methods (see Clause 8) are only active for the lifetime of
the call.  Similarly, the lifetime of a fork...join, fork...join_any, or
fork...join_none block is limited to the execution of all processes
spawned by the block, and the lifetime of a scope enclosing any fork
block includes the lifetime of the fork block.  Class methods and
fork...join, fork...join_any, or fork...join_none blocks therefore may
not contain concurrent assertions or have its elements referenced by a
concurrent assertion.

All variables in an assertion use the sampled value with the exception
that local variables and for loop variables use the current value.

Because immediate assertions are procedural, they may exist in automatic
tasks, functions, and blocks, however because they are not static,
assertion control tasks(see 19.10)and assertion action control tasks(see
19.11) and VPI do not apply.  Only assertion system controls in VPI
apply to immediate assertions that are not static.
[Bassam Tabbara] I don't understand this, if the assertion is allowed
why not control.


-- 
This message has been scanned for viruses and 
dangerous content by MailScanner <http://www.mailscanner.info/> , 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 Wed Dec 5 10:20:32 2007

This archive was generated by hypermail 2.1.8 : Wed Dec 05 2007 - 10:21:13 PST