In reply to raj@123:
No this is not correct. It is useless to initialize this variable. It has to store the read data comming from the register. And this variable has to have the right width (the same as the register has).
It should look like this:
bit [REG_WIDTH-1:0] rd_value;
task body();
regmodel.DCR0_LOCK.read(.status(status) , .value(rd_value), .parent(this) );
endtask