LRM sec 13.4.1 
Author Message
 LRM sec 13.4.1

Quote:

> The example in 1364 section 12.4.1 is not legal according to the
> text above it, because the expression "b.i = 1;" in module c
> refers to module name b and not the names of one of the instances of b,
> a_b1 or d_b1.

> Several clones reject this example, however XL accepts it.  Looking at
> the XL manual, whose Framemaker was the ancestor of 1364, it says that
> upwards hierarchical names are composed of module names, not module
> instance names.

> One solution would be the union of these two schemes.  This would also
> require explicit resolution of the case where an instance name and
> module name are both in view of the upward hierarchical expression.

> -- Mitchell Perilstein


Read 12.4.1 again, closely.

The examples are IEEE 1364 compliant. IEEE 1364 indeed specifies the
behavior you are proposing.  The first token of a hierarchical
reference can be either a module_identifer, or a module_instance_name.

Indeed, a fully qualified path name has to start with a
module_identifier, as top level modules are those modules that are
never instantiated, and hence have no module_instance_name.

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>

The key word here is "also"

   In the instantiation

        foo f1(a,b)

        foo is the module_identifier.
        f1  is the module_instance_name.

So, your clones are not IEEE 1364 compliant, nor are they XL compliant.

--
Michael McNamara     Silicon Sorcery  < http://www.*-*-*.com/ >
Get my verilog emacs mode (subscribe for free updates!) at
                    < http://www.*-*-*.com/ ;



Tue, 01 Jun 1999 03:00:00 GMT  
 LRM sec 13.4.1

Quote:

> The example in 1364 section 12.4.1 is not legal according to the
> text above it, because the expression "b.i = 1;" in module c
> refers to module name b and not the names of one of the instances of b,
> a_b1 or d_b1.

The example is OK, only that we are missing the reference by
module name resolution.

Quote:
> Several clones reject this example, however XL accepts it.  Looking at
> the XL manual, whose Framemaker was the ancestor of 1364, it says that
> upwards hierarchical names are composed of module names, not module
> instance names.

You are right in that the "upward hierachical reference by nodule name
is not documented in 1364. The 1364 errata group please take note.

Quote:

> One solution would be the union of these two schemes.  This would also
> require explicit resolution of the case where an instance name and
> module name are both in view of the upward hierarchical expression.

The old Verilog XL gave preference to module instance name, so was
VCS.

tan
silicon-sorcery



Tue, 01 Jun 1999 03:00:00 GMT  
 
 [ 4 post ] 

 Relevant Pages 

1. Interpretation of LRM 13.10.1

2. Interpretation of LRM 13.10.1

3. LRM Sec 10.2.1

4. fill 1000 records = 0.05 sec or 5.93 sec !?

5. How to convert sec to days/hours/min/sec

6. GPIB::13 13

7. Reuse News - Week Ending: 13 October 1995 - 95-10-13.txt [1/1]

8. diff Ada83-LRM Ada9X-LRM

9. Toronto Smalltalk User Group - Jan.13 meeting

10. SMalltalk Updates 13 April 2002

11. apl-l UseNet batch for Thu May 13 23:59:15 ADT 1993

12. Why Smalltalk 13 April 2002

 

 
Powered by phpBB® Forum Software