iverilog/ivtest/ivltests/pr1380261.v

41 lines
784 B
Verilog

module bittest;
reg signed [5:0] m;
reg signed [7:0] n;
reg signed [18:0] p;
reg signed [8:0] s;
reg b;
reg signed c;
reg d;
always @(m, n, c) begin
p <= m * n; // m and n are signed, so do signed multiply
s <= m + b; // b is UNsigned, so do unsigned pad and add.
d <= c == 1; // c and the literal 1 are signed, so do signed compare.
end
initial begin
#10;
m <= -25;
n <= 29;
b <= 1;
c <= 1;
#10;
$display("p=%d s=%d d=%d", p, s, d);
if (s !== 9'd40) begin
$display("FAILED -- s='b%b", s);
$finish;
end
if (p !== -19'd725) begin
$display("FAILED == p='b%b", p);
$finish;
end
if (d !== 0) begin
$display("FAILED == d='b%b", d);
$finish;
end
$display("PASSED");
end
endmodule