Uvm_info time unit

I add “-diag timescale” in VCS compile options to diagnose timescale in each module and the source.
And in compile-log, it show that the uvm_pkg got the timescale of 1ns/1ps, and the source is vcs command options:
package “uvm_pkt” gets time unit ‘1ps’ from vcs command option
package “uvm_pkt” gets time precision ‘1ps’ from vcs command option

but in all classes of uvm like sequence or driver or anything else, the “`uvm_info” macro print time in the unit of “ns”:
@12015.0ns

Do you know why? And where on earth to control the time unit of “`uvm_info” macro?

In reply to whwjez:

You can alter the way uvm_info macro is displaying time by adding this piece of code to your top module:

`timescale 1ps/1ps
module top
initial begin
$timeformat(-12, 5, " ps",10); //$timeformat( units_number , precision_number , suffix_string , minimum_field_width )
end
endmodule

I hope it will resolve your issue.

In reply to 8Blades:

thank you very much, your answer helps a lot.
But I have another question:
If I set my drain time in my sequence like this:
objection.set_drain_time(this, 1230);

this “1230” means what? 1230ns? or 1230ps? and on what it depends?

In reply to whwjez:

The time in set drain time corresponds to the time unit in the given `timescale. E.g.

`timescale 1ns/1ps
ovm_test_done.set_drain_time(this,5000);

In the above case, drain time is set to 5000 * 1ns = 5us