EDA.org Mantis
Mantis Bugtracker

Viewing Issue Simple Details Jump to Notes ] Wiki ] View Advanced ] Issue History ] Print ]
ID Category Severity Date Submitted Last Update
0001251 [SystemVerilog P1800] SV-BC minor 2005-12-18 23:54 2010-02-08 21:46
Reporter shalom View Status public  
Assigned To
Priority normal Resolution open  
Status new   Product Version
Summary 0001251: 9.7.6 does not explicitly say what happens if "wait" condition is 'x' or 'z'
Description From: Steven Sharp <sharp@cadence.com>
To: etf-bugs@boyd.com, Shalom.Bresticker@freescale.com
Cc:
Subject: Re: errata/650: 9.7.6 does not explicitly say what happens if "wait" condition is x or z
Date: Tue, 15 Feb 2005 13:51:01 -0500 (EST)

9.6 does not specify what happens if a "while" condition is x or z either.
It does specify it for a "for" condition.

9.4 does define what it means for an expression to evaluate as "true" or
"false". It does so in the context of "if" statements, but there is
nothing to restrict the definition to that context. So that definition
would apply to these other situations that refer to an expression being
"true" or "false" also. It may not be the best organized, but I think
it is specified.

Steven Sharp
sharp@cadence.com

From: Shalom.Bresticker@freescale.com
To: Steven Sharp <sharp@cadence.com>
Cc: etf-bugs@boyd.com
Subject: Re: errata/650: 9.7.6 does not explicitly say what happens if "wait"
condition is x or z
Date: Tue, 15 Feb 2005 21:06:18 +0200 (IST)

I agree that this was the intent. However, the terms true and false are almost
certainly used in other contexts where x and z are not included. So it would
be more precise to say that x is considered false in the context of a
condition, not an arbitrary expression.

And even there, there are exceptions. Remember issue 237?

Further, if someone looks up what is written in 9.6 or 9.7.6, there is no
reason he should think that 9.4 is relevant.

I see no reason not to specify it more clearly.

Shalom


On Tue, 15 Feb 2005, Steven Sharp wrote:

> 9.6 does not specify what happens if a "while" condition is x or z either.
> It does specify it for a "for" condition.
>
> 9.4 does define what it means for an expression to evaluate as "true" or
> "false". It does so in the context of "if" statements, but there is
> nothing to restrict the definition to that context. So that definition
> would apply to these other situations that refer to an expression being
> "true" or "false" also. It may not be the best organized, but I think
> it is specified.

From: Steven Sharp <sharp@cadence.com>
To: etf-bugs@boyd.com, Shalom.Bresticker@freescale.com
Cc:
Subject: Re: errata/650: 9.7.6 does not explicitly say what happens if "wait" condition is x or z
Date: Tue, 15 Feb 2005 15:54:30 -0500 (EST)

> I agree that this was the intent. However, the terms true and false are almost
> certainly used in other contexts where x and z are not included. So it would
> be more precise to say that x is considered false in the context of a
> condition, not an arbitrary expression.
>
> And even there, there are exceptions. Remember issue 237?

For that issue, the text in 15.6 clearly states how x is treated, and
does not use the terms true and false. The correctness of the text is
questionable, but it does not appear to conflict with the definitions
of true and false.

The conditional operator also describes how x is treated. However, it
uses the terms true and false, and defines them differently from the
definition for "if" statements. This could create confusion.


> Further, if someone looks up what is written in 9.6 or 9.7.6, there is no
> reason he should think that 9.4 is relevant.

I agree that the organization is poor. It may work for someone reading
the text from front to back, but not for someone looking something up.
It could be specified better by repeating the definition every place it
is used, or by moving the definition into a separate section and stating
that it apples to all conditions in procedural statements.

Steven Sharp
sharp@cadence.com

From: Shalom.Bresticker@freescale.com
To: Steven Sharp <sharp@cadence.com>
Cc: etf-bugs@boyd.com
Subject: Re: errata/650: 9.7.6 does not explicitly say what happens if "wait"
condition is x or z
Date: Wed, 16 Feb 2005 04:56:53 +0200 (IST)

Yes to all you wrote.

By chance, I am reviewing Clause 14 (Specify blocks) due to some specify
syntax which appears to be accepted by most of the simulators, but is
not allowed by the BNF. (Expect an errata on it in the near future.)

14.2.4.1 says, "If the conditional expression evaluates to x or z, it shall
be treated as true." Again, in context that is probably the correct behavior,
but it is different than elsewhere.

Shalom

Additional Information This was imported from BTF650:
   http://www.boyd.com/1364_btf/report/full_pr/650.html [^]
Tags No tags attached.
Type Clarification
Attached Files

- Relationships

There are no notes attached to this issue.

- Issue History
Date Modified Username Field Change
2005-12-18 23:54 doug_warmke New Issue
2005-12-18 23:54 doug_warmke Type => Errata
2005-12-18 23:55 doug_warmke Additional Information Updated
2005-12-18 23:56 doug_warmke Summary 9.7.6 does not explicitly say what happens if "wait" condition is => 9.7.6 does not explicitly say what happens if "wait" condition is 'x' or 'z'
2006-02-18 13:17 Brad Pierce Reporter doug_warmke => shalom
2010-02-08 21:46 shalom Type Errata => Clarification
2010-02-08 21:46 shalom Severity feature => minor
2010-02-08 21:46 shalom Category V-1364 => SV-BC
2010-02-09 00:16 shalom Issue Monitored: shalom


Mantis 1.1.7[^]
Copyright © 2000 - 2008 Mantis Group
Powered by Mantis Bugtracker