| module switch (q,a,b,c,d,sel); | |
| input a,b,c,d; | |
| input [1:0] sel; | |
| output q; | |
| reg q; | |
| always @ * | |
| case (sel) | |
| 2'b00: q = a; | |
| 2'b01: q = b; | |
| 2'b10: q = c; | |
| 2'b11: q = d; | |
| endcase | |
| endmodule | |
| module test ; | |
| reg [1:0] sel; | |
| reg a,b,c,d; | |
| wire q; | |
| switch u_switch (q,a,b,c,d,sel); | |
| initial | |
| begin | |
| a = 0; | |
| b = 0; | |
| c = 0; | |
| d = 0; | |
| sel = 2'b00; | |
| #1; | |
| if(q !== 1'b0) | |
| begin | |
| $display("FAILED"); | |
| $finish; | |
| end | |
| a = 1; | |
| #1; | |
| if(q !== 1'b1) | |
| begin | |
| $display("FAILED"); | |
| $finish; | |
| end | |
| $display("PASSED"); | |
| end | |
| endmodule |