iverilog/ivtest/ivltests/shift3.v

30 lines
648 B
Verilog

module main;
reg [7:0] xu;
reg signed [7:0] xs;
initial begin
xu = 8'b1100_0000;
xs = 8'b1100_0000;
xu = xs >>> 3;
xs = xu >>> 3;
// IEEE1364-2005 Secion 5.5.1 Rules for Expression Types
// "Expression type depends only on the operands. It does not depend
// on the left-hand side (if any)."
if (xu !== 8'b1111_1000) begin
$display("FAILED -- xu = xs >>> 3 failed. xu=%b", xu);
$finish;
end
if (xs !== 8'b0001_1111) begin
$display("FAILED -- xs = xu >>> 3 failed. xs=%b", xs);
$finish;
end
$display("PASSED");
end // initial begin
endmodule // main