Edits in the Manual (using 3.1 draft 2 section numbers) Passed a while back Stu, there are still reverences to masked and unmasked in the LRM. In particular, in Section 3.7. Can you please do a global find and fix them? Passed 1/6/03 SV-BC46: In Table 3.1, REPLACE 2-state C data type, usually an 8 bit signed integer WITH: 2-state C-compatible data type, 8 bit signed integer Passed 1/22/03 SV-BC26-1: In Section 3.10, remove previously passed language: The format control string "%n" can be used to display the enumerated name. Any format control string which can be used to display an integer value can be used to display an enumerated value. SV-BC44-3: Add after the last paragraph in section 7.3: The type returned by an assignment operator shall be the type of the LHS. If the LHS is a concatenation, the type returned shall be an unsigned integral value whose bit length is the sum of its operands. SV-BC44-9: REMOVE the last sentence of the first paragraph of section 8.8 "The disable, break and continue statements shall not affect any nonblocking assignments which have been started." REMOVE: the next paragraph as it is not needed because it is already part of the current behavior of the Verilog-2001 spec. REMOVE the second paragraph of section 8.8: "It shall be illegal to disable a function, because the return value would be uncertain. However, a function may disable its calling block." SV-BC44-15: REMOVE "changed" from Syntax 8-7 table in section 8.9 REMOVE the following paragraphs from Section 8.9 SystemVerilog also allows the @ event control to explicitly state any change, using the changed keyword. @(myvar) // triggers on any change to myvar @(changed myvar) // triggers on any change to myvar The @(changed expression) differs from @(expression) in that the changed keyword explicitly defines that the event control only triggers on a change of the result of the expression. In certain types of expressions, @(expression) can trigger on changes to operands of the expression that do not affect the result. SV-BC56: In section 4.2 APPEND a bullet to the first list of bullets that reads: * Equality operations the array or slice of the array, e.g. A==B, A[i:j] != B[i:j] In the preceding paragraph REPLACE: The examples provided with these rules assume that A and B are arrays. WITH: The examples provided with these rules assume that A and B are arrays of the same shape and type. SV-BC19-2: In 18.2.2 first RTL example: REPLACE simple_bus sb_intf; WITH simple_bus sb_intf(); In 18.2.2, second RTL example REPLACE simple_bus sb_intf; WITH simple_bus sb_intf(); In 18.2.3, second RTL example REPLACE simple_bus sb_intf; WITH simple_bus sb_intf(); In 18.2.3 second RTL example REPLACE simple_bus sb_intf; WITH simple_bus sb_intf(); In 18.7 REPLACE intf_mutex mutex; WITH intf_mutex mutex(); BNF (using 3.1 draft 2 section numbers) Passed 1/15/03 SV-BC19-18: To function_port_item production in A.2.6 ADD: | { attribute_instance } port_type list_of_port_identifiers SV-BC19-21: VSG #200 (ETF Passed) SV-BC19-23: VSG #202 SV-BC19-28: In section A.6.4, for statement_item: REPLACE: | { attribute_instance} function_call WITH: | { attribute_instance } function_call ; For function_statement_item REPLACE: | { attribute_instance} function_call WITH: | { attribute_instance } function_call ; SV-BC19-31: In A.6.5 in the production event_expression: Remove the first two rules. SV-BC19-35: VSG #85 (ETF Passed) SV-BC48: In A.6.8 in the function_loop_statement production REPLACE: do function_statement while (expression) WITH: do function_statement while (expression) ; In A.6.8 in the loop_statement production REPLACE: do statement while (expression) WITH: do statement while (expression) ; SV-BC19-37: VSG #232 (ETF Passed) SV-BC19-39: In section A.6.10, in the production expr_sequence: REPLACE: | [ constant_expression ] with | [ constant_expression ] REPLACE: | expr_sequence * [ constant_expression ] WITH | expr_sequence * [ constant_expression ] < bold []> REPLACE: | ( expr_sequence ) WITH: | ( expr_sequence ) SV-BC19-41: VSG #237 SV-BC19-43: VSG #28 (VSG passed) REMOVE: genvar_function_call from A.8.2 REMOVE: genvar_function_identifier from A.9.3 and associated notes. SV-BC19-45: VSG #238 SV-BC19-46: In A.8.3, in the expression production we REPLACE | {attribute_instance} inc_or_dec_expression WITH | inc_or_dec_expression SV-BC19-56: In Section A.9.3 REPLACE escaped_identifier [ range ] < bold [] > WITH escaped_identifier [ range ] < not bold [] > SV-BC19-57: In Section A.9.3 REPLACE simple_identifier [ range ] < bold [] > WITH simple_identifier [ range ] < not bold [] > Passed 1/22/03 SV-BC44-15: REPLACE the production in A.6.5 edge ::= posedge | negedge | changed WITH edge ::= posedge | negedge Remove "changed" from the list of keywords in Annex B. Passed 1/29/03 SV-BC19-49-1: ADD "edge" as a keyword in Annex B. SV-BC19-49-2: In A.6.5: REPLACE: event_expression ::= expression [ iff expression ] | hierarchical_identifier [ iff expression ] | [ edge ] expression [ iff expression ] | event_expression or event_expression | event_expression , event_expression edge ::= posedge | negedge | changed WITH: event_expression ::= expression [ iff expression ] - ("iff" in bold) | hierarchical_identifier [ iff expression ] - ("iff" in bold) | [ edge_identifier ] expression [ iff expression ] - ("iff" in bold) | event_expression or event_expression - ("or" in bold) | event_expression , event_expression - (comma "," in bold) SV-BC54-1: In A.2.1.1 in the parameter_declaration production Change type to bold font. SV-BC19-34: In A.6.2 REPLACE: variable_assignment ::= variable_lvalue = expression WITH: variable_assignment ::= operator_assignment inc_or_dec_expression SV-BC54-2: in A.8.3, Replace constant_param_expression production with constant_param_expression ::= constant_expression SV-46a: In A.8.3 REPLACE the inco_or_dec_expression WITH: inc_or_dec_expression ::= inc_or_dec_operator { attribute_instance } variable_lvalue_item | variable_lvalue_item { attribute_instance } inc_or_dec_operator SV-BC19-49: VSG #181 (ETF Passed) SV-BC19-50: In A.8.4. in the production primary REMOVE: | { expression {, expression } } | { expression { expression } } SV-BC19-44: In A.8.5, replace the variable_lvalue production WITH: variable_lvalue ::= hierarical_variable_identifier { '[' expression ']' } [ '[' range_expression ']'] | '{' variable_lvalue { ',' variable_lvalue } '}' REMOVE variable_lvalue_item production. In A.8.1: remove variable_concatenation and variable_concatenation_value productions. SV-BC55: REPLACE: A.2.2.1 Net and variable types data_type ::= integer_vector_type [ signing ] { packed_dimension } [ range ] | integer_atom_type [ signing ] { packed_dimension } <-- this is not allowed | type_declaration_identifier | non_integer_type | struct [ packed ] [ signing ] { { struct_union_member } } | union [ packed ] [ signing ] { { struct_union_member } } | enum [ integer_type [ signing ] { packed_dimension } ] { enum_identifier [ = constant_expression ] { , enum_identifier [ = constant_expression ] } } | void WITH: A.2.2.1 Net and variable types data_type ::= integer_vector_type [ signing ] { packed_dimension } [ range ] | integer_atom_type [ signing ] | type_declaration_identifier | non_integer_type | struct [ packed ] [ signing ] { { struct_union_member } } | union [ packed ] [ signing ] { { struct_union_member } } | enum [ integer_type [ signing ] { packed_dimension } ] { enum_identifier [ = constant_expression ] { , enum_identifier [ = constant_expression ] } } | void SV-BC19-51: Add a footnote to the time_literal production in A.8.4 The unsigned number or fixed point number in time_literal shall not be followed by a white_space. SV-BC37: Delete footnote 7 in the BNF.