Below are the results of the email ballot:
3213
Yes Ashok Bhatt
Yes Laurence Bisht
Yes Eduard Cerny
Dana Fisman
Tapan Kapoor
Jacob Katz
No Scott Little
No Manisha Kulshrestha
No Anupam Prabhakar
Yes Erik Seligman
Yes Samik Sengupta
No Tom Thatcher
The issue failed.
Comments:
Ed:
Small issues:
last line on pp 3: ... of a concurrent ?? context is stricken out...
above 16.6 on pp5: missing "." at the end of sentence ... from procedural code (see 16.15.6)
Other:
"Use of $sampled in a disable iff clause is meaningful since the disable condition is not evaluated in the concurrent context (see 16.13)."
I that is the case, If I wish to use a sampled value in disable iff, how can it be done if it is meaningless? That should return the proponed/postponed value. Perhaps this is what is meant, but then it is not meaningless.
Manisha:
This document needs more work. Here are my comments:
1. In 16.2, instead of 'evaluate their variables' it should be 'evaluate their expressions'.
2. In 16.5.1, the second sentence of first paragraph is incomplete. Also, last sentence of the last paragraph is incomplete.
3. In 16.5.2, it mentions 'such as checker arguments', it would be better to get rid of this reference as this will require changes again when checker argument sampling changes.
4. In the same section, the value of an automatic variable in concurrent context is not its current value. The value of automatic variable is its const value (which you get by doing const'()). This const value is picked up at the time statements corresponding to concurrent assertion or checker instantiation are reached in the procedural evaluation. So, the explanation of const cast expression has to be re-written.
5. In 16.6, it is not clear if automatic variables are allowed in disable iff condition. If they are, then their constant value has to be used.
6. 16.9.3, In the paragraph after example, sentence "This is because in action blocks are evaluated .." seems to be missing something.
7. 16.9.4, the deleted part for $rising_gclk() is wrong. Also, I do not understand the meaning of 'from the postponed region of' in the sentence.
8. 16.15.6.1, the deleted part at the beginning is not completely redundant as it tries to remove any confusion. It should be mentioned that concurrent values of the expressions are used for procedural assertions also. Now, explanation of const expression can follow that statement.
Anupam:
This proposal has become very confusing. There is a concept of a 'sampled value' and then a concept of a 'concurrent value' and then $sampled() which would return a concurrent value instead of a sampled value. I do not see any reason why 'sampled value' should be replaced with 'concurrent value' in the LRM.
Tom:
Why not simplify this proposal? Instead of defining the new concept of "concurrent context", and doing a global substitute of "sampled value", why not just state the concept as follows:
1. The sampled value of a variable is the value that was sampled in
the preponed region. (No change from current LRM)
2. Variables used in concurrent assertions are evaluated as follows:
1. Static variables use the sampled value
2. Automatic variables use the current value
3. Sequence methods such as triggered() use the current value
4. Checker inputs use the sampled value.
4. Free checker variables use the current value.
This definition would give all the functionality you want, but the LRM would not be making absurd statements like, "The sampled value of a free
checker variable is the current value"
Then, we can do one of the following:
Either change the definition of the $sampled function so that it returns the value of its expression argument evaluated according to the rules in sec 16.x.y
OR
Keep the definition of $sampled the same and introduce a new function which does evaluate according to the above rules.
The resulting proposal would be much simpler, there would be less change
to the LRM, and I think much more understandable.
Scott:
I thought the idea was to fix the definition of $sampled by adjusting it where it is wrong and defining it for all variable types. I am not wild about that idea, but I can see how it is not an awful solution. If this is the idea why do we need to define concurrent?
I find the current proposal where concurrent and sampled are defined then $sampled returns the concurrent value confusing.
---------------------------------------------------------------------
Intel Israel (74) Limited
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
-- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Tue May 3 02:36:46 2011
This archive was generated by hypermail 2.1.8 : Tue May 03 2011 - 02:37:05 PDT