iverilog/ivtest/ivltests/sv_port_default11.v

36 lines
796 B
Verilog

// This tests the basic support for default arguments to task/function
// ports. The default port syntax gives SystemVerilog a limited form
// of variable argument lists.
program main;
task increment(output int res, input int val, input int step = 1, input int flag = 1);
res = val + step*flag;
endtask // increment
int res;
initial begin
increment(res,5);
if (res !== 6) begin
$display("FAILED -- increment(5) --> %0d", res);
$finish;
end
increment(res,5,2);
if (res !== 7) begin
$display("FAILED -- increment(5,2) --> %0d", res);
$finish;
end
increment(res,5,,3);
if (res !== 8) begin
$display("FAILED -- increment(5,,3) --> %0d", res);
$finish;
end
$display("PASSED");
end
endprogram // main