SV-EC Meeting Minutes 13 October 2003 11:00 am. Monday (rrrr) Voting Members (3/4 or > 75%) (aaaaaaaa) Arturo Salz (Synopsys) (-aaaaaaa) Brad Pierce (Synopsys) (--aaaa-a) Cliff Cummings (IEEE 1364) (aaaaa-aa) Dave Rich (Synopsys) (aaaaaaaa) David Smith (Synopsys) (-aaa-aaa) Dennis Brophy (ModelTech) (aaaaapaa) Jay Lawrence (Cadence) (--a-aaa-) Jeff Freedman (ModelTech) (aaa-aaaa) Michael Burns (Motorola) (-aaaaaaa) Mehdi Mohtashemi (Synopsys) (aa-aaaaa) Neil Korpusik (Sun) (--aaaaaa) Ray Ryan (ModelTech) ||||||||_ 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----) Stefen Boyd (IEEE 1364) (-a---a--) Stu Sutherland (IEEE 1364) 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-25 (Arturo): Update discussion on parameter port list in Section 11.3. AI-26 (Arturo): EXT-14: Rework Section 12.10.4/12.10.5 in EXT-14 using methods. 12.4.11: Define semantics of what expressions act as guards and mixing of expressions. 12.10 Change terminology of scope randomize method. AI-27 (David): Add suggestion to have specific guard syntax to futures. AI-28 (Arturo): EXT-15: Clarify the nesting order of the loop variables. In the first foreach example change arr to words. .... Minutes 10/13/03 taken by Mehdi Mohtashemi 1. Review of meeting minutes from 29 September 2003 meeting Motion: Accept the minutes from 29 September 2003 meeting Moved: Neil Korpusik Second: Arturo Salz Abstain: None Against: None Passed 2. Review of action items AI-5 (Arturo): Cliff: 3 hours discussion. Coming to consensus on what needs to be done. Working on action items. Next meeting we should have some conclusions sent out. AI-17 (David): David: list on extension page, added another table below for list of future extensions. Closed AI-22 (Arturo): David: Update 14 sent out to reflector. Closed AI-23 (David): Face-to-face action items distributed. Closed AI-18 (Unassigned): AI-24 (David): AI-21 (David): Coordination with SV-BC. SV-BC has accepted EXT-6. Closed 3. Review of Inter-committee dependencies Status of moving EXT-6 to SV-BC David: They accepted it so this is closed. 4. Review of Errata list ERR-5 (Arturo): Neil: Would like clarification on the overriding of a class means that the methods come from the new definition. It does not explicitely say this. Arturo: Yes, it is a different class. Jay: I do not like the wording on this... like to not mix the namespace and scope here. To reduce confusion between the two. 7 namespaces in V2K... Arturo: What is the suggestion. Jay: To reword the statement, review 7.10.1, capability to use, not tTe scope capability. name-space question. Arturo: Built-in name space is both scope as well as namespace, top of the heirarchy. Michael: To clarify that namespace is scope. Are there namespaces that are not scope, and vice-versa? Arturo: Looking at 18.9, describes 5 namespaces. Namespaces in the package. Ray: This was supposed to be resolved once package is completed. David: If we use built-in package on the assumption that the other resolution clears it. If this is the case would it make the problem resolved. Jay: There are words in here that makes it hard to understand what it means. Namespace 5 things in SV, 7 things in V2k. Arturo: Would it be easier to use scope in 7.10.1, did not want to call it $root. David: It sounds like the basic confusion between namespace and scopes is a V2k issue. Jay could you raise this issue. Jay: I have discussed it in ETF, but not gotten a verbal agreement. We are adding a new built-in namespace. If namespace - 18.9, if package then wherever it goes. Arturo: This 7.10.1 should be part of packages. David: Will delay, clean it up once the 'package' issue is resolved. Jay - Would like to reword the first paragraph in 7.10.1. Mike - Not clear what the difference between scope and namespace is. ERR-7 (Brad): Brad: BNF change to A.1.4.3, class extension to be able to give parameter values [original one left it out]. Also removed the time unit. Michael: Extend parametrized class, can you leave some parameters of base class not assigned, defaulted ? Jay: Can you pass parameter in this list down to underlying class. Arturo: Yes, we should mention it in the LRM. Partial template like c++, that maybe useful but not intended for this proposal. Motion: Accept ERR-7 Moved: Brad Second: Mike Abstain: None Against: None Passed ERR-14 (Brad): Initializers, BNF Brad: uses variable declaration and list of variable declaration assignments, also change to variable declaration [removes life-time on it, moves it to data declaration.]... Motion: Accept ERR-14 Moved: Brad Second: Arturo Abstain: None Against: None Passed ERR-18 (Arturo): Parameter consistent with V2K Motion: Accept ERR-18 Moved: Neil Second: Arturo Abstain: None Against: None Passed ERR-22 (Arturo): Completing list in 13.4 Motion: Accept ERR-22 Moved: Neil Second: Mike Abstain: None Against: None Passed ERR-4 (Dave) ERR-8 (Dave): ERR-16 (Mehdi): ERR-19 (Brad): ERR-20 (Arturo): ERR-21 (Arturo): 5. Review of 3.1a Extensions and discussion: Vote on acceptance of: EXT-10 and EXT-12 EXT-10: (functional coverage) Jay: This is well formed but it is beyond the bounds of 3.1a. David: Noted. Motion: Accept EXT-10 Moved: Arturo Second: Neil Abstain: None Against: None Passed EXT-12: (Pack/unpack functions for Class) Neil: Similar to EXT-6. Dave: Difference is one Motion: Accept EXT-7 Moved: Dave Second: Neil Abstain: None Against: None Passed Review and approval: EXT-14: (Constraint completion) (30 minutes) 12:07 completion Arturo reviewed addtions from last meetings action items. Neil: When operate on an object, use a method. Here object id is passed to system function, not in sync with dealing with object. It should be getrandstate/setrandstate as a method. Arturo: If no arguemnet, then it works on current process. So a method without a $, pre-defined method in every class. Neil: It is more consistent with others. Arturo: I think Neil is not proposing to remove the systemtask. Michael: We could make them methods on the process classes. David: Issues, these methods part of process or object. Arturo: Need to refer to fine-grain process control in this area. Michael: What about top-level process object? Arturo: Many top level processes, initial and always block... the methods in class are virtual, need to reduce confusion for users. David: This is not clarification, change to... Arturo: This syntax is already used in section 12, randomization, have to probably move them around in the LRM. David: Maybe two different places. Process control, and in classes and randomization section. Arturo: Also srandom, 12.3. Motion: Change to use methods instead of system tasks in 12.10.4/12.10.5 and change location in LRM where described. Moved: Neil Second: Ray Abstain: None Against: None Passed Continue review (Object guards, iterative constraints, inline random variable control) Arturo: changed the two restrictions 12.10.4, also priority in cyclical. David: Last change was in 12.4, removing dist. was completed Ray: The object handle guard, normally be handled, extension 14, one iterative loop, use the form if-then-else as the guard. Arturo: Changing semantics maybe confusing. Ray: If a condition added a handle to it, the semantics is changed the whole condition becomes a guard, evaluated before the constraint is. Arturo: Only the handle guard expression is evaluated before, Ray: If the compiler needs to decide. If there are any handles used in constraints, create a guard. Arturo: This is where the discussion is,... Ray: If implicit behaviour is being reviewed. Arturo: What you are suggesting is ok, but user feedback, need to define the semantics, specially mixing of expressions and handles, we can use the whole expression as 'guard'.. Ray: It means that the randomization will get ordering, so if the condition on constraint, condition includes a random variable, there is some reason that condition requires guard, define what happens Arturo: We have not defined what you get in error conditions. David: In 12.7, also iterative constraints in class calls. Arturo: Iterative constraints introduces.. and nested constraints, that essentially delays when it becomes a state-variable for example. Ray: With iterative constraints, condition on an iterative constraint, treated as a guard, again back to implicit ordering. Arturo: Do not think that is the case. Arturo: The size of array acts as a iterative constraint. Ray: Condition does not relate to the size. Arturo: If size of array is state-variable,.. Ray: Outside of foreach loop the size is not state variable. Arturo: Correct. Before it is elaborated, before it is done, the size of array is fixed. Ray: In one of the examples I had sent out, constraint inside of foreach, the predicate is a guard,... how it is described in the definition of foreach: when is it a guard, evaluated first, and when it is evaluated outside of foreach. Arturo: If they are active guard, evaluated before.. yes something is missing form the LRM paragraph. Index variable becoming a state variable. Ray: We can clarify it, we could have also clearly indicate the guard statement, if always treated as a guard, implication is not treated as a guard. Arturo: The semantics would then confuse users. This is minimal constraints, allow users to when to ignore errors. We could provide something else for treating it as a guard. will probabley confuse the users. Neil: Maybe we can get a new writeup. David: One paragraph, though Neil: I like the idea Ray has, it sounds staright forward. why would that be confusing. Arturo: The guard does not change the semantics. Object is null and there was a condition to what to do if the object is null. Ray: If the expression evaluates to false the condition is not evaluate. whether an error, .. Arturo: What you say, then the condition is evaluated with what value for the random variable. Ray: It is like function call, construct of ordering is introduced by function call. Arturo: Would caution not to use the same semantics for that usage, maybe iff could be used. Jay: Confused on ordering implications. This may add another layer. Not sure it would help. (The following discussion happened after the motion to vote but before the vote was complete). David: This maybe larger than single small addition/modification. It maybe hard to justify it in 3.1a, if it is thought/justified to do it. Cliff: I will change my vote to No. Mehdi: Will abstain on this, Brad: No, but we can not make it for December. Motion: Introduce specific construct for guarded constraints. Moved: Ray Second: Neil Abstain: Mehdi, Jay, Dave Against: Cliff, Arturo, Brad, Mike For: Ray, Neil Vote against David: We will add it to the Future list for discussion. No more discussion on this section? Section 12.10 Ray: Can an argument randomize be handle, which is the object? Arturo: Currently it can be done with constraint mode off/on, if everything in class was rand. Ray: Inside the class, only the rand attributed variables are randomized. Jay: Is there another method, scope method, in 12.10 scope randomize method behaves same as class randomized method. Arturo: It uses the current scope to determine what variables are. Do not allow to overwrite this Jay: We do not have way to describe this (it is varargs) ... Arturo: The user would not be able to write this.. Jay: Around the constraint items, have we created a need for a constraint 'package'? David: A new version of Extension 14 will be sent to the reflector with each of the action items identified during the meeting addressed. Based on this new version we will then hold an email vote on approval (before the next meeting). EXT-15: (Handle general foreach construct) (10 minutes) 12:17 completion Ray: Some more items, corrections, err-2, also explicit what the ordering is when multiple varibles in the list. David: Any other issues? Michael: The first example may need to be corrected. Arturo: Will fix and resend it. David: A new version of Extension 15 will be sent to the reflector with each of the action items identified during the meeting addressed. Based on this new version we will then hold an email vote on approval (before the next meeting). 6. Meeting Logistics David: Looking at logistics we need to hold an additional meeting. During this meeting we will address EXT-11 (Dynamic queue) and EXT-9 (Stream Generation). This meeting will be on October 20 (12:00 to 2:00pm Pacific). October 13 EXT-14: complete Constraint Completion EXT-15: Foreach (1 page) October 20 (12:00 to 2:00) EXT-11: Dynamic queue (6 pages) EXT-9: Stream Generation (7 pages) October 27 EXT-10: Functional Coverage (18 pages) November 10 EXT-3: Virtual Interfaces/ports (5 pages) November 24 EXT-7: Reacting to Assertions (3 pages) EXT-12: Bitsream support (6 pages) 7. Next meeting: 20 October 2003 from 12:00pm to 2:00pm Pacific time. 8. Close of meeting at 12:58pm