[sv-bc] RE: [sv-ec] Multidim array of interfaces - supported?

From: Brad Pierce <Brad.Pierce_at_.....>
Date: Mon Mar 24 2008 - 23:51:45 PDT
Subhamoy,

 

I think it should be legal to slice an MDA of array instances in this
way and connect them to a port of the same type and shape, because what
isn't prohibited is usually allowed.  As you said, "I did not find any
LRM section/verse commenting on that."  But I didn't find any
prohibitions on it either. 

 

n  Brad

 

From: Subhamoy Pal [mailto:spal@Magma-DA.COM] 
Sent: Monday, March 24, 2008 11:26 PM
To: Brad Pierce; sv-ec@eda.org; sv-bc@eda.org
Subject: RE: [sv-ec] Multidim array of interfaces - supported?

 

Thanks Brad for your comment. Now I believe the following case should
also be correct where I pass a part-select to the squat_1 instantiation.
Isn't it?

 

Test

====

interface ifc;

bit clk_in;

bit clk_out;

logic [7:0] data;

endinterface

 

module squat_1(ifc Rx[0:1][0:2]); //2-dim array type

endmodule

 

module test;

ifc Rx[0:2][0:2]();

squat_1 squat_1(Rx[1:2]); //array type is 2-dim

endmodule

 

________________________________

From: owner-sv-ec@eda.org [mailto:owner-sv-ec@eda.org] On Behalf Of Brad
Pierce
Sent: Tuesday, March 25, 2008 11:29 AM
To: sv-ec@eda.org; sv-bc@eda.org
Subject: RE: [sv-ec] Multidim array of interfaces - supported?

 

Subhamoy,

 

In my opinion, the LRM allows you to instantiate an MDA of interface
instances in the same way as you would an MDA of module instances.  For
the latter, see the examples in 19.12.5.

 

n  Brad

 

From: owner-sv-ec@eda.org [mailto:owner-sv-ec@eda.org] On Behalf Of
Subhamoy Pal
Sent: Monday, March 24, 2008 10:46 PM
To: sv-ec@eda.org; sv-bc@eda.org
Subject: [sv-ec] Multidim array of interfaces - supported?

 

Hi,

 

I am little confused over array of interface construct in SV-2005 LRM.
It seems most of the standard tools/simulators supports one dimensional
array of interface; however they don't support multi-dimensional array
of interfaces. Does language prohibits that? I did not find any LRM
section/verse commenting on that. Can you suggest me what is per
standard?

 

Your suggestion is important to me.

 

Thanks,

Subhamoy

 

 

Example1 - (supported by standard tools/simulators)

========

interface ifc;

bit clk_in;

bit clk_out;

logic [7:0] data;

endinterface

 

module squat_1(ifc Rx[0:2]);

endmodule

 

module squat_2(ifc Tx);

endmodule

 

module test;

ifc Rx[0:2]();

ifc Tx();

squat_1 squat_1(Rx);

squat_2 squat_2(Tx);

endmodule

 

Example2 - (standard tools/simulators error out)

========

interface ifc;

bit clk_in;

bit clk_out;

logic [7:0] data;

endinterface

 

module squat_1(ifc Rx[0:2][0:2]);

endmodule

 

module squat_2(ifc Tx);

endmodule

 

module test;

ifc Rx[0:2][0:2]();

ifc Tx();

squat_1 squat_1(Rx);

squat_2 squat_2(Tx);

endmodule


-- 
This message has been scanned for viruses and 
dangerous content by MailScanner <http://www.mailscanner.info/> , and is

believed to be clean. 


-- 
This message has been scanned for viruses and 
dangerous content by MailScanner <http://www.mailscanner.info/> , and is

believed to be clean. 


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Mon Mar 24 23:53:36 2008

This archive was generated by hypermail 2.1.8 : Mon Mar 24 2008 - 23:54:09 PDT