16.2、资源的写入
382 如果发现错误,或有建议,请联系 zhangqiang1227@gmail.com
数把 val 的值写入 rsrc 中。这样,rsrc 中就有了 val 的值,有了 scope 的值。143 行则
把 rsrc 写入到全局的 uvm_resource_pool 中。下面分别介绍 uvm_resource#(T)的 new
函数,write 函数和 set 函数。
16.2.2. uvm_resource#(T)的 new 函数
uvm_resource#(type T)的 new 函数的定义为:
文件:src/base/uvm_resource.svh
类:uvm_resource#(type T=int)
函数/任务:new
1403 function new(string name="", scope="");
1404 super.new(name, scope);
1405 endfunction
这里仅仅只是调用了 uvm_resource_base 的 new 函数:
文件:src/base/uvm_resource.svh
类:uvm_resource_base
函数/任务:new
234 function new(string name = "", string s = "*");
235 super.new(name);
236 set_scope(s);
237 modified = 0;
238 read_only = 0;
239 precedence = default_precedence;
240 if(uvm_has_wildcard(name))
241 m_is_regex_name = 1;
242 endfunction
我们以一个例子来讲解这个 new 函数:
uvm_resource_db#(int)::set(“a.b.c”, “blk_num”, 8);
236 行调用 set_scope 函数,传入的参数是”a.b.c”:
文件:src/base/uvm_resource.svh
类:uvm_resource_base
函数/任务:set_scope
390 function void set_scope(string s);
391 scope = uvm_glob_to_re(s);
392 endfunction
2022-04-11 10:28:03
4.72MB
uvm
1