[sv-bc] Re: implicit instantiation of top-level modules?


Subject: [sv-bc] Re: implicit instantiation of top-level modules?
From: Michael McNamara (mac@verisity.com)
Date: Wed Jul 09 2003 - 09:01:51 PDT


Shalom Bresticker writes:
> Precedence: bulk
>
> Yes, and it does not say anything about implicit instantiation. It
> talks about module names, not instance names.
>
> Similarly, 12.1.1 says, "Top-level modules are modules that are
> included in the source text but are not instantiated."
>
> But the main place to look at is 12.5:

> "The name of a module or module instance is sufficient to identify
> the module and its location in the hierarchy. A lower-level module
> can reference items in a module above it in the hierarchy.Variables
> can be referenced if the name of the higher-level module or its
> instance name is known."
>
> Now see the Example. In the example, there are two top-level
> modules, a and d. Both a and d instantiate b, with instance names
> a_b1 and d_b1 respectively.
>
> Module b instantiates c. c contains a reference to "b.i", where i
> is an integer declared in module b. The example states that this
> references both a.a_b1.i and d.d_b1.i by upwards name referencing.
>
> But note that b is explictly instantiated and it is not a top-level
> module. Yet c can still refer to it by its module name even though
> it is not the module instance name.
>
> I believe that the same mechanism is used for full hierarchical
> names which start with the top-level module name. That is why it
> works even though the top-level module is not instantiated.
>
> Shalom

I believe Shalom is correct here, in stating that the top level
modules are never instantiated.

However, as I recall in VCS, we in truth created an instance of each
top level module, with the instance name being the name of the module;
then the code to implement things like $display("%m"); was very
simple.

However, one does need to pay attention to the ability to use a module
name as an element in a hierarchial path.

> Dave Rich wrote:
>
> > Actually, I did find the wording in section 12.4 of 1364-2001, second
> > paragraph
> >
> > "At the top of the name hierarchy are the names of one or more root
> > modules of which no instances have been
> > created. This root or these parallel root modules make up one or more
> > hierarchies in a design description or
> > description."
> >
> > Karen Pieper wrote:
> >
> > > Verilog 2K does have implicit instantiation at the $root level
> > > creating top-level modules. We believe
> > > there must be language in the V2K spec indicating that the implicit
> > > name for those modules is
> > > the same as the module name. There is another issue that addresses
> > > implicit instantiation of
> > > modules declared within other modules.
> > >
> > > K
> > >
> > > At 01:12 PM 7/8/03 +0300, you wrote:
> > >
> > >> Regarding "11. Is there wording on the Verilog 2K spec for this?":
> > >>
> > >> I don't understand the question. The feature does not exist in
> > >> 1364-2001, so
> > >> there is no wording on it.
> > >>
> > >> Shalom
> > >>
> > >>
> > >>
> > >> "Karen L. Pieper" wrote:
> > >>
> > >> > Hi, all,
> > >> >
> > >> > The minutes for the 7/7/03 meeting have been posted to the sv-bc
> > >> website.
> > >> >
> > >> > http://www.eda.org/sv-bc/minutes
> > >> >
> > >> > K
>
>
> --
> 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 2b28 : Wed Jul 09 2003 - 09:03:51 PDT