SV-EC Committee Meeting Monday April 10th 2006 11:00am - 1:00pm PST [Minutes distributed for approval at next (sv-ec) committee meeting] (1021121 ) Day (9933370 ) (1000000 ) Month (2112334 ) (0000000 ) Year (5666666 ) --------- Attendees ---------- (AAAAAAA ) Arturo Salz (-AAA-A- ) Cliff Cummings (A-AAAAA ) Dave Rich (AAAAAAA ) Francoise Martinolle (AAAAAAA ) Mehdi Mohtashemi (AAAAAAA ) Neil Korpusik (AAAAAAa ) Ray Ryan (--AAAaa ) Surrendra Dudani (-AAAAA- ) Gordon Vreugdenhil (-A--AA- ) Phil Moorby (AA----- ) Doug Warmke (---AAA- ) Stu Sutherland (----AAA ) Steven Sharp (-----a- ) Don Mills (Aa----- ) Chris Spear (------- ) Brad Pierce (------- ) Karen Pieper ^^------------ Considered ONE MEETING. ** Minutes taken by Neil Korpusik and Mehdi Mohtashemi ////////////////// April 10, 2006 ///////////////////////// Agenda: 1. IEEE patent policy ref: http://standards.ieee.org/board/pat/pat-slideset.ppt Move: Ray - Assume that the patent policy was read Second: Neil Abstain: none Opposed: none passed 2) Review Meeting minutes, of March 27th, 2006 meeting Not yet available 3. Continue with Mantis items: 3a) mantis item 1308 -- email vote did not pass ---------------------------------------------- Dave - made all the friendly amendments suggested during the email vote. (Neil confirmed this) - Cliff is the only remaining no vote. Neil - thought that Cliff's issue might have to do with a different section. Arturo - suspects that Cliff's confusion has to do with issues other than those articulated in the mantis item. Motion: Dave - approve mantis item 1308 Second: Arturo Abstain: Steven (couple of minor issues such as default arguement, Did not want those to get in the way of approving the proposal) Opposed: none Passed with one abstain AI: Dave update the mantis, --> resolve Steven - Default values are part of the interface, not the method. Stu - abstained in his email vote. Mehdi had referred to it as a no since there is no such thing as an abstain in an email vote. Mehdi - we can always open a new mantis item for any remaining issues. 3b) 1330 Missing BNF for parameterized virtual interfaces ------------------------------------------------------ AI: Dave: to update, add example. 1279, clarify covergroup/point/cross -------------------------------------- Ray: Coverages and crosses, covergroup. create an anonymous type and instance of the name, rather of instance of the type. clarifies coverpoint and cross, type for both and also instances. can't use :: syntax for options, you have to use the . option. The first portion, access the type and type option fields. Francoise: is there a difference if it isn't in a class? Ray: if in a class, the covergroup has an anonymous type Mehdi: example for 18.6.1 with gc::a::type_option.weight is odd. Ray: that is part of the existing example, and is being removed. Francoise: seems to be valid for embedded classes. Ray: thought there was a separate errata for this. Arturo: coverpoint, per instantiation space, and global. variables would appear one static variable, Ray: within a covergroup, Arturo - they are more than a type, they also have state. If call them variables, can be more than one instance per Aggregated cvg can be gathered. Types usually don't carry state. Ray - only one instance of that type in that covergroup. - each instance of cg will have an instance of cp - type_option is a static field (aggregated across all instances). - a coverpoint declares a name, what is it. cg a: cp <--- named a. need to be able to get to option, type_option for it. - cg with a ref arg 'a' a: cp Arturo - cp creates a hierarchical scope within a cg (original text) - a cp is a cp, which has some unique properties. - thinks that we shouldn't try to equate cp's with variables - classes are different, a static variable within a class has state Ray - cg is a user-defined type - instance of a hierarchical scope (not sure what this is) - cp has data - cp has members, member methods Discussion was not converging. AI: Ray: discuss over email for next time create list of questions that need to be resolved Mehdi: check with Brad on syntax boxes that don't appear in the appendix. What does it mean to have a syntax diagram which isn't in the appendix? : synatx box in 18.6 not in Annex A Randomization/Constraint related --------------------------------- 884 incorrect interpretation of expression in constraint example Francoise - didn't have time to upload a proposal. 262 randcase unclear (assigned) 261 randcase width rules (assigned) Steven: found it difficult to merge 261 and 262. issues with intermediate versus final results Arturo: the confusion seems to come from the fact that randcase uses the word case. Case is using identity compares Steven: not an issue just because of case. Using summing and compares. Summing requires them to be brought to the same width. We could end up with deviations from "normal" verilog rules. Possibly get degraded results by not following normal rules. Arturo: no comparisons. We need to determine what to do with the intermediate results. More intuitive to use existing rules. Each expression need not be consistent. Creating a temporary variable seems to address it. Case statement is the only other place where multiple expressions are related and it performs an identity expression. By using the normal rules will make it more confusing. There is a lot less to keep in mind if each expression is self-determined. Steven: are there any other situations where expressions are combined. The goal is to minimize overflow with the "normal" rules. Doesn't see a reason to specify a special case for this construct that increases the odds of overflow. Using a narrower width for one can overflow. If overflow isn't an issue we could use either rule. Case and anywhere we combine the results of sub-expressions. All width expansions are done as early as possible when using the normal verilog rules. If these values are being summed then we should be following the existing rules. Ray: is there any comparison to the actuals of a function call? Steven: they aren't combined in that case Dave: each function argument is independent. Arturo: if one has an unsigned value, then you get surprising results. if we describe each as a temporary variables, everything makes sense. Everything is consistent and makes sense. Steven: converting all to unsigned at the end anyway. Arturo: there are a few cases where the results are surprising. Neil: concrete exmpales may help. If surprising exampe, specific example. Realistic examples. AIs: AI:Steven - put together some examples of overflow AI:Arturo - unsigned/signed examples. AI:Neil - try to find some randcase examples with expressions being used. Mehdi - a separate discussion may help to hash it out where we get others involved (e.g. Gord, Phil). New Mantis items added ----------------------------------------------- Mantis: 1416 random constraints --------------------------------- Ray: static rand variable - setting rand_mode state for a static applies to all instances of the class. pull next value from set of pre-determined values. randc - need to see all values before repeating. Steven - randomizing other stuff along with a randc. Ray - class c; static randc int cycle; endclass c x,y; // x,y each have randomize state x.randomize() //<--- chooses a value for cycle y.randomize() //<--- chooses a value for cycle - is the state of a random number generator changed? - a.randomize() - updates state of rng for 'a' when called. Steven - can the randomization of static variables influence randomization of other objects. Perhaps there should be a RNG for the statics. Arturo - can affect stability of the whole system. - sharing through static rand(c) variables can cause surprises. Arturo: do we want to make a note for user-beware. Ray: for randc implementation to leave it open. Move: Ray - Approve 1416 as it is written Second: Arturo Abstain: Steven (not enough time to review) Opposed: none approved with one abstain 4. Open Questions: ------------------- wait_fork and disable_fork ---------------------------------- Steven - assumed that wait_fork included the descendents. Dave - disable_fork explicitly specifies descendents. Arturo - the existing text sounds correct. That was the intent. Only wait for immediate children. - disable_fork really wants to kill off all (don't want to create zombie processes). Steven - at the end you want to wait for everything. - children can wait for children. Dave - can use a semaphore to do whichever you want. - nested fork/join none seems to be rare. - Dave thinks it is a bit odd for the two to be different. Arturo - usually only know about your own children. The difference between the two was intentional. Dave: the terminology uses sub-process. 11.8.1 and 11.8.2, mantis item for immediate sub-processes. AI: Dave; create a new mantis item for the above 2nd question: resume() in 11.9. is a task why not a function. Arturo - seems like it could be a function Francoise - mantis 640 AI: Neil create mantis to change function on resume and change the text in 11.9 'this' question - email from Mike Burns --------------------------------- Arturo: the way we have definde the default argument, it makes sense to have 'this' current instance. Dave: arguemnet to a function resolved in the scope outside of the function. Arturo: this would be part of the class. Dave: is 'this' implicit member of the class? Arturo: the context of the declaration, for the default. we changed it. Now with method (extern) prototype in the class, and the definition. it is either an error, or the class context. it is unambigious always. Dave: either in the context of the method, or default argument Arturo: do default arguments have to be static? 'super' - similar issue Steven: set default to null to specify that 'this' should be used. Dave: thought that it was the intent. just add to the sentence that 'this' can be a default value? Arturo: defaults need to be static? Dave: 12.4.3 seems to say it doesn't need to be static Arturo: thinks that 'this' should be allowed. declaration scope for the method is the class, then this or super. [using the context of the call to allow it] maybe it should go chapter 7, this is in 7.10, 7.10 This, 12.4.3 Default argument values AI: Dave: review and discuss with Gord and create a mantis item. 5. Closing mantis items. We don't close them. Move to the acknowledged state. Mehdi will move closed mantis items to the acknowledged state. 6. Next meeting proposal: Monday April 24, 2006 =========== Coverage related ---------------------- 1279, clarify covergroup/point/cross Randomization/Constraint related --------------------------------- 884 incorrect interpretation of expression in constraint example 270 need more information when randomize method fails 262 randcase unclear (assigned) 261 randcase width rules (assigned) 247 property qualifier and random stability 211 built-in scope randomize (assigned) 134 4 state values as constraint (enhancement) Miscellaneous: -------------- 1308 abstract classes clarifications 1306 foreach in unpacked arrays 1270 xor, maybe covered by 978 1256 description of linked list (annex D) 1168 missing colors in A.2.10, A.6.11, A.6.12 1038 array ordering methods 978 5.15 array methods, 976 5.9-5.10 clarifications 975 related to 5.9, illegal for index_type 974 dynamic arrays/queues comparison 968 list package 960 one dimension (assigned) 958 dynamic array size method 889 clarifications for dynamic arrays 885 syntax typo in description (queue) 802 assigning too many elements in the queue 522 use of concatenation in 5.14.2 521 pattern assignment for queues 520 example of queues assignment 519 section 5.14, 518 queues and arrays 517 concatenation syntax usage section 5.14 511 related to section 12.25 (assigned) 412 5.14.1 queue operators 346 usage of word string (from 275) 339 typos in queue methods 4.14.2 245 array of queues 244 class method overwrite 242 aspect-oriented programming (enhancement) 241 regular expression semantics (enhancement) scheduling/clocking/program block ---------------------------- 1295 scheduling algorithm question 890 clarifications in program and clocking blocks 564, 553, 551, 549 255 sequence_expr in primary (svbc --to svec) 240 expression evaluation in cycle_delay (enhancement) 239 specific clocking event (enhancement) 238 pipelined values access in clocking bl (enhancement 237 clarification of wait fork (assigned) 236 behavior of cycle delay (assigned) 219 disable/return fork/join (assigned) 204 unit and program identifier (assigned) New mantis items [added ] ----------------------- 1312 wait_order specification with repeated events (Miscellaneous) 1313 No definition for coverpoint and bin expression type rules (Coverage) 1315 User specified default on associative array access (Miscellaneous) 1324 20.8 doesn't handle specializations of virtual interfaces (Miscellaneous) 1330 Missing BNF for parameterized virtual interfaces (Miscellaneous) 1349 fork/join_none: what if parent thread terminates without blocking statement? 1355 LRM 13.3 is not clear about non-rand variables, handles and structs (classes) 1356 Multiple inheritance (Classes) 1357 Instance-specific default coverage goal should be 100 (coverage) 1363 03-03-06 Behavior of join_any containing no statements is unclear 1370 03-09-06 Add %r for printing real numbers in engineering notation 1371 03-09-06 Semantic of program block $exit 1382 03-13-06 rand_mode settings after a shallow copy or assignment 1384 03-14-06 bit stream cast and pack/unpack for protected./local members 1391 03-21-06 Invalid example code using 'process::self.srandom(100)' 1393 03-23-06 Typo in set membership constraint example =================== Resolved Mantis items ============================= Resolved Mantis items (by dates) -------------------------------------------------------------------- April 10, 2006 (state) -------------------------------------------------------------------- 1308 approved with one abstain (Steven) 1416 approved with one abstain (Steven) Resolved Mantis items (by dates) -------------------------------------------------------------------- March 27, 2006 (state) -------------------------------------------------------------------- 1306 approved acknowledged 1315 approved acknowledged 1393 approved acknowledged 1357 approved acknowledged 247 Closed --> closed 270 remains as enhancement 134 reamins as enhancement -------------------------------------------------------------------- March 13, 2006 (state) -------------------------------------------------------------------- 714 approved assigned 892 approved assinged 1242 approved assigned [ one abstain] 1243 approved assigned 1244 approved assigned 1263 approved assinged Reviewed items from other committees 1325 SV-AC February 13, 2006 -------------------------------------------------------------------- 138 approved assigned enhancement 251 - no action - assigned enhancement 253 approved closed 1178 approved closed 1237 approved assigned 1239 approved assigned 1240 approved assigned January 9, 23 2006 items -------------------------------------------------------------------- 344 closed 644 closed 683 approved closed 712 approved closed 722 approved acknowledged 725 approved closed 1236 approved assinged 1238 merged with 1237 closed ======================================================================= ======================================================================= ================= Action Items =========================== Action items: April 10, 2006 ----------------------------- AI: 1308 Dave update the mantis, --> resolved AI: 1330 Dave, add the example AI: 1279 Ray: discuss over email for next time create list of questions that need to be resolved Mehdi: check with Brad on syntax boxes that don't appear in the appendix. What does it mean to have a syntax diagram which isn't in the appendix? : synatx box in 18.6 not in Annex A AI: 261/262 combined Steven put together some examples of overflow Arturo unsigned/signed examples. Neil try to find some randcase examples with expressions being used. AI: wait_fork & disable_fork Dave: create mantis item for sub-clauses (in 11.8.1, 11.8.2) Neil: Create a mantis item for resume() to be function 11.9 AI: 'this' question from M. Burns, Dave: review and discuss with Gord and create a mantis item. AI: Mehdi: will move closed (approved but placed in closed state) mantis items to the acknowledged state. Action items: March 27 2006 ---------------------------- AI: 1306 Dave to update the proposal with the amendment. AI: new Steven: create a new mantis item for the case foreach where no variable has been specified. AI: 1306 Ray a bug note to this mantis item. AI: 1315 Dave - update the mantis proposal AI: 1330 Dave - Create an example for this mantis AI: 1279 Ray - still needs a proposal AI: 884 Francoise - create a proposal AI: 270 Mehdi - stays as enhancement AI: 261/262 combined Steven, put the proposals together, should address both 261 and 262. and vote on it next time. AI: 247 Ray - close 247, create a new mantis item for static randc issue AI: 134 Mehdi- keep this as an enhancement AI: 1308 Neil - create a new mantis item for this issue on 7.13 AI: 1308 Mehdi - set up an email vote for this. Action items: March 13, 2006 ---------------------------- AI: 1325 - (sv-ac) Neil to send input to the SVAC on sv-ec feedback AI: new item - Gordon to create a new mantis item for randomize() method call item AI: 1306 Dave - redo the proposal for next time AI: 1330 Dave add example to the proposal AI: Mehdi ask Karen about the new state for the editor to view. Action items: February 13, 2006 ------------------------------- AI: 714 Neil to close, Mehdi to find out about which state it needs to have 714 to be added into the LRM. AI: 1236 Ray - add in the text change for gc-->cg for this mantis AI: 1237 Ray to update with friendly amendment AI: 1239 Ray to make the updates to the proposal. AI: 253 Gord to close the mantis AI: 138 Mehdi move this into enahancement AI: 1279 create some proposals on these issues. Send out some ideas for discussion. Create a few examples for discussion AI: 1313 Gord to put the proposal for bin expression AI: 1178 Mehdi to close this mantis AI: 1308 Dave to update the proposal AI: Ray - add a new Mantis item for the visibility issue. Action items: January 9, 2006, January 23, 2006 ----------------------------------------------- AI: 683 Gord to close AI: 712 Gord to close AI: 725 Gord to close AI: 1236 Ray to update the proposal with friendly amendment AI: 1237 Ray to create the proposal, to be discussed later on and voted on in the next meetings AI: Gord to create mantis item for type expressions, comparisons in covergroup AI: 1238 Ray to close (and merge) with 1237 once the proposal is there AI: 1239 Ray & Gord to place a new proposal based on 1/23/06 discussions AI: 1240 Ray; update with clarifications for what has affects. AI: 714 Neil, re-open, make the corrections in the proposal =====================================================================