errata/17: PROPOSAL - 12.1.3 is not clear enough about permitted defparam usage

From: Shalom.Bresticker@motorola.com
Date: Mon Jul 26 2004 - 05:35:11 PDT

  • Next message: Clifford E. Cummings: "Re: Minutes of the July 13, 2004 IEEE-1364 Working Group"

    The following proposal was worked out by Jason and Gord,
    only slightly edited by Shalom.

    12.1.3 was deleted by the resolution of issue #113.

    That leaves the following discussion in para. 1 of 12.2.1:

    "Using the <i>defparam</i> statement, parameter values can be
    changed in any module instance throughout the design using
    the hierarchical name of the parameter. However, a defparam
    statement in a hierarchy under a generate scope or array of
    instances shall not change a parameter value outside that
    hierarchy. See 12.5 for hierarchical names."

    (The xref is to 12.4 in 2001/D3, but issue #113 bumps 12.4
    to 12.5 instead.)

    This proposal is to change para. 1 of 12.2.1 to:

    "Using the <i>defparam statement</i>, parameter values can be
    changed in any module instance throughout the design using
    the hierarchical name of the parameter. See 12.5 for
    hierarchical names.

    However, a defparam statement in a hierarchy in or under a
    generate block instance (see 12.4) or an array of instances
    shall not change a parameter value outside that hierarchy.

    Note: Each instantiation of a generate block is considered
    to be a separate hierarchy scope. Therefore this rule
    implies that a defparam statement in a generate block may
    not target a parameter in another instantiation of the same
    generate block, even when the other instantiation is created
    by the same loop generate construct. For example, the
    following code is not allowed:

      genvar i;

      generate
        for(i=0; i < 8; i = i+1) begin : somename
             flop my_flop(in[i], in1[i], out1[i]);
             defparam somename[i+1].my_flop.xyz = i ;
        end
      endgenerate

    Similarly, a defparam statement in one instance of an array
    of instances may not target a parameter in another instance
    of the array.

    http://boydtechinc.com/cgi-bin/issueproposal.pl?cmd=view&database=default&pr=17



    This archive was generated by hypermail 2.1.4 : Mon Jul 26 2004 - 05:35:25 PDT and
    sponsored by Boyd Technology, Inc.