iverilog/ivtest/ivltests/pr2233180.v

36 lines
729 B
Verilog

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