From: Adam Krolnik (adamk@cyrix.com)
Date: Tue Jul 28 1998 - 21:34:00 PDT
Hi Kurt,
Wasn't going to do this, but I noticed you didn't correctly specify the
instance names for the example with the task generation.
Changes include:
1. Minor grammar problems (bad tense, additional if/of/).
2. Redundant use of word 'Verilog' in few places.
3. rename 'module instance statement #' to 'named or ordered parameter value assignment'
<p> Adam
<p>*** B01_generate-396-24.html Wed Jul 29 09:59:19 1998
--- B01_generate-addendum.html Wed Jul 29 10:25:53 1998
***************
*** 21,27 ****
declared in a module can be overridden. <FONT COLOR="#33FF33">It describes
how generated instantiations can be used to do</FONT>
<BR><FONT COLOR="#33FF33">
! conditionally or multiple instantiations in a design.</FONT>
<BR>
<FONT COLOR="#000000">on page 11 add:</FONT>
--- 21,27 ----
declared in a module can be overridden. <FONT COLOR="#33FF33">It describes
how generated instantiations can be used to do</FONT>
<BR><FONT COLOR="#33FF33">
! conditional or multiple instantiations in a design.</FONT>
<BR>
<FONT COLOR="#000000">on page 11 add:</FONT>
***************
*** 41,50 ****
<FONT COLOR="#3366FF">Verilog HDL <B>localparam</B> - local parameter(s)
are identical to parameters except that they can not directly be modified
! with the <B>defparam</B> statement or by the module instance statement
! <B>#</B>. Local parameters can be assigned to a constant expression
containing a parameter which can be modified with the <B>defparam</B> statement
! or by the module instance statement <B>#</B>. See Section 12.1.3
for details.</FONT>
<FONT COLOR="#3366FF">The syntax for local parameter declarations is
--- 41,49 ----
<FONT COLOR="#3366FF">Verilog HDL <B>localparam</B> - local parameter(s)
are identical to parameters except that they can not directly be modified
! with the <B>defparam</B> statement or by the ordered or named parameter value assignment. Local parameters can be assigned to a constant expression
containing a parameter which can be modified with the <B>defparam</B> statement
! or by the ordered or named parameter value assignment. See Section 12.1.3
for details.</FONT>
<FONT COLOR="#3366FF">The syntax for local parameter declarations is
***************
*** 81,87 ****
because that is when the parameters associated with a module become defined,
hence, allowing the definition of the generated statements and declarations.
Genvars are only defined during the evaluation of the generate instantiations
! (see section 12.1.3), and do not exist during simulation of a Verilog design.</FONT>
<BR>
<BR><FONT COLOR="#3366FF">Generate statements facilitate the creation of
parameterized models. When used with constant functions (see section 10.3.5),
--- 80,86 ----
because that is when the parameters associated with a module become defined,
hence, allowing the definition of the generated statements and declarations.
Genvars are only defined during the evaluation of the generate instantiations
! (see section 12.1.3), and do not exist during simulation of a design.</FONT>
<BR>
<BR><FONT COLOR="#3366FF">Generate statements facilitate the creation of
parameterized models. When used with constant functions (see section 10.3.5),
***************
*** 108,115 ****
identifier names and can be referenced hierarchically as described in section
12.4 .</FONT>
<BR><FONT COLOR="#3366FF"> </FONT>
! <BR><FONT COLOR="#3366FF">Parameter redefinition using module instance
! statement <B>#</B> or defparam statements can also be declared within
the generate scope.</FONT>
<BR>
<BR><FONT COLOR="#3366FF">Tasks and functions declarations shall also be
--- 107,113 ----
identifier names and can be referenced hierarchically as described in section
12.4 .</FONT>
<BR><FONT COLOR="#3366FF"> </FONT>
! <BR><FONT COLOR="#3366FF">Parameter redefinition using by the ordered or named parameter value assignment or defparam statements can also be declared within
the generate scope.</FONT>
<BR>
<BR><FONT COLOR="#3366FF">Tasks and functions declarations shall also be
***************
*** 262,272 ****
<B><FONT COLOR="#3366FF">Section 12.1.3.2 Generate-loop</FONT></B>
<BR><FONT COLOR="#3366FF"> </FONT>
! <BR><FONT COLOR="#3366FF">A generate-loop permits one or more of
! variable declarations, defined modules, user defined primitives, Verilog
gate primitives, continuous assignments, initial blocks and always blocks
! to be instantiated multiple times using an indexed for-loop. The index
! loop-variable used in a generate for-loop shall be declared as a genvar.</FONT>
<FONT COLOR="#3366FF">Example 1 - A parameterized gray-code to binary-code
converter module using a loop to generate continuous assignments</FONT>
--- 260,270 ----
<B><FONT COLOR="#3366FF">Section 12.1.3.2 Generate-loop</FONT></B>
<BR><FONT COLOR="#3366FF"> </FONT>
! <BR><FONT COLOR="#3366FF">A generate-loop permits one or more
! variable declarations, modules, user defined primitives,
gate primitives, continuous assignments, initial blocks and always blocks
! to be instantiated multiple times using a for-loop. The index
! loop variable used in a generate for-loop shall be declared as a genvar.</FONT>
<FONT COLOR="#3366FF">Example 1 - A parameterized gray-code to binary-code
converter module using a loop to generate continuous assignments</FONT>
***************
*** 611,616 ****
--- 609,616 ----
endtask</FONT></TT>
<BR><TT><FONT COLOR="#3366FF">
end</FONT></TT>
+ <BR><TT><FONT COLOR="#3366FF"> // The generated instance names are
+ p[3], p[2], p[1], p[0] and the task read_mem</FONT></TT>
<BR><TT><FONT COLOR="#3366FF">
{'d16, 'd8}: // 16Meg 8 bits wide.</FONT></TT>
<BR><TT><FONT COLOR="#3366FF">
***************
*** 663,670 ****
.....</FONT></TT>
<BR><TT><FONT COLOR="#3366FF"> endcase</FONT></TT>
<BR><TT><FONT COLOR="#3366FF"> endgenerate</FONT></TT>
! <BR><TT><FONT COLOR="#3366FF"> // The generated instance name is
! p, and the task read_mem</FONT></TT>
<BR>
<BR><TT><FONT COLOR="#3366FF">endmodule</FONT></TT>
<BR>
--- 663,670 ----
.....</FONT></TT>
<BR><TT><FONT COLOR="#3366FF"> endcase</FONT></TT>
<BR><TT><FONT COLOR="#3366FF"> endgenerate</FONT></TT>
! <BR><TT><FONT COLOR="#3366FF"> // The generated instance names are
! p[7], p[6], p[5], p[4], p[3], p[2], p[1], p[0], and the task read_mem</FONT></TT>
<BR>
<BR><TT><FONT COLOR="#3366FF">endmodule</FONT></TT>
<BR>
***************
*** 710,716 ****
<HR WIDTH="100%">
<BR><FONT COLOR="#3366FF"> hierarchical_identifier ::=</FONT>
<BR><FONT COLOR="#3366FF">
! hierarchical_branch [ { <B>.</B>hierarchical_branch } ]</FONT>
<FONT COLOR="#3366FF">hierarchical_branch ::=</FONT>
<BR><FONT COLOR="#3366FF">
--- 710,716 ----
<HR WIDTH="100%">
<BR><FONT COLOR="#3366FF"> hierarchical_identifier ::=</FONT>
<BR><FONT COLOR="#3366FF">
! hierarchical_branch [ { <B>.</B> hierarchical_branch } ]</FONT>
<FONT COLOR="#3366FF">hierarchical_branch ::=</FONT>
<BR><FONT COLOR="#3366FF">
This archive was generated by hypermail 2.1.4
: Mon Jul 08 2002 - 12:52:59 PDT
and
sponsored by Boyd Technology, Inc.