问个uvm config 的set和get的问题
时间:10-02
整理:3721RD
点击:
在自己做的module里面加了uvm_config_db#(virtual if)::set(null," ", $formatf("LLLLL%0d_IF",num), test_if);
在uvm模块的monitor中get此if. uvm_config_db#(virtual vif)::get(this," ",$formatf("LLLLL%0d_IF",num), vif);
这样子工作是正常的。
请问:monitor是怎么get到module里面set的内容的呢?用的是uvm-1.1d版本,看源代码没看懂,不知道原理好纠结的说。
在uvm模块的monitor中get此if. uvm_config_db#(virtual vif)::get(this," ",$formatf("LLLLL%0d_IF",num), vif);
这样子工作是正常的。
请问:monitor是怎么get到module里面set的内容的呢?用的是uvm-1.1d版本,看源代码没看懂,不知道原理好纠结的说。
找到层次就可以get过来
没明白层次trace的过程,汗!从set那边开始,第二个参数是空的,那么层次指向top。get中层次this指向当前文件,but 不知道中间过程是个啥情况。还是多谢多谢啦
config_db不是uvm_component才有的吗?还能在module里面写Set?
不是啊 ,只要包在initial begin end块里面就可以用哎
关于uvm_config_db可以这样理解,uvm_config_db#(uvm_object)::set(comp,string0,string1,obj),set 操作可以认为做了一个联合数组aa[{comp.get_full_name(),string0,string1}] = obj,而get操作就是得到 aa[{comp.get_full_name(),string0,string1}],那么关于你的问题,在transaction中get某个obj,就可以这样,在test中uvm_config_db#(uvm_object)::set(null,string0,string1,obj),而get时也是uvm_config_db#(uvm_object)::get(null,string0,string1,obj),这样即可