SV-EC Meeting Minutes 15 September 2003 11:00 am. Monday (rrrr) Voting Members (3/4 or > 75%) (aaaaaa) Arturo Salz (Synopsys) (-aaaaa) Brad Pierce (Synopsys) (--aaaa) Cliff Cummings (IEEE 1364) (aaaaa-) Dave Rich (Synopsys) (aaaaaa) David Smith (Synopsys) (-aaa-a) Dennis Brophy (ModelTech) (aaaaap) Jay Lawrence (Cadence) (--a-aa) Jeff Freedman (ModelTech) (aaa-aa) Michael Burns (Motorola) (-aaaaa) Mehdi Mohtashemi (Synopsys) (aa-aaa) Neil Korpusik (Sun) (--aaaa) Ray Ryan (ModelTech) ||||||_ 15 September |||||__ 2 September ||||___ 18 Aug |||____ 4 Aug ||_____ 21 July |______ 7 July Non-Voting Members (attendance based) (-----s) Francoise Martinolle (---a--) Stefen Boyd (IEEE 1364) (-a---a) Stu Sutherland (IEEE 1364) Guests (non-voting) (-----a) James Young (HP) (-a-- -) Kevin Cameron (National) (--a-a-) Don Mills (LCDM Engineering) 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] This week: AI-16 : Arturo - Update EXT-8 with order weight evaluation, the use of $urandom, and change positive to non-negative. AI-17 : David - Create future enhancements list and move ERR-15 to it. AI-18 : Committee - Add appendix containing built-in namespace members. AI-19 : David - Update LRM-23 removing global when referring to built-in namespace AI-20 : David - Add errata for fixing EXT-2 example based on outcome of ERR-4 and to change use of wait to wait for all processes to start. Minutes 9/15/03 taken by Mehdi Mohtashemi Franciose is acting as proxy for Jay. 1. Review of meeting minutes from 2 September 2003 meeting Motion: Accept the minutes from 2 September 2003 meeting Moved: Brad Second: Ray Abstain: Franciose Against: None Passed 2. Review of action items AI-5: (Arturo) Still ongoing. AI-11: (Neil) Should get to it this week, will work with Arturo (and possibly Jay) before sending it out. AI-12: (Arturo) Resubmitted as a new version of EXT-8. Closed AI-13: (Arturo) Resubmitted EXT-14 and EXT-15. Closed AI-14: (Arturo) Included as part of response to ERR-5. Closed 3. Review of Inter-committee dependencies David: ERR-6/LRM-16 Clarification was added for the inside operator as part of ERR-6. This must be approved by both SV-EC and SV-BC. There has been no discussion within SV-BC yet. Will follow-up with 4. Review of Errata list: ERR-6: LRM-16 Discussion on inside operator. New Section 7.17 on set membership, removed basic definition of set membership from 12.3 and moved to 7.17 to make set membership (inside operator) a general operation. Small change to 12.4 which removed the inside operator from the list of specific constraints. David: Remove the sentence in 7.17 (last one referring to the second example above) and leave it in 12.4.3. Francoise: Why is the inside operator bi-directional? Ray: Leave it in a constraint and not mention it in the general case. Has the change to the BNF been done? Arturo: Inside operator was already part of the general expression in the BNF. David: Any other questions/issues? Motion to accept LRM-16 with changes as described above. Motion: Arturo Second: Brad Abstain: Neil (due to lack of net access) Against: None Passes ERR-10: LRM-19 In Section 5.1 remove the word "named". Motion to accept LRM-19 Motion: Mehdi Second: Brad Abstain: Neil Against: None Passes ERR-11: LRM-20 ERR-12: LRM-21 In Section 5.1 add "genvars" to the list and remove the discussion of C constants. Brad: What is a constant? Is there such a thing in Verilog? Isn't it a constant expression? Stu: It islocalparam, specparam constant. David: All of that is termed as 'constant'. Arturo: SV has the const keyword, constants. two flavors, instant constants (write once types) and automatic const. David: This is informative, not defining anything new here. Take out the whole the sentence? There are two places here referring to constants. Ray: informative section does not do anything? Francoise: I agree with removing the c-sentence but this one is informative only if Verilog2001 does not define cosntants, then change it. Brad: The 2001 does not have it, Arturo: If we change it to constant expressions, it will be ok. Brad: Constant expressions are more than the base items. Francoise: This is declaration explanation, in SV, you can declare these constants, as declaration. David: Genvar takes on a value after elaboration and is constant with respect to the simulation. Francoise: Section 3.11 in 1364-draft2, refers to constants. David: Go with the original statement, add the genvars. LRM21, removes the discussio on c-section Motion to accept LRM-20 and LRM-21 as written. Motion: Arturo Second: Brad Abstain: None Against: None Passes ERR-13: LRM-22 Fix BNF to correctly show the lifetim as optional in A.2.1.3. Motion to accept LRM-22 as written. Motion: Mike Second: Francoise Abstain: None Against: None Passes ERR-4 through ERR-19 assignments: David: Need volunteers to deal with the unassigned errata items. ERR-7 - Arturo ERR-8 - Dave ERR-9, ERR-14 - Brad ERR-15 - David - move to future enhancements ERR-16, ERR-17 - Mehdi ERR-18 - Arturo ERR-19 - Brad 5. Review of Extensions: EXT-2: David: Only issue was with an example that worked with fork...join (not part of the actual technology). Mike: Is there an issue related to name-spaces? Arturo: This is related to 7.10.1 global namespace, David: we should deal with that one first, look at ERR-5, it is as resolved by LRM23. ERR-5: LRM-23 Arturo: With global namespace, users can overwrite these names in their scope, such as Semaphores, mailboxes, vendors can provide them. The :: unambigously refers to the namespace. Francoise: This is a modification to the heirarchical name. Arturo: No heirarchy in the global namespace, single scope, use what is provided in there. David: Access what is globally defined, in this scope cannot be overwritten. Arturo: Provided by a vendor, as part of system. David: Cannot be re-defined by PLI, re-use the name. Francoise: Additional scoping rules need be defined. David: The $tasks only at the top or PLI. Arturo: New functioality without re-writing the code. Ray: Does the $root space reside inside of it. Arturo: $root resides below this global space. Ray: What space does the module identifier live within? Stu: The namespace is $root. Arturo: It has been aliased now. David: In BC named namespaces are being considered. Arturo: Those namespaces require them to be imported, users cannot add to it. Francoise: This is similar to package in VHDL. Stu: No problem with :: in $root, if it is referencing to yet another name-space. Is this creating more namespaces than needed? Who is defining the search? Francoise: I thought the addition of namespace was meant to remove $root. Arturo: This is to allow the user to decide to kill it or not. David: Systems have had to deal with the global namepace for backward compability. This is meant to add new names. Stu: Global namespace to me is $root, can create name that is in $root, pli/system task. Brad: You can not import $root to another namespace. We can use the name package rather than namespace. Stu: I would not have problem calling language-namespace, not 'package'. David: Header says 'built-in global namespace'. How is it going to be used? Look at the previous ones defined and show they can be used. Francoise: As a user how do I know what is in the built-in namespace. Arturo: We have to add an appendix to define. David: The suggestion is to remove the name global. Secondly, require :: to be used. Arturo: It maybe a good methodology, stylistic issue, may not be able to make it a rule. Ray: Would prefer to have mechanics of namespaces be the same for all. Ray: Namespace is different that name heirarchy. Michael: Namespace heirarchy different than module heirarchy. David: Three issues have been discussed: 1. remove the term global when discussing "built-in namespace" 2. :: required or not - leave as is 3. does declaration in $root cause warning, error, or ... - leave as is Motion to approve LRM-23 with modification that built-in global namespace will be changed to built-in namespace Motion: Mike Second: Arturo Abstain: None Against: None Passes EXT-2: Continued Neil: The resolution of ERR-5 will not solve the problem related to the use of the wait. It is not clear whether it is the last process or the last process to start that is being waited on. Motion to approve EXT-2 and generate an errata to fix the example (fork..join_none looping problem, replace wait with wait for all processes to start) Motion: Mike Second: Neil Abstain: None Against: None Passes EXT-8: Ray: Without a description of random it is non-portable and works on one vendor. Arturo: They should take only one random number Ray: Does one number start from beginning of case to the end of case? It is not specified here. Arturo: We can put out the code as to how it is implemented. Small number put up at the top, if there is an order, urandom implements the thread stability. Ray: To make it portable, which one is used is required. Thread stable is not sufficient to provide portability across vendors? David: Portability, order of chosen. Ray: If random number from different vendor is different then does not matter how it is mapped in the rand cases. Arturo: We should specify interface for whatever random number generator. One algorithmic definition for $random. Add a statement to explain the order of case numbers (smaller to bigger) David: We need to have description that supports vendor portability. Need description of which weight statements are selected (corresponding to order of selection). Need to specify that $urandom is used (which can be redefined by user for vendor portability) and also define the order of weight evaluation. This will be done in AI-16. EXT-3, EXT-6, EXT-7, EXT-11, EXT-12 Overview: Arturo: Overview presented EXT-3: Requirement generated from Neil. This was reviewed with Neil. Virtual interfaces pass instance of interface as an argument to task/function. Another enhancement is adding a clock domain through a modport. Francoise: How are virtual interfaces instantiaed? Arturo: Virtual interfaces are not instantiated, assign them. Francoise: So it is a ref of an interface? Arturo: You can think of them as that. EXT-11: dynamic Queue, mostly from Superlog donation. Non-synthesiable with these, arrays to dynamic, static, constant access to beginning and end of queue, as well as method access to the queue, regular array operators. Return type is a queue of some type [query functions]. EXT-6 - Need to reconcile with SV-BC proposal. David: Ran out of time. Will continue in next meeting. For the new proposals we will work on approving them at the next meeting. The dealine for submission is tonight at midnight. 6. Next meeting: 29 September 2003 at 11:00pm 7. Close of meeting at 1:05 pm.