sensitivity list in concurrent assertion

V

valtih1978

I'm reading a 2008 spec (Approved 26 September 2008). It says literally

1. For any concurrent assertion statement, there is an equivalent
process statement.

2. <skip discussion of postponed and label>

3. The equivalent process statement also has no sensitivity list, an
empty declarative part, and a statement part that consists of an
assertion statement followed by a wait statement.

4. <skip report and severity>

5. If there exists a name that denotes a signal in the Boolean
expression that defines the condition of the assertion, then the
equivalent process statement includes a final wait statement with a
sensitivity clause that is constructed by applying the rule of 10.2 to
that expression; otherwise, the equivalent process statement contains a
final wait statement that has no explicit sensitivity clause, condition
clause, or timeout clause. This looks a confusing redundancy

Part 3 is obviously included by mistake as it contradicts to everything:
to common sense, adopted practice and statement â„–5
 
A

Allan Herriman

I'm reading a 2008 spec (Approved 26 September 2008). It says literally

1. For any concurrent assertion statement, there is an equivalent
process statement.

2. <skip discussion of postponed and label>

3. The equivalent process statement also has no sensitivity list, an
empty declarative part, and a statement part that consists of an
assertion statement followed by a wait statement.

4. <skip report and severity>

5. If there exists a name that denotes a signal in the Boolean
expression that defines the condition of the assertion, then the
equivalent process statement includes a final wait statement with a
sensitivity clause that is constructed by applying the rule of 10.2 to
that expression; otherwise, the equivalent process statement contains a
final wait statement that has no explicit sensitivity clause, condition
clause, or timeout clause. This looks a confusing redundancy

Part 3 is obviously included by mistake as it contradicts to everything:
to common sense, adopted practice and statement â„–5


I see no contradiction. The sensitivity clause of the wait statement
mentioned in #5 is not the same thing as the sensitivity list of the
process that is mentioned in #3.

e.g.

generic foo_generic : boolean;
....
signal foo_signal : boolean;


assert foo_generic;

is equivalent to

process
begin
assert foo_generic;
wait;
end;

and

assert foo_signal;

is equivalent to

process
begin
assert foo_signal;
wait for foo_signal'event;
end;


That's my interpretation of the rules. I may be wrong, of course.


Regards,
Allan
 
V

valtih1978

Oh, I mistakenly identified the process sensitivity with it's equivalent
wait statement thinking that if they say "no list" then the wait
statement must not have it either. Thanks.
 
A

Andy

I see no contradiction. The sensitivity clause of the wait statement
mentioned in #5 is not the same thing as the sensitivity list of the
process that is mentioned in #3.

e.g.

generic foo_generic : boolean;
...
signal foo_signal : boolean;

assert foo_generic;

is equivalent to

process
begin
assert foo_generic;
wait;
end;

and

assert foo_signal;

is equivalent to

process
begin
assert foo_signal;
wait for foo_signal'event;
end;

That's my interpretation of the rules. I may be wrong, of course.

Regards,
Allan- Hide quoted text -

- Show quoted text -

Wait on... needs a list of signals (sensitivity).
Wait until... takes a boolean expression (condition).
Wait for... needs a time expression (a timeout).
They can be combined.

The wait statement for foo_signal would be:

WAIT ON foo_signal UNTIL foo_signal'event;

Or just:

WAIT ON foo_signal;

Andy
 
A

Allan Herriman

Wait on... needs a list of signals (sensitivity).
Wait until... takes a boolean expression (condition).
Wait for... needs a time expression (a timeout).
They can be combined.

The wait statement for foo_signal would be:

WAIT ON foo_signal UNTIL foo_signal'event;

Or just:

WAIT ON foo_signal;

Andy

Thanks for the correction.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,534
Members
45,008
Latest member
Rahul737

Latest Threads

Top