Hi,
Please look below code snippets and their outputs
Code 1 with $realtime
`timescale 10ns/1ns
module p_array;
logic clk;
logic a;
initial
clk = 0;
always begin
#50 clk = ~clk;
end
initial begin
#1.55 a = 0;
#1.55 a = 1;
#50 $stop;
end
initial
$monitor(" Time = %0t, clk = %0b, a = %0b ", $realtime, clk, a);
initial begin
$dumpfile("dump.vcd");
$dumpvars(0, p_array);
end
endmodule: p_array
output
run -all
# Time = 0, clk = 0, a = x
# Time = 16, clk = 0, a = 0
# Time = 32, clk = 0, a = 1
# Time = 500, clk = 1, a = 1
Code 2 with $time
// or browse Examples
`timescale 10ns/1ns
module p_array;
logic clk;
logic a;
initial
clk = 0;
always begin
#50 clk = ~clk;
end
initial begin
#1.55 a = 0;
#1.55 a = 1;
#50 $stop;
end
initial
$monitor(" Time = %0t, clk = %0b, a = %0b ", $time, clk, a);
initial begin
$dumpfile("dump.vcd");
$dumpvars(0, p_array);
end
endmodule: p_array
output
run -all
# Time = 0, clk = 0, a = x
# Time = 20, clk = 0, a = 0
# Time = 30, clk = 0, a = 1
# Time = 500, clk = 1, a = 1
Why in the second scenario the time is 20 instead of 16?
Thanks,
Mukul