Multiple Interface Instances

In this article I will explain the problem of setting multiple interface instances to their respective agents within your verification environment.

Say you had this kind of a scenario:

You have multiple agents where you wish to set multiple interface instances of the same interface from your testbench file. This is the solution I found that helped me.

First, from your testbench file, set the interfaces in the manner shown below. You see that I instantiated and set all the necessary interfaces for master and slave agents within a for loop. The trick is to set them with a different name using the $sformatf macro to the configuration db that can be easily replicated when getting them. The code is as follows:

Multiple interface instances code example 1

Now, when you wish to get the interface instances, you would also use the $sformatf macro but with the get function. You get the interfaces within a queue in your environment and then send pointers to all agents/drives/monitors that need a handle on that particular interface. The code is shown below:

Multiple interface instances code example 2

You would get the interface instance within a queue and have them all individually stacked up before you do any other handling. The key is in setting and getting with the $sformatf macro and “i” counters that format the string differently distinguishing the instances from one another.

See how to solve this in the video below:

Contact Us

Please, enter your details below. We will get back to you as fast as we can.

This website uses cookies to ensure you get the best experience on our website.

Get Cogita

Please, enter your details below. We will get back to you as fast as we can.

Thank you!

We will get in touch soon.

Get a Quote

Please, enter your details below. We will get back to you as fast as we can.