Re: errata/483: 4.2: Bit/part-selects of parameters

From: Shalom Bresticker (Shalom.Bresticker@motorola.com)
Date: Thu Sep 25 2003 - 01:00:01 PDT

  • Next message: Shalom Bresticker: "Re: errata/485: Multi-line string literals?"

    Precedence: bulk

    The following reply was made to PR errata/483; it has been noted by GNATS.

    From: Shalom Bresticker <Shalom.Bresticker@motorola.com>
    To: Steven Sharp <sharp@cadence.com>
    Cc: etf-bugs@boyd.com
    Subject: Re: errata/483: 4.2: Bit/part-selects of parameters
    Date: Thu, 25 Sep 2003 11:46:21 +0300

     From the point of view of the LRM, "reg" most certainly is a "data type",
     as stated explicitly in 3.2.2 and elsewhere.
     
     You are correct that if neither type nor range is specified, then the
     parameter gets the type and range of the value assigned to it.
     So I agree that it is more complicated than I initially thought.
     
     As far as a "reg" being a variable, whereas parameters are constants,
     that is not a difficulty, because the same applies to declaring a parameter
     with type integer, real, realtime, or time. Obviously, its variability
     is not being referred to here.
     
     Also, I again refer you to the parallel case of function type in 10.3.1
     
    > > This is sort of a side-question, but what is the type of a parameter
    > > without a type specification? The LRM does not say explicitly (3.11.1).
    > > I think it should say that it is implicitly declared as a "reg" type,
    > > like functions.
    >
    > I'm not sure what you mean here. "reg" isn't really a data type.
    > A variable declared with the keyword "reg" has a datatype of a scalar or
    > vector of 4-state bits. But that is not specific to regs, since there are
    > nets and parameters of that type. A parameter without a type specification
    > takes on the type of the value it is set to, which is either real or vector
    > (which can be signed or unsigned).
    >
    > The other aspect of a reg, besides its data type, is that it is a variable.
    > A parameter is not a variable, and does not have the same read/write
    > semantics as a variable. Perhaps you meant that it is not a net, which is
    > true. It is a parameter, which has semantics distinct from variables and
    > nets. Unlike nets, it does not have strength or delay or drivers. Unlike
    > variables, it cannot be written to in procedural code.
     
     Shalom
     
     --
     Shalom Bresticker Shalom.Bresticker@motorola.com
     Design & Reuse Methodology Tel: +972 9 9522268
     Motorola Semiconductor Israel, Ltd. Fax: +972 9 9522890
     POB 2208, Herzlia 46120, ISRAEL Cell: +972 50 441478
     
     
     



    This archive was generated by hypermail 2.1.4 : Thu Sep 25 2003 - 01:02:55 PDT and
    sponsored by Boyd Technology, Inc.