Proposal: Reconciliation of SystemVerilog BNF with 8 recent Verilog errata fixes

              : Brad.Pierce@Synopsys.com

              : 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 ;