iverilog/ivtest/ivltests/pr2842621_std.v

45 lines
1.2 KiB
Coq
Raw Normal View History

// A zero value MCD should be allowed, but does it process the arguments?
module top;
integer mcd, test;
initial begin
test = 0;
// Skipped, but function is called.
#1;
$display($stime);
mcd = 0;
$fstrobe(mcd, "The $fstrobe(%d, ...) ran.", mcd);
$fdisplay(mcd, "The result for $fdisplay(%d, ...) is %d", mcd, my_func(1));
$fwrite(mcd, "The result for $fwrite(%d, ...) is %d\n", mcd, my_func(1));
#1;
$display($stime);
mcd = 1;
$fstrobe(mcd, "The $fstrobe(%d, ...) ran.", mcd);
$fdisplay(mcd, "The result for $fdisplay(%d, ...) is %d", mcd, my_func(1));
$fwrite(mcd, "The result for $fwrite(%d, ...) is %d\n", mcd, my_func(1));
$fflush(mcd);
// Skipped, but function is called.
#1;
$display($stime);
mcd = 0;
$fstrobe(mcd, "The $fstrobe(%d, ...) ran.", mcd);
$fdisplay(mcd, "The result for $fdisplay(%d, ...) is %d", mcd, my_func(1));
$fwrite(mcd, "The result for $fwrite(%d, ...) is %d\n", mcd, my_func(1));
#1;
$display($stime);
if (test != 6) $display("FAILED side effect test");
else $display("PASSED");
end
function integer my_func;
input incr;
begin
test = test + incr;
my_func = test;
end
endfunction
endmodule