iverilog/ivtest/ivltests/pr2450244.v

40 lines
759 B
Verilog

module main;
parameter [15:0] a = 16'h8421;
reg [3:0] b, c;
reg pass;
always @* begin
b = a[c+:4];
// $display($time, " c: %d, b: %h", c, b);
end
initial begin
pass = 1'b1;
c = 0;
#1 if (b !== 4'd1) begin
$display("FAILED: c = 0, expected 1, got %0d", b);
pass = 1'b0;
end
#9 c = 4;
#1 if (b !== 4'd2) begin
$display("FAILED: c = 4, expected 2, got %0d", b);
pass = 1'b0;
end
#9 c = 8;
#1 if (b !== 4'd4) begin
$display("FAILED: c = 8, expected 4, got %0d", b);
pass = 1'b0;
end
#9 c = 12;
#1 if (b !== 4'd8) begin
$display("FAILED: c = 12, expected 8, got %0d", b);
pass = 1'b0;
end
if (pass) $display("PASSED");
end
endmodule