Subject: Re: Proposed BNF Fix for Verilog-2001 Parameter Errata
From: Clifford E. Cummings (cliffc@sunburst-design.com)
Date: Thu Apr 11 2002 - 14:30:33 PDT
At 02:08 PM 4/11/02 -0700, Pat Bryant wrote:
>I'm concerned with the fact that the "parameter_declaration" line is the
>only one
>that has a semi-colon in the "non_port_module_item". How about
>adding a new BNF construct called "parameter_declaration_item" with is
>
> parameter_declaration_item ::=
> {parameter_declaration ;}
>
>Then in the module_item and non_port_module_item would be
>
> non_module_item ::=
> module_or_generate_item
> {attribute_instance} generated_instantiation
> | {attribute_instance} local_parameter_declaration
> | {attribute_instance} module_or_generate_item
> | {attribute_instance} parameter_declaration_item
> | {attribute_instance} specify_block
> | {attribute_instance} specparam_declaration
>
>Maybe we can do something similar for "port_declaration ;" in the
>"module_item".
>
>I have no great concerns with what was proposed, but I find that if the
>formats under a
>BNF construct is all similar, then there is less chance of (human) error.
>
>Pat Bryant
I am not opposed to this suggestion if it is supported by the various
committee members.
Note that section A.6.4 already has a mix of productions with and without
semicolons, so there is a precedence for the proposed syntax.
Regards - Cliff
A.6.4 Statements
statement ::=
{ attribute_instance } blocking_assignment ;
| { attribute_instance } case_statement
| { attribute_instance } conditional_statement
| { attribute_instance } disable_statement
| { attribute_instance } event_trigger
| { attribute_instance } loop_statement
| { attribute_instance } nonblocking assignment ;
| { attribute_instance } par_block
| { attribute_instance } procedural_continuous_assignments ;
| { attribute_instance } procedural_timing_control_statement
| { attribute_instance } seq_block
| { attribute_instance } system_task_enable
| { attribute_instance } task_enable
| { attribute_instance } wait_statement
statement_or_null ::=
statement
| { attribute_instance } ;
function_statement ::=
{ attribute_instance } function_blocking_assignment ;
| { attribute_instance } function_case_statement
| { attribute_instance } function_conditional_statement
| { attribute_instance } function_loop_statement
| { attribute_instance } function_seq_block
| { attribute_instance } disable_statement
| { attribute_instance } system_task_enable
//*****************************************************************//
// Cliff Cummings Phone: 503-641-8446 //
// Sunburst Design, Inc. FAX: 503-641-8486 //
// 14314 SW Allen Blvd. E-mail: cliffc@sunburst-design.com //
// PMB 501 Web: www.sunburst-design.com //
// Beaverton, OR 97005 //
// //
// Expert Verilog, Synthesis and Verification Training //
//*****************************************************************//
This archive was generated by hypermail 2b28 : Thu Apr 11 2002 - 14:54:59 PDT