I am trying to improve transaction recording. So far we have used field automation macros, but to make debugging efficient I am trying to customize the recording.
I've understood that the do_record function should do the trick
class proj_brc_tr extends proj_tr;
rand time cmd_width;
rand time brc_per;
`uvm_object_utils_begin(proj_brc_tr)
`uvm_field_int(cmd_width,UVM_ALL_ON+UVM_TIME)
`uvm_field_int(brc_per,UVM_ALL_ON+UVM_TIME)
`uvm_object_utils_end
function void do_record(uvm_recorder recorder) ;
`uvm_record_attribute(recorder.tr_handle,"cmd_width",cmd_width) ;
endfunction
So here I'm trying to override the field automation micros and display only 'cmd_width' using do _record.
But the change is not getting reflected when I simulate the files. I've read in some forums that do_record needs to be called by the record function, but doesn't do_record gets called automatically when begin_tr() and end_tr() are called in monitors and drivers?