Hi Hoong,
You can use is_busy method available in the uvm_reg base class. It will returns 1 if register is currently being read or written.
So in you code after doing rg.write(status, value, UVM_FRONTDOOR, map, this);
continuous poll for this register via is_busy method.
Once is_busy function return with value 0. You can do the next operation rg.read(status, value1, UVM_BACKDOOR, map, this);.
I hope this will help you out.
Best Regards,
Chetan Shah
Sr. ASIC Verification Engineer (Level-1) | ASIC
Product Engineering Services
Software | Embedded | Semiconductor
Frost & Sullivan Company of the Year 2013-14