Display uvm_info including ps values

My TimeScale is 1ns/1ps which we cannot change in TB.

My Displays as coming as follows:

UVM_INFO @ 1939.000 ns.

But actually Sampling/Driving happens at 1939.125 ns.
How can i display like this?

If change timescale as 1ps/1fs , it will display correctly. but i cant change timescale.

Any suggestions?
Sample code:

`timescale 1ns/1ps
import uvm_pkg::*;
`include "uvm_macros.svh"
module my_testbench_top;
  initial begin
    $timeformat(-9, 3, "ns", 10);
    #10ns;
    `uvm_info("1",$sformatf("g"),UVM_NONE);
    #2ns;
    `uvm_info("2",$sformatf("g"),UVM_NONE);
    #23ps;
    `uvm_info("3",$sformatf("g"),UVM_NONE);
  end
endmodule

Check if your Tb calls $timeformat. If absent try adding :: $timeformat(-9, 3, “ns”, 10);

Its is there.

We can copy and paste the code and simulate .

Your example outputs the following:

# UVM_INFO testbench.sv(10) @ 10.000ns: reporter [1] g

# UVM_INFO testbench.sv(12) @ 12.000ns: reporter [2] g

# UVM_INFO testbench.sv(14) @ 12.023ns: reporter [3] g

What about this is not what you intend?

Check your timescale , i am sure it will 1ps/1fs.
With TimeScale 1ns/1ps Output is as follows as below
UVM_INFO test.sv(7) @ 10.000ns: reporter [1] g
UVM_INFO test.sv(9) @ 12.000ns: reporter [2] g
UVM_INFO test.sv(11) @ 12.000ns: reporter [3] g

Without modifying timescale , i need the displays as # UVM_INFO testbench.sv(14) @ 12.023ns: reporter [3] g (After “.” i need the values)

Your `timescale directive specifies a time unit of 1ns. This is the smallest time unit which will be displayed.
Why can’t you change the TB timescale? Do you not have the ability to edit the file?
Most simulators also provide the ability to override the timescale settings during compilation and simulation. Have you tried those options?