iverilog/ivtest/ivltests/pr2233192.v

36 lines
744 B
Verilog

module bug05_integerRem;
reg passed;
reg signed[31:0] reg0;
reg signed[31:0] reg1;
reg signed[31:0] rrem;
wire signed[31:0] dividend=reg0;
wire signed[31:0] divisor=reg1;
wire signed[31:0] remainder;
assign remainder= dividend%divisor;
initial begin
passed = 1'b1;
reg0=32'hffffffff;
reg1=32'h0d1f0796;
//BUG here: remainder==32'h06b26fdd, should be 32'hffffffff
#1 if (remainder !== 32'hffffffff) begin
$display("Failed: CA remainder, expected 32'hffffffff, got %h",
remainder);
passed = 1'b0;
end
rrem = reg0 % reg1;
#1 if (rrem !== 32'hffffffff) begin
$display("Failed: remainder, expected 32'hffffffff, got %h",
rrem);
passed = 1'b0;
end
if (passed) $display("PASSED");
end
endmodule