iverilog/ivtest/ivltests/pr2913438a.v

36 lines
563 B
Verilog

module bug;
function [1:0] Copy;
input [1:0] Value;
begin
Copy = Value;
end
endfunction
integer i;
integer j;
reg [1:0] Expect;
reg [1:0] Actual;
reg Failed;
initial begin
Failed = 0;
for (i = 0; i < 4; i = i + 1) begin
for (j = 0; j < 4; j = j + 1) begin
Expect = (i%2)*2 + (j%2);
Actual = Copy((i%2)*2 + (j%2));
if (Actual !== Expect) begin
$display("Failed: %0d,%0d expected %0d, got %0d", i, j, Expect, Actual);
Failed = 1;
end
end
end
if (!Failed) $display("PASSED");
end
endmodule