From: Stefen Boyd (stefen@boyd.com)
Date: Fri Mar 07 2003 - 23:07:41 PST
I've finally put together a little bit of a page for
the 1364 at http://boyd.com/1364
It's not much, but it's what you get for free ;-}
You will find links to the minutes from all the past
meetings and links to just the PASSED pages for the
VSG, ETF, and PTF. I've attached the passed items from
the etf to this email for those who may not be near
the web at the time of the call...
Stefen
--------------------
Stefen Boyd Boyd Technology, Inc.
stefen@BoydTechInc.com (408)739-BOYD
www.BoydTechInc.com (408)739-1402 (fax)
Fri Mar 7 01:01:54 2003 PST
| Release | Meaning |
|---|---|
| 2001a | Issue against 1364-2001 First Edition |
| 2001b | Issue against 1364-2001 Second Edition (Possibly also issue in First Edition) |
| 2001a, 2001b | Issue against both 1364-2001 First and Second Editions (i.e. errata partial fix in 2001b, but more changes required) |
| ISSUE | Release | Synopsis | Fix |
|---|---|---|---|
| 20 | 2001b: A.2.8, 2.8.2, 9.8.1-2, 10.2.1, 10.3.1
|
A.2.8 should prevent all variable declaration assignments in named blocks
|
REPLACE the following BNF rules of section A.2.8:
block_item_declaration ::=
{ attribute_instance } block_reg_declaration
| { attribute_instance } event_declaration
| { attribute_instance } integer_declaration
| { attribute_instance } local_parameter_declaration
| { attribute_instance } parameter_declaration
| { attribute_instance } real_declaration
| { attribute_instance } realtime_declaration
| { attribute_instance } time_declaration
block_reg_declaration ::=
"reg" [ "signed" ] [ range ] list_of_block_variable_identifiers ";"
list_of_block_variable_identifiers ::=
block_variable_type { "," block_variable_type }
block_variable_type ::=
variable_identifier
| variable_identifier dimension { dimension }
WITH the following new rules for section A.2.8:
block_item_declaration ::=
{attribute_instance} "reg" ["signed"] [range] list_of_block_variable_identifiers ";"
| {attribute_instance} "integer" list_of_block_variable_identifiers ";"
| {attribute_instance} "time" list_of_block_variable_identifiers ";"
| {attribute_instance} "real" list_of_block_real_identifiers ";"
| {attribute_instance} "realtime" list_of_block_real_identifiers ";"
| {attribute_instance} event_declaration
| {attribute_instance} local_parameter_declaration
| {attribute_instance} parameter_declaration
list_of_block_variable_identifiers ::=
block_variable_type { "," block_variable_type }
list_of_block_real_identifiers ::=
block_real_type { "," block_real_type }
block_variable_type ::= variable_identifier { dimension }
block_real_type ::= real_identifier { dimension }
These notations are not part of the proposal and should not be included in the updated section A.2.8. Note: Syntax items that appear in "quotes" should be interpreted as being in BOLD font. These same updates should also be made to the following syntax boxes which appear within IEEE 1364-2001: 1. Section 2.8.2, Syntax 2-7: The rule for "block_item_declaration" should be updated as proposed above. 2. Section 9.8.1, Syntax 9-13: The rule for "block_item_declaration" should be updated as proposed above. 3. Section 9.8.2, Syntax 9-14: The rule for "block_item_declaration" should be updated as proposed above. 4. Section 10.2.1, Syntax 10-1: The rules for "block_item_declaration", "block_reg_declaration", "list_of_block_variable_identifiers", and "block_variable_type" should all be replaced with the entire set of proposed rules above. 5. Section 10.3.1, Syntax 10-3: The rules for "block_item_declaration" "block_reg_declaration", "list_of_block_variable_identifiers", and "block_variable_type" should all be replaced with the entire set of proposed rules above. |
| 34 | 2001b: 17.2.3
|
17.2.3: "Formatting data to a string"
|
A. In 17.2.3, in Syntax 17-6, in the first production, change "string_output_tasks_name" to "string_output_task_name" ************************************************************ Shalom's additions: B. In the last line of Syntax 17-6, CHANGE $sformat (output_reg ,format ,list_of_arguments ); TO $sformat (output_reg ,format_string ,list_of_arguments ); ** C. Following Syntax 17-6, DELETE the following lines: "The syntax for the string output system tasks is $swrite (output_reg , list_of_arguments ); $sformat (output_reg , format_string , list_of_arguments ); length = $sformat (output_reg , format_string , list_of_arguments );" ** D. Delete the following paragraph (which appears two paragraphs after the preceding), as it also appears at the end of 17.2.3: "The variable output_reg is assigned using the Verilog's string assignment to variable rules,as specified in 4.2.3." ** E. CHANGE the last paragraph of 17.2.3 FROM "The variable output_reg is assigned using the Verilog's string assignment to variable rules, as specified in 4.2.3." TO "The variable output_reg is assigned using the string assignment to variable rules, as specified in 4.2.3." ************************************************************ |
| 64 | 2001b: 9.3 (Syntax 9-3), A.6.2, A.6.3
|
A.6.2-3: variable_assignment BNF production is in wrong place
|
Move variable_assignment from A.6.3 to A.6.2. Remove reference to A.6.3 from Syntax 9-3 (9.3). |
| 65 | 2001b: A.2.7, 10.2.1 (Syntax 10-1)
|
error in task_declaration syntax
|
Modified by Shalom: In Syntax 10-1 of 10.2.1 and in A.2.7, change each of the four occurrences of "statement" to "statement_or_null" Note that this change applies ONLY to tasks and NOT to functions, because functions MUST contain at least one statement, an assignment to the function output. |
| 67 | 2001b: A.6.5
|
A.6.5: "event_trigger" production in BNF does not allow array indexing
|
CHANGE event_trigger ::= -> hierarchical_event_identifier ; TO event_trigger ::= "->" hierarchical_event_identifier {"[" expression "]"} ";" in A.6.5 and Syntax 9-10. |
| 70 | 2001b: 4.4.1 (Table 29)
|
Table 29: Logical operator (&& ||) sizing rules incorrect
|
The (&&, ||) operators should be removed from the 5th row, and a new row should be inserted for them stating that their operands are "self-determined" in the "Comments" column. The modified 5th row, and the new row should look like the following: +-----------------------------+------------+--------------------------+ | Expression | Bit Length | Comments | +-----------------------------+------------+--------------------------+ | i op j, where op is | 1 | operands are sized to | | === !== == != > >= < <= | | max(L(i), L(j) | +-----------------------------+------------+--------------------------+ | i op j, where op is | 1 | All operands are | | && || | | self-determined | +-----------------------------+------------+--------------------------+ |
| 75 | 2001b: 6 (Table 30), 9.2
|
Table 30 omits nested concatenations
|
1. In Table 30, CHANGE last lines in right-hand column of both rows to say, "Concatenation or nested concatenation of any of the above LHS". 2. Also, MOVE line "Memory word" after line "Indexed part select of a vector reg, integer, or time variable". 3. In 9.2, para. 2, dashed item 5, CHANGE from: "Concatenation of any of the above: a concatenation of any of the previous four forms can be specified, which effectively partitions the result of the right-hand side expression and assigns the partition parts, in order, to the various parts of the concatenation." TO: "Concatenation or nested concatenation of any of the above: a concatenation or nested concatenation of any of the previous four forms can be specified, which effectively partitions the result of the right-hand side expression and assigns the partition parts, in order, to the various parts of the concatenation or nested concatenation." 4. Widen right-hand column of table to be large enough to prevent line wraps. |
| 76 | 2001b: 4.1.14
|
4.1.14: unclear examples of illegal concatenations
|
In 4.1.14, CHANGE FROM: Another form of concatenation is the replication operation. The first expression shall be a non-zero, non-X and non-Z constant expression, the second expression follows the rules for concatenations. This example replicates "w" 4 times. {4{w}} // This is equivalent to {w, w, w, w} a[31:0] = {1'b1, {0{1'b0}} }; //illegal. RHS becomes {1'b1,; a[31:0] = {1'b1, {1'bz{1'b0}} }; //illegal. RHS becomes {1'b1,; a[31:0] = {1'b1, {1'bx{1'b0}} }; //illegal. RHS becomes {1'b1,; TO: Another form of concatenation is the replication operation. The first expression shall be a positive, non-X and non-Z constant expression, the second expression follows the rules for concatenations. The following example replicates "w" 4 times.
{4{w}} // This is equivalent to {w, w, w, w}
The following examples show illegal concatenations.
{ 0{1'b0}} //illegal
{1'bz{1'b0}} //illegal
{1'bx{1'b0}} //illegal
|
| 77 | 2001b: 6 (Table 30)
|
Table 30: Last LHS line is not clear
|
************************************************************ Shalom: 2002-01-07 Propose to close this issue as being supreceded by # 75. |
| 78 | 2001b: passim
|
passim: Inconsistent spelling of "bit-select" and "part-select"
|
Change all "bit select" to "bit-select". Change all "part select" to "part-select". Change all "bit and part selects" and "bit- and part-selects" to "bit-selects and part-selects". Change all "bit or part selects" and "bit- or part-selects" to "bit-selects or part-selects". Change all "bit or part select" and "bit- or part-select" to "bit-select or part-select". |
| 85 | 2001b: 9.7 (Syntax 9-8), A.6.5
|
A.6.5: repeat event_control grammar ambiguity
|
In A.6.5, after event_expression add the following new nonterminal and definition -- procedural_timing_control ::= delay_control | event_control and change the definition of procedural_timing_control_statement from
procedural_timing_control_statement ::=
delay_or_event_control statement_or_null
to
procedural_timing_control_statement ::=
procedural_timing_control statement_or_null
And in Syntax 9-8 (9.7), DELETE: delay_or_event_control event_expression ADD at the top the new definitions of procedural_timing_control_statement and procedural_timing_control. |
| 87 | 2001b: 17.2.8
|
17.2.8: $readmem default start_addr should be lowest address
|
Changes based on http://boydtechinc.com/btf/archive/btf_1998/0395.html 1. CHANGE 1st sentence in para. 7 FROM: If no addressing information is specified within the system task, and no address specifications appear within the data file, then the default start address shall be the left-hand address given in the declaration of the memory. TO: If no addressing information is specified within the system task and no address specifications appear within the data file, then the default start address shall be the lowest address in the memory. 2. CHANGE 3rd sentence FROM: If the start address is specified in the task without the finish address, then loading shall start at the specified start address and shall continue towards the right-hand address given in the declaration of the memory. TO: If the start address is specified in the task without the finish address, then loading shall start at the specified start address and shall continue upward towards the highest address in the memory. 3. CHANGE para. 8 FROM: If both start and finish addresses are specified as parameters to the task, then loading shall begin at the start address and shall continue toward the finish address, regardless of how the addresses are specified in the memory declaration. TO: If both start and finish addresses are specified as parameters to the task, then loading shall begin at the start address and shall continue toward the finish address. Note that if the start address is greater than the finish address, then the address will be decremented between consecutive loads rather than being incremented. Loading shall continue to follow this direction even after an address specification in the data file. 4. CHANGE para. 10 FROM: A warning message shall be issued if the number of data words in the file differs from the number of words in the range implied by the start through finish addresses. TO: A warning message shall be issued if the number of data words in the file differs from the number of words in the range implied by the start through finish addresses and no address specifications appear within the data file. |
| 89 | 2001b: 2.8.1
|
2.8.1: Multiple Attribute Instances in BNF
|
Multiple attribute instances are OK. Nested attributes are the subject of issue #218. Change one of the example to show multiple instances: In 2.8.1, Example 1 contains three examples of full_case, parallel_case: (* full_case, parallel_case *) (* full_case=1, parallel_case=1 *) (* full_case, // no value assigned parallel_case=1 *) CHANGE the second from: (* full_case=1, parallel_case=1 *) TO: (* full_case=1 *) (* parallel_case=1 *) // Multiple attribute instances also OK (including the comment) |
| 92 | 2001b: 17.10.2
|
17.10.2 should talk about leading plus sign
|
Add the following sentence after the second sentence of the first paragraph of section 17.10.2: "This string should not include the leading plus sign of the command line argument." ************************************************************ Shalom: 1. That should be: "This string shall not ..." instead of "should not". Also: 2. In para. 2, CHANGE: "as well as a leading 0 forms" TO : "as well as leading 0 forms". 3. In para. 3, end of line 3, CHANGE: "users plusarg_string" TO : "user's plusarg string". 4. In para. 4, end of line 1, CHANGE: "zero (0) padded" TO: "zero-padded". ************************************************************ Shalom (added 2003-01-06): CHANGE THE 3rd and 4th sentences in the first paragraph FROM: "If the string is found, the remainder of the string is converted to the type specified in the user_string and the resulting value stored in the variable provided. If a string is found, the function returns a non-zero integer." TO (incorporating wording from 17.10.1): "The plusargs present on the command line are searched in the order provided. If the prefix of one of the supplied plusargs matches all characters in the provided string, the function returns a non-zero integer, the remainder of the string is converted to the type specified in the user_string and the resulting value is stored in the variable provided." ************************************************************ |
| 103 | 2001b: Index
|
Index missing
|
Return Index. Work together with IEEE Editor. Index must refer to Subclause #, not page #. Note: there may not be time to add index references to text added in 2001c. |
| 109 | 2001b: 10.3.5
|
10.3.5: redundant restriction on system functions
|
In 10.3.5, in the 2nd constraint, delete the sentence "System functions shall not be invoked." |
| 115 | 2001b: 9.8
|
9.8: "block statement" definition
|
In the first sentence of 9.8, delete "two or more" |
| 119 | 2001b: 2.6.3 (Table 1), 17.1.1.1 (Table 66)
|
2.6.3 (Table 1): Octal escape sequences
|
In Table 1 of section 2.6.3 REPLACE: A character specified in 1-3 octal digits (0<= d <= 7) WITH: A character specified in 1-3 octal digits (0 <= d <= 7). If less than three characters are used, the following character must not be an octal digit. Implementations may issue an error if the character represented is greater than \199. *********************** Shalom's addition: Same change in Table 66 in 17.1.1.1 *********************** |
| 123 | 2001b: A.8.4, 4.3 (Syntax 4-2)
|
identifier and indexing syntax
|
In 181, we passed a change to replace the existing alternatives of hierarchical_identifier in the primary production with the following: hierarchical_identifier [ { '[' expression ']' } '[' range_expression ']' ] If this change is accepted, then presumably the same change should be made to net_lvalue and variable_lvalue modifying the already passed fixes to 53. CHANGE from (after the fixes in #53): net_lvalue ::= hierarchical_net_identifier {'['constant_expression']'} ['['constant_range_expression']'] | '{' net_lvalue { ',' net_lvalue } '}' variable_lvalue ::= hierarchical_variable_identifier {'['expression']'} ['['range_expression']'] | '{' variable_lvalue { ',' variable_lvalue } '}' TO: net_lvalue ::= hierarchical_net_identifier [{'['constant_expression']'} '['constant_range_expression']'] | '{' net_lvalue { ',' net_lvalue } '}' variable_lvalue ::= hierarchical_variable_identifier [{'['expression']'} '['range_expression']'] | '{' variable_lvalue { ',' variable_lvalue } '}' ************************************************************ |
| 129 | 2001a,b: passim
|
unordered list dashes (em dash) did not print in 2001a
|
Make sure all dashed lists come out in PDF. Find dashed lists which still did not come out in 2001b, and fix them as well. ************************************************************ Update by Shalom: See issue #169. Apparently problem occurred with TimesNewRoman fonts. The "em dashes" did not print in IEEE. When these are converted to Times font, which appears almost identical, it comes out OK. On my Unix FrameMaker, TimesNewRoman gets converted to Times anyway, so it still comes out OK. However, in 2001b, IEEE did not fix all the places. In particular, some of the NOTEs are still in TimesNewRoman, so they did not come out even in 2001b. The solution is to convert all paragraphs with "em dashes" in TimesNewRoman to Times. ************************************************************ |
| 133 | 2001b: 4.1.2
|
Table 12: Precedence rules for operators
|
Change subclause name FROM: "Binary operator precedence" TO : "Operator precedence". Change the first paragraph FROM: "The precedence order of binary operators and the conditional operator (?:) is shown in Table 12. The Verilog HDL has two equality operators. They are discussed in 4.1.8." TO: "The precedence order of the Verilog operators is shown in Table 12." Change Table 12 as follows: Change top row FROM: "+ - ! ~ (unary)" TO : "Unary + - ! ~ & ~& | ~| ^ ~^ ^~" Change rows 8-10 FROM: & ~& ^ ^~ ~^ | ~| TO: & (binary) ^ ^~ ~^ (binary) | (binary) In last row (conditional operator), delete "Lowest precedence". Add new row at bottom: "{} {{}} Lowest precedence". REMOVE: last line of Table-10 and last line of Table-9 and Section 4.1.15 |
| 136 | 2001b: 12.4 (Syntax 12-7), 13.2.1 (Syntax 13-2), 13.3.1.5 (Syntax 13-8), A.1.1, A.1.2, A.9.4
|
Annex A et al: BNF: redundant [] around {}
|
Remove redundant square brackets as follows: 1. In Syntax 13-2 (13.2.1) and A.1.1, CHANGE:
library_declaration ::=
library library_identifier file_path_spec [ { , file_path_spec } ]
[ -incdir file_path_spec [ { , file_path_spec } ] ;
TO:
library_declaration ::=
library library_identifier file_path_spec { , file_path_spec }
[ -incdir file_path_spec { , file_path_spec } ] ;
Note that a right square bracket was missing at the end to close the -incdir option. Now it is there. 2. In Syntax 13-8 (13.3.1.5) and A.1.2, CHANGE:
liblist_clause ::= liblist [{library_identifier}]
TO:
liblist_clause ::= liblist { library_identifier }
3. In Syntax 12-7 (12.4), CHANGE: (Note: it is already correct in A.9.3)
escaped_hierarchical_identifier ::= (From Annex A - A.9.3)
escaped_hierarchical_branch
[ { .simple_hierarchical_branch | .escaped_hierarchical_branch } ]
TO:
escaped_hierarchical_identifier ::= (From Annex A - A.9.3)
escaped_hierarchical_branch
{ .simple_hierarchical_branch | .escaped_hierarchical_branch }
4. In Syntax 12-7 (12.4) and A.9.4, CHANGE:
simple_hierarchical_branch ::=
simple_identifier [ [ unsigned_number ] ]
[ { .simple_identifier [ [ unsigned_number ] ] } ]
escaped_hierarchical_branch ::=
escaped_identifier [ [ unsigned_number ] ]
[ { .escaped_identifier [ [ unsigned_number ] ] } ]
TO:
simple_hierarchical_branch ::=
simple_identifier [ [ unsigned_number ] ]
{ .simple_identifier [ [ unsigned_number ] ] }
escaped_hierarchical_branch ::=
escaped_identifier [ [ unsigned_number ] ]
{ .escaped_identifier [ [ unsigned_number ] ] }
|
| 137 | 2001b
|
Fwd: IEEE Std 1364-2001, 19.2 and Annex B -- 'none' keyword
|
Propose that this is not a bug and that we close the issue. |
| 138 | 2001b
|
IEEE Std 1364-2001, Syntax 19-2 -- formal_argument_identifier
|
Propose this issue be closed as the issue raised here is also raised in issue #139, along with a few other issues in the same section. |
| 140 | 2001b
|
Section 4.1.5: Definition of power operator result type
|
Part I: REPLACE (3rd paragraph of 4.1.5): The result of the power operator shall be real if either operand is a real, integer or signed. If both operands are unsigned then the result shall be unsigned. The result of the power operator is unspecified if the first operand is zero and the second operand is non-positive, or if the first operand is negative and the second operand is not an integral value. WITH (new 3rd and 4th paragraphs of 4.1.5): If either operand of the power operator is real, then the result type shall be real. The result value is undefined if the first operand is zero and the second operand is non-positive, or if the first operand is negative and the second operand is not an integral value. If neither operand of the power operator is real, then the result type shall be determined as outlined in 4.4.1 and 4.5.1, with the second operand treated as self-determined. In this case, the power operator shall always interpret the second operand as an unsigned value, and the result value shall be 1 if both operands are zero. ------------------------------------------------------------------------ Part II: REPLACE (Title of Table 15 in 4.1.5): Examples of modulus operators WITH (new Title of Table 15 in 4.1.5): Examples of modulus and power operators ------------------------------------------------------------------------ Part III: REPLACE (The sentence immediately prior to Table 15): Table 15 gives examples of modulus operations. WITH Table 15 gives examples of some modulus and power operations. ------------------------------------------------------------------------ Part IV: REPLACE (heading of first column in Table 15): Modulus expression WITH (new heading of first column in Table 15): Expression ------------------------------------------------------------------------ Part V: Append the following power operator examples to Table 15: Expression Result Comments 3**2 9 3*3 2**3 8 2*2*2, same result as 1<<3 2**0 1 By definition, and same result as 1<<0 2**-3'sb1 128 -3'sb1 treated as unsigned 7, same as 1<<-3'sb1 2.0**-3'sb1 0.5 -3'sb1 coerced to -1.0, giving real reciprocal 0.0**-1 Undefined Division by zero is undefined 9**0.5 3.0 Real square root 9.0**(1/2) 1.0 Integer division truncates exponent to zero -9.0**0.5 Undefined Square root of negative number is undefined -3.0**2.0 9.0 Defined, because real 2.0 is still integral value 2**(-3'so4/3'so2) 64 Exponent is -3'so2, but is interpreted as 3'o6 |
| 145 | 2001b: 19.2 (Syntax 19-1)
|
19.2: Syntax 19-1 defines net_type differently than A.2.2.1
|
In Syntax 19-1 of section 19.2 change both occurrences of "net_type" to "default_nettype_value" |
| 146 | 2001b: 3.9
|
3.9: poor cross-reference to $time section
|
Change 17 to 17.7.1 |
| 149 | 2001b: 2.7.4
|
2.7.4: System tasks and functions
|
Proposal: 1) Change the first bullet following paragraph 3 of section/clause 2.7.4: REPLACE: - A standard set of $identifier system tasks and functions, as defined in Clauses 17 and 19. WITH: - A standard set of $identifier system tasks and functions, as defined in Clauses 17 and 18. ************************************************************ Shalom: The above was already handled in issue #27. ************************************************************ 2) Change the second sentence of paragraph 4 of section/clause 2.7.4: REPLACE: The system tasks and functions described in Clause 17 are part of this standard. WITH: The system tasks and functions described in Clauses 17 and 18 are part of this standard. |
| 153 | 2001b: 12.3.3 (Syntax 12-6), A.2.1.2
|
12.3.3, A.2.1.2: output_declaration is ambiguous
|
Brad's proposal looks good: Delete the 2nd and 4th alternatives of the output_declaration BNF rule of section A.2.1.2. REPLACE: output_declaration ::= "output" [ net_type ] [ "signed" ] [ range ] list_of_port_identifiers | "output" [ "reg" ] [ "signed" ] [ range ] list_of_port_identifiers | "output" "reg" [ "signed" ] [ range ] list_of_variable_port_identifiers | "output" [ output_variable_type ] list_of_port_identifiers | "output" output_variable_type list_of_variable_port_identifiers WITH: output_declaration ::= "output" [ net_type ] [ "signed" ] [ range ] list_of_port_identifiers | "output" "reg" [ "signed" ] [ range ] list_of_variable_port_identifiers | "output" output_variable_type list_of_variable_port_identifiers Note: Quoted items should be interpreted as being in BOLD font. |
| 154 | 2001b: 2.8.2 (Syntax 2-6), 12.1 (Syntax 12-1), 12.1.3 (Syntax 12-3), A.1.5
|
A.1.5: attribute ambiguity in non_port_module_items
|
REPLACE the following two BNF rules of section A.1.5 (Also in Syntax 2-6 (2.8.2), Syntax 12-1 (12.1), and Syntax 12-3 (12.1.3): module_item ::= module_or_generate_item | port_declaration ";" | { attribute_instance } generated_instantiation | { attribute_instance } local_parameter_declaration | { attribute_instance } parameter_declaration | { attribute_instance } specify_block | { attribute_instance } specparam_declaration non_port_module_item ::= { attribute_instance } generated_instantiation | { attribute_instance } local_parameter_declaration | { attribute_instance } module_or_generate_item | { attribute_instance } parameter_declaration | { attribute_instance } specify_block | { attribute_instance } specparam_declaration WITH: module_item ::= | port_declaration ";" | non_port_module_item non_port_module_item ::= module_or_generate_item | { attribute_instance } generated_instantiation | { attribute_instance } local_parameter_declaration | { attribute_instance } parameter_declaration | { attribute_instance } specify_block | { attribute_instance } specparam_declaration NOTE: Items enclosed in "" should be interpreted as being in BOLD font. |
| 156 | 2001b: 10.3.1, A.2.6
|
10.3.1,A.2.6:In function, block_item_declaration is optional
|
In Syntax 10-3 (10.3.1) and in A.2.6, in BNF of function_declaration with function_port_list, CHANGE: "block_item_declaration { block_item_declaration }" TO: "{ block_item_declaration }". |
| 160 | 2001a,b
|
PDF bookmarks
|
Make PDF bookmarks for all levels of sub-clauses in all clauses. |
| 161 | 2001a,b: passim
|
hyperlink cross-references
|
1. Fix all unresolved cross-references. 2. Find (as much as possible) and fix references which are just text and change them into FrameMaker cross-references with hyperlinks. |
| 166 | 2001b: 1.4
|
1.4: "Clause 2" missing clause title
|
In 1.4, change Clause 2 reference to: "Clause 2--Lexical conventions: This clause describes the lexical tokens used in Verilog HDL source text and their conventions. It describes how to specify and interpret the lexical tokens." |
| 168 | 2001b: 12.3.2
|
12.3.2: Bad grammar
|
In the last sentence in section 12.3.2, change "Use of named port connections shall not be used for..." to "Named port connections shall not be used for ..." and in the first sentence in the same paragraph add commas to "The first type of module port with only a port_expression is an implicit port." as follows: "The first type of module port, with only a port_expression, is an implicit port." |
| 173 | 2001b: 1.4, 2.5.1, 3.1, 7.10.1, 7.10.2, passim
|
misc typos
|
The first typo on Clause 2 is covered by issue 166, so I deleted it from this proposal--Karen 2/10/03 ******************************************************* Section 1.4: Paragraph beginning "Clause 21": The title should end with colon. Next sentence should begin on same line. ********************************************************** This piece of the proposal is covered by 116, so I deleted it from this proposal--Karen 2/10/03 ********************************************************** Section 3.1: End of paragraph. Change ".." to "." . Section 7.10.1, last sentence: Change "pull 1" to "pull1" and change both occurrences of "strong 0" to "strong0", and change all three to bold Times, as shown at beginning of 7.9. ************************************************************ Shalom: Note - the format of strength indications is inconsistent elsewhere as well. ************************************************************ Section 7.10.2, 1st paragraph, 2nd bullet: In "strength1" and "strength0", change the "0" and "1" to Times font, not fixed font, as in bullets 3 and 4. Entire document: Change all Clause titles to Helvetica 14 point including the number. |
| 176 | 2001b, 12.1.3.2
|
12.1.3.2, Example 5: wrong generate name
|
In section 12.1.3.2 example 5: Change the for loop condition on the first line after the generate <bold generate> from: (i=0; i<SIZE+1; i=i+1) to: (i=0; i<SIZE; i=i+1) On the next line in the comment change: B1[i].N1[i] to: B1[i].N1 |
| 179 | 2001b, 12.3.3
|
12.3.3 Port declarations
|
Change the first sentence in 12.3.3 "Each port_expression in the list of ports for the module declaration shall also be declared in the body of the module as one of the following port declarations: input, output, or inout (bidirectional)." to "Each port_identifier in a port_expression in the list of ports for the module declaration shall also be declared in the body of the module as one of the following port declarations: input, output, or inout (bidirectional)." |
| 181 | 2001b: 4.3 (Syntax 4-2), 9.2.1 (Syntax 9-1), 9.2.2 (Syntax 9-2), 9.2.3 (Syntax 9-3), A.8.4, A.8.5
|
4.3, 9.2.1-3, A.8.4-5: 12 productions better expressed with 3
|
In A.8.4 and Syntax 4-2 REPLACE: bnf production for primary WITH primary ::= number | hierarchical_identifier { [ expression ] } [ [ range_expression ] ] | concatenation | multiple_concatentation | function_call | system_function_call | constant_function_call | ( mintypmax_expression ) |
| 182 | 2001b, 9.7 (Syntax 9-8), 9.7.7 (Syntax 9-12), A.6.5
|
Syntax 9-8: event_control
|
In A.6.5 and Syntax 9-8 change event_control ::= @ event_identifier | @ ( event_expression ) | @ * | @ ( * ) event_expression ::= expression | hierarchical_identifier | posedge expression | negedge expression | event_expression or event_expression | event_expression , event_expression to event_control ::= @ hierarchical_event_identifier | @ ( event_expression ) | @ * | @ ( * ) event_expression ::= expression | posedge expression | negedge expression | event_expression or event_expression | event_expression , event_expression |
| 193 | 2001b: 3.2.1 (Syntax 3-1), 9.7.3 (Syntax 9-9), A.2.3
|
3.2.1, 9.7.3, A.2.3: simplification of list BNFs
|
A. In Syntax 9-9 and A.2.3, CHANGE
list_of_event_identifiers ::=
event_identifier [ dimension { dimension }]
{ , event_identifier [ dimension { dimension }] }
TO
list_of_event_identifiers ::=
event_identifier { dimension }
{ , event_identifier { dimension } }
B. In Syntax 3-1 and A.2.3, CHANGE
list_of_net_identifiers ::=
net_identifier [ dimension { dimension }]
{ , net_identifier [ dimension { dimension }] }
TO
list_of_net_identifiers ::=
net_identifier { dimension }
{ , net_identifier { dimension } }
|
| 194 | 2001b: 2.8 (Syntax 2-3), A.9.1
|
2.8, A.9.1: simplify attr_spec BNF
|
Change -- attr_spec ::= attr_name = constant_expression | attr_name to attr_spec ::= attr_name [ = constant_expression ] |
| 196 | 2001b: 8.6 (Syntax 8-2)
|
8.6 -- udp_instantiation BNF different in 8.6 than in Annex A
|
In Syntax 8-2, remove "[attribute_instance]" from udp_instantiation, making it the same as in Annex A.5.4. udp_instantiation ::= udp_identifier [ drive_strength ] [ delay2 ] udp_instance { , udp_instance } ';' |
| 200 | 2001b: 7.1 (Syntax 7-1), 8.6 (Syntax 8-2), 12.1.2 (Syntax 12-2), A.3.1, A.4.1, A.5.4, A.9.3
|
A.3.1, A.4.1, A.5.4, A.9.3 et al: extra [range]
|
1. In A.9.3, CHANGE gate_instance_identifier ::= arrayed_identifier udp_instance_identifier ::= arrayed_identifier module_instance_identifier ::= arrayed_identifier TO gate_instance_identifier ::= identifier udp_instance_identifier ::= identifier module_instance_identifier ::= identifier 2. In A.9.3, DELETE arrayed_identifier escaped_arrayed_identifier simple_arrayed_identifier 3. NO CHANGE TO name_of_gate_instance ::= gate_instance_identifier [ range ] name_of_udp_instance ::= udp_instance_identifier [ range ] name_of_instance ::= module_instance_identifier [ range ] |
| 216 | 2001b: 9.5
|
9.5: when is case default executed
|
After the sentence "The case item expressions shall be evaluated and compared in the exact order in which they are given." insert the following sentence "If there is a default case item, it is ignored during this linear search." |
| 218 | 2001b, 2.8
|
Nested attributes should be prohibited
|
Append the following paragraph to the end of section 2.8 (before section 2.8.1) -- "Nesting of attribute instances is disallowed. It shall be illegal to specify the value of an attribute with a constant expression that contains an attribute instance." |
| 219 | 2001b: 17.9.3
|
17.9.3: wrong bolding in C code
|
In section 17.9.3 remove all bolding from the C code, in particular from each occurrence of 'if', 'else', 'end', 'while', and 'for'. |
| 221 | 2001b
|
passim: right-hand and left-hand misspelled
|
Throughout the document change "right hand" and "righthand" to "right-hand" and change "left hand" and "lefthand" to "left-hand". Specifically, in 3.11.1, 9.7.5, 12.1.3.2 change "right hand" to "right-hand", in 3.3.1 change "righthand" to "right-hand", in 9.7.5, 16.6 change "left hand" to "left-hand". In C.2 change "lefthand" to "left-hand". |
| 224 | 2001b: 10.2 (Syntax 10-1), A.2.7
|
10.2, A.2.7: tf port declarations
|
In A.2.7 and in Syntax 10-1 of 10.2, delete the square brackets from each occurrence of [ task_port_type ] |
| 228 | 2001b: 4.2.1
|
4.2.1: indexed part-select with width-expression of -5
|
1. Legal values for the width expressions should be a semantic restriction. Specifically, after the sentence, "The width_expr shall be a constant expression.", add the following: "The value of the width_expr shall be a positive integer." 2. Change the Examples preceding Example 1, from "reg [31:0] big_vect;" to "dword[8*sel +:8] = big_vect[7:0]; // Replace the byte selected." with the following: reg [31: 0] big_vect; reg [0 :31] little_vect; reg [63: 0] dword; integer sel; big_vect[ 0 +: 8] // == big_vect[ 7 : 0] big_vect[15 -: 8] // == big_vect[15 : 8] little_vect[ 0 +: 8] // == little_vect[0 : 7] little_vect[15 -: 8] // == little_vect[8 :15] dword[8*sel +: 8] // variable part-select with fixed width ("reg" and "integer" keywords in bold) |
| 229 | 2001b: 9.6 (Syntax 9-7), 9.8.1 (Syntax 9-13), A.6.3, A.6.8
|
A.6.3, A.6.8: some function_statement should be function_statement_or_null
|
CHANGE "function_statement" to "function_statement_or_null" in following places: function_loop_statement (Syntax 9-7 (9.6), A.6.8) function_seq_block (Syntax 9-13 (9.8.1), A.6.3) |
| 231 | 2001b: A.6.2, A.6.4
|
A.6.2: function_statement_or_null should be in A.6.4
|
Move function_statement_or_null from A.6.2 to A.6.4. |
| 232 | 2001b: 2.7.4 (Syntax 2-2), A.6.9
|
Syntax 2-2, A.6.9: system_task_enable with null arguments
|
In Syntax 2-2 (2.7.4) and A.6.9, CHANGE system_task_enable ::= system_task_identifier [ ( expression { , expression } ) ] ; TO: system_task_enable ::= system_task_identifier [([expression] {,[expression]})] ; |
| 238 | 2001b: 12.1 (Syntax 12-1), 12.3.1 (Syntax 12-5), 14.2.2 (Syntax 14-3), A.1.4, A.7.3
|
A.1.4, A.7.3: Should range_expression be constant_range_expression?
|
REPLACE:
port_reference ::= (A.1.4, Syntax 12-1, 12-5)
port_identifier
| port_identifier [ constant_expression ]
| port_identifier [ range_expression ]
specify_input_terminal_descriptor ::= (A.7.3, Syntax 14-3)
input_identifier
| input_identifier [ constant_expression ]
| input_identifier [ range_expression ]
specify_output_terminal_descriptor ::= (A.7.3, Syntax 14-3)
output_identifier
| output_identifier [ constant_expression ]
| output_identifier [ range_expression ]
WITH:
port_reference ::= (A.1.4, Syntax 12-1, 12-5)
port_identifier [ [ constant_range_expression ] ]
specify_input_terminal_descriptor ::= (A.7.3, Syntax 14-3)
input_identifier [ [ constant_range_expression ] ]
specify_output_terminal_descriptor ::= (A.7.3, Syntax 14-3)
output_identifier [ [ constant_range_expression ] ]
|
| 243 | 2001b: 10.3.1
|
10.3.1: Call functions "reentrant", not "recursive"
|
In 10.3.1, change "The keyword automatic declares a recursive function with all the function declarations allocated dynamically for each recursive call." TO: "The keyword automatic declares an automatic function that is reentrant with all the function declarations allocated dynamically for each concurrent function call." |
Hosted by Boyd Technology
This archive was generated by hypermail 2.1.4
: Fri Mar 07 2003 - 23:09:25 PST
and
sponsored by Boyd Technology, Inc.