iverilog/ivtest/ivltests/br_gh199a.v

25 lines
751 B
Verilog

module bug();
reg [31:0] n1, d1, q1, m1;
reg [63:0] n2, d2, q2, m2;
initial begin
n1 = 32'h8000_0000;
d1 = 32'hFFFF_FFFF;
q1 = $signed(n1) / $signed(d1);
$display("32 bit quotient = 0x%08h;", q1);
m1 = $signed(n1) % $signed(d1);
$display("32 bit modulus = 0x%08h;", m1);
n2 = 64'h8000_0000_0000_0000;
d2 = 64'hFFFF_FFFF_FFFF_FFFF;
q2 = $signed(n2) / $signed(d2);
$display("64 bit quotient = 0x%016h;", q2);
m2 = $signed(n2) % $signed(d2);
$display("64 bit modulus = 0x%016h;", m2);
if ((q1 === 32'h8000_0000) && (q2 === 64'h8000_0000_0000_0000)
&& (m1 === 32'h0000_0000) && (m2 === 64'h0000_0000_0000_0000))
$display("PASSED");
else
$display("FAILED");
end
endmodule