Я нашел один способ сделать это, взял существующий uvm_reg_single_bit_bash_seq и изменил, добавив p_sequencer и добавив 2 задержки тактового цикла после вызовов методов записи и чтения в соответствии с задержкой DUT, это помогло мне исправить проблему, а также добавилвызов метода get после записи, чтобы избежать извлечения старого значения после операции чтения.
...
`uvm_declare_p_sequencer(s_master_sequencer)
rg.write(status, val, UVM_FRONTDOOR, map, this);
wait_for_clock(2); // write latency
rg.read(status, val, UVM_FRONTDOOR, map, this);
wait_for_clock(2); // read latency
if (status != UVM_IS_OK) begin
`uvm_error("mtm_reg_bit_bash_seq", $sformatf("Status was %s when reading register \"%s\" through map \"%s\".",
status.name(), rg.get_full_name(), map.get_full_name()));
end
val = rg.get(); // newly added method call (get) to fetch value after read
...
task wait_for_clock( int m = 1 );
repeat ( m ) begin
@(posedge p_sequencer.vif.CLK);
end
endtask: wait_for_clock
...