37 lines
605 B
Verilog
37 lines
605 B
Verilog
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
|