Proposal: Reconciliation of SystemVerilog BNF with 8 recent Verilog errata fixes
: 6/Oct/2003
---- ETF 136 and ETF 208 -------------------------------------------------------------------------
In A.9.4, REPLACE
simple_hierarchical_branch ::= simple_identifier [ [ unsigned_number ] ]
[ { .simple_identifier [ [ unsigned_number ] ] } ]
escaped_hierarchical_branch ::= escaped_identifier [ [ unsigned_number ] ]
[ { .escaped_identifier [ [ unsigned_number ] ] } ]
WITH
simple_hierarchical_branch ::= simple_identifier [ [ constant_expression ] ]
{ .simple_identifier [ [ constant_expression ] ] }
escaped_hierarchical_branch ::= escaped_identifier [ [ constant_expression ] ]
{ .escaped_identifier [ [ constant_expression ] ] }
---- ETF 226 ----------------------------------------------------------------------------------------
In A.8.3, REPLACE
constant_param_expression ::= constant_expression
WITH
constant_param_expression ::= constant_mintypmax_expression | data_type
In A.8.3 and Syntax 18-3, ADD
param_expression ::= mintypmax_expression | data_type
In A.4.1.1 and Syntax 18-3, REPLACE
ordered_parameter_assignment ::= expression | data_type
named_parameter_assignment ::=
. parameter_identifer ( [ expression ] )
| . parameter_identifer ( data_type )
WITH
ordered_parameter_assignment ::= param_expression
named_parameter_assignment ::= . parameter_identifer ( [ param_expression ] )
---- ETF 276 ----------------------------------------------------------------------------------------
In A.6.4, REPLACE
function_statement ::= [ block_identifier : ] function_statement_item
WITH
function_statement ::= statement
and in Syntax 8-1 REMOVE function_statement.
In A.6.2 and Syntax 8-1, REMOVE function_statement_item.
In A.6.2, REMOVE function_blocking_assignment.
In A.6.3, REMOVE function_seq_block.
In A.6.6, REMOVE function_conditional_statement.
In A.6.6, REMOVE function_if_else_if_statement.
In A.6.7, REMOVE function_case_statement.
In A.6.7, REMOVE function_case_item.
In A.6.8, REMOVE function_loop_statement.
---- ETF 295 and ETF 337--------------------------------------------------------------------------
In A.1.5, in non_port_module_item, REPLACE
| { attribute_instance } generated_module_instantiation
WITH
| generated_module_instantiation
and REPLACE
| { attribute_instance } specify_block
WITH
| specify_block
In A.1.6, in non_port_interface_item, REPLACE
| { attribute_instance } generated_interface_instantiation
WITH
| generated_interface_instantiation
---- ETF 415 ----------------------------------------------------------------------------------------
In A.8.4, in both module_path_primary and primary, REMOVE
| constant_function_call
---- ETF 462 ----------------------------------------------------------------------------------------
In A.1.1, REPLACE
include_statement ::= include <file_path_spec> ;
WITH
include_statement ::= include file_path_spec ;