iverilog/ivtest/ivltests/abstime.v

44 lines
893 B
Verilog

`timescale 1ns/10ps
module top;
reg pass;
real result;
initial begin
pass = 1'b1;
result = $abstime;
if (result != 0.0) begin
$display("FAILED at time 0, expected 0.0, got %g", result);
pass = 1'b0;
end
#10;
result = $abstime;
if ($abs(result-10e-9) > result*1e-9) begin
$display("FAILED at time 10ns, expected 1e-8, got %g", result);
pass = 1'b0;
end
#999990;
result = $abstime;
if ($abs(result-0.001) > result*1e-9) begin
$display("FAILED at time 1ms, expected 0.001, got %g", result);
pass = 1'b0;
end
`ifdef __ICARUS_UNSIZED__
#9999000000;
`else
#9999000000.0;
`endif
result = $abstime;
if ($abs(result-10.0) > result*1e-9) begin
$display("FAILED at time 10s, expected 10.0, got %g", result);
pass = 1'b0;
end
if (pass) $display("PASSED");
end
endmodule