iverilog/ivtest/ivltests/sv_port_default3.v

39 lines
891 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;
class foo_t;
int int_val;
logic[3:0]log_val;
function new (int int_init, logic[3:0] log_init = 4'bzzzz);
int_val = int_init;
log_val = log_init;
endfunction : new
endclass : foo_t
foo_t obj1;
initial begin
obj1 = new (5, 4'b1010);
if (obj1.int_val != 5 || obj1.log_val !== 4'b1010) begin
$display("FAILED -- obj1.int_val=%0d, obj1.log_val=%0s", obj1.int_val, obj1.log_val);
$finish;
end
obj1 = new (7);
if (obj1.int_val != 7 || obj1.log_val !== 4'bzzzz) begin
$display("FAILED -- obj1.int_val=%0d, obj1.log_val=%0s", obj1.int_val, obj1.log_val);
$finish;
end
$display("PASSED");
end
endprogram // main