NEED EXPLNATION ABOUT UVM_REG_FIELD

class txd_reg extends uvm_reg;
`uvm_object_utils(txd_reg)

rand uvm_reg_field data;

function new(string name = “txd_reg”);
super.new(name, 8, UVM_NO_COVERAGE);
endfunction

function void build();
data = uvm_reg_field::type_id::create(“data”);
data.configure(this, 8, 0, “WO”, 0, 8’h0, 0, 1, 0);
endfunction: build
endclass: txd_reg

Referred from Verification Academy => Uart Project => uvm_reg.pkg

IN above code i want to know the behaviour(What is work) of uvm_reg_field?