From: Anders Nordstrom (andersn@bcarsb82)
Date: Wed Sep 03 1997 - 10:25:02 PDT
Subject: BTF - BE21 - hierarchical instance names versus module names
Behavioral Task Force - Errata Submission
Assigned Enhancement Request Number: BE21
Errata Name (Description): hierarchical instance names versus
module names
Section: 12.4.1
Date Submitted: 961207
Requestor: Mitch Perilstein
Details:
The example in Verilog LRM Section 12.4.1 is not legal according to
the paragraph above it, because the expression "b.i = 1;" in module c refers
to a module name and not an instance name.
Experiments:
* XL accepts it.
* Veriwell and Viperfree do not accept it.
Regarding upwards name references, the XL manual says that module names are
to be used, not instance names. The LRM says instance names. Apparently,
both are used in practice (ie, XL). One question would be what is supposed
to happen if there is visible both a parent instance and a parent module
with the desired region name.
-- Mitchell Perilstein
Additional Comments on this topic from Mitchell:
# I agree that the language of section 12.4 could be tightened up a bit;
# especially in the loose use of "name" to mean sometimes
# module_identifier, and sometimes module_instance_name.
#
# In any case, looking just at section 12.4.1, you see a BNF syntax block
# that says:
#
# <QUOTE>
# upward_name_reference := module_identifier.item_name
# item_name := ...
# </QUOTE>
#
# and then there is the sentence:
#
# <QUOTE>
# Upwards name references can also be done with names of the form
#
# module_instance_name.item_name.
#
# </QUOTE>
Okay, fair enough. If this was the intention, then maybe that BNF should
include both forms? It could simply be like this:
upward_name_reference :=
module_identifier.item_name
| module_instance_name.item_name
<p>This reminds me, the whole of hierarchical identifiers needs to be
stitched into the BNF! Problems:
* upward_name_reference is not used in any production. This means it's
not exactly defined where you are allowed to use it.
* item_name is not defined by any production.
* How do these things connect with the (in)famous production,
identifier ::=
IDENTIFIER [{.IDENTIFIER}]
I think we all have a vague notion how to answer these questions. I'm
not trying to nit pick. But it does seem everyone is answering them
differently, so maybe the spec ought to cover them.
Regards,
--- Mitchell N. Perilstein [\] COMPASS Design Automation, Columbia MD USA mnp@compass-da.com Tel: 301-724-5938, Fax: 410-992-3536<p>+-----------------------------------------------------------------------+ | Anders Nordstrom | | Senior ASIC Designer | | Northern Telecom Ltd. Email: andersn@nortel.ca | | P.O. Box 3511 Station C Phone: 613-763-9186 | | Ottawa, Ontario K1Y 4H7 Fax: 613-763-2626 | +-----------------------------------------------------------------------+
This archive was generated by hypermail 2.1.4
: Mon Jul 08 2002 - 12:54:41 PDT
and
sponsored by Boyd Technology, Inc.