RE: [sv-ac] RE: AC 296

From: Kulshrestha, Manisha <Manisha_Kulshrestha@mentorg.com>
Date: Fri Nov 12 2004 - 08:55:21 PST

Hi Joseph,
 
From LRM 8.11, it seems to allow .triggered method to be used in
sequences but
Ed Cerney and Surrendra pointed out that it is not allowed.
 
If no one objects, I would modify my proposal to make this restriction
part of the
proposal. Basically, I propose to modify proposal 296 to restrict the
usage of .triggered
method of sequences to be used only outside of sequence expressions.
Also, I would
modify the proposal to state that .ended and .matched can only be used
in sequence
expressions.
 
Please let me know if anyone disagrees.
 
Thanks.
Manisha

 

 Hi All,

As we discussed in the meeting. I think we need to discuss the following
things before I can update my proposal:

1. Is .ended allowed in event expressions (i.e. in wait statement) in
the procedural code. My impression is it is allowed based on the
discussion few weeks ago. If it is allowed then why not make it
available till the time the event wakes up to get executed.

2. Is .triggered allowed to be used to form sequence expressions ? Here
we need to consider .triggered property of any event not just sequence
events. Current syntax allows it and LRM does not prohibit it.

   From LRM 8.11, it seems to allow .triggered methods to be used with
sequences and the result is set in the oberserve region.

   I am not clear why it was mentioned that it is not allowed from the
meeting. I may miss something ...

-----Original Message-----
From: Eduard Cerny [mailto:Eduard.Cerny@synopsys.com
<mailto:Eduard.Cerny@synopsys.com> ]
Sent: Wednesday, November 10, 2004 1:27 PM
To: sv-ac@eda.org; Kulshrestha, Manisha
Cc: Ed Cerny
Subject: AC 296

Hello Manisha,

I agree with you and think that it is a good idea to summarize the
sequence methods in a se[arate section. However I would like to suggest
a some changes to your proposal. In particular, ended and matched should
not be allowed outside expressions in sequences. They are more like
boolean events valid only at the clock tick. We should discuss it
tomorrow at the meeting.

Best regards,

ed

---
In the paragraph on ended you say:

"The ended status of the sequence is set in the Observe region and
persists through the remainder of the time step (i.e. until simulation
time advances). This method can be used to detect the endpoint of a
sequence used in another sequence."

I think that extending the duration of the ended in not necessary as it
cannot be used anywhere but in another sequence which does also evaluate
in the Observed region. (Clearly, when evaluating sequences the
evaluation must be ordered by mutual dependency and the dependency graph
must not have

cycles.) Perhaps you would agree if the text is changed as follows:

"The ended status of the sequence is set in the Observed region. This
method can only be used to detect the endpoint of a sequence in another
sequence. There must be no circular dependency between sequences induced
by the use of ended."

---
In the paragraph on triggered :

"The value of method triggered evaluates to true if the given sequence
has reached its endpoint at that particular point in time and false
otherwise. The triggered status of the sequence is set in the Observe
region and persists through the remainder of the time-step. This method
can be used anywhere that the triggered property of events can be used
(section 13.5.4). It is an error to pass a local variable as an actual
argument to a sequence instance on which method triggered is applied.
This prevents local variables from flowing out of method triggered.
(See section 17.8)"

I propose that you add:

"... This method can be used anywhere that the triggered property of
events can be used (section 13.5.4), including the boolean expressions
in disable iff statements of properties. There should be no circular
dependency between properties and sequences induced by the use of
sequence triggered in disable if clauses. It is an error ... "

---
The paragraph starting with: "The methods ended and triggered ..."

Change as

"The method triggered can be used in wait statements or boolean
expressions outside of property context. However, it is an error to
invoke those methods on sequences which treat their formal arguments as
local variables. A sequence treats its formal argument as a local
variable if the formal argument is used as an lvalue in
operator_assignment or inc_or_dec_expression in sequence_match_item."

---
The paragraph starting with: "Unlike ended and triggered, matched uses
..."

Change to:

"Unlike ended and triggered, matched provides means for synchronization
between two clocks by making available the result of the source sequence
match to the evaluation of the destination sequence at the first clock
tick of the destination sequence after the source sequence match. This
method is used to detect the endpoint of a sequence in a multi-clocked
sequence. If the source and destination clocks are the same, again the
result is transferred to the first subsequent clock tick. Like ended,
matched can only be used in boolean expressions in sequences."
Received on Fri, 12 Nov 2004 08:55:21 -0800

This archive was generated by hypermail 2.1.8 : Fri Nov 12 2004 - 08:56:09 PST