From: Clifford E. Cummings (cliffc@sunburst-design.com)
Date: Tue Jul 07 1998 - 08:47:13 PDT
Dear BTF:
X-Lines: 83
Content-Type: text/plain; charset="us-ascii"
Content-Length: 3780
X-Status: $$$$
X-UID: 0000000554
Status: RO
I will no longer send the BNF out to the entire BTF reflector (I don't
think everyone wants to receive the full BNF each time there is a change).
Instead, I will notify the BTF when the BNF has changed and the general
nature of the changes.
The latest copies of the Verilog BNF's have been placed at the following
web locations:
BNF showing changes (was-1995)/(is-1998)
www.sunburst-design.com/bnf.htm
www.sunburst-design.com/bnflink. htm linked version of bnf
Current 1998 version of BNF
www.sunburst-design.com/bnf98.htm
www.sunburst-design.com/bnf98link.htm linked version of bnf98
1995 version of BNF (complete with mistakes!)
www.sunburst-design.com/bnf95.htm
www.sunburst-design.com/bnf95link. htm linked version of bnf95
The linked versions are not perfect. Adam has reported that he has a new
version of his Perl linker script. I will execute the updates and send out
a new e-mail after I received Adam's updated script.
There has been some discussion about the growth of the BNF to accommodate
all of the enhancements. Suggestions have been made to simplify the BNF and
then add verbiage to describe the limitations.
I prefer to include the more verbose BNF. We have received a number of
errata and complaints about the 1995 BNF because it did not match the true
functionality described in the LRM. I don't want to have the same problem
with the 1998 BNF.
The more verbose BNF also lends itself well to Adams linker script. Adam's
script has shown us where portions of the BNF are dangling and where the
BNF has missing definitions. The complete BNF should almost completely link
when it is done.
While working on the Generate proposal, I changed some of Kurt's BNF names
for the generate portions to hopefully be shorter and easier to understand.
Below are the modifications I have made and why:
A generate item is a generate conditional statement (generate if ...), a
generate case statement (generate case ...), a generate loop statement
(generate for ...), a generate named block or any of the following items
that can also be used outside of a generate statement but within a module:
net, reg, integer real, time, realtime, event, task, function and local
parameter declarations, parameter overrides, continuous assignments, gate,
udp and module instantiations, initial, always and combinational-always
constructs.
Module declarations and module items that shall not be permitted in a
generate statement include: parameters, local parameters, input
declarations, output declarations, inout declarations and specify blocks.
<p><p>I have changed the following BNF definition names to names that I found
easier to understand.
Changed: ungeneratable_module_item_declaration to module_item_declaration
These are declarations that cannot be included in a generate item
Module items that can be declared in modules but not in a generate item
Changed: generatable_module_item_declaration to
module_or_generate_item_declaration
These are declarations that can be used in both modules and generate item
Changed: non_generated_module_item to module_or_generate_item
These are items that can be used in both modules and generate item
<p>Regards - Cliff
//********************************************************************//
// Cliff Cummings E-mail: cliffc@sunburst-design.com //
// Sunburst Design Phone: 503-579-6362 / FAX: 503-579-7631 //
// 15870 SW Breccia Dr., Beaverton, OR 97007 //
// //
// Verilog & Synthesis Training / On-Site Training //
// Verilog, VHDL, Synopsys, LMG, FPGA, Consulting and Contracting //
//********************************************************************//
This archive was generated by hypermail 2.1.4
: Mon Jul 08 2002 - 12:52:56 PDT
and
sponsored by Boyd Technology, Inc.