config_db机制
时间:10-02
整理:3721RD
点击:
class driver_2 extends uvm_driver#(cmd);
`uvm_component_utils(driver_2)
virtual cmd_if vif;
function new(string name, uvm_component parent);
super.new(name, parent);
endfunction
virtual function void build_phase(uvm_phase phase);
super.build_phase(phase);
void'(uvm_config_db#(virtual cmd_if)::get(this, "", "vif", vif));
endfunction
在driver的代码中void'(uvm_config_db#(virtual cmd_if)::get(this, "", "vif", vif));根据李强的说法是收信,在TOP_TB中 uvm_config_db#(virtual d_if)::set(null, "uvm_test_top.env1.drv1", "vif", iif);这相当于寄信,我不明白为什么要这样寄信收信?driver为什么是收信?往个位大牛解答?万分感谢
`uvm_component_utils(driver_2)
virtual cmd_if vif;
function new(string name, uvm_component parent);
super.new(name, parent);
endfunction
virtual function void build_phase(uvm_phase phase);
super.build_phase(phase);
void'(uvm_config_db#(virtual cmd_if)::get(this, "", "vif", vif));
endfunction
在driver的代码中void'(uvm_config_db#(virtual cmd_if)::get(this, "", "vif", vif));根据李强的说法是收信,在TOP_TB中 uvm_config_db#(virtual d_if)::set(null, "uvm_test_top.env1.drv1", "vif", iif);这相当于寄信,我不明白为什么要这样寄信收信?driver为什么是收信?往个位大牛解答?万分感谢
你有没有看过uvm class reference?有没有看看uvm_config_db有哪些方法?作用是什么?
看了啊?我是新手,还是有不明白的地方。在case中set值然后在component中get这个值,我不明白的是driver是驱动的,怎么还能这样用?它需要从interface上get值吗?在这里void'(uvm_config_db#(virtual cmd_if)::get(this, "", "vif", vif));和uvm_config_db#(virtual cmd_if)::get(this, "", "vif", vif)作用一样吗?谢谢了
driver是不是需要驱动dut呢?driver是通过interface来驱动的,既然你需要驱动dut那么连接dut的interface总得和你driver里的这个联系起来吧?config db本质上作用就是为了传东西,和直接用等号赋值效果差不多,区别是他存到关联数组里了,你可以去取get,也可以不去取
这个我知道,我只是不明白为什么,driver是get而interface是set。driver是驱动dut不应该是set吗?
快递给你一把刀,和你是用在家里切菜还是在外面砍树没有关系
我想了一下,这个机制传递的是不是可以说是参数,不是数据呢?
和我上面说的一样,他只是给了你一个东西,你要拿去驱动可以,拿去monitor也可以。
谢谢了!