SV-EC Meeting Minutes 7 April 2003 11:00 am. Monday Voting Members (3/4 or > 75%) (rrrrrrrrrrrrrrrxrxrrxrrrr) (-----a----aaaaaaaaaaaaaaaa) Arturo Salz (Synopsys) (-----aa-aaaaaaaaa-a--aaaaa) Brad Pierce (Synopsys) (aaaaa-aaaa-aaaaaaaaaaaaaaa) David Smith (Synopsys) (-aaa-a-aaaa---a-aaaa-aaaa-) Dennis Brophy (ModelTech) (---aaa-a-aaaaaaaaaaaaaaaaa) Francoise Martinolle (Cadence) (------------aaaaaaaa-aaaaa) Jay Lawrence (Cadence) (-------------------a-aaaaa) Jeff Freedman (ModelTech) (-------------------aaa-aaa) Michael Burns (Motorola) (aaaapaaaaaaaaaaaaaaaaaaaaa) Mehdi Mohtashemi (Synopsys) (-aaaaaaaa-aaaaaaaaaaaaaaaa) Neil Korpusik (Sun) (-aaaaaaa-aaaaaa-aaaa-aaaaa) Stefen Boyd (IEEE 1364) Non-Voting Members (attendance based) (----------------a------a--) Chris Spear (Synopsys) (a-aaaa-aaa-aaaa-a-aa---a-a) Cliff Cummings (IEEE 1364) (--------aa-a-a-aaa-a--a-a-) Stu Sutherland (IEEE 1364) 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-aaaaaaaaaaaaaaaaaa-aaa) Kevin Cameron (National) (-----a-a-a-a--------------) Tim Corcoran (WHDL) Inactive Members (Missed last 4 meetings) (-aaa----------------------) Dave Kelf (Synopsys) (----------------a---------) Jayant Nagda (Synopsys) (aaaaaaaaaaaa-------a------) Karen Pieper (Synopsys) (---a-aa-----a-------------) Kurt Takara (0-in) (--a--a-a------------------) Michael McNamara (Verisity) (aaa-----------------------) Paul Graham (Cadence) (aapaa----------ma----a----) Peter Flake (Synopsys) (a-------------------------) Roy Armoni (Intel) (aapa-a---------------a----) Simon Davidmann (IEEE) (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: [identified with AI (#) in this text, # refers to AI number] 1. David: : Start issue list for 3.2 2. David: LRM-15 11.22: Raise issue of order dependence between static int and int static with BC. 3. Arturo: LRM-1 13.8/8.9 : Reword second and third paragraph of 13.8 for inclusion in 8.9. 4. Arturo: LRM-47 11.16: Add semantic constraint to support lack of ordering but not duplication. 5. Arturo: Section C: add note on iterator to clarify what happens to an iterator pointing to an element that is removed from list 6. David: 3.9: Add issue to 3.2 to clarify passing event type through port Minutes 4/7/03 taken by Stefen Boyd 1. Approve the minutes of 14 March 2003 Motion to approve: Arturo Second: Mehdi Abstain: Jay Against: None Minutes approved 2. Meeting schedule The schedule for getting the LRM complete has been moved up to April 27. The approval by the committees must be by April 27. This means that we will have to vote on the sending of the LRM to the board by April 27. Discussion ensued with the following conclusion. Voting on LRM will commence on April 21 and complete on April 25. This will be an email vote by company. Elligible companies will be announced at the start of the vote based on current attendence. See the list above for current status. 3. Review of LRM Issues. There are 3 sets of issues being reviewed. The first is on the web site. The second was sent in by Jonathan Bradford. The third was raised by Neil Korpusik. All will be available on the reflector. A. LRM Draft 4 Issues on web site: Much of this was based on the document sent by Arturo and Peter on 14 March responding to each of these items. LRM-1: Sections 1, 4.6.1, 4.8, 10.5.2, 10.5.4, 12.6 change parameter to argument Sections 13.3.5, 13.4, 15.3 should be left as they are (they are correct) Section 13.8 $wait_var() Arturo - Can merge section with 13.8 with 8.9. Second paragraph of 13.8 can go into 8.9. Mehdi - Looks like we accepted Arturo's third proposal that eliminated wait_var, but it didn't get into document. Decision was to remove 13.8, rewrite 2cnd and 3rd paragrpahs in 13.8 and put into 8.9. Section 13.1 Remove last sentence of second paragraph which refers to $wait_var(). Section 15.2 In the phrase "The skew parameters determine" remove the word parameters. LRM-2, 3: SV-BC issue. LRM-7: no change Arturo - string can contain x's David - no action needed LRM-8: typedef in generate Arturo - should not be allowed David - Will change "may not" to "shall not" LRM-10: nba trigger Arturo - Yes needed in bnf, but not precedence table David - no action needed LRM-11: import and export DPI David - no action needed LRM-14: :: precedence Arturo - should be the same as '.' Kevin - should be higher than '.' Stefen - same line as '.' but higher precendence in that same line of precendence table David - Will add :: to the first row between [] and . in Section 7.9 LRM-15: int static or static int David - Looks like something left over from Superlog... will raise with BC LRM-16,17: inside/dist Arturo - already taken care of LRM-18: := and :/ operators Arturo - Needs to be added to next to last row of assignment table at end. LRM-19: => David - Already there, no change required. LRM-20: static before or after constraint type Arturo - Leave it as is. It is not a data-type so it is consistent with member declarations. Neil - should be consistent David - What is done for LRM-15 may influence decision for this one. Will run by BC along with #15. Michael - Seems I remember there being some places where order is important to give different meaning. The position should follow semantics of intent. LRM-21, 22: unsigned Arturo - should make order consistent as suggested David - change unsigned int to int unsigned LRM-23: $srandom object Stefen - just use same term as is in bnf David - Check to see if this is "class-instance-identifier" or what. LRM-47 - private/protected/virtual Question of ordering on class attributes. Desire to make it order independent. The BNF supports this but is missing semantic constraint. Concensus to leave bnf as is. Stefen - Point was that we need to add text to specify semantics. David - Arturo will provide words to add to section to clarify semantics. B. Jonathan Bradford's review: 1) 3.7 Chandle, p11 define/clarify why chandle cannot be used in structures or unions Jay - Should be able to put them in unpacked structures Arturo - Need paragraph stating that they can. David - Will change 2) 3.8.9 atoi() & 3.8.11 itoa() p15 allow atoint() as alias for atoi() [ to complement atohex(), atooct() & atobin() ] Consensus not to change 3) 3.9 Event data type p16 in description, clarify if event data type can be passed through port . Arturo - Although allowed in bnf, shouldn't be on ports. Jay - Discussed in BC without covering events - did discuss logic and reg Neil - But they can be passed to functions and tasks as variables, so what's the difference. Jay - The definition of port interconnect was assignment wich doesn't define events. David - See it in singular_type of bnf. Stefen - That David - Three options: ask BC to define assignment for event ports, redo bnf to disallow, or add restriction to text, or ignore problem Jay - Shouldn't be a problem, leave the syntax and open an issue for 3.2 to clarify the semantics. 4) 4.2 Packed and unpacked arrays p29 Note: unpacked array size, a range[n:m] or a singular size [p] as range shorthand ([p-1:0]) can be used to specify dimension - the text does not say this - it says no range and singular size only. Arturo - unclear what question is Stefen - New feature shouldn't be introduced in a "Note:" David - will remove "Note:" from paragraph 5) 4.7 Array assignment p33 p = {d[1:3],"hello", d[4:5]}; This is the basis of list and queue manipulation. Good. Can it be extended to show pop ? p = d[1:4] Clarify that the dynamic array can be through an interface port. Arturo - there was a queue enhancement that didn't get donated, but should have Stefen - These are allowed in the BNF since there is no history of distinctions between what can be declared and passed to functions and tasks, and what can be put on ports. Arturo - They should be allowed on ref, but not regular port David - Are we going do create restriction? Jay - Now that we have continuous assignments to variables, this should work Arturo - Was adding note to disallow dynamic objects Jay - We defined constinuous assignment in terms of procedural assignment with special sensitivity. David - Sounds like we're saying they can go through ports since variables may be put in continuous assignments. Can there be queues of queues ? How in above case can p be set to "a", "b", "c", "hello", "de" i.e. p = {d[1:3], "hello", (d[4:5]) }; ? as there may be an ambiguity in arrays of arrays and what is extending what slices & elements ? Arturo - queues of queues is really dynamic arrays and no, there can not be dynamic arrays of dynamic arrays. 6) 4.8 Arrays as arguments p34 ... passed arguments of compatible type and size ... Compatible type does not mean identical type - i.e. assignment compatible. Hence fun(int a [3:1][3:1]); actual reg b [3:1][3:1]; should work as the copied values from reg to int are assignement compatible (x to 0 etc) ? Arturo - should be ok 7) 4.10.1 num() p37 int imem[*]; $display (map.num); imem or map variable ? David - looks like he found a typo 8) 7.5 Wild equality and wild inequality p52 operator !=== is a mistake surely, mean !== ? David - Found another typo also <= non-blocking assignemt operator missing from precedence table. Arturo - he has point that it doesn't need to be in table 7.2, but should be there for completeness 9) 9.6 fork join p71 function int wait_20; contains timing ! (// illegal note just talks about fork/join & return) Arturo - should remove #20, but actually you can use fork/join_none Stefen - but the BNF currently disallows it Jay - Don't like this as a new way to get side effects David - Will change function to task and avoid issue of fork/join_none in functions 10) 10.2 Tasks p76 formal arguments input, output, inout add ref as a 4th style - reference 10.5.2 later Do for functions too. David - top of page should have ref as fourth item on page 76 and page 78. C. Neil's notes: 4.3 - p29 Neil - shouldn't that example after first paragraph be an unsigned int? Arturo - There's nothing wrong here, but we can remove "int" since we don't need type 9.6, p70 - Table 9-1 Neil - delete second sentence of first description 10.2, p75 - const ref Neil - no mention of const ref Arturo - adding ref is already an issue 10.5.2 - 'ref' but not 'const ref' Neil - BNF doesn't allow it Arturo - Needs to be added to bnf for tf_declaration David - also shows up on interface declaration, should const be added here also... no. 10.3, p78 end of example - function args passed by value Neil - Need to remove restriction - possibly by moving this text to 10.6 Arturo - just strike that sentence - change it to say that it's like tasks. 13.4 - compiler vs runtime check Neil - says run-time and compiler check at different points Arturo - Dynamic type is typeless and needs run-time check whereas typed mailbox will enable compile time check. 13.5.1 - ->> event missing Neil - Should have non-blocking event here. David - 8.10 has it, move it? Arturo - make it 13.5.2 - Triggering a nonblocking event Appendix C - list methods Neil - some discuss disposition of iterator after method, but it seems to be missing from many. For example, C.5.17 - clear, doesn't explain what happens to iterator. David - what happens to iterator? Neil - Should be discussed with iterators. Discussion about how to get to head of list using iterator... can't because it's done using list, not iterator. 4. Meeting closed