SV-EC committee meeting. Monday October 25 2010 11:00am - 1:00pm PDT [ http://www.eda.org/sv-ec/Minutes/SV-EC_Meeting_October_25_2010_Minutes.txt ] Meeting number: ------------------------------------------------------------------------- 00000000 87654321 Meeting Days: ------------------------------------------------------------------------ (21213101) Day (51730629) (11000000) Month (00998887) (11111111) Year (00000000) ------ Attendees -------------------------------------------------------- 1. (AAAAAAAA) Arturo Salz 8 - y 2. (AAAAA-AA) Dave Rich 7 - y 3. (A--AAAAA) Francoise Martinolle 6 - y (75% attendance) 4. (AAAAAAAA) Mehdi Mohtashemi 8 - y 5. (AAAAAAAA) Neil Korpusik 8 - y 6. (AAAAAAAA) Ray Ryan 8 - y 7. (A-AAAAAA) Gordon Vreugdenhil 8 - y 8. (AAAAAAAA) Steven Sharp 7 - y 9. (---A--AA) Heath Chambers 3 10. (A----AAA) Don Mills 4 11. (AAAAAAAA) Mark Hartoog 8 - y 12. (AAAAAA-A) Tom Alsop 7 - y 13. (AAAAAAAA) Jonathan Bromley 8 - y 14. (-AAAA--A) Neil S 5 - y Marvell 15. (-A-AAAAA) Cliff Cummings 6 - y 16. (AAA-A--A) Alex Gran 4 - y 17. (A-AAAAAA) Daniel Schostak 6 - y 18. (---AAAAA) Swapnajit Chakraborti 5 19. (-AAAA---) Linc Jepson 4 - y 74ze 20. (A-------) Tony Tsai 1 Cisco 21. (A-------) Brandon Tipp 1 Intel 16 people will have voting rights in the next meeting ** Minutes taken by Neil Korpusik and Mehdi Mohtashemi ////////////////// October 25 2010 ///////////////////////// Agenda: 1. Review IEEE patent policy ------------------------------------------------------ http://standards.ieee.org/board/pat/pat-slideset.ppt Chair read the IEEE patent policy page and brought everyone's attention to the patent policy. 2. Approval of previous meeting minutes: ------------------------------------------------------ http://www.eda.org/sv-ec/Minutes/SV-EC_Meeting_October_11_2010_Minutes.txt Move: Jonathan to approve Second: Tom Abstain: Opposed: Passed/approved unanimously 3. Updates from P1800 meeting on 10/14/2010 --------------------------------------------------------------------------- Participation and voting guidelines, other updates. [if any available] Tech sub-committee reports The following was reported from p1800WG meeting on 10/14/2010: 1) There is still no FAQ on voting rights/participation (currently due in December) 2) Mantis 2506: SV-EC can work on this. (Mantis 2953 to be marked as a child and closed) 3) For Mantis proposals: the following is required, - Proposals shall be in PDF format - Proposals shall have title, title shall mention the mantis number. 4) A chmapion email vote is currently in progress, ending on 10/30/2010 5) subcommittee works: a) SVAC now allowed to work on 3 additional items. b) SVdc now allowed to work on their "must" and "should" items. 4. Continue Review and discussion of top 25 issues and categories: ------------------------------------------------------ Review of the top 25 [+10] started last meeting, 1 through 12th were discussed. Will continue with the list below. [Please take a look at Action Items per last meeting, appended at the end of this email] 1356 Multiple inheritance Mehdi - Tom had sent this initial proposal to the alias. Tom - Barely got it out last week, I can walk through different aspects. Francoise - not yet had chance to review Steven - has not yet reviewed it Jonathan - agree to its motivation Arturo - I have reviewed it, seems reasonable, perhpas verbage can be enhanced in the proposal. Dave - Pretty much in agreement with it. Too much done by example and not enough normative text. Gord - virtual function overrides is not consistent with current LRM - could impact other parts of the LRM. Tom - The need for multiple inheritance, need to create prototype classes, and pulled in from multiple interface classe, even within OVM & UVM base class library implementation could be better coded. Brandon - The UVM TLM area could have benefited - There are other areas as well that could have benefited. An interface across multiple bfm, can't really use polymorphism in this situation. Jonathan - one thing i am confused, what about multiple imps for UVM constructs how it would help there. Tom - we do talk about partial implementation. Arturo - what Jonathan is proposing is different methods that are using different prototypes but with different interface classes. Gord - parameterized class with a nested class generate inside a class. do an appropriate extension of an interface that you wanted. Arturo - a factory pattern could help with some of this. Francoise - example that you have PutImp & GetImp, can not see anything that we can not do today with what we have, we can define. Dave - you should use May instead of Can Gord - allows both to be allowed in a single object. similar to having multiple base types. - can't instantiate an interface class. Arturo, Steven - we will need more normative text, in place of just examples Gord - using just T in the example is not as complex as it can get. Passing in two different types would be more interesting. Could use one type in one interface and the other in another. Arturo - should add text on this point. Section: 8.25.2 --------------- types can be accessed inside interface classes. Tom - planning to prune down the examples in this section. Mark - Is it legal for a class with a type parameter T, to say implement T? Arturo - isn't clear why this would not be disallowed. Gord - Is 'implements' a first class type? If so, it could be used elsewhere. Mark - Might be better to make it illegal. Arturo - Not sure why it would be illegal. Brandon - It could be used, it seems to be an odd methodology though. Dave - Extending a virtual class Gord - You can get methods you don't know about. With 'implements' you have to provide all of the implementation. - If the expectation is that interface classes are not quite first class types, it needs to be made clear in LRM. - Passing an interface class as a type parameter would be interesting and we can't disallow it. Arturo - Are you thinking an interface class isn't first class? Mark - Are they allowed to be type parameters? Gord - That is at the root of the question - If they are almost first class types, we should restrict this: It shall be illegal to have a type parameter that is an interface class. - If they are first class - should be allowed as a type parameter. If it is illegal - that means they aren't quite first class. Mark - Can't say 'implements logic' for example. It has to be an interface class. - Can a type operator be allowed there? Arturo - Simplifies the implementation if some things are allowed. Brandon - Disallowing class implements as a type paramter simplifies implementations? Gord - We don't need to resolve it today, but need to come back with questions along these lines. Francoise - Can you have nested interface classes? Arturo - The proposal seems to disallow them. Tom - Java allows it, but we wanted to disallow it. Arturo - It would add a lot of complexity. Brandon - A nested class inside the interface. Gord - in Java it creates a difference in the observed interface. Gord - Some scenarios where not all of the implementation needs to be in one place. Francoise - Did we decide interface clases are not first class types? Arturo - It isn't a well-defined term. Gord - We need to be able to pass around as type parameters - implements T (where T is a type parameter) - not sure Dave - we need to come back with feedback on impact to implementations Tom - An interface class can be a type that is passed around. Brandon - When say implements must have an interface class there. Francoise - Can't say implements "type parameter" Arturo - May also want to limit typedefs Gord - If implements is a contract model, at the point of contract need to know what contract you are agreeing to. Steven - typedef adds extra complications section 8.25.3 (casting) ----------------------- Jonathan - there are other scenarios that need to be defined. Gord - need to check for assignment compatability. - This shouldn't be an issue. - May be forced to resort to a runtime check Jonathan - Could possibly add an example fifo implements Should be able to cast a putref to getref when a class implements both. Arturo - casting a NULL $cast(xxx, NULL); // assignment compatible. Dave - file a mantis item for this. Gord - customers wanted NULL to be an error. In non-trivial tests, allowing null can cause problems. section 8.25.4 Name Scoping Conflicts and Resolution ------------------ Tom - The diamond problem with multiple inheritance: Different prototypes which cause a conflict. Dave - Can refer to the LRM section on virtual overrides. 8.19 Steven - Must always match Gord - Can have inheritance path along one path and an implements along another. (a diamond example) - As long as one and exactly one that matches, it is ok. - See 8.25.5 on partial implementations section 8.25.5 Partial Implementation ------------------------ Steven - Need to eventually provide an implmentation for all methods. For virtual class doesn't need to have all implementations. Any non virtual extended classes need to have all. Mehdi - function bit foo(); // in base class could it be extended to a virtual class? Gord - ok. Steven - implementation from base class needs to be virtual to match. section 8.25.6 defaults -------------------- Gord - This section will require some discussion. Not sure would want to see defautls from interface class(?) Steven - if implementation provides a different default, sould take the one from the implementation. Brandon - We were trying to be consistent with default arguments. Dave - Would rather delete this section, unless it is different from what is allowed today. Gord - If two different defaults in the diamond case a problem. - Need to be very careful in this area. Will require quite a bit of discussion. Steven - Suggests they should match. Mehdi - Assumes we will need to make a decision on this . Steven - There is an open mantis item on this issue already. Steven - could allow defaults to be added (satisfies the contract) Jonathan - If have a default in an interface class, calling through a handle to decide what the default should be. - Doesn't want to have to appeal to the implementation for this. Gord - Has a default, but don't know what the value is. Jonathan - yes Steven - It is filled in by the implementation. Mehdi - Expecting more discussion on this later. Tom - Didn't hear an agreement on this today. Mehdi - There are still some questions around this. Steven - If this overlaps with the other mantis item, we should be able to cover it here. Gord - There are other manti that may also fall into this category. section 8.25.7 Constraint Blocks ------------------- Neil - It appears a covergroup is allowed, but not used. Arturo - It would be useless. - Proposes to disallow it. Gord - Can't think of a good reason to place a covergroup in an interface class. - A weird case could exist, but not worth allowing it. Mehdi - We should explicity say it isn't allowed. Tom - Will add BNF after the spec gets ironed out AI - Tom - update the proposal, make corrections and more normative text. AI - All - provide more detailed feedback to Tom. 3003 Constraint Composition Jonathan - sent out an email about using methods with constraints. 10/24 - how to compose a constraint using methods. 2505 Neil S. : class select 2993: Arturo : Coverage 3082 Daniels' top items 2735 ballot comment #48, chaining.. 3046 gordon : 7. Next meetings October and November 2010 ----------------------------------------------------- Monday November 8 2010 Monday November 22 2010 (Cadence shut down?) Monday December 6 2010 Monday December 20 2010 (Synopsys shut down) Monday January 3 2011 [most likely we will skip this] Monday January 17 2011 FOR References: --------------------------------------------------------------------- ============ from October 25 2010 meeting =================== AI: 1356 Tom - update the proposal, make corrections and more normative text. All - provide more detailed feedback to Tom. ============ from October 11 2010 meeting =================== AI: related to 2505 All - should we allow enum constants to be accessed by the dot? AI: 2953 Mehdi - make 2953 a child of 2506 Mehdi - make a request in this week's P1800 meeting to work on 2506 AI: 2080, 1672, 802 Neil - update the mantis items (3 of them) AI: 251 Mehdi, leave mantis 251 open AI: 2794 Mehdi, reopen mantis item for feedback Jonathan: update AI: 2949 Jonathan: send email to Brad to get clarification on his feedback. ============ from September 27 2010 meeting =================== AI: 3003 Tom - will get feedback on specific examples. (see 18.7 for information on the with-clause) AI: 3003 Jonathan - will get an email discussion going. ============ from September 13 2010 meeting =================== AI: Coverage item Swapnajit - will provide a note for clarification, to be added to Mantis 1802 AI: Coverage item Swapnajit - will put together a proposal for this issue. [related to 19.5.3 wildcard specification] AI: 2848 Francoise - Will do a write-up for this proposal. AI: 2845 Francoise - will try to write-up for this. ============ from August 30 2010 meeting =================== AI:2956 Mehdi making a note to the editor for adding cross reference. AI: 2794 Jonathan will make the friendly amendment. AI:3028 Jonathan create a proposal and upload it for more discussion and vote next meeting. ============ from August 16 2010 meeting =================== AI: 3028 Jonathan - write up the parallel proposals. AI: 2794 Jonathan - add text for the case where indices are x, z AI: 1442 Steven - check if Shalom's comments make this issue moot. AI: 1349 Steven: create the proposal for 1349 AI: 2451 Steven put a proposal together. AI: 2993 Tom; will check internally to see if these meet their needs AI: 2993 Mehdi; upload the email as a note to the mantis item AI: 2993 Arturo; will donate their implementation. ============ from Aguust 2 2010 meeting =================== AI: 1706 Steven put together an email for bc to provide feedback on 4 options Mehdi can send to sv-bc AI: 2993 Swapnajit: add a note to the mantis item as to where we currently are in the process. AI: 2953 Ray - take a look at this one ============ from July 19 2010 meeting =================== AI:Tom get confirmation from users about exact intent of the original request for 3001 AI: Francoise will add a note to the mantis item 2848 AI: Gord will write up a proposal for 3046 AI: Ray will add a bugnote 2999 ============ from June 21 2010 meeting =================== AI/Mehdi - For number 30 on the list, 'no-mantis item 6' send email to Matt about linking this request to mantis 2991. AI/ALL - assigned leaders/champions to start looking at the top 25 items on the list and plan for proposals/discussions/reviews. ============ from June 7 2010 meeting =================== AI/Tom - some examples would be useful [mantis 2987, soft constraints] AI/Cliff - what is actually required. [mantis 2117] Allow extending of covergroups in classes AI/Cliff, John H. - more details on this request, item number 30 [no mantis 6: allow re-use of enumerated names (slide 31) AI/All - find mantis items that can be closed, or easily resolved. - any of the 0.5h estimate items could be considered as well. ============ from May 24 2010 meeting =================== AI/Tom and others: mantis 3002 AOP: any more clarifications from users perspective. AI/users: mantis 1356: Multiple inheritance:what are the particular requests? clarifications. AI/Tom - Mantis 3003, we need more clarification from user base ============ from May 10 2010 meeting =================== AI/Jonathan - create mantis items for No-Mantis-10. Completed action items: ============ from April 26 2010 meeting =================== AI/Mehdi - add a column for enhancement versus clarification AI/Mehdi - add a column for amount of work required. AI/Mehdi - add sheets for the various categores in the Google doc. AI/Mehdi - send out a link to the p1800 spreadsheet. AI/Mehdi - add a column for duplicates AI/All - send input on the list of categories. AI/ALL - until May 5th to provide any inputs on the spreadsheet. ============ from April 12 2010 meeting =================== AI/Mehdi - Look at the Google Docs and creaet spreadsheet for collaborative efforts. Also add cross committee column to the spreadsheet. AI/All - send inputs on any new items by April 24 2010, this is deadline for any item that is not already in the mantis database. AI/All - prioritize and categorize list of items that are in the spreadsheet to be reviewed during the next two sv-ec meetings. AI/Neil - email to cliff on proxy rights --------------------------------------------- Summary table: Assigned Lead/Champions --------------------------------------------- 1 2848 Francoise 2 3002 Tom, Dave, Jonathan, Francoise, Arturo, Neil S., Cliff, Gord 3 3046 Gord, Franocise, Mark, Ray 4 1356 Tom [same with 3002] 5 3001 Jonathan, Tom, Francoise 6 2999 Tom, Ray, Arturo, 7 3003 [2987, 2988] Jonathan, Tom, Ray, Arturo, 8 3082 Daniel, Jonathan, 9 2845 Francoise, Mark, Alex Neil S., Gord? 10 2956 Steven, 11 2505 Neil S., Mark, Francoise 12 2735 Arturo, Steven, Gord, 13 1706 Mark, Steven, Francoise, 14 2488 Steven, Francoise, 15 2112 Dave, Steven, 16 3028 Arturo, Ray, Neil S., Mehdi, 17 2950 Francoise, 18 2794 Jonathan, Steven 19 2993 Tom, Ray, Swapnajit (cadence) 20 1442 Steven, 21 2953 Ray 22 1349 Steven 23 2949 Jonathan, Steven 24 2451 Steven, 25 2987 Jonathan (combining 2987, 2988, see 3003) ------------------------------------- [next 10] 26 3006 Ray, Steven, 27 3004 Tom 28 2998 Tom 29 2117 Cliff?? 30 No Mantis 6 could be linked with 2991 with sv-bc 31 2928 Ray, Arturo, 32 2787 ?? (Daniel)?? 33 2972 ?? (Daniel)?? 34 2996 Tom, 35 2988 already assigned (see 3003) 36 No Mantis 4 related to AOP (already covered) -------------------------------------------------------------- == List with estimates ======= hrs top 2t mantis Id 4 1 2848 12 2 3002 1 3 3046 16 4 1356 2 5 3001 3 6 2999 5 7 3003 8 8 3082 4 9 2845 0.5 10 2956 3 11 2505 4 12 2735 1 13 1706 2 14 2488 2 15 2112 2 16 3028 2 17 2950 1 18 2794 4 19 2993 0.5 20 1442 6 21 2953 0.5 22 1349 0.5 23 2949 4 24 2451 4 25 2987 92 total 46 (2hr sessions) 0.5 26 3006 4 27 3004 2 28 2998 4 29 2117 4 30 No Mantis 6 0.5 31 2928 4 32 2787 2 33 2972 2 34 2996 0 35 2988 0 36 No Mantis 4 23 total 11 sessions ====================================== top 25 Id Number of Votes weighted vote Summary Degrees of difficulty Cateogory Sub-Category 1 2848 7 159 Is it legal to assign an interface containing class declaration to a virtual interface med Virtual Interface and class 2 3002 8 125 Aspect Oriented Programming (AOP) features High class constraints 3 3046 8 112 Dotted names within inlined constraints Low class Strings/Arrays 4 1356 6 112 Multiple Inheritance High class Strings 5 3001 9 102 Proper Polymorphic behavior of instantiation low class Arrays 6 2999 7 99 Class Handle reference inside of Constraints med class constraints 7 3003 6 98 Constraint Composition High Randomization Strings 8 3082 7 96 (4) Ambiguity resolution (see slide 10 for examples of parts of the Standard that have been interpreted differently by different simulators) 9 2845 4 84 virtual interface type checking versus interface type that had been defparam'ed high Virtual Interface Misc / function proto 10 2956 4 76 clarify class 'process' definition (9.7 vs 18.13.3, 18.13.4, 18.13.5) low Process control 11 2505 4 76 class select: what is allowed after the dot? low class 12 2735 4 73 Ballot Comment #48: Chaining of method calls med class constraints 13 1706 4 72 Meaning of static prefix for virtual interface assignments Virtual Interfaces 14 2488 4 69 Are virtual method calls legal within class constructors? med VI OO classes 15 2112 6 69 Remove restrictions on NBA assigments to class members med class constraints 16 3028 6 68 constraints for unique array elements. Med Randomization 17 2950 4 67 virtual method prototype matching low class 18 2794 4 64 Clarify queue methods return status low class 19 2993 4 63 Cross cover points across different cover groups med Built-in Methods 20 1442 3 63 Clocking blocks legal in modports, missing from text description in 20.9 Functional Coverage 21 2953 6 61 Algorithmic generation of covergroup bin contents high clocking block 22 1349 5 61 fork/join_none: what if parent thread terminates without blocking statement? Functional Coverage 23 2949 4 60 LRM is silent about the semantics of referencing a clocking block output low Process control constraints 24 2451 6 58 Omitting body defaults med clocking block constraints 25 2987 6 56 Soft Constraints med class Misc / function proto 26 3006 5 55 LRM doesn't say explicitly what should happen if null pointer is randomized low class Data Types 27 3004 5 55 Ability to declare/qualify classes/methods/variables/constraints final med class Virtual Interface 28 2998 4 55 Solve Before enhanced low Randomization class 29 2117 3 52 Allow extending of covergroups in classes high Functional Coverage class 30 No Mantis 6 5 51 (3) Allow reuse of enumerated names (slide 31) cross-committee Randomization 31 2928 3 50 ambiguous restriction on function calls in constraint expressions low Randomization Randomization 32 2787 3 50 reference via scope operator to parametrized superclass item med class Randomization 33 2972 3 49 add class constructor/method, task/function overloading High class Randomization 34 2996 4 49 Method overloading High class Randomization 35 2988 2 48 Defaults Constraints med Randomization Process control 36 No Mantis 4 2 47 (1) AOP when-inheritance (slide 31) Class/AOP Functional Coverage