Re: errata/79: Section 3.5 Implicit declarations wrong or misleading

From: Shalom Bresticker (Shalom.Bresticker@motorola.com)
Date: Mon Jul 29 2002 - 00:10:01 PDT


Precedence: bulk

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

From: Shalom Bresticker <Shalom.Bresticker@motorola.com>
To: sharp@cadence.com
Cc: etf-bugs@boyd.com
Subject: Re: errata/79: Section 3.5 Implicit declarations wrong or misleading
Date: Mon, 29 Jul 2002 10:08:22 +0300

 Yes, I mentioned this in the attached mail, below, but it was not
 corrected.
 
 Shalom
 
 
 sharp@cadence.com wrote:
 
> In section 3.5, it is stated that
>
> "...an implicit net of default net type shall be assumed
> in the following circumstances:
>
> If an identifier is used in a port expression declaration,
> then an implicit net of type wire shall be assumed..."
>
> This is incorrect. An implicit net of the default net type
> should be assumed, as is stated above it. Note that the
> second circumstance does say "net of default net type".
 
 Subject:
             Re: BE55
        Date:
             Thu, 21 Oct 1999 14:20:56 +0200
        From:
             "Shalom Bresticker (r50386)" <r50386@email.sps.mot.com>
 Internal
  Organization:
             Motorola Semiconductor Israel, Ltd.
          To:
             Anders Nordstrom <andersn@nortelnetworks.com>, btf@boyd.com
   References:
             1
 
 
 
 
 Anders Nordstrom wrote:
 
     BE55 - This one doesn't seem to be implemented at all....
         Replace the first paragraph in section 3.5 on page 21 with:
 
     The syntax shown in Section 3.2 shall be used to declare nets and
 registers explicitly. In the absence of an
     explicit declaration,
     an implicit net of default net type shall be assumed in the
 following circumstances:
 
 
 The concept of "default net type" has not yet been defined at this
 point.
 I suggest to delete "of default net type" here. The net type is defined
 below.
 
 
     - If an identifier is used in a port expression declaration, then an
 implicit net of type wire shall be assumed,
     with the vector width of
     the port expression declaration. See Section 12.3.2 for a discussion
 of port expression declarations.
 
 
 Question: implicit net of type wire or of default net type ?
 The wording of 12.3.2, below, says that default net type is used.
 I suggest to delete "of type wire" here. The net type is defined below.
 
 
 
     - If an identifier is used in the terminal list of a primitive
 instance or a module instance, and that identifier
     has not been
     explicitly declared previously in one of the declaration statements
 of the instantiating module, then an
     implicit scalar net of
     default net type shall be assumed.
 
 
 Similarly, delete "of default net type" here. The net type is defined
 immediately below.
 Also need to add case of LHS of continuous assignment.
 
 The second paragraph of 3.5 is confusing. It says:
 
 "These implicitly declared nets shall be treated as scalar nets of type
 wire. See Section 19 for a discussion of
 control of the type for implicitly declared nets with the
 `default_nettype compiler directive."
 
 These two sentences seems to contradict each other. Better is as
 written below:
 
 The implicit net data type shall be wire, unless another default type
 has been directed.
 See Section 19.2 for a discussion of control of the type for implicitly
 declared nets using the `default_nettype compiler directive.
 
 Note that in contrast to what is currently written in 3.5, implicit nets
 are not necessarily scalars.
 That is, in the case of port expressions, they take the width of the
 port expression.
 
 
     In section 12.3.2 on page 174. Chage the sentence "A port can be
 declared in both a port declaration and a
     net or register declaration.
         If a port is declared as a vector, the range specification
 between the two declarations of a port shall be
     identical. " to:
 
     A port_expression which is an identifier can be declared in both a
 port declaration and a net or register
     declaration. A net or register
     declaration establishes the data type of the
     internal net or register connected to the port. If no net or
 register declaration is made for the port_expression
     identifier,
     then a default data type is assumed.
 
     An explicit net or register declaration for an identifier which is
 also used in a port_expression declares the
     specific data type
     and vector size of the port_expression. If the vector
     range of a data type declaration differs from the vector range of a
 port_expression declaration for the same
     identifier,
     the declaration of the net or register shall be used.
 
     If there is no explicit net or register declaration for an
 identifier used in a port_expression declaration, then
     an implicit net shall be assumed,
     with the vector width of the port_expression declaration. The
 implicit net data type shall be wire, unless
     another default type has been directed.
     See Section 19.2 for a discussion of control of the type for
 implicitly
     declared nets using the `default_nettype compiler directive. This
 implicit net type shall be used for the
     internal net type when the rules
     for connecting dissimilar ports are applied.
     These rules are discussed in Section 12.3.6 and Section 12.3.8.
 
 This can be shortened as follows, I think:
 
 A port_expression which is an identifier can be declared in both a port
 declaration and a net or register
 declaration.
 
 A net or register declaration establishes the data type and vector range
 of the port_expression.
 If the vector range of a data type declaration differs from the vector
 range of a port_expression declaration for the
 same identifier,
 the declaration of the net or register shall be used.
 
 If no net or register declaration is made for the port_expression
 identifier, then a default data type is assumed, as
 described in Section 3.5.
 This implicit net type shall be used for the internal net type when the
 rules for connecting dissimilar ports are
 applied.
 These rules are discussed in Section 12.3.6 and Section 12.3.8.
 
 --
 
 ************************************************************************
 
 Shalom Bresticker email: shalom@msil.sps.mot.com
 Motorola Semiconductor Israel, Ltd. Tel #: +972 9 9522268
 P.O.B. 2208, Herzlia 46120, ISRAEL Fax #: +972 9 9522444
 http://www.motorola-semi.co.il/
 ************************************************************************
 
 
 
 
 
 
 --
 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
 
 "The devil is in the details."
 
 
 



This archive was generated by hypermail 2.1.4 : Thu Oct 10 2002 - 09:24:26 PDT and
sponsored by Boyd Technology, Inc.