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;然后根据字符串的处理方法,从字符串末尾往前遍历,直到遇到一个.号,点号前的内容为去除了实例名的层次;
(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下;