Re: BTF Enhancement Proposal - Remove Continuous Assignment Net Declaration Requirement

From: Stuart Sutherland (stuart@sutherland.com)
Date: Mon Jul 19 1999 - 12:45:43 PDT


First, I agree with adding implicitly declarations of the LHS of continuous
assignments. The syntax already requires the LHS to be a net data type, so
there is no reason it cannot be implied to be the default net type.

Second, I like Mac's suggestion of disabling implicit types completely.
How about taking advantage of the existing `default_nettype directive, and add:

  `default_nettype none

For clarity, the documentation should explicitly state that `resetall will
change the default net type back to wire.

Third, Where does one find a 1978 Fortran manual? And is it available on
punched paper tape, or does one have to resort to the new-fangled punch
cards that cannot be bent, folded, spindled or mutilated? :)

Stu

At 10:15 AM 7/19/99, Michael McNamara wrote:
>
>Clifford E. Cummings writes:
> > BTF Enhancement Proposal - Remove Continuous Assignment Net Declaration
> > Requirement
> >
> > In general, an undeclared identifier defaults to a scalar net. One notable
> > and annoying exception is the left-hand side argument of a continuous
> > assignment, which must either be a terminal of a gate, UDP or module, or
> > must be instantiated explicitly. This proposal does away with the
> > requirement to make non-terminal left-hand side identifier declarations.
> >
> > Old: IEEE 1365 LRM, Draft 2 with BE55 (page 19)
> > 3.5 Implicit declarations
> > The syntax shown in 3.2 shall be used to declare nets and registers
> > explicitly. In the absence of an explicit declaration of a net or a
> > register, statements for gate, user-defined primitive, and module
> > instantiations shall assume an implicit net declaration. This happens when
> > a name is used in the terminal list of an instance of a gate, a
> > user-defined primitive, or a module that has not been explicitly declared
> > previously in one of the declaration statements of the instantiating
module.
> >
> > Proposed new wording for IEEE 1365 LRM, Draft 3
> > 3.5 Implicit declarations
> > The syntax shown in 3.2 shall be used to declare nets and registers
> > explicitly. In the absence of an explicit declaration of a net or a
> > register, statements for gate, user-defined primitive, module
> > instantiations, and continuous assignments shall assume an implicit net
> > declaration. This happens when a name is used in the terminal list of an
> > instance of a gate, a user-defined primitive, a module, or the left-hand
> > side of a continuous assignment that has not been explicitly declared
> > previously in one of the declaration statements of the instantiating
module.
> >
>
> I would be in favor of this only if we added an
>
>`implicit none
>
> directive, which turns off all implicit declarations.
>
>
>Proposed wording
>
>`implicit none
>
>Inhibits the implicit declaration of data types in the program
>unit. When it is used, you must declare the data types of all symbols
>explicitly. Statement format:
>
>`implicit none
>
>
>(Note: This wording I lifted directly from the 1978 DEC FORTRAN
>manual; presumably we can update the langauge. )
>
>-mac

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Stuart Sutherland Sutherland HDL Inc.
stuart@sutherland.com 22805 SW 92nd Place
phone: 503-692-0898 Tualatin, OR 97062



This archive was generated by hypermail 2.1.4 : Mon Jul 08 2002 - 12:53:29 PDT and
sponsored by Boyd Technology, Inc.