RE: [sv-bc] Discussion overview of SV name resolution

From: Mark Hartoog <Mark.Hartoog_at_.....>
Date: Fri Jun 02 2006 - 09:39:21 PDT
This is a good start, but I think we need to extend this to include 
interfaces, interface ports and generate constructs within interfaces. 
Consider:

interface intf();
generate
begin : block
logic x;
end
endgenerate
endinterface

module m(intf i);
initial $display(i.block.x);
endmodule

Consider 'i.block.x'

You say: "It is legal to have a dotted name composed of a hierarchical 
prefix followed by a dot followed by a selected name.  It is not legal 
to have a dotted name composed of a selected name followed by a
hierarchical 
name."

What is the 'i.' part of the name? Is it a hierarchical name? You say "A

hierarchical name is a "topological reference" that is resolved in the 
context of the structure of the instantiated design." By definition I do
not think 'i.' is really a hierarchical name.

What then is the '.block.' part of the name. That looks like a
hierarchical
name to me. 

I guess the question here is what is an interface? Is it part of the
structural 
hierarchy or is it a type? We seem to be trying to treat it as both part
of the 
hierarchy and also like a type. That is why we have the problem with
virtual 
interface declarations in packages and this confusion here.
Received on Fri Jun 2 09:39:30 2006

This archive was generated by hypermail 2.1.8 : Fri Jun 02 2006 - 09:39:36 PDT