寄存器模型内建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号