iverilog/ivtest/ivltests/pr3103880.v

31 lines
730 B
Verilog

module test;
reg pass;
reg [8*40:1] str;
reg [15:0] v;
initial begin
pass = 1'b1;
v = 2;
$sformat(str, "%0d", (v + 2 - 1) * 1);
if (str[8*1:1] !== "3" || str[8*40:8*1+1] !== 0) begin
$display("FAILED 1st test, expected \"3\", got %s", str);
pass = 1'b0;
end
$sformat(str, "%0d", 'd1 - 'd2 + v);
if (str[8*1:1] !== "1" || str[8*40:8*1+1] !== 0) begin
$display("FAILED 2nd test, expected \"1\", got %s", str);
pass = 1'b0;
end
$sformat(str, "%0d", v + (-1));
if (str[8*1:1] !== "1" || str[8*40:8*1+1] !== 0) begin
$display("FAILED 3rd test, expected \"1\", got %s", str);
pass = 1'b0;
end
if (pass) $display("PASSED");
end
endmodule