Re: [sv-bc] Connecting interface-type ports using implicit port connections

From: Brad Pierce <Brad.Pierce_at_.....>
Date: Thu Apr 27 2006 - 09:44:52 PDT
Now I notice that subclause 20.2.3 adds a restriction that is not
mentioned in the main subclauses about implicit port connections
(19.11.3-4).  It says -

 

       An implicit port cannot be used to reference a generic interface.

 

This sentence makes no sense to me, but I'm guessing that it's trying to
make it illegal to set up an implicit port connection on an
interface-type port whose declaration uses the interface keyword instead
of the name of some interface.

 

This seems to me like an arbitrary restriction that should be removed,
but if it's going to remain, it should at least be expressed more
clearly, and in the same subclauses as other restrictions on implicit
port connections.

 

-- Brad

 

 

________________________________

From: Rich, Dave [mailto:Dave_Rich@mentor.com] 
Sent: Thursday, April 27, 2006 9:20 AM
To: Brad Pierce; sv-bc@eda.org
Subject: RE: [sv-bc] Connecting interface-type ports using implicit port
connections

 

I don't think .* should apply to interface ports. They are two separate
solutions to solve the same problem with unmanageable port lists.

 

But if you insist, I think a generic interface formal should match any
interface actual. A modport does not need to be consider for a match.

 

________________________________

From: owner-sv-bc@server.eda.org [mailto:owner-sv-bc@server.eda.org] On
Behalf Of Brad Pierce
Sent: Thursday, April 27, 2006 9:05 AM
To: sv-bc@server.eda.org
Subject: [sv-bc] Connecting interface-type ports using implicit port
connections

 

The description of .name and .* implicit port connections in 19.11
requires the equivalence of the port expression and type in the port
declaration.  But I don't know what this means when applied to
interface-type ports.

 

In the following, is the first port instantiation legal and the second
illegal?  If so, what's the practical justification for this difference?

 

   extern interface IFC #(N=0);

 

   extern BOT0 (      IFC ifc_32_0, ifc_16_0);

   extern BOT1 (interface ifc_32_1, ifc_16_1);

 

   module TOP;

       IFC #(32) ifc_32_0 ( ), ifc_31_1 ( );

       IFC #(16) ifc_16_0 ( ), ifc_16_1 ( );

       BOT0 bot0 (.*);

       BOT1 bot1 (.*);

   endmodule

 

And what are the rules for modports?  If the port expression uses a
modport, but the port declaration doesn't, can an implicit port
connection be made?

 

If a port expression could legally be explicitly connected to a
correspondingly named interface-type port, then an implicit port
connection should be legal, too.

 

-- Brad

 

 
Received on Thu Apr 27 09:45:05 2006

This archive was generated by hypermail 2.1.8 : Thu Apr 27 2006 - 09:45:11 PDT