iverilog/ivtest/ivltests/pr2043324.v

73 lines
1.2 KiB
Verilog

module top;
reg pass = 1'b1;
reg result;
function freg;
input reg in;
freg = in;
endfunction
function fnreg(input reg in);
fnreg = in;
endfunction
task toreg;
output reg out;
input reg in;
out = in;
endtask
task tnoreg(output reg out, input reg in);
out = in;
endtask
task tioreg;
inout reg io;
io = 1'b1;
endtask
task tnioreg(inout reg io);
io = 1'b0;
endtask
initial begin
result = freg(1'b1);
if (result !== 1'b1) begin
$display("FAILED: freg()");
pass = 1'b0;
end
result = fnreg(1'b0);
if (result !== 1'b0) begin
$display("FAILED: fnreg()");
pass = 1'b0;
end
toreg(result, 1'b1);
if (result !== 1'b1) begin
$display("FAILED: toreg()");
pass = 1'b0;
end
tnoreg(result, 1'b0);
if (result !== 1'b0) begin
$display("FAILED: tnoreg()");
pass = 1'b0;
end
tioreg(result);
if (result !== 1'b1) begin
$display("FAILED: tioreg()");
pass = 1'b0;
end
tnioreg(result);
if (result !== 1'b0) begin
$display("FAILED: tnioreg()");
pass = 1'b0;
end
if (pass) $display("PASSED");
end
endmodule