Subject: [sv-ec] Minutes from 20 October meeting
From: David W. Smith (David.Smith@synopsys.com)
Date: Tue Oct 21 2003 - 23:03:33 PDT
Greetings,
Here are the minutes from the last meeting (including the action items). They are also posted on the site.
Regards
David
SV-EC Meeting Minutes
20 October 2003 12:00 am. Monday
(rrrrrrrrr)
Voting Members (3/4 or > 75%)
(aaaaaaaaa) Arturo Salz (Synopsys)
(-aaaaaaaa) Brad Pierce (Synopsys)
(--aaaa-aa) Cliff Cummings (IEEE 1364)
(aaaaa-aaa) Dave Rich (Synopsys)
(aaaaaaaaa) David Smith (Synopsys)
(-aaa-aaa-) Dennis Brophy (ModelTech)
(aaaaapaaa) Jay Lawrence (Cadence)
(--a-aaa-a) Jeff Freedman (ModelTech)
(aaa-aaaaa) Michael Burns (Motorola)
(-aaaaaaaa) Mehdi Mohtashemi (Synopsys)
(aa-aaaaaa) Neil Korpusik (Sun)
(--aaaaaaa) Ray Ryan (ModelTech)
|||||||||_ 20 October
||||||||__ 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---) Francoise Martinolle (Cadence)
(---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-29 (Arturo): Add the following list of changes to EXT-11.
Section 4.14.1: Add "and rules except as defined below" to first
sentance in section
Section 4.14.1: Remove duplicate rule 4 (same as 2).
Section 4.14.1: Add Z to the last two rules.
Section 4.14.1: Fix typo of "then" in the next to last rule.
Section 4.14.1: Is the use of "i.e." appropriate in the next to
the last rule and should it be added to the last example.
Section 4.14.1: Remove and from "argument passing and semantics"
in NOTE.
Section 4.14.7: Need to add argument to push_front.
Section 4.15.1: Add new BNF for method that includes the with clause.
Section 4.15.1: Add note to indicate difference with constraints.
Section 4.15.1: Add note about order of evaluation not being defined
and there side effects are unpredictable.
Section 4.15.1: The "name" in "name item" in the last sentance in
paragraph 5 needs to be emphasized (not clear what the emphasize
should be).
Section 4.15.1: Resolve first/last overload with associative array.
Extend find_ to all methods.
Section 4.15.1: remove "a" from 'value a or" in description of max
function and change minimum to maximum in max function. Fix
type of unique_inex in definition of unique_index method.
Section 4.15.1: Define the type of the expression that can be used
with the "with" clause.
Section 4.15.2: Change it a semantic error to use with "with" clause
with reverse and shuffle methods.
Section 4.15.2: Change << 4 to << 8 in last example.
Section 4.15.3: Add the following to each of the reduction methods
(changing as appropriate for the method): ", or if a with clause
is specified, returns the sum of the values yielded by evaluating
the with expression for each of the array elements."
Section 4.15.3: Add legal types of arrays for which array reduction is
valid.
Section 4.15.3 (second one): Change 4.15.3 to 4.15.4 (two of them).
AI-30 (Arturo): Add the following list of changes to EXT-9.
Section 12.14: Typos in BNF "task_portlist" goes to "tf_portlist"
rs_case_item colon to optional.
Section 12.14: Add BNF to A.6.12.
Section 12.14: The display function is should have the closing brace
replaced with a parenthesis on each of the examples.
Section 12.14.1: weight description of positive to non-negative.
Section 12.14.1: Add missing ; in example.
Section 12.14.1: Add BNF section reference to BNF fragment.
Section 12.14.1: Fix typo in "A weight is only meanigful".
Section 12.14.1: Add "this implies..." to the last paragraph to clarify
weight meaning.
Section 12.14.2: Fix typo on "ensequence" in example.
Minutes 10/20/03 taken by Mehdi Mohtashemi
1. Review of meeting minutes from 13 October 2003 meeting
Neil: The erratas were approved instead of accepted, all the votes were
correct but there are some types. ERR-14 was labeled ERR-7.
David: Changed the minutes to correct.
Motion: Accept the minutes from 13 October 2003 meeting as ammended
Moved: Neil
Second: Arturo
Abstain: None
Against: None
Passed
2. Review of 3.1a Extensions and discussion:
Review and approval:
EXT-11: (Dynamic Queue)
4.14
Arturo: Based on Verilog arrays but it resizes automatically. Use
of $ for index in declaration and to retrieve end of queue.
Walk through of example in 4.14 and 4.14.1. An empty array
declaration is now used as an empty queue (to clear the queue).
Michael: Is it intended to allow queues of primitive types or other
types?
Arturo: You can have queues of anything.
Dave: Any place where you can use an unpacked array you can use a
queue.
Brad: But you cannot have an empty unpacked array.
David: Open Ray's question of limiting to a single dimension.
Ray: Then if not one-dimension can the by multi-dimension? Can I
have a 2-dimensional queue with $ for both dimensions.
Dave: Why is that a limitation.
Arturo: Can be multiple dimensional. Can have a queue of queues.
Dave: This is the specification of an index so can be an index.
Arturo: You can have a queue of dynamic arrays, queue of queues,
etc.
Ray: I have additional questions when we get to the appropriate
sections.
4.14.1:
Arturo discussed example plus slices.
Dave: Need to add fact that a, b, and n are expressions.
Neil: That was one of my questions. Lots of examples but not
much text.
Arturo: There are no new restrictions with respect to unpacked
arrays.
Dave: The key thing that is different is that the slice can
have a variable width. The last section on page one is a
set of rules and not examples. What is missing is defining
that a, b, and n are expressions in the rules?
Ray: c, d, and e can be handled by ...
Neil: Yes rules, but did not answer my questions, looked at it in
isolation, can look at it later, no need to duplicate
everything.
Ray: concatenation can answer some of Neil's questions
Neil: maybe reinforcing the statement should be sufficient.
all the same rules apply, should say this in there.
Arturo: Every property of arrays still hold.
Neil: If this is reempasized then it would be clear. So all of the
same operations and rules apply.
David: We should add to the first sentence that all of the same
rules and operators apply, except as defined in the rules below.
Action item AI-29 added based on discussion.
Neil: Rules 2 and 4 seem to be the same
Arturo: There is some redundancy here. Remove no 4.
Action item AI-29 added based on discussion.
Neil: Need to add support for Z in the last two rules.
Neil: In the last rule, the word "then" is not needed.
Action item AI-29 added based on discussion.
Brad: Rather than saying what invalid index value, say what the
valid ones are.
Arturo: Replicating the existing LRM. The difference comes
in with read and write. distinction there.
Micheal: But it is not between read and write
Brad: Then invalid depends on read and write operation.
Ray: The paranthesis in example is defining.
David: Not exactly true, you can write to +1,+2 but you can not
ignore the first one.
Arturo: Can do it in one shot, concatenation is done.
David: Is $+2 is valid index value.
Arturo: It is invalid, in read operation you get an empty queue.
Ray: You can not say queue 10 is this value then the size is 10.
Queue.10 is 5, to have 11 elements.
Can target of queue assignment be slice of a queue? (Yes)
If slice of queue is beyond the elements read (union of orig
queu and empty element)
How about target is beyond? left hand can be slice?
Would like to define a queue of an explicit size with
declaration with most of the items are undefined.
Arturo: The left hand can be a slice but it has to exist.
Michael: Bit select not the part select.
Arturo: No difference we are using bit select for part select.
Michael: Can go outside the existing range as long as it is only
by one.
Neil: Can I assign an array to a queue?
Dave: With a casting operator covered in the bit stream casting.
Neil: Array assignment?
Dave: You will be able to with the casting proposal.
Arturo: Section 4.7 discusses the arrays. For assignment like
dynamic arrays. Static array and queue ...
Michael: Last "and" is typo in the statement.
Action item AI-29 added based on discussion.
Ray: When asign a queue to another queue, if they are different
size. Queue p empty, queue r 10 elements.
Arturo: Yes, p will get 10 elements. Queues do not have to re-copy
the entire array
Micheal: The syntax is same for dynamic arrays and queues?
Dave: Not exactly the same.
Arturo: In dynamic array you can not reallocate some portion of
array, have to re-allocate the whole array.
Michael: Elements would shift when added, but implemntation.
David: System Verilog has references, arguement references
not declaration.
Ray: Assign queues of different lengths does it matter?
Arturo: A larger one extends new array and smaller one shrinks.
Ray: Queue of queues does not have to be rectangular.
Arturo: Correct.
4.14.7:
Neil: Looks required argument missing in prototype of push_front
(push_back is correct).
Action item AI-29 added based on discussion.
Ray: These are only defined for one-dimensional array.
Arturo: They only operate on a queue.
Michael: Need an example of queues of queues.
4.15.1:
Neil: Shows list of arguments in method. Is it possible to have
more than one argument?
Arturo: There are no methods using list of arguments.
Brad: This does not go into the BNF correct?
Arturo: Covered by existing syntax. Need to add this to BNF
due to "with".
Action item AI-29 added based on discussion.
Neil: Why are they inconsistent, {} in one place, () in another?
Arturo: Constraints in one, then the other is part of expression.
Add a note to indicate difference with constraints.
Action item AI-29 added based on discussion.
Ray: Can the with have side effects?
Arturo: Not disallowing it but there are no guarantees. Not
defining traversal order.
Brad: Ususally do not describe areas where side-effects are
allowed, vs describing where it is not allowed.
Ray: Should state something about order of evaluation not being
defined and therefore side effects are not predictable.
Action item AI-29 added based on discussion.
Dave: This is a general verilog rule.
Neil: Bottom of page 3. Do the variables need to be declared
when used with the with?
Arturo: Example in page 4, x is not declared anywhere, type is
known, scope is withing the with statement. x stands for
array index expression.
Neil: Is this an implicit declaration?
Arturo: The scope of the x is only within the with rule.
Dave: This is the same as the foreach.
Arturo: It really is an alias. X is an alias for the queue in the
first example. If you would like to think of declarations it
is a reference to the element of that type.
Neil: What kind of side effects?
Arturo: There are none. Only the user code has side effects.
Ray: "The name item" in the next to last sentance needs to be
changed to. Put in courier.
Action item AI-29 added based on discussion.
Neil: First and last can be used on any arrays not just queues.
First and last are already defined for associative arrays
and are different.
Arturo: Need to rename first and last to be something else.
first_item and last_item?
Action item AI-29 added based on discussion.
Brad: find_first and find_last?
Neil: There is a typo in max, extra and it should say maximum.
Action item AI-29 added based on discussion.
Neil: What if the type makes no sense?
Arturo: It is a type error.
David: What is the type of the expression that is legal?
Ray: Does it not say expression has to evaluate to boolean?
David: What is the legal definition for the expression?
Michael: You need that operator for unique index.
Arturo: The types that with a relational operator defined works.
Action item AI-29 added based on discussion.
Brad: Is < and > required?
Arturo: Yes. C handles only one where it might be otherwise.
4.15.2
Neil: With clause ignored in reverse and shuffle. Why not an error?
Arturo: Change to semantic error.
Action item AI-29 added based on discussion.
Neil: Last example shift by 4 or 8 bits?
Action item AI-29 added based on discussion.
Ray: Shuffle is not portable. Need to have algorithm and how it
is used.
Arturo: If we can define a mechanism it would be good. Not sure
how to do it yet.
4.15.3
Neil: The array reduction methods do not seem that useful.
Arturo: Sum method is used heavily. Xor for CRC calculation.
The rest are there for completeness. Using reduction
operators from bit vectors to upacked arrays. Need to do
declaration and initilization. It would be a 4 line program.
This is just simplification. Tests on RAMs this is used for.
Neil: The sort routine is good to have but some of these are not
necessarily needed. User can code it easily.
Dave: Could we define the unary operators to work on these instead
of new functions.
Michael: for bitwise operator on say a byte element, do you end up
with a bit or byte answer?
Arturo: Byte answer.
Arturo: Sum and product do not exist but the boolean do. I thought
about it but would be changing some meaning.
Arturo: This is convenience and less error prone. It is useful and
people use quite a lot.
Ray: This can be used any where not just in testbench?
Arturo: Correct
Ray: Add the same sort of description as on the other ones.
Action item AI-29 added based on discussion.
Ray: Do we need to say what the type consistency is?
Ray: They must be defined for the element type or the expression
type.
Action item AI-29 added based on discussion.
Ray: First two sentance of dimension ordering should be specified in
4.15.1. Nevermind.
David: Any other issues?
Michael: You mentioned that X is a reference to the element.
Arturo: You could think of this as that.
The type is the type of the array and users cannot declare
a method like this.
Michael: This looks like it is an iterator that does not need to
be dereferenced.
Arturo: No mechanism to define a method with a "with" clause.
Michael: Users would be perfectly happy with this. Implementation
wise will have to figure it out.
Ray: The intent is clear. What is an X? Have to handle x.index
as special case.
Jay: Not declared anywhere?
Neal: It is implicitely declared?
Jay: Is this a list of thing?
Arturo: There is only one argument to find (and related methods).
Jay: Only matching one element at a time.
David: Will create an updatge version and send to the reflector.
We will then have some reflector based question/answer and
then vote on it (either email or conference call depending
on timing).
EXT-9: (Stream Generation)
Brief overview by Arturo
12.14:
Neil: Shoud it be endrandsequence?
Brad: Consistent with endcase for randcase
Arturo: Sequence and properties both have endequence.
Brad: There are two types in BNF, "task_portlist" should be
"tf_portlist", because there is no taskportlist.
In rs_case item the : should be optional on default.
default:[..
Action item AI-30 added based on discussion.
Ray: Where is the rule for productions? Where is it allowed?
One other change, where does randsequence occur.
Arturo: Randsequence is the statement, it defines and executes.
Michael: Production identifier just specifies the starting
production. There is no name for the sequence.
Ray: There is no instantiation of the randsequence.
Arturo: Just a statement, that is correct.
Michael: It is a procedural statement. Placed in always,
it will execute over and over, either run through the rules,
or break.
Arturo: Brad has been consolidating function and task BNF.
Cliff: Does this exist only in a program block?
Arturo: No, anywhere, any other rtl. Does not have any states,
It does not have internal state. It is the rules that are
defined.
Ray: It could have state if it has global variables.
Brad: It can have an infinite loop.
Arturo: Yep.
Jay: This goes where in the grammer?
David: In the BNF, in (behavioral statements) A.6.12 is
possible.
Action item AI-30 added based on discussion.
Neil: Example in page 2. popf pushf defined in sequence not
consistent. parens vs curly braces.
Action item AI-30 added based on discussion.
Michael: Could be useful to have define instantiate.
Arturo: Can do by defining in class.
12.14.1
Neil: The integral values of weights say positive. Should we
say non-negative.
Arturo: Yes.
Neil: Need ; in example?
Arturo: It is missing.
Action item AI-30 added based on discussion.
Ray: Question on rs_rule. What does the weight specified apply to?
Arturo: Only makes sense with the "or" statement for the
distribution.
Neil: There is a specification on this in the paragraph after
the BNF.
Arturo: a b c :=30 | x y z :=40 is meaningfull.
Michael: No weight then it means 1. some weight leave some blank,
Action item AI-30 added based on discussion.
Start 12.14.2 next meeting.
Typo on "ensequence" in example.
Action item AI-30 added based on discussion.
3. Meeting Logistics
David: Need to have meeting during week of ICCAD (Nov. 9-13). Two decisions
required. 1/2 or full day. and Tuesday (Nov. 11) or Wednesday (Nov.12).
This will replace the Nov. 10 meeting.
Michael: Full day is difficult to do on the phone.
Jay: Tuesday
David: The meeting will be Nov 10, Tuesday from 1:00-4:00pm Pacific
October 27
EXT-10: Functional Coverage (18 pages)
November 10
EXT-3: Virtual Interfaces/ports (5 pages)
November 24
EXT-7: Reacting to Assertions (3 pages)
EXT-12: Bitsream support (6 pages)
7. Next meeting:
27 October 2003 from 11:00am to 1:00pm Pacific time.
8. Close of meeting at 2:03pm.
This archive was generated by hypermail 2b28 : Tue Oct 21 2003 - 23:17:19 PDT