module main; reg [2:0] ADDR; wire [1:0] data0 = 0, data1 = 1, data2 = 2, data3 = 3; reg [1:0] data; always @* case (ADDR[2:0]) 3'b000: data = data0; 3'b001: data = data1; 3'b010: data = data2; 3'b011: data = data3; default: data = 0; endcase // case(ADDR[2:0]) initial begin ADDR = 0; #1 $display("data=%b", data); if (data !== ADDR) begin $display("FAILED"); $finish; end ADDR = 1; #1 $display("data=%b", data); if (data !== ADDR) begin $display("FAILED"); $finish; end ADDR = 2; #1 $display("data=%b", data); if (data !== ADDR) begin $display("FAILED"); $finish; end ADDR = 3; #1 $display("data=%b", data); if (data !== ADDR) begin $display("FAILED"); $finish; end ADDR = 4; #1 $display("data=%b", data); if (data !== 0)begin $display("FAILED"); $finish; end $display("PASSED"); end // initial begin endmodule // main