| Anonymous | Login | 2010-09-02 20:27 PDT |
| Main | My View | View Issues | Docs | Wiki |
| Viewing Issue Simple Details [ Jump to Notes ] [ Wiki ] | [ View Advanced ] [ Issue History ] [ Print ] | ||||||
| ID | Category | Severity | Date Submitted | Last Update | |||
| 0001345 | [SystemVerilog P1800] SV-BC | feature | 2006-02-20 07:01 | 2008-06-22 11:06 | |||
| Reporter | shalom | View Status | public | ||||
| Assigned To | shalom | ||||||
| Priority | immediate | Resolution | fixed | ||||
| Status | closed | Product Version | |||||
| Summary | 0001345: 10.4: "illegal" unique if/case issues | ||||||
| Description |
In 10.4, there are some unclearnesses about 'illegal' unique if and case statements. This is a follow-up to the long email discussion which began in http://www.eda.org/sv-bc/hm/3691.html [^] . 10.4 says, "A unique if shall be illegal if, for any such interleaving of evaluation and use of the conditions, more than one condition is true. For an illegal unique if, an implementation shall be required to issue a warning, unless it can demonstrate a legal interleaving so that no more than one condition is true." and "A unique case shall be illegal if, for any such interleaving of evaluations and comparisons, more than one case item matches the case expression. For an illegal unique case, an implementation shall be required to issue a warning message, unless it can demonstrate a legal interleaving of evaluations and comparisons so that no more than one case item matches the case expression." 1. In each quote, the first sentence contains the phrase "for any such interleaving". This is ambiguous. It can be interpreted as "there exists some such interleaving" or as "for all such interleavings" (as in mathematical expressions, "for any x", which means "for all x"). In fact, the email discussion showed that the intent was closer to the first interpretation, but more precisely something like "the tools detects such an interleaving", which is subtly different from the first interpretation also. 2. The wording "For an illegal unique case, an implementation shall be required to issue a warning message, unless it can demonstrate a legal interleaving" (same for if statements) sounds like it is saying "It shall issue a warning for an illegal case unless it is legal", which sounds self-contradictory. 3. "Shall be required to issue" is verbose. "shall issue" is enough. Again, in two places. 4. The text is not clear as to whether the tool is required to look for a legal ordering. 5. The term "illegal" is not appropriate. "illegal" designates a construct with bad syntax or a run-time condition which is not allowed. Here, the intent is simply an assertion which fails. Contrast to "It shall be illegal to make nonblocking assignments to automatic variables." two paragraphs before 10.4, or "The unique and priority keywords apply to the entire series of if...else...if conditions. In the preceding examples, it would have been illegal to insert either keyword after any of the occurrences of else." in 10.4 itself. 6. Subject for possible discussion: why should a tool not issue a warning if it finds ANY ordering which violates uniqueness (even if it finds a different ordering which does not, which probably makes it a pathological case anyway)? |
||||||
| Additional Information | |||||||
| Tags | No tags attached. | ||||||
| Type | Errata | ||||||
| Attached Files |
|
||||||
|
|
|||||||
Relationships |
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
Notes |
|
|
shalom (manager) 2006-12-18 10:22 |
The discussion included the subject of what do you do if there are side-effects. |
|
mmaidment (manager) 2007-12-11 17:07 |
The SV-BC unanimously approved the attached proposal via e-mail vote that closed December 10, 2007. |
|
Neil Korpusik (administrator) 2007-12-23 18:01 |
The proposal was unanimously approved by the Champions in the December 20th, 2007 conference call. |
|
Neil Korpusik (administrator) 2008-02-04 18:29 |
The proposal was unanimously approved by the P1800 Working Group in the January 31, 2008 conference call. |
|
shalom (manager) 2008-03-05 21:42 |
Note that this proposal incorportates and supercedes 0002036. |
|
shalom (manager) 2008-05-02 08:06 |
In 12.4.2, in the sentence, "Unique-if and unique0-if assert that there is no overlap in a series of if–else–if conditions, i.e., they are mutually exclusive and hence it is safe for the expressions to be evaluated in parallel," the word 'expressions' should be changed to 'conditions'. In 12.5.3, in the sentence, "It is not a violation of uniqueness for a single case_item to contain more than one case_item_expressions that matches the case_expression. If a case_item_expressions matches the case_expression, the implementation is not required to evaluate additional case_item_expressions in the same case_item," the first two uses of the term "case_item_expressions" should be singular. |
|
Stuart Sutherland (manager) 2008-06-03 00:33 |
The errors noted in bug note 6648 were corrected in Draft 6. |
| Mantis 1.1.7[^] Copyright © 2000 - 2008 Mantis Group |