SV-EC Meeting Minutes 19 February 2003 Voting Members (3/4 or > 75%) (rrrrrrrrrrrrrrrxrxrrx) (-----a----aaaaaaaaaaa) Arturo Salz (Synopsys) (-----aa-aaaaaaaaa-a--) Brad Pierce (Synopsys) (a-aaaa-aaa-aaaa-a-aa-) Cliff Cummings (IEEE 1364) (aaaaa-aaaa-aaaaaaaaaa) David Smith (Synopsys) (-aaa-a-aaaa---a-aaaa-) Dennis Brophy (ModelTech) (---aaa-a-aaaaaaaaaaaa) Francoise Martinolle (Cadence) (------------aaaaaaaa-) Jay Lawrence (Cadence) (aaaapaaaaaaaaaaaaaaaa) Mehdi Mohtashemi (Synopsys) (-aaaaaaaa-aaaaaaaaaaa) Neil Korpusik (Sun) (-aaaaaaa-aaaaaa-aaaa-) Stefen Boyd (IEEE 1364) (--------aa-a-a-aaa-a-) Stu Sutherland (IEEE 1364) Non-Voting Members (attendance based) (----------------a----) Chris Spear (Synopsys) (----------------a----) David Rich (Synopsys) (----------------a----) Jayant Nagda (Synopsys) (-------------------a-) Jeff Freedman (ModelTech) (aaaaaaaaaaaa-------a-) Karen Pieper (Synopsys) (---a-aa-----a--------) Kurt Takara (0-in) (-------------------aa) Michael Burns (Motorola) (aapaa----------ma----) Peter Flake (Synopsys) Guests (non-voting) (--a------------------) Adam Krolnik (LSI Logic) (---a-a----------a----) Alec Stanculescu (Fintronic) (----------------a----) Alex Zamfirescu (ASC) (---------aa-a-aa-a-a-) Don Mills (LCDM Engineering) (aa-aa----------------) Heath Chambers (HMC) (aaa-aaaaaaaaaaaaaaaaa) Kevin Cameron (National) (-----a-a-a-a---------) Tim Corcoran (WHDL) Inactive Members (Missed last 4 meetings) (-aaa-----------------) Dave Kelf (Synopsys) (--a--a-a-------------) Michael McNamara (Verisity) (aaa------------------) Paul Graham (Cadence) (a--------------------) Roy Armoni (Intel) (aapa-a---------------) Simon Davidmann (Synopsys) (aa---a---------------) Steven Sharp (Cadence) (-----a---------------) Stephen Meier (Synopsys) (-aaaaa--a------------) Tom Fitzpatrick (Synopsys) (-----a---------------) Zeev Kirshenbaum (Verisity) r => Regular meeting x => Extra meeting (Presence counts for attendance, absence does not) a => Attended p => Attended by proxy - => Missed Action Items: Action items are documented on web site. New action items are: 1. David - Setup vote on: private vs local support for public keyword mailbox and semaphore waiting queues being defined as FIFO 2. David - Modify Section 3.10, BNF in A2.1.3 to provide support for forward declaration of enum, struct, class, and union. 3. Mehdi - Add statement to Section 12.4.2 about num value not being vaild for a defined length of time. Minutes taken by David Smith (what there are of them). 1. First, my apologies for the confusion on the time of the meeting. I think we still accomplished what we needed to since we went over all of the open comments. The primary benefit of this meeting was the identification of some items to vote on at the next meeting. 2. Updated results of Scheduling Semantics (David) The Scheduling Semantics Working Group reached agreement yesterday (Tuesday) on the semantic content, the terms, and the wording of the scheduling semantics. Some editing is left to be done and the document will be shared to all working groups. 3. Changes for the exchange of [] and [*] and for the replacement of var with ref are being completed and will be posted to the web site by Friday. 4. Complete Review of Chapter 11. Section 11.14 Kevin raised the issue of the meaning of $cast. The definition in 3.15 was referenced in response by Arturo as being the same syntax and usage. This is also included in the section. Section 11.16 Francoise raised the issue of local versus private keywords. Arturo pointed out that the use of local comes from Java and that using the term private would not be quite the same as with C++ since there it is used as a section identifier and all declarations after that are private whereas in SV it is part of the declaration. Michael indicated that it is probably better for it not to be private since it could be confusint. The decision was to put it to a vote at the next meeting. There was also a discussion on the wording in the third paragraph, second sentence of this section. The issue was what it meant to not inherit local members. The decision was to reword the sentence as follows: Further, these local members are not visible within subclasses. Section 11.20 The question of whether public is required was discussed. Arturo indicated that its primary use is for documentation since all mehtods are public by default. It was decided to hold a vote on whether public should be included at the next meeting. Section 11.22 Kevin raised the issue of the incompatability of the typedef defined in 11.22 and the BNF and definition of typedef in Section 3.10. After some discussion it was agreed that we need to modify the BNF to support: typedef struct a; typedef enum b; typedef union c; typedef class d; and that Section 3.10 should be modified to support. An action item was generated to do this. Section 11.24 Kevin raised the issue of the "inappropriateness" of the phrase "shoot themselves in the foot". After observing that we all understood what it meant we decided to change it to: However, SystemVerilog’s multi-threaded, re-entrant environment create many opportunities for users to run into problems. Kevin raised a continuation of the discussion on static versus dynamic classes with no resolution. It was discussed that pursuing the synthesizability of classes would be a useful item and someone should pursue research into the definition and implementation of this with a goal towards a possible donation. Until then there is little we can do to address. Arturo raised the option of swapping the first and last columns in Table 11-2. It died due to lack of interest. Kevin raised the question of handles versus pointers and that he was trying, without success, to get the CC committee to change its mind. No action in EC. 5. Review Chapter 11. David indicated that the review of Chapter 11 will not go into detail on the issue of events at this time. The reason for this is that Stefen is creating a document outlining all of the options that have been discussed, the arguments for/against, and a procedure for voting. At the face to face we will go ahead and vote on this. Only new issues related to events are open for discussion in this meeting. Section 12.2 and 12.4 Keving raised the issue of support for using semaphores and mailboxes for defining hardware and with synthesis support. Arturo pointed out that what has been defined and implemented in the reference implementation is for testbench support and consideration has not been given to synthesizable aspects. Mehdi pointed out that much more needs to be done if these items were to be extended. This issue is similar to the use of classes for synthesis and we have no way to deal with them at this time. Mehdi pointed out that these features are heavily used by existing Vera users and they have many more queueing mechanisms that they would like to have (completely unrelated to synthesis). Section 12.4.2 Kevin raised the issue that the num method value can, and most probably will, be invalid after the method returns (due to other processes creating or retrieving the contents of the mailbox). It was decided that a statement would be added to the section to indicate that there is no guarantee that the number retrieved from the num method would be valid for any length of time. Section 12.2.3 and 12.4.5 Kevin raised the question of why the mailbox (and semaphore) waiting queues are FIFO. Arturo responded that this was so that testbenches created for one vendor will work the same with another vendors implementation. There was disagreement as to whether this was required. A vote will be held at the next meeting.