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