Case (조건)
Case
문은 순차적으로 if문을 거친다고 생각하면된다.
예시 (인코딩)
참고로 다수 case를 하나로 연결할 때는 ,
로 연결 하면 된다.
reg [15:0] rega;
reg [ 9:0] result;
case (rega)
16'd0: result = 10'b0111111111;
16'd1: result = 10'b1011111111;
16'd2: result = 10'b1101111111;
16'd3: result = 10'b1110111111;
16'd4: result = 10'b1111011111;
16'd5: result = 10'b1111101111;
16'd6: result = 10'b1111110111;
16'd7: result = 10'b1111111011;
16'd8: result = 10'b1111111101;
16'd9: result = 10'b1111111110;
default: result = 'bx;
endcase
예시 (Constant Expression)
encode
의 비트에 따라 작동하게 되는 형태
reg [2:0] encode;
case (1)
encode[2]: $display("~~");
encode[1]: $display("~~");
encode[0]: $display("~~");
default: $display("~~");
endcase
Casez
Casez
문은 z
를 Don't Care
= 0, 1, x, z
으로 취급, x
는 그대로 x
로 취급
Casex
Casex
문은 x
, z
, ?
모두 Don't Care
= 0, 1, x, z
으로 취급
평소에 ?
를 사용하여 헷갈리지 않도록 하는 것이 권장