protectedtaskdo_post_read(uvm_reg_itemrw);uvm_callback_iter#(uvm_reg_backdoor,uvm_reg_cbs)iter=new(this);for(uvm_reg_cbscb=iter.last();cb!=null;cb=iter.prev())cb.decode(rw.value);`uvm_do_obj_callbacks(uvm_reg_backdoor,uvm_reg_cbs,this,post_read(rw))post_read(rw);endtask// Task: do_pre_write//// Execute the pre-write callbacks//// This method ~must~ be called as the first statement in// a user extension of the <write()> method.//protectedtaskdo_pre_write(uvm_reg_itemrw);uvm_callback_iter#(uvm_reg_backdoor,uvm_reg_cbs)iter=new(this);pre_write(rw);`uvm_do_obj_callbacks(uvm_reg_backdoor,uvm_reg_cbs,this,pre_write(rw))for(uvm_reg_cbscb=iter.first();cb!=null;cb=iter.next())cb.encode(rw.value);endtask// Task: do_post_write//// Execute the post-write callbacks//// This method ~must~ be called as the last statement in// a user extension of the <write()> method.//protectedtaskdo_post_write(uvm_reg_itemrw);`uvm_do_obj_callbacks(uvm_reg_backdoor,uvm_reg_cbs,this,post_write(rw))post_write(rw);endtask
uvm_reg_data_tvalue_array[];uvm_callback_iter#(uvm_reg_backdoor,uvm_reg_cbs)iter=new(this);for(uvm_reg_cbscb=iter.last();cb!=null;cb=iter.prev())beginrw.get_value_array(value_array);cb.decode(value_array);end`uvm_do_obj_callbacks(uvm_reg_backdoor,uvm_reg_cbs,this,post_read(rw))post_read(rw);endtask// @uvm-ieee 1800.2-2020 auto 19.5.2.4protectedtaskdo_pre_write(uvm_reg_itemrw);uvm_reg_data_trw_value[];uvm_callback_iter#(uvm_reg_backdoor,uvm_reg_cbs)iter=new(this);pre_write(rw);`uvm_do_obj_callbacks(uvm_reg_backdoor,uvm_reg_cbs,this,pre_write(rw))for(uvm_reg_cbscb=iter.first();cb!=null;cb=iter.next())beginrw.get_value_array(rw_value);cb.encode(rw_value);endendtask// @uvm-ieee 1800.2-2020 auto 19.5.2.5protectedtaskdo_post_write(uvm_reg_itemrw);`uvm_do_obj_callbacks(uvm_reg_backdoor,uvm_reg_cbs,this,post_write(rw))post_write(rw);endtask// @uvm-ieee 1800.2-2020 auto 19.5.2.6