Subject: [sv-ec] Minutes of 3 November 2003 meeting
From: David W. Smith (David.Smith@synopsys.com)
Date: Mon Nov 03 2003 - 17:54:07 PST
Here are the minutes from today's meeting. They have also been posted on the web site.
Regards
David
SV-EC Meeting Minutes
3 November 2003 11:00 am. Monday
(rrrrrrrrrrx)
Voting Members (3/4 or > 75%)
(aaaaaaaaaaa) Arturo Salz (Synopsys)
(-aaaaaaaaaa) Brad Pierce (Synopsys)
(--aaaa-aaa-) Cliff Cummings (IEEE 1364)
(aaaaa-aaaa-) Dave Rich (Synopsys)
(aaaaaaaaaaa) David Smith (Synopsys)
(-aaa-aaa-a-) Dennis Brophy (ModelTech)
(aaaaapaaaaa) Jay Lawrence (Cadence)
(aaa-aaaaaaa) Michael Burns (Motorola)
(-aaaaaaaaaa) Mehdi Mohtashemi (Synopsys)
(aa-aaaaaaaa) Neil Korpusik (Sun)
(--aaaaaaaaa) Ray Ryan (ModelTech)
|||||||||||_ 3 November
||||||||||__ 27 Octobter
|||||||||___ 20 Octobter
||||||||____ 13 October
|||||||_____ 29 September
||||||______ 15 September
|||||_______ 2 September
||||________ 18 Aug
|||_________ 4 Aug
||__________ 21 July
|___________ 7 July
Non-Voting Members (attendance based)
(------a----) Chris Spear (Synopsys)
(-----s-----) Francoise Martinolle (Cadence)
(--a-aaa-a--) Jeff Freedman (ModelTech)
(---a-------) Stefen Boyd (IEEE 1364)
(-a---a-----) Stu Sutherland (IEEE 1364)
(----------a) Tom Fitzpatrick (Synopsys)
Guests (non-voting)
(--a-a-a----) Don Mills (LCDM Engineering)
(-----a-----) James Young (HP)
(-a---------) Kevin Cameron (National)
r => Regular meeting
x => Extra meeting (Presence counts for attendance, absence does not)
a => Attended
p => Attended by proxy
s => Attended as proxy
- => Missed
Action Items:
[identified with AI (#) in this text, # refers to AI number]
Added this week (please see the site for existing action items):
AI-34 (Arturo): Changes to EXT-10.
In section 20.1: Change to "Often the validation must be ..."
In Syntax 20-1 (Section 20.2). Change the last line to something like
type_name variable_identifier = new (...).
In Section 20.3 remove first example using xyz and reword description
to refer to single example.
In Section 20.3 reword paragraph starting "When a covergroup is
defined within a class" that when no explicit instantiation
is present then an implicit instantation is created. There can
only be one instantiation of a covergroup within a class.
In Section 20.4 Syntax 20-3 restructure bins_or_options and
range_list so braces show in bins_or_options (as do parens).
In Section 20.4 clarify that discussion on clocking does introduce
new semantics.
In Section 20.4.1 add reference to Annex G.
In Section 20.4.4 for there is a closing brace instead of paren.
In Section 20.4.4 reword last paragraph to remove cross products and
select expressions.
AI-35 (????): Add covergroup to packages and local root when seperate
compilation proposal is approved.
AI-36 (Arturo): Look at the requirement for getting access to the bins
within the language for controlling stimulus generation,etc... .
AI-37 (Jay): Write up objection on use of -> in 20.4.1.
AI-38 (????): Look into the definition of standard defined attributes.
Minutes 11/3/03 taken by Mehdi Mohtashemi
1. Review of meeting minutes from 27 October 2003 meeting
Motion: Accept the minutes from 27 October 2003 meeting
Moved: Brad
Second: Michael
Abstain: None
Against: None
Passed
2. Review of Vote Results
ERR-09 (BNF for port_type) Passed but had correction during vote
David: Does anyone want to change their vote that was registered
during the email vote?
Jay: Everyone that voted is present?
David: Dave and Dennis are not here but, even if they chose to vote
againt it the outcome would be that it would pass.
No changes to vote.
ERR-09 has passed (with the correction that was posted during last
weeks vote).
ERR-31 (remove endfunction) - Everyone voted against so it is killed.
ERR-32 (virtual method clarification) - Neil voted against with the comment
that the new text was more confusing
David: Any one wish to change their vote?
Neil: Did not follow what it was trying to say in virtual method.
Arutro: Change you want to make?
Neil: What does it mean when 'virtual method overrides the method'?
Arturo: It goes with the next part, only one method.
Neil: Your conclusion, one implementation, is fine, but the words
do not say the same thing. If that is removed then it is fine.
Arturo: Question is to agree on what to change and make it work.,
this is Thomas' wording.
Neil: What is the difference when compared with normal-non-virtual
method.
Ray: This is not declaration of virtual method. Virtual method provided
with a body, overrides.
Neil: But this does not say that .
David: Someone needs to propose a change to it, if no one changes their
votes, it still passes.
Brad: But Neil has problem with this.
Neil: What is the other one, 'normal method overrides its class and
its decendants"..the way it is worded does not explain.
Jay: Can I suggest that Arturo and Neil work on it later.
David: Does anyone want to change their votes,
If not, even with people not here, it passes with 6 to 9.
No changes to vote
ERR-32 has passed.
EXT-11 (Queues) - Jay voted against with comments on lots of queues,
use dynamic data structures to do this, should use a package, methods
should only be on classes.
David: This was a company vote and all of the companies are represented.
Does anyone wish to change their votes?
No changes to vote
EXT-11 has passed.
Change question? No changes
Question: Any one wish to change their vote?
3. Review of 3.1a Extensions and discussion:
EXT-10:
Discuss rewrite of Section 20.1.
Additional information added.
Neil: Removed a couple of sentences. One of which Arturo wanted to
leave in. Believe it should be removed. Small changes mostly tweaks.
Arturo: I agree with most of Neil's changes, they made it better.
David: Any comments on these changes? The only remaining items was
the sentence that Neil and Arturo disagreed on.
Neil: "The validation must be comprehensive without redundant effort".
Do not believe this is a requirement.
Arturo: Added back in to connect with following sentence.
Ray: The "must be" sounds like a requirement. Maybe we can modify the
"must be".
Neil: Change to often would be better.
David: Then change to "Often the validation must be ..."
David: Let's continue review starting at 20.2
20.2
David: Jay sent out a couple of comments. First one is in the BNF in
syntax 20-1 (Section 20.2). The last line should be something like
type_name variable_identifier = new (...)
Arturo: Agreed.
Michael: Is there a reason covergroups cannot be declared in the top
level?
Jay: Do you mean in $root?
Michael: Yes. You have the capability to pass in formal parameters.
You do not need a context. In $root or whatever the top is you
should be able to declare.
Arturo: You could, depending on what you are going to be covering. This
is similar to sequence at the root level has to be generic.
This could also be done here with the appropriate semantic
restriction.
Michael: You do not have to have any special rules, normal rules about
identifiers should work.
Arturo: There is no problem putting at $root level, semantically make
sure it does not refer to anything else.
David: Since that other proposal is in the process of becoming, we can
reconcile it with the other proposal ones it is approved.
Ray: Or you can say put it in package proposal.
David: Once it is available we can put it in . I will create an
action item to add it as the other proposal becomes available.
Jay: It talks about this being a type declaration and these act more
like a class then a type.
Arturo: Correct. This is more like a class; it is instantiated and
takes arguments.
Jay: This gets back to discussion about static instances of classes,
if you are not doing OO, just a cover group, and only
static instance of this, rather than going through instantiation.
Arturo: I would be happy to get a proposal that does that for items
that are not passed arguments at run-time.
Jay: If you are using covergroups that are dynamic yes. But if this
is created as a static instance.
Arturo: I did not want to create two mechanisms that do the same thing.
The way it is written the 'constructor' is evaluated at the time
it is created.
Jay: The arguments could still be passed.
Arturo: This is somewhat more complicated.
Michael: What is difficult about this?
Arturo: This would result in instantiation at both elaboration time
and at dynamic. You would need a way to specify both.
Michael: This could be taken care of by the context.
Jay: We had this same discussion on classes and static classes.
I may work with you on this. If we solved the issues for classes
in the same way then we could handle this the same.
Arturo: I am not opposed to that but it can create other problems.
Ray: Can you have an expression as a ref argument?
Arturo: No.
20.3
Neil: Why is xyz shown twice? It does not seem to add anything.
Arturo: This was meant to show both.
Neil: Not a big thing.
Ray: it looks a bit extra.
Jay: I did take a double-take.
Arturo: Maybe we should take it out and leave only on xyz definition.
Michael: When you mentioned instantiating the cover group in the class
(paragraph starting with "When a covergroup is defined",
it seemed like an extra rule. It seems that doing an instance of
the covergroup would be only one extra line.
Arturo: This would then allow the ability to create arrays. We wanted
to disallow this so that the name of the instance and covergroup
are the same. Otherwise there are a bunch of issues without
having any benefit.
Ray: This can lead to confusion of types and instances by users.
Arturo: I agree with that but it is embedded inside.
Michael: I would prefer to add another rule to have only one
covergroup in order to make it easier.
Arturo: Then you force the user to think of two names (both definition
and the instance). The problem is that the class itself is
instantiable object.
Jay: I did not understand the problem well enough to form the question.
Arturo: We did not know how to deal with other problems.
The class itself can be instantiated several times, class is
dynamic, then this becomes dynamic. Where does the memory for
cover-group live?
Arturo: I am trying to avoid having a handle to within the class.
There are a number of semantic issues.
Jay: You are creating one static version.
Arturo: There is one instance only this is not static.
Jay: This is due to the instantiation of the covergroup being dyanamic.
Arturo: The class is dynamic therefore the covergroup is dynamic.
Michael: This is not classlike since the footprint is not a handle
when used within a class. This is difference if outside of a class.
Arturo: Correct.
Michael: This is since classes are dynamically instantiable?
Arturo: Correct.
Ray: Why is it not useful to have multiple instances of a covergroup
within a class? How is this different outside of the class?
Arturo: It introduces lots of problems when you have multiple instances?
Can I create A and B covergroups and then switch them around?
Jay: What you are really trying to avoid is handles to the class.
Arturo: Correct. There would be a lot of semantic restrictions which
are plugged up by doing this (as part of the class instead of
as an instance).
Ray: Are there any other restrictions?
Arturo: It is the only limitation. You cannot get a handle to it,
assuming that you have a type and a variable declaration of that
type, could we allow the same on the type and variable? This
would be ambifuous.
Arturo: What happens if you have multiple variables of the type?
Ray: Declaring a variable of type covergroup, you do not have to
call new, implicitly calls the new.
Arturo: Except when it takes arguement, that is new.
Unless we want to create two mechanisms, like what Jay was
suggesting.
Jay: This is the same as datatypes in all other languages.
Arturo: This is more than a datatype.
Michael: I still do not see why you can not declare cover-group and
initialize it. It would be ok to instantiate it.
Aruto: You would like to have a variable name of covergroup not just
type. I do not have any objection to what you are suggesting, but
the users would like this capability.
Ray: If we have the shorthand then I would like it to be explictely
allowed and then describe the shorthand as an implicit declaration.
Arturo: I guess that would be ok.
Motion: Reword paragraph starting "When a covergroup is defined within
a class" that when no explicit instantiation is present then
an implicit instantation is created. There can only be one
instantiation of a covergroup within a class.
Moved: Michael
Second: Ray
Abstain: None
Against: None
Passed
Neil: I assumed that I can have a handle to covergroup within a class.
Arturo: No.
Neil: The problem of assignment still exists.
Arturo: There is no assignment supported. We do not have implementation
of multiple covergroup inside the class. You can set option on it,
What does it mean to have a handle to a covergoup?
Ray: It is the instance name of a covergroup.
Arturo: The global covergroup is a short hand to not having to create
a class around the covergroup. No operations are defined.
Michael: Once I instantiate a covergroup there is no way to create
and reassign?
Arturo: No. In an automatic it would be destroyed. The data
collected is retained.
Michael: The data collected by the covergroup is related to the
definition and not the instance.
Ray: Is there a case where covergroups are created late in simulation?
Arturo: Yes. Transactions are like that.
Ray: The coverage starts when the instance is created and stops
accumulating when it disappears.
Neil: Pg. 4 next to last paragraph. It must be in the new method of
the class and no other class.
Arturo: Correct. When in a class it is dynamic instantiation and outside
the class it is created at elaboration time.
Neil: But you have to use the new method. How is this?
Arturo: The enclosing scope is created at elaboration time.
20.4
Neil: Seems strange to use braces and parenthesis for distinguishing
the difference between range and transitions.
Arturo: You cannot use the same syntax since it is ambiguous. The
choice was this or to create a new keyword with bins.
Neil: For the transition you have to use >. Cannot this be used?
Arturo: This is too late in the grammer. You need to decide earlier
to make the choice. Vera used another keyword but we decided
to minimize keywords.
Neil: This could be confusing.
Ray: In the BNF you, you could range_list without parens.
Arturo: I need to create a new range_list.
David: Jay, you had an item here on transition, clock domain?
Jay: Why is the discussion on clocking domain here?
Arturo: Nothing new just clarification. I added this since there
were questions about how to do this kind of sampling.
Let's add comment that there is nothing new here.
Neil: What are the bins used for? One seems to be to accumulate values,
another is in cross product. Is there a way to query the bins?
Arturo: In Table 20-5 on page 18 (20-7). You can call on covergroup,
etc..
Neil: But not on bins. Why do we need bins? Why do I need the
individual bins (using the array notation).
Arturo: In a bus with 20 values you may want to know that something
is covered or individual. This is available from the report.
Michael: So you cannot use the bins to tune stimulus generation?
Arturo: You can use the effect using the coverpoint/covergroup per
instance, cross, group, etc... but not the bins. There is an
option for automatic bins (the most common case) which becomes
ambiguous if you wish to access the bin.
Neil: Why not in the report?
Arturo: The bin uses the bins not the variables.
Neil: You are saying only with post-process tools,
Arturo: Usually users are interested on the effect of the bins,
you can do it per instance, cover-group, option of using automatic
bin names, report talks about bins, some bin names uses [], ranges,
etc,
Neil: a bit of surprise.
Arturo: I could investigate adding access to the bins but the query of
specific bin at run time is not implemented.
Jay: I agree with Arturo, we have not seen a need for this.
Arturo: We have not had this as a requirement.
20.4.1
Jay: Use of ## instead of ->? -> could be confused with implication.
Arturo: If we use the complete syntax for sequences then we will
have problems. Reuse of the implication was simpler than
##[1].
Jay: This is a next operator and should be such.
Arturo: We did look at using ## (the concatenation operator on
sequences).
Motion: Change -> to ## in trans_set
Moved: Jay
Second: No second.
Neil: In these transitions does it mean the very next cycle?
Arturo: It is unless you use one of the other operators.
I almost seconded the above motion but need to see the example.
These are subset of assertion.
Jay: If you want to recognize the transition, writing assertion and
this side-by-side looks silly. I will generate a description of
the objection of the use of ->.
Davi: Since we do not have a second on this, no vote is taken,
you need to review and then can come back with another motion.
Ray: What is the last non-consectutive repetition?
Arturo: Straight from the section of the LRM on assertions. The
formal definition explains these better. For example, this
follwed by nothing, or when you see the three and the next three
is not there. We should tell users to read the formal definition.
David: Do we need to put a point to Section G? Looking at Section 17
will send you to Section G.
Jay: The example using {}, (), [] is very confusing. The description
after the example was required. I would prefer new keywords.
I do not have a better suggestion.
Arturo: It uses the same syntax as the constraint language.
Arturo: This is not very different than Vera syntax which has been
accepted by customers.
20.4.2
Ray: Clarification, if do not declare any bin name then no
automatic binning. Is binning a word.
Discussion concluded it was.
20.4.3
Jay: Are the x's supposed to be ??
Arturo: The x's are treated as wildcards.
Neil: Is the wildcard keyword required?
Jay: You have used an attribute to do something similar.
Arturo: If you use an attribute then the meaning of the statement
changes. The way we are using attributes is not changing
the simulation behavior. The only other option was to use
a keyword since ? already means z for a number.
20.4.4
Neil: In bad_trans there is a closing brace instead of paren.
Arturo: Need to correct it.
Jay: Since attributes are being used we could use these for many
other things.
Arturo: The reason is that these do not change the semantics of the
simulation. If we wish to add a keyword we could. These are
standard attributes.
Ray: How does this not change the simulation.
Jay: This is a fine line since it generates a warning and not an
error.
Arturo: You cannot change the attribute at run time. This restricts
how they can be used.
Jay: I will request a whole section on system/standard defined
attributes.
In 1364 we created a new name space that begins with $. For example
(* $illegal *). We can look at the new proposal for standard
namespace to reduce the conflict between user and standard
attributes.
David: The real suggestion is to look at this in more detail.
Jay: We can take a look at it, in more detail. I am in favour of
using attributes here.
Arturo: People were opposed to standard attributes since they could
be ignored. In this case they are ignored for simulation purposes.
Jay: We can bring in the proposal to 1364 here, despite the cadence
licenses, donation etc. If we wanted to explore that concept, I
can bring it.
Arturo: I do not have a problem with that, any procedural issues?
Jay: We need to make sure this language is acceptable to 1364.
David: Let's talk Vassilios next week,
Any action off of this, besides discussion outside. Are you willing
to define the standard attributes Jay?
Jay: No.
David: I will take it as an action item and look for an owner.
I will ask Arturo.
Jay: For instance can we use the attribute illegal any where else in
the language and what does it do?
Ray: In the last paragraph. What cross products and select
expressions are being referred to.
Arturo: Yes, need to revise it.
20.5
Neil: First paragraph. The implicit coverpoint is only created
if it does not already exist?
Arturo: If the coverpoint V is already defined then it will use it.
It will create a new coverpoint for the variable. If a variable
V already exists then you cannot create a coverpoint named V.
Ray: What name occus in the cross?
Arturo: If you have a variable V, with another coverpoint, the it would
create a coverpoint. Label coverpoint p:coverpoint V, then cross
v, with something else, there is no coverpoint V. You can create
many coverpoints for variables and then use them for different
crosses.
Michael: There is a reason to create multiple coverpoints for the
same variable.
Arturo: Yes to look at the same data in different ways.
David: We will start with 20.5 at the Face-to-face meeting.
4. Meeting Logistics
Reminder on Face-to-Face meeting on 11 November from 1:00pm until 5:00pm.
November 3 12:00 to 2:00 (Pacific)
EXT-10: Functional Coverage (18 pages) (completion)
November 11
EXT-10: Start on 20.5 and complete.
EXT-3: Virtual Interfaces/ports (5 pages)
November 17
EXT-7: Reacting to Assertions (3 pages)
EXT-12: Bitsream support (6 pages)
November 24
Complete errata action items.
7. Next meeting:
11 November 2003 from 1:00pm to 5:00pm Pacific time.
8. Close of meeting at 2:00pm
This archive was generated by hypermail 2b28 : Mon Nov 03 2003 - 18:03:26 PST