Connecting/binding interface to interface

Hi,

I am trying to connect one Master VIP to one Slave VIP. Now the communication between them is only through two interfaces (though they have common signals of same protocol). How to connect them in the top test bench?

I tried bind and all the trials gave error. We can’t have just the instance with common wires because the signals are not ports for the interfaces. The assign statement is the only solution?

Any standard solution exists? many of engineers say they verified VIP-VIP configuration. Please help.

Murali

The best thing I can think of is to create a module that connects the two interfaces with assign statements inside the module.

In reply to dave_59:

Thanks Dave!

The assign statement was the only one solution, finally I have landed in, which worked well. But I don’t understand why “bind” have to be restricted to only modules. Since logic/wire do not specify the direction, just tying them either through instance or “binding” shouldn’t matter, right?

Will the System Verilog committee consider the request to have the option of two interfaces binding?

Murali

In reply to mpattaje:

The SystemVerilog bind construct is not limited to modules. You probably had some other issue related to port connections that was causing the errors. But you will need to show the code and the errors you were getting.

In reply to dave_59:

Dave,

I used as below.

bind intf1 intf2 intf12_inst (.sig11(sig21),
.sig12(sig22),

);

It gave the errors like below:

Can’t have interface instance as bind destination

intf1 is not a bind target

Even the LRM SystemVerilog 3.1a mentions only module name/instance as the target for bind. Correct me if I am wrong.
I am sure I didn’t have any errors related to port connections etc.

In reply to mpattaje:

You are reading an outdated version of the LRM. Please get the latest that says

A bind target scope shall be a module or an interface. A bind target instance shall be an instance of a module or an interface.

And you may not be using an up-to-date version of a simulator.

Regardless, a bind statement will not help you because it needs ports to make a connection, or hierarchical references to the target.

In reply to dave_59:

I really appreciate your concern Dave! You have made my day today!!
Thanks a lot for your clear-cut answer/solution.

Murali