寄存器模型中函数get_root_blocks的用法
要使用寄存器模型,一般是将寄存器模型的指针传递过来;
除了这种方法,uvm还提供函数,使得可以在不使用指针传递的情况下得到寄存器模型的指针;
virtual task body();
uvm_status_e status;
uvm_reg_data_t value;
bit[31:0] counter;
uvm_reg_block blks[$];////
reg_model p_rm;////
uvm_reg_block::get_root_blocks(blks);////
if(blks.size() == 0) ////
`uvm_fatal("case0_cfg_vseq", "can't find root blocks")////
else begin ////
if(!$cast(p_rm, blks[0])) ////
`uvm_fatal("case0_cfg_vseq", "can't cast to reg_model")////
end
p_rm.invert.read(status, value, UVM_FRONTDOOR);
`uvm_info("case0_cfg_vseq", $sformatf("invert's initial value is %0h", value), UVM_LOW)
endtask
浙公网安备 33010602011771号