Watchdog Timer

In reply to mseyunni:

Since no one replied, can you consider something like this in your test?
(Using an old uvm model I have as an example)

class rand_test_sq extends counter_base_test;
// ....
    virtual task run_phase(uvm_phase phase); // run();
        rand_seq seq;
        int counter=MAX_COUNT;
        seq = rand_seq::type_id::create("seq");
        uvm_test_done.raise_objection(this);
        `uvm_info({get_type_name(),":run"}, "Starting test...", UVM_LOW)
        #1;
        fork: fork_run
            //Connect sequence to sequencer and start
            begin 
                $display("Start m_test_sequencer %t", $time);
                seq.start(m_test_sequencer, null);
                // anoher seqx start 
            end 
            // #50000;
            begin 
              forever begin 
                @env_0.agent0.driver.vif.driver_cb begin : counter1
                 if(path_to.activity) counter <= MAX_COUNT; 
                    else counter <= counter - 1'b1;
                 if(counter==0) 
                     uvm_test_done.drop_objection(this); 
               end : counter1
              end             
            end 
        join_any: fork_run
        `uvm_info({get_type_name(),":run"}, "... test completed", UVM_LOW)
        uvm_test_done.drop_objection(this);
    endtask: run_phase