iverilog/ivtest/ivltests/pr2281479.v

43 lines
852 B
Verilog

module top;
reg passed;
reg[1:0] in;
integer where;
always @(in) begin
casez(in)
2'b10: where = 1;
2'bx?: where = 2; // MSB is X
2'b??: where = 3; // The same as default.
endcase
end
initial begin
passed = 1'b1;
in = 2'b10;
#1 if (where != 1) begin
$display("FAILED 2'b10 case, found case %d", where);
passed = 1'b0;
end
in = 2'bx0;
#1 if (where != 2) begin
$display("FAILED 2'bx? case (1), found case %d", where);
passed = 1'b0;
end
in = 2'bx1;
#1 if (where != 2) begin
$display("FAILED 2'bx? case (2), found case %d", where);
passed = 1'b0;
end
in = 2'b00;
#1 if (where != 3) begin
$display("FAILED 2'b?? case, found case %d", where);
passed = 1'b0;
end
if (passed) $display("PASSED");
end
endmodule