Subject: [sv-ac] Forwarding note from Jay Lawrence
From: Stephen Meier (Stephen.Meier@synopsys.com)
Date: Thu Apr 24 2003 - 17:29:06 PDT
Date: Thu, 24 Apr 2003 16:22:38 -0700 (PDT)
From: owner-sv-ac@eda.org
To: owner-sv-ac@eda.org
Subject: BOUNCE sv-ac@eda.org: Non-member submission from ["Jay Lawrence" <lawrence@.com>]
X-Spam-Status: No, hits=1.8 required=5.0
tests=AWL,HTML_10_20,HTML_FONT_COLOR_BLUE,HTML_MESSAGE,
NO_REAL_NAME
version=2.52
X-Spam-Level: *
X-Spam-Checker-Version: SpamAssassin 2.52 (1.174.2.8-2003-03-24-exp)
X-Loop: smeier@eda.org
>From owner-sv-ac Thu Apr 24 16:22:14 2003
Received: from mailgate2.Cadence.COM (mailgate2.Cadence.COM [158.140.2.31])
by server.eda.org (8.12.0.Beta7/8.12.0.Beta7) with ESMTP id h3ONMBpp027797
for <sv-ac@eda.org>; Thu, 24 Apr 2003 16:22:13 -0700 (PDT)
Received: from exmbx01chel.global.cadence.com (exmbx01chel.Cadence.COM [158.140.105.230])
by mailgate2.Cadence.COM (8.9.3/8.9.3) with ESMTP id QAA00165
for <sv-ac@eda.org>; Thu, 24 Apr 2003 16:22:10 -0700 (PDT)
X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0
content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----_=_NextPart_001_01C30AB8.544D6EDB"
Subject: RE: [sv-ac] Issue of action block in reactive region.
Date: Thu, 24 Apr 2003 19:22:10 -0400
Message-ID: <0D3972F302D58440BD35BF14DC48AF56011E6A69@exmbx01chel.cadence.com>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: [sv-ac] Issue of action block in reactive region.
Thread-Index: AcMKt5jk11SbwOQ0TDuokBT2vr4pGwAAF9Fw
From: "Jay Lawrence" <lawrence@.com>
To: "Stephen Meier" <Stephen.Meier@mailgate2.Cadence.COM>,
"System Verilog Assertion" <sv-ac@server.eda.org>
X-Received: By mailgate2.Cadence.COM as QAA00165 at Thu Apr 24 16:22:10 2003
This is a multi-part message in MIME format.
------_=_NextPart_001_01C30AB8.544D6EDB
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
I do not believe this is corrected in Draft 6. It still says that
concurrent assertions use sampled values, and that action blocks run in
the reactive region. Only the wording on immediate assertions was
changed.
=20
If the assertion runs on sampled values it is looking at the value of
the signal in the preponed region. The values in the reactive region
will see the values which have changed during this cycle. There is every
chance that they will be different.
=20
Cadence continues to believe this is a serious issue.
=20
Jay
=20
p.s. Thanks for taking time to read the ballot response=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Jay Lawrence
Senior Architect
Functional Verification
Cadence Design Systems, Inc.
(978) 262-6294
lawrence@cadence.com
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=20
-----Original Message-----
From: Stephen Meier [mailto:Stephen.Meier]=20
Sent: Thursday, April 24, 2003 7:16 PM
To: System Verilog Assertion
Subject: Re: [sv-ac] Issue of action block in reactive region.
Adam:
Note that the issue you demonstrate was raised and resolve during last
meeting and is included in Draft 6 of the LRM
In Sec 17.2:=20
That is, the expression does not evaluate to a known, non-zero value.
The else=20
statement can also be omitted. The action block is executed immediately
after the evaluation of the assert=20
expression.
So the message would print out non mutex values of a and b.
Note that action block is in reactive region for concurrent assertions
and this follows the need to have clear separation between sampled
signals and evaluating their results. We need to wait for the active
region to complete before we can see which clocks have occurred.
Adam I hope this clears this issue and we can have your support as you
have worked very hard within the comittee to get to this point.
-Steve
----------
At 05:57 PM 4/24/2003 -0500, you wrote:
Hello all;
Based on the issue below, my vote is:
__ yes _X_ no Approve sending the LRM (the work performed by SV-AC)
to the board for their approval.
Reading cadence's issue paper, I wrote this simple (similar) example:
assert property ( ! a & b)
else begin
$display("A and B not mutex, see a %b and b %b.", a, b);
end
Cadence writes the action_block is executed in the reactive region. This
causes
the code in the action block to potentially see different values than
the
assertion code. This will make error messages of assertions unuseable
when
trying to write out values in the message. E.g.
assert property ( ! a & b)
else $error("A and B not mutex, see a %b and b %b.", a, b);
It would be terrible to see a message
Error ........
A and B not mutex, see a 1 and b 0.
And leave the user scratching their head, wondering why the assertion
fired
when the values it is showing are legal.
Is this an issue to be addressed as an erratta or a post 3.1 issue? I
would
hope that this is not deferred to a 3.2 issue as it will allow
implementations
to be produced that clearly have a deficiency.
One could also consider addressing the availability of dynamic variable
values
for displaying in an error message. Currently the variable does not
exist
out of the property scope.
THanks.
Adam Krolnik
Verification Mgr.
LSI Logic Corp.
Plano TX. 75074
Steve Meier (stephen.meier@synopsys.com) W: 650-584-4476, Cell:
408-393-8246
------_=_NextPart_001_01C30AB8.544D6EDB
Content-Type: text/html;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
Message
I = do not believe=20 this is corrected in Draft 6. It still says that concurrent assertions = use=20 sampled values, and that action blocks run in the reactive region. Only = the=20 wording on immediate assertions was changed.
If the = assertion=20 runs on sampled values it is looking at the value of the signal in the = preponed=20 region. The values in the reactive region will see the values which have = changed=20 during this cycle. There is every chance that they will be=20 different.
Cadence continues to=20 believe this is a serious issue.
Jay
p.s. = Thanks for=20 taking time to read the ballot response
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Jay Lawrence
Senior=20 Architect
Functional Verification
Cadence Design Systems, = Inc.
(978)=20 262-6294
lawrence@cadence.com
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =20So the message would = print out=20 non mutex values of a and b.
- -----Original Message-----
- From: = Stephen Meier=20 [mailto:Stephen.Meier]
- Sent: Thursday, April 24, 2003 7:16=20 PM
- To: System Verilog Assertion
- Subject: Re: = [sv-ac] Issue=20 of action block in reactive = region.
- Adam:
- Note that=20 the issue you demonstrate was raised and resolve during last meeting = and is=20 included in Draft 6 of the LRM
- In Sec 17.2:=20
- That is, the expression does not evaluate to a known, non-zero = value.=20 The else=20
- statement can also be omitted. The action block is = executed=20 immediately after the evaluation of the assert=20
- expression.
Note that action block is in = reactive=20 region for concurrent assertions and this follows the need to have = clear=20 separation between sampled signals and evaluating their results. = We need=20 to wait for the active region to complete before we can see which = clocks have=20 occurred.
Adam I hope this clears this issue and we can have = your=20 support as you have worked very hard within the comittee to get to = this=20 point.
-Steve
----------
At 05:57 PM 4/24/2003 -0500, you = wrote:
Steve Meier (stephen.meier@synopsys.com) W: = 650-584-4476, Cell:=20 408-393-8246
- Hello = all;
- Based on the=20 issue below, my vote is:
- __ yes _X_ = no =20 Approve sending the LRM (the work performed by SV-AC) to the board = for their=20 approval.
- Reading cadence's issue paper, I wrote this = simple=20 (similar) example:
- assert property ( ! a & = b)
- =20 else begin
- $display("A and B not mutex, = see a %b=20 and b %b.", a, b);
- end
- Cadence = writes the=20 action_block is executed in the reactive region. This causes
- the = code in=20 the action block to potentially see different values than = the
- assertion=20 code. This will make error messages of assertions unuseable = when
- trying=20 to write out values in the message. E.g.
- assert property = ( ! a=20 & b)
- else $error("A and B not mutex, see a %b = and b=20 %b.", a, b);
- It would be terrible to see a = message
- Error=20 ........
- A and B not mutex, see a 1 and b = 0.
- And=20 leave the user scratching their head, wondering why the assertion=20 fired
- when the values it is showing are legal.
- Is this = an=20 issue to be addressed as an erratta or a post 3.1 issue? I = would
- hope=20 that this is not deferred to a 3.2 issue as it will allow=20 implementations
- to be produced that clearly have a = deficiency.
- One=20 could also consider addressing the availability of dynamic variable=20 values
- for displaying in an error message. Currently the variable = does=20 not exist
- out of the property scope.
- =20 THanks.
- Adam Krolnik
- = Verification=20 Mgr.
- LSI Logic Corp.
- Plano TX.=20 75074
------_=_NextPart_001_01C30AB8.544D6EDB--
This archive was generated by hypermail 2b28 : Thu Apr 24 2003 - 17:31:45 PDT