SV-EC Committee meeting Monday April 11, 2011 Meeting number: 75% = 12 out of 16 meetings attended --------------- 1111111000000000 6543210987654321 Meeting Days: ------------- (1211102021213101) Day (1844762851730629) (0000011111000000) Month (4332121100998887) (1111111111111111) Year (1111100000000000) ------ Attendees ---------------------------- Members: 1. (AAAAAAAAAAAAAAAA) Arturo Salz 14 - y Synopsys 2. (AAAAAAAAAAAAA-AA) Dave Rich 13 - y Mentor 3. (AAAAAAAAA--AAAAA) Francoise Martinolle 12 - y Cadence 4. (-AAAAAAAAAAAAAAA) Mehdi Mohtashemi 14 - y Synopsys 5. (A-AAAAAAAAAAAAAA) Neil Korpusik 14 - y Oracle 6. (AAAA-AAAAAAAAAAA) Ray Ryan 13 - y Mentor 7. (AAAAAAAAA-AAAAAA) Gordon Vreugdenhil 13 - y Mentor 8. (AAAAAA-AAAAAAAAA) Steven Sharp 13 - y Cadence 9. (AAAAAAAAAAAAAAAA) Mark Hartoog 14 - y Synopsys 10. (-AA-AAAAAAAAAA-A) Tom Alsop 12 - y Intel 11. (AAAA-AA--AAAA--A) Neil S 9 - y Marvel 12. (AA-A-AAAAAA-A--A) Alex Gran 9 - y Mentor 13. (---AAAA-A-------) Brandon Tipp 5 Intel 14. (AAAAAAA---------) Scott Little 5 - y Freescale 15. (-----------AAAAA) Swapnajit Chakraborti 5 Cadence 16. (-A--------------) Dennis Brophy 1 Mentor 17. (-AAAA---A-AAAAAA) Daniel Schostak 10 - y ARM 18. (A---------------) Mike Burns 1 Oracle 19. (------A---------) John Havlicek 1 Freescale Observers: 1. (AA-A-AAAA-------) Tony Tsai 5 Cisco 2. (AA-A-A----------) Mark Strickland 2 Cisco Former participants: 1. (---AA-AAAAAAAAAA) Jonathan Bromley 12 Verilab 2. (---A-AAA---A--AA) Heath Chambers 7 3. (---AA--AA----AAA) Don Mills 7 4. (---A-----A-AAAAA) Cliff Cummings 7 Sunburst 5. (---AA-AA-AAAA---) Linc Jepson 8 6. (-----A----------) Dave Gates 1 AMD 14 people will have voting rights in the next meeting http://standards.ieee.org/develop/corpchan/mbrs1.html // IEEE-SA members --- Minutes taken by Neil Korpusik ------------- 1. Updates from P1800 WG ---------------------------------------------------- Participation and voting guidelines, other updates. The Working Group will meet again this Thursday (April 14th). 2. Review IEEE patent policy ---------------------------------------------------- http://standards.ieee.org/board/pat/pat-slideset.ppt The Chair brought the patent policy to everyones attention. Mike Burns was given a link to the patent policy. 3. Approval of previous meetings minutes: -------------------------------------- http://www.eda.org/sv-ec/Minutes/SV-EC_Meeting_March_28_2011_Minutes.txt Arturo, Neil S. -- approve the minutes from March 28, 2011 Neil K. - abstain - wasn't in the meeting last time. 4. Continue Review and discussion of top 25 issues and categories: ------------------------------------------------------ Francoise - would like to invite coverage people located in India - They would only want to join when they know that coverage related topics will be discussed. - She prefers to have a more formal agenda. - The sv-cc does this sort of thing (reviews the agenda). Dave - People should send email to the chair ahead of time with requests 3181 incorrect syntax in with clause in example in 18.5.7.2 [shalom] Steven - the 'with' should use () not {} - it is on the sum() Arturo - the current text has a syntax problem Steven, Francoise - approve the proposal for 3181 unanimous 3297 18.6.2 font size issue [shalom] Neil - just a font change Gord - reviewed the spelling to ensure there were no typos Gord, Neil - approve the proposal for 3297 unanimous 2985 Multi-dimensional queues - close - duplicate of 245 Dave - duplicate of 245 Gord, Alex close 2985 as a duplicate of 245 unan 245 Array of queues - close - already implemented Dave - there are only arrays of arrays, not multidimensional arrays. Mantis 1362 will clarify some of this. Arturo - if it is just referring to the email discussion of 245, it has already been done. Dave - 7.4.2 - "Unpacked arrays can be made of any data type." Steven - it is clear that a queue is an array? Francoise - see 7.4, it is stated there Dave - there is no doubt about an array of queues the only issue is with regards to multi-dimensional arrays. Gord - what about out-dated references? - doesn't believe that the persistence description of 7.10.1 had dynamic arrays or queues in Dave - 7.10.3 discusses persistence of references. Francoise, Arturo - close 245 as already implemented Abstain Gord - The summary says array of queues - not sure that what exists is as general as what was requested. Persistence of elements is a key point with this. 3254 18.5.6 if-else constraints mistakenly uses the work "block" when it means "set" - hopefully simple Dave - constraint block --> constraint set Gord - 18.5.8 seems to also use this same terminology. Ray - the change looks ok. Dave - there is a difference between a constraint block and a constraint set. AI/Dave - change the coloring, also no underlining, and add mantis item to the top of the proposal. 2952 Identifier case error in 25.9 virtual interface example [from sv-bc] Dave - this is a bunch of typos Arturo - just an editorial issue? Steven - it changes the meaning when variable names are modified Steven, Gord - approve the proposal for 2952 unanimous 3405 Virtual interface example typos Gord, Francoise - close 3405 as a duplicate of 2952. unanimous AI/Mehdi - The proposal needs to be deleted. 3230 task should be function in definition of static functions [The Technical Chair wants us to review it.] Gord - terminology from 13.3.1 Steven - we are talking about methods here, that is why there is confusion Arturo - Class methods can be declared to be static. Gord - 8.6 has related text "The lifetime of methods declared as part of a class shall be automatic." - 13.3 discusses storage In one place we are discussing storage and in another we are discussing lifetime. Arturo - lifetime and storage go together - the existing proposal is ok. Gord - we should consistently use the terminology in 8.6 or 13.3 - "class static members" is what he mentions to users. Arturo - the issue is not visibility. Arturo - agrees it would be useful to define "class static" and use it. Gord - automatic storage versus automatic lifetime Arturo - storage is typically used with data members. Steven - the lifetimes default to automatic. Arturo - related to 2035 Gord - the terms 'lifetime' and 'class static' should be used? Steven - agrees. - this proposal should use "automatic lifetime" Dave - 8.6 refers to that Gord - could say the methods in a class follow the rules in 8.6 Arturo - that is reasonable Scott - how do we feed this back to the sv-bc? Arturo - vote yes, with friendly amendments Neil - mantis 3230 was sent to the svec since I would not send it to the Champions until it was approved by svec Gord - Suggests the svec will take ownership of 3230 and make a more involved change. AI/Mehdi - contact the svbc - the svec wants to take ownership of 3230 AI/Gord - will update 3230 and scrub related text for any additional changes that might be required. 2112 Remove restrictions on NBA assignments to class members [Dave, Steven] Steven - would not support on LHS (as in the proposal). Gord - there are implementations today that allow stuff not allowed in the LRM. Steven - wants the proposal to be limited to NBA. Dave - can you do an NBA to a dynamic array? Gord - an issue with possibly out-dated references. Steven - queues and associated arrays are a big issue. - Both of those can create additional items. If use $ in an assignment, do you do the assignment before or after adding new items? Arturo - that could be made to be well defined. Gord - do you go down to an lval (a final target)? - could get constructive behavior at the time of the write if define it certain ways. Steven - wants to limit it to class handles and NBAs as is done in the proposal. Arturo - a class member could be a queue. Gord - a pending NBA counts as a reference. Is it only the final object that remains after NBA? What things are considered part of the "address" and what is not? - Could have obj1.obj2.property, the reference could change in-between the NBA evaluation and when it takes place. Steven - would have to say it is with regards to the same storage. Dave - could be defined to be the same as passed by reference. Gord - the element will exist when the NBA is executed, but the value won't be set until the nba matures. Steven - we need to avoid the possibility of side-effects. Gord - the proposal says that "at least" obj2 can't be destroyed until the nba matures. - we can't just throw the object out if there is a pending NBA. Steven - can garbage collect as long as don't write to it. - should define it such that an implementation can optimize it away when not a reference. Arturo - could flag as an error when the lval becomes null. Gord - not just saying the reference to original handle becomes null. - want to say the observed requirement is that the nba will occur and it will write to a valid object, but it could be optimized away if not referenced. - don't want to get into odd cases due to multiple levels of reference Arturo - An nba is used for breaking races. Using it like this is just opening the door to new issues. Dave - the uvm takes advantage of nba to get rid of #0. Arturo - that is an inappropriate use of an nba. we would be just opening the door to a lot of issues. Has a fundamental issue with this capability. Steven - customers are making requests in this area. They are using classes and are used to using an nba to break races. They would like to do it here as well. Gord - when is the lvalue captured and how make sure it is valid when the nba takes place, these are the fundamental questions. - need to address this if the use of nba is extended. - it's similar in concept to the fork/join-none type construct. Arturo - we would need to formally define lval Gord - there are some edge-cases that have not been well defined. - accurately defining an lval would address them. Arturo - thinks Steven Sharp's request is a reasonable approach. Dave - More work is required on this one... 2900 Associative array should consider the context of an lvalue to create an entry [Dave] Dave - the first sentence is just rewording what is already there. Gord - What is in the proposal is the equivalent of saying when see a reference on LHS it has same effect as saying that reference equals itself. The element will then begin to exist. That would be useful in defining the ++ operation. - if have a[1]++, if a[1] doesn't exist is the increment treated as a read with default value or is it a no-op? Steven - incrementing the temporary garbage value. - would assume it would create it. Gord - it would only be constructive if the element doesn't already exist. Steven - the a[i] on LHS Arturo - the original proposal for ++ was similar to what Dave has in the 2900 proposal. Arturo - we are back to issue of an lval not being well defined. Gord - when using a queue it is more of an issue. - associative array or off the end of a queue would want semantics of lval capture to be done first, use default value when operating on it. - need to ensure the constructed value uses the default value. The proposal is showing value 1 in this case. Steven - an assignment pattern which uses a default clause changes the default value for this array. Gord - do I get that default value before operating on it or not? Arturo - the default of the array versus the default of the data type? Steven - for arrays you can override the default. Gord - need a real lval, eval the index, effectively do a read, if exists already use it as an lval, if not create an lval. Gord - A[1]++ should be same as using a ref - if have an lval into an assoc array the lval equals itself will give you the proper default value. It is just an no-op if already exists. Arturo - doesn't like the wording "the first time it appears" in the first change to the proposal. - some new wording will be required. Gord - do people agree with the jist of what he was suggesting? Steven - any operation where it could be written, but the first thing that happens isn't the write. Gord - output mode versus ref mode. could create situations with xmrs where observable due to order of operations. eg checking if A[1] exists. This is different from a ref operation. The issue for ref, requires that it exist at the time when the pass by ref is executed. Arturo - agrees with the jist of this. It will be difficult to phrase this properly. Steven - only queue and associative arrays where this applies, eg writing to it creates an entry. Arturo - it sounds like there is agreement with what the proposal should say, it just won't be easy to state it. Steven - static array references that don't exist. - The LRM doesn't address it. AI/Dave - will update the proposal. 2506 [2953] Coverage [Scott] Mike - It sounded like peopler were comparing 'with-expressions' and 'ignore' bins. Thinks of those points as orthogonal. with-clause - an open range list is used to create a bunch of values. The intention of the with-expression was to extend the ability to define a set of numbers. - define a characteristic function for all places where this expression is true. - a more powerful way to defining a set of values. Steven - when auto-partition into bins, is it done before or after distributing? Mike - for example, an array bin The set of numbers is defined first and then distribute them. You wouldn't distribute them first and then knock them out, like we do for ignore bings. The example they were original looking at was a fibonacci series Ray - the 'with' filtering would be consistent from run to run Gord - small changes to a design could cause changes from run to run. Mike - covergroup shapes can be dynamic today. The constructor can use input arguments to determine how to form the coverage shape. Merging of coverage results are based on ensuring they are mappable today. Mike - can attend future meetings to discuss it more. Adjourn at 1:03 5. Next meetings 2011 ------------------------------------------------ Monday April 25 2011 Regular biweekly Monday May 2 2011 Regular biweekly Monday May 16 2011 Regular biweekly