寄存器模型内建sequence的uvm_reg_mem_hdl_paths_seq的用法
uvm_reg_mem_hdl_paths_seq可以用于检查hdl路径的正确性。
这个sequence的运行依赖于在基类uvm_reg_sequence中定义的一个变量:uvm_reg_block model;
class case0_cfg_vseq extends uvm_sequence;
`uvm_object_utils(case0_cfg_vseq)
`uvm_declare_p_sequencer(my_vsqr)
function new(string name= "case0_cfg_vseq");
super.new(name);
endfunction
virtual task body();
uvm_status_e status;
uvm_reg_data_t value;
uvm_reg_mem_hdl_paths_seq ckseq;////
if(starting_phase != null)
starting_phase.raise_objection(this);
ckseq = new("ckseq");////
ckseq.model = p_sequencer.p_rm;////
ckseq.start(null);////
if(starting_phase != null)
starting_phase.drop_objection(this);
endtask
endclass
在调用这个sequence的start任务时,传入的sequencer参数为null,因为它正常工作不依赖于这个sequencer,而依赖于model这个变量;
不仅可以检查寄存器,还可以检查存储器;
如果某个寄存器、存储器在加入寄存器模型时没有指定其hdl路径,那么此sequence在检查时会跳过这个寄存器和存储器。
浙公网安备 33010602011771号