[sv-ec] Minutes from 1 December 2003 meeting


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