iverilog/ivtest/ivltests/pr1960633.v

38 lines
728 B
Verilog

`ifdef __ICARUS__
`define SUPPORT_CONST_OUT_OF_RANGE_IN_IVTEST
`endif
module main;
reg [7:0] foo;
`ifdef SUPPORT_CONST_OUT_OF_RANGE_IN_IVTEST
wire [3:0] below = foo[2:-1];
wire [3:0] above = foo[8:5];
wire [9:0] span = foo[8:-1];
`else
wire [3:0] below = {foo[2:0], 1'bx};
wire [3:0] above = {1'bx, foo[7:5]};
wire [9:0] span = {1'bx, foo[7:0], 1'bx};
`endif
initial begin
foo = 'h55;
#1 ;
if (below !== 4'b101_x) begin
$display("FAILED");
$finish;
end
if (above !== 4'bx_010) begin
$display("FAILED");
$finish;
end
if (span !== 10'bx_01010101_x) begin
$display("FAILED");
$finish;
end
$display("PASSED");
end
endmodule // main