SV-EC committee meeting. Monday March 14 11:00am - 1:00pm PDT [ http://www.eda.org/sv-ec/Minutes/SV-EC_Meeting_March_14_2011_Minutes.txt ] Meeting number: 75% = 11 out of 14 meetings attended ------------------------------------------------------------------------- 11111000000000 43210987654321 Meeting Days: ------------------------------------------------------------------------ (11102021213101) Day (44762851730629) (00011111000000) Month (32121100998887) (11111111111111) Year (11100000000000) ------ Attendees -------------------------------------------------------- 1. (AAAAAAAAAAAAAA) Arturo Salz 14 - y Synopsys 2. (AAAAAAAAAAA-AA) Dave Rich 13 - y Mentor 3. (AAAAAAA--AAAAA) Francoise Martinolle 12 - y Cadence 4. (AAAAAAAAAAAAAA) Mehdi Mohtashemi 14 - y Synopsys 5. (AAAAAAAAAAAAAA) Neil Korpusik 13 - y Oracl 6. (AA-AAAAAAAAAAA) Ray Ryan 13 - y Mentor 7. (AAAAAAA-AAAAAA) Gordon Vreugdenhil 13 - y Mentor 8. (AAAA-AAAAAAAAA) Steven Sharp 13 - y Cadence 9. (AAAAAAAAAAAAAA) Mark Hartoog 13 - y Synopsys 10. (AAAAAAAAAAAA-A) Tom Alsop 13 - y Intel 11. (AA-AA--AAAA--A) Neil S 9 - y Marvel (2 of last 3) 12. (-A-AAAAAA-A--A) Alex Gran 9 - Mentor 13. (-AAAA-A-------) Brandon Tipp 5 - y Intel (2 of last 3) 14. (AAAAA---------) Scott Little 5 - y Freescale (2 of last 3) 15. (---------AAAAA) Swapnajit Chakraborti 5 - Cadence 16. (AAA---A-AAAAAA) Daniel Schostak 10 - ARM 17. (-A-AAAA-------) Tony Tsai 5 - Cisco 18. (-A-A----------) Mark Strickland 2 - Cisco 19. (AAA-AAAAAAAAAA) Jonathan Bromley 12 - Verilab 20. (-A-AAA---A--AA) Heath Chambers 7 - 21. (-AA--AA----AAA) Don Mills 7 - 22. (-A-----A-AAAAA) Cliff Cummings 7 23. (-AA-AA-AAAA---) Linc Jepson 8 - 24. (----A---------) John Halvicek 1 25. (---A----------) Dave Gates 1 AMD 13 people will have voting rights in the next meeting (The new IEEE and WG rules now apply - company names in addition to the record of participation are checked) ** Minutes taken by Neil Korpusik and Mehdi Mohtashemi ////////////////// March 14 2011 ///////////////////////// Agenda: 1. Updates from P1800 WG --------------------------------------------------------------------------- Participation and voting guidelines, other updates. NOTE: The new participation rules are now in effect (as of March 10th). Daniel: how to attain voting rights in p1800? Scott: ARM is an advanced member Neil: for P1800 two sets of fees, advanced member fee and then the editing fee. WG has imposed an additional requirement, need to pay a portion of fees required. The amount has been divided in two, and two years, Need to contact Karen Pieper of the intent to join p1800WG. IEEE new rules in effect as of last Thursday. In additiona to that p1800 WG has additional money. WG are allowed to add stipulation. Observer: basic or advanced member of IEEE SA. to be in listen only mode Karen P. Accellera DR, she can nominate people to be DR for technical committees. Mark: those folks do not have to be members of any place else. Dave: anyone can observe for meeting to see if they would like to become member Neil: committee can chose to invite a member to pariticpate, but max 3 meetings per PAR, all in the IEEE document. P1800WG last meeting was suspended last Thursday and continuation and this could be re-discussed. 2. Review IEEE patent policy ------------------------------------------------------ http://standards.ieee.org/board/pat/pat-slideset.ppt Move: Mark Second: Neil S. Abstain: Opposed: Passed/approved unanimously 3. Approval of previous meetings minutes: ------------------------------------------------------ February 14 2011 meetings http://www.eda.org/sv-ec/Minutes/SV-EC_Meeting_February_14_2011_Minutes.txt Move: Dave Second: Gord Abstain: Tom (was not here) Opposed: Passed/approved unanimously 4. Continue Review and discussion of top 25 issues and categories: ------------------------------------------------------ Review of the top 25 [+10+3]; 9 have been approved. 2506 [2953] Coverage [Scott] Scott - reviewed the set of changes described in his email of feb 18th. - updated the example on page 4 Arturo - the intent is no side-effects, and not preserve state. Gord - the question has to do with the parenthetical comment in the existing text. The rewrite in Scott's email sounds correct. Arturo - the parenthetical comment was clarifying the rest of the sentence. - is willing to allow users to have side-effects, but you would be on your own. Gord - with a side-effect, we should define and then allow implementations to either warn or error when there are side-effects and there shouldn't be. Scott - will that be a separate mantis? Arturo - prefers to not make this one contingent on that one. Arturo - we already use this phrasing elsewhere. Gord - prefers to get rid of the parenthetical comment and allowing the part about side-effects. Scott - 'procedural calling context' seems to not be defined in the LRM. Jonathan - calls from a "procedural context" is what we use elsewhere. Arturo - we are typically talking about a procedural assignment. Mehdi - this qualifyer can be removed. Scott - allowing a function in a cross was suggested last time. - '19.6.1.3 Cross bin set expression' - the example shows several ways to access a function - the function would only be usable in the cross Arturo - that makes sense in principle. Ray - the use of CrossQueueType also seems to imply a cross scope. Scott - yes, it looks that way. Gord - this usage of functions would be similar to a local function within a class. - this example is at the heart of what the proposal is all about - We need to go this route if we are to go with this proposal. Ray - could add a restriction that the function name isn't visible outside Gord - how does it interact with parameterized classes? - there could be future requests to extend how these functions are to be used. e.g. sharing function bodies that are inherited. - possibly passing in parameterized functions so the covergroup body only needs to be written once. - thinks he is ok with pulling functions into a cross. Concerned about possible future issues, extension requests. - embedded cg in a derived class, possible issue, or not? Mehdi - would like to get this proposal to a vote. Ray - <> issue Scott - the next revision will take care of that, were removed in his latest working draft. Ray - if start with 100 values and 6 bins, when use with-clause to reduce those to 10 values, the order in which you partition the values to bins can give different results. If partition the 100 could end up with a bin with no values. Scott - bin assignment should be done after applying the with-clause? Gord - would like to see it in an email for review. Ray - it might be hard for users to control the coverage if the bin assignments are done after applying the with-clause. Arturo - would need to think about these alternatives. AI/Scott - send out a clarification email. Gord - Back to allowing functions in a cross. a bin filtering function, would need to be static. There could be issues for a parameterized class. This points to pushing a function down into a cross to be the better approach. 3278 virtual method type rules [Francoise] Gord - it isn't clear that matching is being used properly on the return type. In particular when we have parameterized types being used. lexically they shall be the same. The resolved type shall match. Gord - the current language is confusing. - the out of block (extern) declaration, lexically the same or not? We should make sure we are consistent in both places. Mark - we addressed return types for the extern case. Steven - for virtual methods, could be in a different scope. More flexibility is called for. Gord - for an override, it is clear we don't require it to be lexigraphiclly the same. We just need to be sure to make this clear in the text. Steven - they also have to have the same name. Gord - we are using the word 'matching' in a technical and a colloquial way in the same sentence. This makes it less clear. Francoise- would the word identical be beter? Gord - yes 3279 Enhance method override rules to allow covariant typing [Francoise] Francoise- the proposal has been updated. Steven - why not use assignment compatibility rules instead of covariance rules? Gordon - probably don't want to do this for xxx, vector widths would be an issue. They could go either way. Gordon - probably not necessary to define covariance. rewrite of matching rules for a class type in the return type. Arturo - which section would this be done in? Steven - the section for class virtual methods would probably be better. Arturo - agrees with that. Steven - this is a very special rule. Gordon - narrowing and widening for vector types isn't what we want. SystemVerilog is too lenient today for assignment compatible. Prefers to only discuss class types as return types for now. Francoise- overloading? Gordon - Not overloading. if override a method the return type of a virtual method need not to have to be the same type, just a compatible type. Gordon - if call via a base handle, get the type that the base class returns - if call via a derrived handle, get that type. Mark - evaluated at runtime? Gordon - type doesn't do evaluation at runtime. - can't inspect the actual object, must base it on the static aspect of the reference. Steven - get the results of what it is being treated as. - $typename - does it use the static type? Gordon - it is in a bit of a disarray today, most likely ambiguous. Steven - the proposal is a relaxation of the existing rules for methods. Francoise - an array of classes. Steven - the elements of an array assign must have matching types. If it said assignment compatible it would already be covered. Mark - we changed those rules about 4 times already. Francoise- today it says "equivalent". Gord - bounds of arrays (equivalent vs. matching) Steven - sounds like we aren't going to extend this for that case. Gord - prefers to not extend it more broadly, it would add a lot of complexity for cases that most people aren't interested in. Francoise- what about formal? Gord - the return is most likely a lot more common. - if ovverride a virtual, the override needs to be guaranteed to be safe. Mark - for outputs Gord - for bidi they need to be exactly the same. for inputs the derrived class override would need types that xxx. narrower or wider for a type sense. The return case is definitely useful. Steven - not useful for inputs - the output direction works. Gord - the input dirrection works for a single class hierarchy - it is possible to come up with cases that would be possible, but is it not clear that this would be that useful. Gord - wants to only make a narrow change for the return case. Arturo - is in agreement with Gord. Gord - prefers to stay with known object oriented approaches. Steven - the word output means output, where is the confusion? Arturo - has never seen a covariant output Steven - possibly due to the use of tasks versus functions. - could change an output to be from a task instead of a function. - doesn't see it being a significant problem to add it. - willing to talk to some methodology guys to see if they want it. Francoise- need to change the chapter on classes and virtual methods? Steven - yes, it shouldn't go in the assignment compatible section if we restrict it to just the return types. Steven - mantis 2451 has some related text. Mark - it is the nearest implementation in the hierarchy. Steven - it is the one being overridden. Steven - we need to be careful of the wording so that it doesn't imply going back to the original prototype. Mehdi - it is ok to merge 3278 and 3279 into a single proposal. 2993 Coverage Cross cover points across different cover groups [Arturo, Swapnajit] 3002 Aspect Oriented Programming (AOP) features [Tom] 3046 Dotted names within inlined constraints [Gord] 3082 Daniels' top items [3075, 3076, 3077, 3078, 3079, 3080, 3081] 3003 [2987, 2988] constraint composition [Jonathan, Tom, Ray, Arturo] 2735 ballot comment #48, chaining.. [Arturo, Steven, Gord] 2848 Is it legal to assign an interface containing class declaration to a virtual interface [Francoise] [hold for next few meetings: sv-bc is also looking at interfaces] 1356 Interface Classes [Multiple inheritance] [Tom, Brandon] [next 3 are related to 1356; added per WG approval] 3278 virtual method type rules [Francoise] 3279 Enhance method override rules to allow covariant typing [Francoise] 3293 Clarify $cast behaviour on class handles [Jonathan ] 3001 Proper Polymorphic behavior of instantiation [Jonathan, Tom, Francoise] 2999 Class Handle reference inside of Constraints [Tom, Ray, Arturo] 1706 Meaning of static prefix for virtual interface assignments [Mark, Steven, Francoise] 2488 Are virtual method calls legal within class constructors? [Steven, Francoise] 2112 Remove restrictions on NBA assigments to class members [Dave, Steven] 1442 Clocking blocks legal in modports, missing from text description in 20.9 [Steven] 2900 - Associative array should consider the context of an lvalue to create an entry [Dave] 3254 - 18.5.6 if-else constraints mistakenly uses the work "block" when it means "set" [Dave] 2794 - Clarify queue methods return status 1076 - out-of-range or x/z index to array of reals - 5. Next meetings March, April 2011 ----------------------------------------------------- Monday March 28 2011 Regular biweekly Monday April 11 2011 Regular biweekly Monday April 25 2011 Regular biweekly FOR References: --------------------------------------------------------------------- =========== from March 14 2011 meeting =================== AI: 2506 All - Scott to send out clarification email to the alias. =========== from February 14 2011 meeting =================== AI: 2506 All - discuss this proposal over email. =========== from January 17 2011 meeting =================== AI: 2848 Mehdi - hold this off for the next 3 or 4 sessions. AI: 1356 Tom/Team state the differences between extensions and inheritance. ============ from December 6 2010 meeting =================== AI: 2845 Francoise - update the proposal with these changes. AI: 2848 Francoise - update the proposal with these changes. AI: 1356 Tom - update the proposal with some of the issues being raised. AI: 1356 all - review the new proposal before the next meeting. ============ from November 22 2010 meeting =================== AI: 2848, 2845; Franocoise update the proposals. AI: 2505; Neil S., update the proposal. AI: 2506; put the proposal into the required format AI: everyone to review and be ready to discuss during next time. ============ from November 8 2010 meeting =================== AI: Minutes; Mehdi - will check for consistency between the left and right sides for the attendance. AI: for 1356 Multiple Inheritance (interface classes) Mehdi - will make a request to the WG on this. General statement about being allowed to work on mantis items that are affected. AI: Jonathan - NULL within $cast AI: Gord - the OVM people would like to have that. Covariant and Contravarianct type extensions. you allow method that do not allow exact type signature of over-written method, but can return the objects of the type of original return type, impact of that would be on Interface classes. AI: Gord - Overwriting of virtual method section AI: Tom - update the proposal (to number 4) ============ 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 right --------------------------------------------- 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