Subject: [sv-ec] Minutes from 1 December 2003 meeting
From: David W. Smith (David.Smith@Synopsys.COM)
Date: Tue Dec 02 2003 - 13:43:57 PST
Greetings,
I have updated the site with all of the latest documents from the meeting on
Monday. This includes the changes to EXT-12.
 
I am in the processing of completing the LRM changes for SV-EC which will be
posted later today.
 
Here are the minutes.
 
Regards
David
 
 
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 
      Arturo: Correct. This has the same semantics as v2k.
      Jay: Does this allow me to have a task which is entered, do a
          fork..join, and then leave the scope and have the scope within
          the fork..join be active?
      Arturo: Correct.
      Dave: They cannot be accessed outside the scope since they are
          automatic.
      Jay: What if it is not an automatic task but is an automatic variable.
          Can it be accessed?
      Dave: No.
      Jay: Just have the begin k=k+17 $display, with two copies of k.
      Arturo: I do not think this is what the proposal says, it is one
          variable for all the processes, here.
 
      Jay: The example may be better to add a second example with a begin
          end.
      David: Suggested example:
          begin
            automatic int l = j;          // Generates a race condition
            #l $write("%0d", l);
          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
This archive was generated by hypermail 2b28 : Tue Dec 02 2003 - 16:43:49 PST