[sv-bc] Interface ports and hierarchical referencing

From: Gordon Vreugdenhil <gordonv_at_.....>
Date: Tue Jan 08 2008 - 08:24:00 PST
The current LRM doesn't place any restrictions on the actuals
for interface ports in an instantiation.  I think that there
has been an implicit assumption that interface flow is
"downwards", but that has never been explicitly stated in
the LRM.

Consider the following:

    interface intf_def #(parameter type T);
    endinterface

    module top;
       child c(c.intf);
    endmodule

    module child(intf_def intf_inp);
       typedef intf_inp.T T;
       intf_def #(T) intf();
    endmodule


I don't think there is anything in the LRM that I can appeal
to in saying that this is illegal.

In general, how tight does everyone think the restrictions
need to be?  Should an interface port actual be required to be
a simple name (meaning that it is either declared in a visible
scope or is itself an interface port)?

At a minimum, due to the type issues, when used as an interface
port actual, I don't think you should be able to reference anything
below the reference point.  In addition, there would likely
need to be restrictions regarding references through generates
and array instances as well.

Gord
-- 
--------------------------------------------------------------------
Gordon Vreugdenhil                                503-685-0808
Model Technology (Mentor Graphics)                gordonv@model.com


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Tue Jan 8 08:58:37 2008

This archive was generated by hypermail 2.1.8 : Tue Jan 08 2008 - 09:00:26 PST