Subject: $root and "top level" instantiations
From: Gordon Vreugdenhil (gvreugde@synopsys.com)
Date: Mon Aug 12 2002 - 15:03:25 PDT
I would appreciate some feedback on the intent of $root 
and "top level" instantiations as described in Sect 12.2
of the SystemVerilog 3.0 specification.
The relevant text in the LRM is in Section 12.2 (on pg 51):
"The order of elaboration shall be: First, look for explicit
instantiations in $root.  If none, then look for implicit
instantiations (i.e. uninstantiated modules)..."
... snip ...
"A module can be explicitly instantiated in the $root top-level. All
uninstantiated modules become implicitly instantiated within the top
level, which is compatible with Verilog."
1) If you explicitly instantiate one or more modules in $root, do
   uninstantiated modules get implicitly instantiated?  The two
   quotes seem to imply contradictory answers.
2) Do implicitly instantiated modules get instantiated in $root or 
   in some "top level" along with $root?  Or does this depend on
   whether $root has any explicit instantiations?  What if $root
   is non-empty (ie. has global data or type declarations) but
   has no instantiations?
This seems to be an area in which some clarification might be
useful in the spec.
Gord.
-- ---------------------------------------------------------------------- Gord Vreugdenhil gvreugde@synopsys.com Staff Engineer, VCS (Verification Tech. Group) (503) 547-6054 Synopsys Inc., Beaverton OR
This archive was generated by hypermail 2b28 : Mon Aug 12 2002 - 15:06:21 PDT