求助:关于改变default_sequence的问题
时间:10-02
整理:3721RD
点击:
各位:
最近正在使用UVM搭建仿真平台,遇到一个改变default_sequence的问题。嗯,先上代码:
class wdma_base_test extends uvm_test;
wdma_tbtb0;
vsequencervsqr;
vi_configvdo_cfg;
`uvm_component_utils(wdma_base_test)
function new(string name="wdma_base_test",uvm_component parent);
super.new(name,parent);
endfunction : new
virtual function void set_default_sequence();
uvm_config_db#(uvm_object_wrapper)::set(this,"vsqr.run_phase","default_sequence",wdma_1080p_ud_seq::type_id::get());
endfunction : set_default_sequence
virtual function void build_phase(uvm_phase phase);
super.build_phase(phase);
tb0=wdma_tb::type_id::create("tb0",this);
vsqr=vsequencer::type_id::create("vsqr",this);
vdo_cfg=vi_config::type_id::create("vdo_cfg");
uvm_config_db#(vi_config)::set(this,"*","vdo_cfg",vdo_cfg);
uvm_config_object::set(this,"tb0.vdo0*","cfg",vdo_cfg);
set_default_sequence();
endfunction : build_phase
virtual function void connect_phase(uvm_phase phase);
super.connect_phase(phase);
vsqr.vdo_sqr=tb0.vdo0.master.sequencer;
endfunction : connect_phase
virtual task run_phase(uvm_phase phase);
super.run_phase(phase);
tb0.print();
endtask : run_phase
endclass : wdma_base_test
class wdma_1080p_30hz_test extends wdma_base_test;
`uvm_component_utils(wdma_1080p_30hz_test)
function new(string name, uvm_component parent);
super.new(name,parent);
endfunction : new
function void set_default_sequence();
uvm_config_db#(uvm_object_wrapper)::set(this,"vsqr.run_phase","default_sequence",wdma_1080p_30hz_seq::type_id::get());
endfunction : set_default_sequence
function void build_phase(uvm_phase phase);
super.build_phase(phase);
$display("30hz");
endfunction : build_phase
function void connect_phase(uvm_phase phase);
super.connect_phase(phase);
endfunction : connect_phase
endclass : wdma_1080p_30hz_test
可是问题是,当我跑wdma_1080p_30hz_test时,启动的还是wdma_1080p_ud_seq,就好像wdma_1080p_30hz_test中改写的set_default_sequence()函数没有起作用一样。各位有什么办法解决呢?
没有经验,不敢乱说,帮顶!
顶起好东西
不知道小编用的UVM的哪个版本,很多写法跟UVM1.1的好像有点不大一样。
你的uvm_config_db怎么没有设置set的路径?
还有connect,写法感觉挺与众不同的。
我是UVM初学者,说说自己的看法。
$display("30hz");?打印出来了?
恩。出来了。
也是1.1
有啊,不过那行太长,自动换行了呗