在UVM中虚接口传递interface的方式( 二 )


【在UVM中虚接口传递interface的方式】

在UVM中虚接口传递interface的方式

文章插图
下面再展开介绍下这些参数怎么配:
是一个参数化类,拥有一个类型参数type T 。在调用set和get函数的时候,需要首先将要存放的数据对象的类型传递给该类型参数,即 。举个栗子,如果要存放一个整型,那么就是int;如果要存放一个接口句柄,那么就是该接口类名 。这就是前一小节提到的类型(type)属性标签 。
cntxt是的意思,表示当前的上下文环境 。在的应用中,该参数的类型是,其具体指的是某一个UVM的组件层次 。后面的参数是字符串类型,支持glob通配符,即* + 和 ?这三种符号 。cntxt参数和参数来共同组成前面小节说的可见范围(scope)属性标签 。举个栗子,如果要存放的数据对象的可见范围是以下,那么cntxt参数可以设为::get()来获得全局的顶层实例,可以设为“m_env..*”;当然cntxt也可以直接设为null,然后设为“.m_env..*”,效果是一样的 。
的类型同样是,它指的就是上一小节提到的资源名称(name)这个属性标签 。不需要过多考虑,它就只是一个名字而已 。但建议在选名字的时候要慎重,避免在不同组件中都set了范围有重叠且名字又一样的数据对象,除非你已经清楚哪一次set的数据对象优先级更高,可以看看下一小节的例程和扩展阅读部分 。
最后一个参数value,表示的就是要存放的数据本身了 。它可以用某一个变量或者句柄来表示具体的数据对象,也可以是直接给一个常数 。这里需要注意,value的数据类型就是前面已经配置的类型,如果不一致会引入错误 。
另外,从函数原型应该可以看到,get函数是返回值的,该返回值可以用来判断是否成功获取到想要的资源对象,这一点将非常有用 。
部分内容参考: :虚接口 的博客-CSDN博客虚接口
| UVM | 机制基础 - 知乎 ()