Number | 79
|
Category | errata
|
Synopsis | Section 3.5 Implicit declarations wrong or misleading
|
State | lrmdraft
|
Class | errata-simple
|
Arrival-Date | Jul 25 2002
|
Originator | sharp@cadence.com
|
Release | 2001b, 3.5
|
Environment |
|
Description |
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". |
Fix |
Section 3.5, first bullet: Change "implicit net of type wire" to "implicit net of default net type". |
Audit-Trail |
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." |
Unformatted |
|
Hosted by Boyd Technology