How to solve UVM_FATAL, [PH_TIMEOUT] problem

Hello,

I got UVM_FATAL Error message, "[PH_TIMEOUT] Default timeout of 9200 hit.
Wahen I enable +UVM_OBJECT_TRACE, it said uvm_test_top riasd 1 objection.

Here is my code


`include "02.uvm/spi_env.sv"

class spi_test extends uvm_test;
  `uvm_componen_utls(spi_test)
  real cov;

  spi_env env;
  spi_seq seq;

  extern function new(string name="spi_test", uvm_component parent);
  extern virtual function void build_phase(uvm_phase phase);
  extern virtual function void end_of_elaboration();
  extern task run_phase(phase);
endclass

function spi_test::new(string name="spi_test", uvm_component parent);
  super.new(name, parent);
endfunction

function void spi_test::build_phase(uvm_phase phase);
  super.build_phase(phase);
  env = spi_env::type_id::create("env", this);
  seq = spi_seq::type_id::create("seq", this);
endfunction

funtion void spi_test:end_of_elaboration();
  print();
endfunction

task spi_test::run_phase(uvm_phase phase);
  phase.raise_objection(this, "Starting spi main sequence");

  while(cov < 100.0) begin
    $display("coverage test");  // Printed 1 time only
    seq.start(env.spi_agnt,seqr);
    cov = env.spi_sub.cover_data.get_coverage();
    `uvm_info("TEST", sformatf(">> Coverage :%0.2f", cov), UVM_MEDIUM)
  end

  #100ns;
  phase.drop_objection(this, "Finish");
  phase.phase_done.set_drain_time(this, 50);
endtask



In reply to uvmbee:

DUT has independent timescale in 1ns/10ps, but uvm has not the timescale.
As a result, when I put some time vale like #10, then it could not be recognized in nano-second unit.
So, I put the timescale in the compiling option as below
%vcs -sverilog -ntb_opts uvm -timescale 1ns/10ps tb.sv

It solved.