iverilog/ivtest/ivltests/br_gh8.v

35 lines
744 B
Verilog

// Regression test for GitHub issue 8 : Signedness handling in binary
// bitwise operations of constants.
module bug();
localparam value1 = 4'sb1010 | 4'sb0000;
localparam value2 = 4'sb1010 + 4'sb0000;
localparam value3 = ~4'sb0101;
localparam value4 = -4'sb0101;
reg signed [4:0] result;
reg failed = 0;
initial begin
result = value1;
$display("%b", result);
if (result !== 5'b11010) failed = 1;
result = value2;
$display("%b", result);
if (result !== 5'b11010) failed = 1;
result = value3;
$display("%b", result);
if (result !== 5'b11010) failed = 1;
result = value4;
$display("%b", result);
if (result !== 5'b11011) failed = 1;
if (failed)
$display("FAILED");
else
$display("PASSED");
end
endmodule