30 lines
648 B
Verilog
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
|