errata/211: PROPOSAL - 3.11.2: localparam behavior not clear

From: etf@boyd.com
Date: Mon Dec 15 2003 - 09:58:28 PST

  • Next message: stefen@boyd.com: "errata/484: PROPOSAL - 10.3.4.e: assignment of function result value"

    This comes to update the proposal to #211 according to
    Shalom's comments on James's proposal.
    However, it is not in a final state.
    It still needs to be refined according to Steven Sharp's
    comments.

     
    In 12.2.2.1
     
    Add the following to the end of the section:
     
    Local parameters cannot be overridden, therefore, they are not
    considered part of the ordered list for parameter value assignment.
    In the following example, addr_width will be assigned the value of 12
    and data_width will be assigned the value of 16. mem_size will not be
    explicitly assigned a value due to the ordered list, but will have
    the value 4096 due to its declaration expression.
     
    module my_mem (addr, data);
            
    parameter addr_width = 16;
    localparam mem_size = 1 << addr_width;
    parameter data_width = 8;
    ..
    endmodule
     
    module top;
    ..
    my_mem #(12, 16) m(addr,data);
    endmodule
     
     
    In 12.2.3
     
    Add the following sentence between the first and second sentences:
     
    However, overriding a parameter, whether by a defparam
    statement or in a module instantiation statement,
    effectively replaces the parameter definition with
    the new expression.

    Add the following sentence to the paragraph:
     
    If memory_size is updated due to either a defparam or instantiation
    statement, then it will take on that value, regardless of the value
    of word_size.

    http://wa.boyd.com/cgi-bin/issueproposal.pl?cmd=view&database=default&pr=211



    This archive was generated by hypermail 2.1.4 : Mon Dec 15 2003 - 09:58:32 PST and
    sponsored by Boyd Technology, Inc.