interface例化后,往resource pool中的存入与取出

1.interface的例化

(1)可以通过bind方式实现,详见bind章节;

2.interface资源的存入与取出

(1)可以使用uvm_config_db::set/get或者uvm_resource_db::set/read_by_name;

(2)关于存放时,路径层次的一个巧妙的处理(构建module+module例化):

(2.1)构建一个module;

(2.2)在module内部,通过string path=$psprintf("%m")获取其hierarchy;然后根据字符串的处理方法,从字符串末尾往前遍历,直到遇到一个.号,点号前的内容为去除了实例名的层次;

interface例化后,往resource pool中的存入与取出

 

(2.3)由于后面将该module例化到与interface相同的层次下,于是(2.2)中的层次也是interface的层次,将该层次与interface的实例名拼接,就得到了interface的完整的层次;

(2.4)在module内部,采用uvm_resource_db::set将interface实例放入到resource_pool内,注意该部分语句需要放到initial begin...end块中;

(2.5)将该module采用与bind interface相同的方式,将其与interface例化到相同的hierarchy下;

上一篇:bat脚本实现一键IP切换


下一篇:java面试题 接口和抽象类的区别是什么