iverilog/ivtest/ivltests/pr2425055b.v

45 lines
967 B
Verilog

module top;
reg pass;
reg [1:0] in, shift, result;
reg signed [1:0] ins;
initial begin
pass = 1'b1;
in = 2'b01;
shift = 2'bx1;
result = in << shift;
if (result !== 2'bxx) begin
$display("Failed <<, expected 2'bxx, got %b", result);
pass = 1'b0;
end
result = in <<< shift;
if (result !== 2'bxx) begin
$display("Failed <<<, expected 2'bxx, got %b", result);
pass = 1'b0;
end
result = in >> shift;
if (result !== 2'bxx) begin
$display("Failed >>, expected 2'bxx, got %b", result);
pass = 1'b0;
end
result = in >>> shift;
if (result !== 2'bxx) begin
$display("Failed >>>, expected 2'bxx, got %b", result);
pass = 1'b0;
end
ins = 2'b10;
result = ins >>> shift;
if (result !== 2'bxx) begin
$display("Failed >>> (signed), expected 2'bxx, got %b", result);
pass = 1'b0;
end
if (pass) $display("PASSED");
end
endmodule