| module main; | |
| reg [3:0] cond; | |
| reg [2:0] t, q; | |
| always @* begin | |
| case (cond&4'b1110) | |
| 'h0: t = 7; | |
| 'h2: t = 6; | |
| 'h4: t = 5; | |
| 'h6: t = 4; | |
| 'h8: t = 3; | |
| 'ha: t = 2; | |
| 'hc: t = 1; | |
| 'he: t = 0; | |
| endcase // case(cond&4'b1110) | |
| q = ~t; | |
| end // always @ * | |
| integer i; | |
| initial begin | |
| for (i = 0 ; i < 8 ; i = i + 1) begin | |
| cond = i << 1; | |
| #1 if (q !== ( 3'b111 & ~(7 - i))) begin | |
| $display("FAILED -- i=%d, cond=%b, q=%b", i, cond, q); | |
| $finish; | |
| end | |
| end | |
| $display("PASSED"); | |
| end | |
| endmodule // main |