SV-EC Meeting Minutes 1 December 2003 12:00 pm. Monday (rrrrrrrrrrxrxrx) Voting Members (3/4 or > 75%) (aaaaaaaaaaaaaaa) Arturo Salz (Synopsys) (-aaaaaaaaaaaa-a) Brad Pierce (Synopsys) (--aaaa-aaa---a-) Cliff Cummings (IEEE 1364) (aaaaa-aaaa-aaaa) Dave Rich (Synopsys) (aaaaaaaaaaaaaaa) David Smith (Synopsys) (-aaa-aaa-a-aap-) Dennis Brophy (ModelTech) (aaaaapaaaaaa-aa) Jay Lawrence (Cadence) (aaa-aaaaaaaaaaa) Michael Burns (Motorola) (-aaaaaaaaaaaaaa) Mehdi Mohtashemi (Synopsys) (aa-aaaaaaaaaaaa) Neil Korpusik (Sun) (--aaaaaaaaaaaaa) Ray Ryan (ModelTech) |||||||||||||||_ 1 December ||||||||||||||__ 24 November |||||||||||||___ 17 November ||||||||||||____ 11 November |||||||||||_____ 3 November ||||||||||______ 27 Octobter |||||||||_______ 20 Octobter ||||||||________ 13 October |||||||_________ 29 September ||||||__________ 15 September |||||___________ 2 September ||||____________ 18 Aug |||_____________ 4 Aug ||______________ 21 July |_______________ 7 July Non-Voting Members (attendance based) (------a--------) Chris Spear (Synopsys) (-------------s-) Doug Warmke (ModelTech) (-----s---------) Francoise Martinolle (Cadence) (--a-aaa-a------) Jeff Freedman (ModelTech) (-----------a---) Peter Flake (---a-----------) Stefen Boyd (IEEE 1364) (-a---a---------) Stu Sutherland (IEEE 1364) Guests (non-voting) (--a-a-a--------) Don Mills (LCDM Engineering) (-----a---------) James Young (HP) (-a-------------) Kevin Cameron (National) 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] Added this week (please see the site for existing action items): AI-47: Arturo: Update EXT-12 with comments from meeting Reword last paragraph on page 1 from: the first dynamically-sized item is resized to accept all the available data (excluding subsequent fixed-sized items) in the stream; to: compute the size of the source, subtract the size of the fixed size data elements in the destination, then adjust the size of the first dynamically sized object to the remaining size; Page 3, first example: Change syntax to SV (add ; to function and replace Packet with endfunction) Page 3 BNF: Change first stream_concatenation to streaming_expression and add use in primary. Page 4, end of first paragraph: Change: If the data is smaller than the slice-size, the data is not sliced (no padding is used). to: If, as a result of slicing, the last slice is less than the slice width then no padding is added. Page 4, second paragraph: Change: they recursively traverse the data until reaching an integral type. to: they recursively traverse, in depth first order, the data until reaching an integral type. Page 4, 3rd paragraph: pack operator to pack operation Page 4, 4th paragraph: unpack operator to unpack operation (2 times) Page 4, 7.16.1, 1st paragraph: unpack operator to pack unoperation (3 times) Page 4, 7.16.1 title: Change title to "Streaming dynamically sized-data" AI-48: Arturo: Modify ERR-4 example to show the race condition with automatic. Suggestion of second process follows: begin automatic int l = j; // Generates a race condition #l $write("%0d", l); end AI-49: David: Remove the e.g. clause when putting implementing ERR-50 LRM change. Minutes 12/1/03 taken by Mehdi Mohtashemi 1. Review of the meeting minutes (5 Minutes) http://www.eda.org/sv-ec/Minutes/SV-EC-Minutes-2003-November-24.txt Motion: Accept Minutes of 24 November Moved: Ray Second: Michael Abstain: Brad (was not at meeting) Opposed: None Passed 2. Review of open Action Items (2 Minutes) David: Vassillios asked us to re-reivew EXT-16, to get an agreement a vote which is not a tie, if we can deal with it. eda.org, maybe on line by later today, Third item is AI-18. AI-18: Create appendix for built-in standard package: Assign an owner Volunteer: to be fine David: Cosolidate all uses of :: with std::, and consolidate appendix all of standard packages, looking for volunteer. To create an appendix just for the standard package. Try to find someone to do the editorial documentation. Ray: Just the text or the complete definition? David: Prototype declaration and definition. Will look for volunteer later. 3. Review of Inter-committee dependencies (10 minutes) OCR-2: Discussion on inside proposal from SV-BC David: Intercommittee dependencies. Did anyone look at the inside operator at BC. Dave: No comments on it so far. OCR-3: Sequential constraints David: Anyone here in AC meeting earlier today? Any action/change on the sequential constraints? it is referring to withdrawal to their extension2 (AC). Extension 1 was still keeping the assume. Neil: There is nothing in EXT2 on svAC about assume. David: I think assume is there in another extension. The sequential constraint is withdrawn. Any comments/questions on this from last meeting? Neil: Its part of program block. 4. Review 3.1a Extensions and discussion (50 minutes) Complete review of: EXT-12: Bitstream support ( minutes) David: The latest one is v2, November 17th, posted on the site. Just sent it again to the reflector. Starting with Neil's comments: Page 1: Issue 1. Neil: Last paragraph Page 1, the sentence about 'unbounded dynamically sized' is confusing. Dave: The sizing happens first, What size the dynamic sized needs to be, then the transfer occurs. If fixed size byte appears first, followed by dynamic sized for a 10 byte, fixed size gets the first byte, dynamic size byte gets the 9 bytes. If in reverse, the dynamic sized gets the first 9bytes, the fixed size gets the last byte. Neil: I do not have a problem with that, writeup is not clear. Dave: Exclusion should mean subtracted. Algorithm should be fixed size data should be calculated then the dynamic sized gets all rest. When you say excluding the data, you mean the size of data. It does not distinguish between the content and the size. Neil: I think intent is fine. David: How to clarify it in the text? Does it need something else? Dave: It is two steps, determine the size of dynamic structure and the second step to transfer. Ray: Depending on the size, it could cause an error. Dave: Yes. Ray: If the structure contains qint, followed by q of bits, Dave: I think that is an error, only one dynamic object can take it. David: How do we deal with it? Dave: Both the content and size of data, we are talking about excluding the size of data. David: So you are excluding all fixed sized data. Dave: You calculate the size of the source, subtract the size of fixed sized data element (in the destination), then adjust the size of first dynamically sized object to match the remaining object. Neil: The error situation is discussed later, page 2. Ray: That could be large size queue followed by small queue. Why can't you have that. Dave: It gets complicated. Ray: Would there be any reason to handle something that you do not know what it is. If you had a dynamic sized inside it, is it saying that I can only get the bits if there is no other dynamic sized item. Dave: It makes the compile time checking more complicated. David: Here is the proposal. The sentence in the last paragraph gets replaced with: compute the size of the source, subtract the size of fixed sized data element, then adjust the size of first dynamically sized object to the remaining size. Arturo: I think this is more confusing than original one. Neil: I think the original one is more confusing. Arturo: In the verbage you need to say that this is the algorithm. Dave: Can we propose later errata for this. David: Lets go through the rest of proposal and see if this is the only change. We have hit two of Neil's questions. On to the third question. Page 2: Issue 3. Neil: Where it says that it is of type Bits should the order of the bit range be on the left? Dave: It should not matter since it is converted to a stream whether it is packed or unpacked. Arturo: This is an unpacked array so it is ok. Ray: On page 2. With this assignment, variable to cast of another variable. convert it to bitstream and cast it to the left hand side then convert pack. Is this the same as explicit casting? Arturo: You cannot cast an unpacked array. This is what this allows. You can do it with integrals. Dave: Explicit casting of unpacked/packed items is prohibited. David: The question is, if it is legal as an explicit cast does the bitstream conversion result in the same thing. Jay: The answer to the question is yes. David: The new thing ist that you now have this with unpacked data. Ray: When you packing a struct if I happen to have real data then I cannot use this. Is there a way to get around this? Dave: I think the answer is no, since real numbers are not allowed in packed data. Jay: We could define it in terms of bits2real and real2bits then you could include it. Arturo: We could do that. Ray: In streaming data, you may have non-integral data, try to redefine it with a nunion, you cannot do that. Page 3: Issue 4. Neil: Looks like typos here. Arturo: Correct. Issue 5. Neil: In the BNF box at the bottom stream_concatentation is duplicated. Arturo: Correct. The first should be streaming_expression. It is used in primary. Brad: Where is it used? Where does it go? Arturo: It is used in primary. Look at concatenation, this is modeled after that. David: For the first one we should change it to streaming expressions and add the primary production using it. Page 4: Issue 6. Neil: The paragraph below the example seems really strange. For example if it is a list will it walk the list to find all integral types? Arturo: This is only for arrays, structs or classes. Handles are not a bit-stream type so it would be an error. Jay: Is this going depth-first search and be specified? Brad: Do we define the algorithm for structure literals? Arturo: Not sure what the question was. Jay: Imagine s1 with struct s2 and integer, s2 contains an integer. With depth first you get the integer in s2 if depth first. Arturo: What would it mean to be breadth first? The left to right implies depth first. Jay: I agree that this makes sense. Ray: Not sure what depth first clarifies. Jay: You could do it breadth first. Ray: I thought the order of declaration was used. Brad: Add "in depth first order" after "recursively traverse". Arturo: Fine. Neil: The intent is to find all the streaming types. If a non-streaing type is found then it is an error. Arturo: Correct Ray: Does slice size mean the width of each slice or the total size of the data? For data of size 12 does it get sliced and does it get padded? (Last sentence of first paragraph on top of 4). Arturo: If you specify a slice of size 8 with 2 bits of data there is no slicing to be done. Ray: With 12 bits and 8 bits is there padding? Arturo: There will be 4 bits of padding. Arturo: If the data (or the remainder) ... Ray: When the data is sliced partial words are not padded? Ray: Suggest the following: If, as a result of slicing, the last slice is less than the slice width then no padding is added. Neil: Ok Arturo: Ok Issue 7. Neil: Should refer to operation and not operator in the two paragraphs above the example. There are no pack and unpack operators. There is only the streaming operators. David: It is being viewed as two different operators depending on LHS and RHS usage. Dave: It depends on the type, source or destination, as to you do a pack or unpack. David: The one would be pack on one side, and unpack on the other side. Neil: If that is what you do I find it confusing. Just use operations instead of operator. Arturo: It is fine. Neil: The long paragraph on the bottom is the same thing. David: There is no where that the pack operator is defined before you use it. Arturo: It is defined there. David: The behaviour of streaming operator is mentioned, streaming operator is defined by which side of the operation it is on. We need to clarify. Arturo: 1364 has the same problem. They talk about it with the left/right hand side. Dave: There is no pack operator there. David: There are pair of operators for streaming. Section 7.16, rationlize the verbage. Usage of streaming operator when doing pack/unpack operations seems to be the point. Not defined. I think Neil is right to change them to operations. Arturo: Neil is making a distinction between the operation and operators. I agree with the change. David: So we have to do it in 7.16.1 where ever pack/unpack operator was used. Issue 8. Neil: The section 7.16.1 talks about packing and unpacking. The title is somewhat misleading. David: So you are suggesting it should be 'unpacking/pakcing unsized data' Dave: Arturo's usage for unpack reformating is the same. David: The paragraph Neil refers to on page 5, talks about packing. Ray: Is it using the with expression. David: It is using the with expression, dynamically sized data during packing and unpacking. Should we change it? Arturo: I think streaming dynamically sized-data is better. David: O end Ray: Do you get multiple copies of k in each of the branches? Do they have overlapping lifetimes? Arturo: Correct. Motion: Accept ERR-4 with addition for example from above Moved: Arturo Second: Neil Abstain: None Opposed: None Passed ERR-44 (Jay): Consolidation of implication operators David: It was out on Nov 24th. Should we go off at this point if Jay can not walk through it. Jay: We have already walked through it. David: You have list of changes in the LRM? Jay: Yes. Boolean expression used inside of constraints for now. future in assertion. Neil: I have not checked all the references, but I agree with the consolidation. Ray: Does this just apply to constraints. Jay: Yes. May be used in for boolean implication operator later. Motion: Accept ERR-44 Moved: Jay Second: Neil Abstain: None Opposed: None Passed ERR-52 (Arturo): Events used within coverage are immediate David: It is better to delay this until next meeting. Neil: How are we going to do this, with EXT-16. David: To make the behaviour of event associated with it, to make the trigger of event, you do not need ERR-52. Neil: I would prefer to do ERR-52 first before EXT-16. David: That is fine. ERR-45 (Dave): Wildcard equality Dave: I am waiting for inside operator resolution, then I do not have to worry about wildcard. David: We will wait until the inside operator proposal is resolved. No Proposals: ERR-8 (Dave) Using event control with methods ERR-20/21 (Arturo) Update of example based on ERR-4 ERR-47 (Brad) Keywords as identifiers ERR-56 (David) Fix all locations in LRM for built-in package to use std:: 6. Meeting logistics (2 minutes) December 8 Complete Errata list review and votes Review and re-vote on EXT-16 Start LRM editorial review 7. Next Meeting Monday December 8, 2003, 11:00am-1:00 pm PST 8. Meeting adjourned at: 1:52 pm